神刀安全网

Neutron – a self-hosted server for the protonmail client

neutron

Neutron - a self-hosted server for the protonmail client

Self-hosted server forProtonmail client.

Demo: http://neutron.emersion.fr (username: neutron , passwords: neutron )

Keep in mind that Neutron is less secure than ProtonMail: most servers don’t use full-disk encryption and aren’t under 1,000 meters of granite rock in Switzerland. If you use Neutron, make sure to donate to ProtonMail !

The initial goal is to support IMAP & SMTP servers (authentication, messages and folders), storing everything else (contacts & settings) on disk. Neutron is modular so it’s easy to create new backends and handle more scenarios.

Install

Options

  • -config : specify a custom config file
  • -help : show help

Configuration

See config.json .

{     "Memory": {         "Enabled": true,         "Populate": false, // Populate server with default neutron user         "Domains": ["emersion.fr"] // Available e-mail domains     },     "Imap": { // IMAP server config         "Enabled": true,         "Hostname": "mail.gandi.net",         "Suffix": "@emersion.fr" // Will be appended to username when authenticating     },     "Smtp": { // SMTP server config         "Enabled": true,         "Hostname": "mail.gandi.net",         "Port": 587,         "Suffix": "@emersion.fr" // Will be appended to username when authenticating     },     "Disk": { // Store keys, contacts and settings on disk         "Enabled": true,         "Keys": { "Directory": "db/keys" }, // PGP keys location         "Contacts": { "Directory": "db/contacts" },         "UsersSettings": { "Directory": "db/settings" },         "Addresses": { "Directory": "db/addresses" }     } }

To add a new user, just click Sign up on the login page and enter your IMAP credentials.

One field per backend, each one containing a boolean Enabled to turn it on or off.

  • Memory : stores all data in memory. Set Populate to true to automatically populate memory with some data (username: neutron , passwords: neutron ).
  • Imap : stores messages on an IMAP server
  • Smtp : sends messages via a SMTP server
  • Disk : store all data on disk

Build

Requirements:

  • Go (to build the server)
  • Node, NPM (to build the client)
# Get the code go get -u github.com/emersion/neutron cd $GOPATH/src/github.com/emersion/neutron  # Build the client git submodule init git submodule update make build-client  # Start the server make start

Backends

All backends must implement thebackend interface. The main backend interface is split into multiple other backend interfaces for different roles: ContactsBackend , LabelsBackend and so on. This allows to build modular backends, e.g. a MessagesBackend which stores messages on an IMAP server with a ContactsBackend which stores contacts on a LDAP server and a SendBackend which sends outgoing messages to a SMTP server.

Writing a backend is just a matter of implementing the necessary functions. You can read the memory backend to understand how to do that. Docs for the backend are available here: https://godoc.org/github.com/emersion/neutron/backend#Backend

License

MIT

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » Neutron – a self-hosted server for the protonmail client

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
分享按钮