All apps · 0 apps
hydroxide
Docker app from anna's Repository
Overview
Readme
View on GitHubhydroxide
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, a "bridge password" will be printed. Don't close your terminal yet, as this password is not stored anywhere by hydroxide and will be needed when configuring your e-mail client.
Your ProtonMail credentials are stored on disk encrypted with this bridge password (a 32-byte random password generated when logging in).
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).
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: the bridge password (not your ProtonMail password)
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
Contributing
This project is casually maintained: pull requests are welcome, but the maintainer is busy with lots of other things and will be slow to respond.
Also see CONTRIBUTING.md.
License
MIT
Install Hydroxide on Unraid in a few clicks.
Find Hydroxide in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Requirements
- Authentication
Before running the container, you must authenticate with your ProtonMail account. You have two options:
Run this command:
docker run -it --rm -v /mnt/user/appdata/hydroxide:/root/.config/hydroxide docker.io/heywoodlh/hydroxide auth user
Replace user with your ProtonMail username or email address.
Alternatively, if you already have a Bridge Password, set it using the HYDROXIDE_BRIDGE_PASS environment variable.
2. Host Configuration
Ensure the listening hosts (-imap-host, -smtp-host, and -carddav-host) are correctly set to match your desired hostname in the post arguments.
If you don’t wish to use a custom network, set the network type to bridge. For this to work, port 8080 (used for CardDAV) must be available.
If port 8080 is already in use (e.g., by Nginx Proxy Manager), you can also disable CardDAV entirely by adding -disable-carddav to the post arguments.
Categories
Download Statistics
Total Downloads Over Time
Related apps
Explore more like this
Explore allDetails
heywoodlh/hydroxideRuntime arguments
- Network
br0- Shell
sh- Privileged
- false
Template configuration
The SMTP port.
- Target
- 1025
- Default
- 1025
- Value
- 1025
The IMAP port.
- Target
- 1143
- Default
- 1143
- Value
- 1143
The CalDAV port.
- Target
- 8080
- Default
- 8080
- Value
- 8080
- Target
- /root/.config/hydroxide
- Value
- /mnt/user/appdata/hydroxide
Use this variable only if you already have an existing Bridge Password. If not, you must first run the authentication command described above.