1
0
Fork
You've already forked hydroxide
0
No description
  • Go 100%
2023年11月04日 23:59:44 +00:00
.github/workflows release workflow 2023年08月11日 18:04:45 +08:00
auth Allow custom config directory 2023年08月11日 23:02:49 +08:00
carddav Bump dependencies and fix msg operation exceeding page limit ( #4 ) 2023年08月11日 18:02:21 +08:00
cmd/hydroxide merge upstream: maintain proxy support 2023年11月04日 23:59:44 +00:00
config Allow custom config directory 2023年08月11日 23:02:49 +08:00
events events: don't enter a busy loop on error 2019年06月22日 12:56:43 +03:00
exports imports: change the crypto lib to new import path 2021年04月08日 11:13:32 +02:00
imap Bump dependencies and fix msg operation exceeding page limit ( #4 ) 2023年08月11日 18:02:21 +08:00
imports imports: change the crypto lib to new import path 2021年04月08日 11:13:32 +02:00
protonmail merge upstream: maintain proxy support 2023年11月04日 23:59:44 +00:00
smtp Upgrade go-smtp 2023年08月24日 08:08:56 +02:00
.build.yml ci: print build status 2018年10月28日 16:58:28 +01:00
.gitignore Bump dependencies and fix msg operation exceeding page limit ( #4 ) 2023年08月11日 18:02:21 +08:00
go.mod merge upstream: maintain proxy support 2023年11月04日 23:59:44 +00:00
go.sum merge upstream: maintain proxy support 2023年11月04日 23:59:44 +00:00
LICENSE Initial commit 2017年08月21日 17:33:41 +02:00
README.md Update README.md 2023年07月28日 17:18:56 +02:00

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

or, a little bit simpler via go install:

go install github.com/emersion/hydroxide/cmd/hydroxide@latest

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

License

MIT