hydroxide

hydroxide

Docker app from anna's Repository

Overview

A third-party, open-source ProtonMail bridge. Hydroxide supports CardDAV, IMAP, and SMTP protocols. Key Features: No GUI, only CLI Standards-compliant (not optimized for Microsoft Outlook) Fully open-source What is Hydroxide? Hydroxide is a server that translates standard protocols (SMTP, IMAP, CardDAV) into ProtonMail API requests. It allows you to use your favorite email clients (like Apple Mail or Thunderbird) or tools like git-send-email with ProtonMail. Commands: auth username Login to ProtonMail via hydroxide carddav Run hydroxide as a CardDAV server export-secret-keys username Export secret keys imap Run hydroxide as an IMAP server import-messages username [file] Import messages export-messages [options...] username Export messages sendmail username -- args... sendmail(1) interface serve Run all servers smtp Run hydroxide as an SMTP server status View hydroxide status Global options: -debug Enable debug logs -api-endpoint url ProtonMail API endpoint -app-version version ProtonMail application version -smtp-host example.com Allowed SMTP email hostname on which hydroxide listens, defaults to 127.0.0.1 -imap-host example.com Allowed IMAP email hostname on which hydroxide listens, defaults to 127.0.0.1 -carddav-host example.com Allowed SMTP email hostname on which hydroxide listens, defaults to 127.0.0.1 -smtp-port example.com SMTP port on which hydroxide listens, defaults to 1025 -imap-port example.com IMAP port on which hydroxide listens, defaults to 1143 -carddav-port example.com CardDAV port on which hydroxide listens, defaults to 8080 -disable-imap Disable IMAP for hydroxide serve -disable-smtp Disable SMTP for hydroxide serve -disable-carddav Disable CardDAV for hydroxide serve -tls-cert /path/to/cert.pem Path to the certificate to use for incoming connections (Optional) -tls-key /path/to/key.pem Path to the certificate key to use for incoming connections (Optional) -tls-client-ca /path/to/ca.pem If set, clients must provide a certificate signed by the given CA (Optional)

hydroxide

Casual Maintenance Intended

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.

Open the Apps tab on your Unraid server Search Community Apps for Hydroxide Review the template variables and paths Click Install

Requirements

  1. 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

14,649
Total Downloads
1,628
This Month
1,628
Avg / Month

Total Downloads Over Time

Loading chart...

Related apps

Explore more like this

Explore all

Details

Repository
heywoodlh/hydroxide
Last Updated2026-06-21
First Seen2025-02-11

Runtime arguments

Network
br0
Shell
sh
Privileged
false

Template configuration

Port 1Porttcp

The SMTP port.

Target
1025
Default
1025
Value
1025
Port 2Porttcp

The IMAP port.

Target
1143
Default
1143
Value
1143
Port 3Porttcp

The CalDAV port.

Target
8080
Default
8080
Value
8080
Path 1Pathrw
Target
/root/.config/hydroxide
Value
/mnt/user/appdata/hydroxide
HYDROXIDE_BRIDGE_PASSVariable

Use this variable only if you already have an existing Bridge Password. If not, you must first run the authentication command described above.