2026-03-11 15:03:11 +01:00
|
|
|
#!/bin/sh
|
|
|
|
|
set -e
|
2020-06-01 06:51:24 -07:00
|
|
|
|
2026-03-11 15:03:11 +01:00
|
|
|
mkdir -p /root/.gnupg
|
|
|
|
|
chmod 700 /root/.gnupg
|
2026-03-11 09:30:04 +01:00
|
|
|
|
2026-03-11 15:03:11 +01:00
|
|
|
# Initialize pass store if missing
|
|
|
|
|
if [ ! -d "/root/.password-store" ]; then
|
|
|
|
|
echo "Initializing password store..."
|
2026-03-11 08:54:34 +01:00
|
|
|
|
2026-03-11 15:03:11 +01:00
|
|
|
# Generate GPG key
|
|
|
|
|
gpg --batch --gen-key /protonmail/gpgparams
|
2026-03-11 09:30:04 +01:00
|
|
|
|
2026-03-11 15:03:11 +01:00
|
|
|
# Extract fingerprint
|
|
|
|
|
KEY=$(gpg --list-secret-keys --with-colons | awk -F: '/^sec:/ {print $5; exit}')
|
2026-03-11 09:30:04 +01:00
|
|
|
|
2026-03-11 15:03:11 +01:00
|
|
|
# Initialize pass
|
|
|
|
|
pass init "$KEY"
|
|
|
|
|
fi
|
2020-06-01 06:51:24 -07:00
|
|
|
|
2026-07-01 16:38:10 +02:00
|
|
|
# Avoid launching Proton's auto-updated upstream binary from the persisted
|
|
|
|
|
# /root volume. Those official binaries bind IMAP/SMTP to 127.0.0.1. This image
|
|
|
|
|
# deliberately runs the patched nogui binary from /usr/bin, built with host
|
|
|
|
|
# constant 0.0.0.0.
|
|
|
|
|
rm -rf /root/.local/share/protonmail/bridge-v3/updates
|
|
|
|
|
|
|
|
|
|
BRIDGE_BIN=/usr/bin/bridge
|
|
|
|
|
|
2026-03-11 15:03:11 +01:00
|
|
|
# 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.
|
2026-07-01 16:38:10 +02:00
|
|
|
pkill bridge || true
|
|
|
|
|
pkill proton-bridge || true
|
2026-03-11 15:03:11 +01:00
|
|
|
|
|
|
|
|
# Run any ProtonMail Bridge Command - Login
|
2026-07-01 16:38:10 +02:00
|
|
|
"$BRIDGE_BIN" --cli "$@"
|
2020-06-01 06:51:24 -07:00
|
|
|
else
|
2026-03-11 15:03:11 +01:00
|
|
|
# Start ProtonMail Bridge
|
|
|
|
|
# Fake a terminal, so it does not quit because of EOF...
|
|
|
|
|
rm -f faketty
|
|
|
|
|
mkfifo faketty
|
2026-07-01 16:38:10 +02:00
|
|
|
cat faketty | "$BRIDGE_BIN" --cli "$@"
|
2020-06-01 06:51:24 -07:00
|
|
|
fi
|