hydroxide
A third-party, open-source ProtonMail bridge. For power users only, designed to
run on a server.
hydroxide supports CardDAV, IMAP and SMTP.
Rationale:
- No GUI, only a CLI (so it runs in headless environments)
- Standard-compliant (we don't care about Microsoft Outlook)
- Fully open-source
Feel free to join the IRC channel: #emersion on Libera Chat.
How does it work?
hydroxide is a server that translates standard protocols (SMTP, IMAP, CardDAV)
into ProtonMail API requests. It allows you to use your preferred e-mail clients
and git-send-email with ProtonMail.
+-----------------+ +-------------+ ProtonMail +--------------+
| | IMAP, SMTP | | API | |
| E-mail client <-------------> hydroxide <--------------> ProtonMail |
| | | | | |
+-----------------+ +-------------+ +--------------+
Setup
Go
hydroxide is implemented in Go. Head to Go website for
setup information.
Installing
Start by installing hydroxide:
git clone https://github.com/emersion/hydroxide.git
go build ./cmd/hydroxide
Then you'll need to login to ProtonMail via hydroxide, so that hydroxide can
retrieve e-mails from ProtonMail. You can do so with this command:
hydroxide auth <username>
Once you're logged in, hydroxide stores an internal bridge password in an
encrypted local credentials file.
Your ProtonMail credentials are still stored on disk encrypted with this bridge
password (a 32-byte random password generated when logging in), but you no
longer need to manually copy it for local clients.
Usage
hydroxide can be used in multiple modes.
Don't start hydroxide multiple times, instead you can use hydroxide serve.
This requires ports 1025 (smtp), 1143 (imap), and 8080 (carddav).
To run all services in the background:
hydroxide serve
To stop the background process:
hydroxide stop
On Linux, to register hydroxide to start automatically on login (systemd user service):
hydroxide system
SMTP
To run hydroxide as an SMTP server:
hydroxide smtp
Once the bridge is started, you can configure your e-mail client with the
following settings:
- Hostname:
localhost
- Port: 1025
- Security: none
- Username: your ProtonMail username
- Password: your ProtonMail username (hydroxide resolves this to the stored
bridge password internally)
CardDAV
You must setup an HTTPS reverse proxy to forward requests to hydroxide.
hydroxide carddav
Tested on GNOME (Evolution) and Android (DAVDroid).
IMAP
⚠️ Warning: IMAP support is work-in-progress. Here be dragons.
For now, it only supports unencrypted local connections.
hydroxide imap
License
MIT