Compare commits

...

23 Commits

Author SHA1 Message Date
Gitea Bot d223629418 Update ProtonMail Bridge to v3.25.0 2026-06-11 03:00:52 +00:00
Gitea Bot dd393bd0e4 Update ProtonMail Bridge to v3.24.2 2026-04-30 03:00:54 +00:00
GitHub Actions b0a5c8b943 Merge branch 'main' of git.yiprawr.dev:Docker/protonmail-bridge
Build and Push Docker Container / build-and-push (push) Successful in 4m53s
Check and Autoupdate for ProtonMail Bridge / check-update (push) Successful in 19s
2026-03-24 09:49:18 +01:00
GitHub Actions 69522d6e48 add to manually run build and push docker container 2026-03-24 09:48:56 +01:00
Gitea Bot b574a11eba Update ProtonMail Bridge to v3.23.1 2026-03-24 08:45:52 +00:00
GitHub Actions 49e4d6c536 add generate new tls host cert
Build and Push Docker Container / build-and-push (push) Successful in 5m37s
Check and Autoupdate for ProtonMail Bridge / check-update (push) Successful in 17s
2026-03-11 16:12:46 +01:00
GitHub Actions dbf81b43a8 make image smaller 2026-03-11 15:48:55 +01:00
GitHub Actions c62fe08152 fix container change back to debian for older systems
Build and Push Docker Container / build-and-push (push) Successful in 8m39s
2026-03-11 15:03:11 +01:00
GitHub Actions 2ca2b80ff4 cleanup entrypoint.sh and add haveged for getentropy
Build and Push Docker Container / build-and-push (push) Successful in 5m50s
2026-03-11 09:30:04 +01:00
GitHub Actions ebce5c4f8d create tagged docker image version too based on bridge version
Build and Push Docker Container / build-and-push (push) Successful in 6m17s
2026-03-11 09:07:35 +01:00
Gitea Bot 6a4d5f26c2 Update ProtonMail Bridge to v3.22.0 2026-03-11 08:03:05 +00:00
GitHub Actions 8123e4b288 add dbus and allow to find key for pass
Build and Push Docker Container / build-and-push (push) Successful in 5m11s
2026-03-11 08:54:34 +01:00
daniel156161 beb667517c revert 209a324e6e
Build and Push Docker Container / build-and-push (push) Successful in 5m33s
revert Update ProtonMail Bridge to v3.22.0
2026-03-11 08:33:37 +01:00
GitHub Actions a26ac3382f change golang build image from debian to alpine
Build and Push Docker Container / build-and-push (push) Successful in 6m29s
2026-03-11 07:57:24 +01:00
GitHub Actions 482c31cca3 change base image from ubuntu to alpine
Build and Push Docker Container / build-and-push (push) Successful in 5m55s
2026-03-11 07:45:48 +01:00
GitHub Actions c6744bbfaf change workdir to /protonmail/ and add creating of /root/.gnupg and change permissions
Build and Push Docker Container / build-and-push (push) Successful in 6m32s
2026-03-11 07:22:31 +01:00
GitHub Actions 2c262c0d0e change /build to /build/proton-bridge/ and add pass into build image and copy vault-editor into base image
Build and Push Docker Container / build-and-push (push) Successful in 5m48s
2026-03-11 07:00:17 +01:00
GitHub Actions b224418fbd remove socat proxy commands
Build and Push Docker Container / build-and-push (push) Successful in 5m42s
2026-03-11 06:40:08 +01:00
GitHub Actions 1b055fd7f5 remove build.sh because its not neaded and move sed into Dockerfile 2026-03-11 06:39:41 +01:00
GitHub Actions 56ddcf4549 test 2
Build and Push Docker Container / build-and-push (push) Successful in 5m5s
Check and Autoupdate for ProtonMail Bridge / check-update (push) Failing after 13m50s
2026-03-10 10:37:45 +01:00
GitHub Actions 7ee9b4aed8 fixing error that can't get correct password manger and other errors
Build and Push Docker Container / build-and-push (push) Successful in 5m29s
2026-03-10 10:20:13 +01:00
GitHub Actions 1ff8abbe16 add dbus-launch command
Build and Push Docker Container / build-and-push (push) Successful in 5m50s
2026-03-10 09:19:21 +01:00
GitHub Actions ee58a00b01 add package dbus into ubuntu build prozess
Build and Push Docker Container / build-and-push (push) Has been cancelled
2026-03-10 09:11:19 +01:00
9 changed files with 112 additions and 99 deletions
+6 -3
View File
@@ -3,6 +3,7 @@ on:
push:
branches:
- main
workflow_dispatch:
jobs:
build-and-push:
@@ -29,12 +30,14 @@ jobs:
- name: Convert repository owner to lowercase
run: echo "REPO_OWNER_LC=$(echo '${{ gitea.repository_owner }}' | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
- name: Build and push Docker image for latest tag
- name: Build and push Docker image
uses: docker/build-push-action@v7
with:
context: ./build
context: .
push: true
tags: ${{ vars.DOCKER_REGISTRY_URL }}/${{ env.REPO_OWNER_LC }}/protonmail-bridge:latest
tags: |
${{ vars.DOCKER_REGISTRY_URL }}/${{ env.REPO_OWNER_LC }}/protonmail-bridge:latest
${{ vars.DOCKER_REGISTRY_URL }}/${{ env.REPO_OWNER_LC }}/protonmail-bridge:${{ env.VERSION }}
platforms: linux/amd64
build-args: |
VERSION=${{ env.VERSION }}
+43
View File
@@ -0,0 +1,43 @@
FROM golang:trixie AS build
ARG VERSION
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
libsecret-1-dev \
libfido2-dev \
libcbor-dev \
pass \
&& rm -rf /var/lib/apt/lists/*
# Build
ADD https://github.com/ProtonMail/proton-bridge.git#${VERSION} /build/proton-bridge/
WORKDIR /build/proton-bridge/
RUN sed -i 's/127.0.0.1/0.0.0.0/g' internal/constants/constants.go
RUN make build-nogui vault-editor
FROM debian:trixie-slim
EXPOSE 1025/tcp
EXPOSE 1143/tcp
# Install dependencies and protonmail bridge
RUN apt-get update && apt-get install -y --no-install-recommends \
gnupg \
pass \
libsecret-1-0 \
libfido2-1 \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# Copy bash scripts
COPY gpgparams entrypoint.sh /protonmail/
COPY scripts/generate_new_certs.sh /root/generate_new_certs.sh
WORKDIR /protonmail/
# Copy protonmail
COPY --from=build /build/proton-bridge/bridge /usr/bin/
COPY --from=build /build/proton-bridge/proton-bridge /usr/bin/
COPY --from=build /build/proton-bridge/vault-editor /usr/bin/
ENTRYPOINT ["bash", "/protonmail/entrypoint.sh"]
+1 -1
View File
@@ -1 +1 @@
v3.22.0
v3.25.0
-38
View File
@@ -1,38 +0,0 @@
FROM golang:1.26 AS build
ARG VERSION
# Install dependencies
RUN apt-get update && apt-get install -y \
build-essential \
libsecret-1-dev \
libfido2-dev \
libcbor-dev
# Build
ADD https://github.com/ProtonMail/proton-bridge.git#${VERSION} /build/
WORKDIR /build/
RUN make build-nogui vault-editor
COPY build.sh /build/
RUN bash build.sh
FROM ubuntu:latest
LABEL maintainer="Xiaonan Shen <s@sxn.dev>"
EXPOSE 25/tcp
EXPOSE 143/tcp
# Install dependencies and protonmail bridge
RUN apt-get update \
&& apt-get install -y --no-install-recommends socat pass libsecret-1-0 ca-certificates libfido2-1 \
&& rm -rf /var/lib/apt/lists/*
# Copy bash scripts
COPY gpgparams entrypoint.sh /protonmail/
# Copy protonmail
COPY --from=build /build/bridge /protonmail/
COPY --from=build /build/proton-bridge /protonmail/
ENTRYPOINT ["bash", "/protonmail/entrypoint.sh"]
-19
View File
@@ -1,19 +0,0 @@
#!/bin/bash
set -ex
# Clone new code
sed -i 's/127.0.0.1/0.0.0.0/g' internal/constants/constants.go
ARCH=$(uname -m)
if [[ $ARCH == "armv7l" ]] ; then
# This is expected to fail, and we use the following patch to fix
make build-nogui || true
# For 32bit architectures, there was a overflow error on the parser
# This is a workaround for this problem found at:
# https://github.com/antlr/antlr4/issues/2433#issuecomment-774514106
find $(go env GOPATH)/pkg/mod/github.com/\!proton\!mail/go-rfc5322*/ -type f -exec sed -i.bak 's/(1<</(int64(1)<</g' {} +
fi
# Build
make build-nogui
-35
View File
@@ -1,35 +0,0 @@
#!/bin/bash
set -ex
# Initialize
if [[ $1 == init ]]; then
# Initialize pass
gpg --generate-key --batch /protonmail/gpgparams
pass init pass-key
# Kill the other instance as only one can be running at a time.
# This allows users to run entrypoint init inside a running conainter
# which is useful in a k8s environment.
# || true to make sure this would not fail in case there is no running instance.
pkill protonmail-bridge || true
# Login
/protonmail/proton-bridge --cli $@
else
# socat will make the conn appear to come from 127.0.0.1
# ProtonMail Bridge currently expects that.
# It also allows us to bind to the real ports :)
socat TCP-LISTEN:25,fork TCP:127.0.0.1:1025 &
socat TCP-LISTEN:143,fork TCP:127.0.0.1:1143 &
# Start protonmail
# Fake a terminal, so it does not quit because of EOF...
rm -f faketty
mkfifo faketty
cat faketty | /protonmail/proton-bridge --cli $@
fi
+37
View File
@@ -0,0 +1,37 @@
#!/bin/sh
set -e
mkdir -p /root/.gnupg
chmod 700 /root/.gnupg
# Initialize pass store if missing
if [ ! -d "/root/.password-store" ]; then
echo "Initializing password store..."
# Generate GPG key
gpg --batch --gen-key /protonmail/gpgparams
# Extract fingerprint
KEY=$(gpg --list-secret-keys --with-colons | awk -F: '/^sec:/ {print $5; exit}')
# Initialize pass
pass init "$KEY"
fi
# Initialize
if [[ "$1" == "init" ]]; then
# Kill the other instance as only one can be running at a time.
# This allows users to run entrypoint init inside a running conainter
# which is useful in a k8s environment.
# || true to make sure this would not fail in case there is no running instance.
pkill protonmail-bridge || true
# Run any ProtonMail Bridge Command - Login
proton-bridge --cli "$@"
else
# Start ProtonMail Bridge
# Fake a terminal, so it does not quit because of EOF...
rm -f faketty
mkfifo faketty
cat faketty | proton-bridge --cli "$@"
fi
+3 -3
View File
@@ -1,8 +1,8 @@
%no-protection
%echo Generating a basic OpenPGP key
Key-Type: RSA
Key-Length: 2048
Name-Real: pass-key
Subkey-Type: RSA
Name-Real: Proton Bridge
Name-Email: bridge@local
Expire-Date: 0
%commit
%echo done
+22
View File
@@ -0,0 +1,22 @@
#!/bin/sh
if [ -z "$1" ]; then
echo "Please add the hostname of the Docker Container Name where the Container Should Create a Cert for"
echo "like: $0 protonmail-bridge"
exit 1
fi
# 1. choose the hostname(s) you will actually type into your mail client
HOSTS="$1,localhost,127.0.0.1"
# 2. build the openssl SAN string automatically
SAN=$(echo "$HOSTS" | tr ',' '\n' \
| sed -e 's/^[0-9.]*$/IP:&/' -e 's/^[^0-9.]*$/DNS:&/' \
| paste -sd,)
# 3. generate key + cert in one shot
openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 3650 \
-out cert.pem -subj '/CN=protonmail-bridge' \
-addext "subjectAltName=$SAN"
# 4. quick sanity-check
openssl x509 -in cert.pem -text -noout | grep -A1 "Subject Alternative"