This commit is contained in:
Eric Trenkel 2026-03-08 02:56:59 +00:00 committed by GitHub
commit 25e2d82eb1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 38 additions and 8 deletions

View File

@ -4,7 +4,7 @@ FROM debian:sid-slim AS build
ARG version
# Install dependencies
RUN apt-get update && apt-get install -y golang build-essential libsecret-1-dev
RUN apt-get update && apt-get install -y golang build-essential libsecret-1-dev libfido2-dev pkg-config libcbor-dev
# Build
ADD https://github.com/ProtonMail/proton-bridge.git#${version} /build/
@ -19,7 +19,7 @@ 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 \
&& apt-get install -y --no-install-recommends socat pass libsecret-1-0 ca-certificates libfido2-1 libcbor0 \
&& rm -rf /var/lib/apt/lists/*
# Copy bash scripts

View File

@ -2,6 +2,12 @@
set -ex
# Workaround for stale gpg-agent socket causing auth failures on restart
# Cleans up leftover sockets in the GPG home directory
if [ -d /root/.gnupg ]; then
rm -f /root/.gnupg/S.gpg-agent*
fi
# Initialize
if [[ $1 == init ]]; then
@ -23,13 +29,22 @@ 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 &
socat TCP-LISTEN:25,fork,reuseaddr TCP:127.0.0.1:1025,nodelay &
socat TCP-LISTEN:143,fork,reuseaddr TCP:127.0.0.1:1143,nodelay &
# Start protonmail
# Fake a terminal, so it does not quit because of EOF...
rm -f faketty
mkfifo faketty
cat faketty | /protonmail/proton-bridge --cli $@
# Keep faketty open
sleep infinity > faketty &
# Start bridge reading from faketty
/protonmail/proton-bridge --cli $@ < faketty &
# Wait for the bridge to exit
wait $!
exit $?
fi

View File

@ -2,6 +2,12 @@
set -ex
# Workaround for stale gpg-agent socket causing auth failures on restart
# Cleans up leftover sockets in the GPG home directory
if [ -d /root/.gnupg ]; then
rm -f /root/.gnupg/S.gpg-agent*
fi
# Initialize
if [[ $1 == init ]]; then
@ -37,13 +43,22 @@ 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 &
socat TCP-LISTEN:25,fork,reuseaddr TCP:127.0.0.1:1025,nodelay &
socat TCP-LISTEN:143,fork,reuseaddr TCP:127.0.0.1:1143,nodelay &
# Start protonmail
# Fake a terminal, so it does not quit because of EOF...
rm -f faketty
mkfifo faketty
cat faketty | protonmail-bridge --cli
# Keep faketty open
sleep infinity > faketty &
# Start bridge reading from faketty
protonmail-bridge --cli < faketty &
# Wait for the bridge to exit
wait $!
exit $?
fi