Code Monkey home page Code Monkey logo

email's Introduction

email

Email application based on IndieHosters network.

Prerequistes

  • docker
  • docker-compose

Modify the following files:

  • copy env.template to data/config/env and modify it (MYSQL_PASSWORD and DB_ENV_MYSQL_PASSWORD are the same password)

Add the following files:

  • data/config/TLS/chain.pem
  • data/config/TLS/cert.pem
  • data/config/TLS/ssl_certificate.pem
  • data/config/TLS/ssl_private_key.pem

If they do not exist a self signed certificate will be created.

Run

./create.sh hostname

Everything should be up and running.

If HTTPS should run on a different port add it as a second argument:

./create.sh hostname 8443

Backup

To backup, just run the BACKUP in your folder, supplying a target path and password. This will create an encrypted duplicity backup.

./BACKUP /some/target/path super-secure-password

Listing available backups

./LIST_BACKUPS /some/target/path

Restore a backup

To restore the latest backup:

./RESTORE /some/target/path super-secure-password now

To restore a specific date list them with LIST_BACKUPS. Example result:

Number of contained backup sets: 2
Total number of contained volumes: 3
 Type of backup set:                            Time:      Num volumes:
                Full         Thu Jan  5 14:07:57 2017                 2
         Incremental         Thu Jan  5 14:35:49 2017                 1

To restore the FULL backup in this example, run:

./RESTORE /some/target/path super-secure-password 2017-01-05T14:07:57

Available services

Features

indiehosters/email mail-in-a-box/mailinabox status
[x] SMTP (postfix) [x] SMTP (postfix)
[x] IMAP (dovecot) [x] IMAP (dovecot)
[x] POP (dovecot) [x] POP (dovecot)
[ ] search (dovecot-lucene) [x] search (dovecot-lucene) planned
[x] CardDAV/CalDAV (Nextcloud) [x] CardDAV/CalDAV (ownCloud)
[ ] Exchange ActiveSync (z-push) [x] Exchange ActiveSync (z-push) planned
[x] Webmail (Roundcube) [x] Webmail (Roundcube)
[ ] static website hosting (nginx) [x] static website hosting (nginx) part of other package
[x] Spam filtering (spamassassin) [x] Spam filtering (spamassassin)
[x] greylisting (postgrey) [x] greylisting (postgrey)
[x] Backups (duplicity) [x] Backups (duplicity)
[ ] firewall (ufw) [x] firewall (ufw) planned, as part of firewall package
[ ] intrusion protection (fail2ban) [x] intrusion protection (fail2ban) ? (difficult in docker)
[ ] system monitoring (munin) [x] system monitoring (munin) planned, as part of other package

DNS (nsd4):

indiehosters/email mail-in-a-box/mailinabox status
[x] DKIM (OpenDKIM) [x] DKIM (OpenDKIM)
[x] DMARC [x] DMARC (postgrey)
[ ] SPF [x] SPF planned, as part of DNS
[ ] DNSSEC [x] DNSSEC planned, as part of DNS
[ ] DANE TLSA [x] DANE TLSA planned, as part of DNS
[ ] SSHFP records [x] SSHFP records planned, as part of DNS

control panel and API:

indiehosters/email mail-in-a-box/mailinabox status
[x] vimbadmin [x] custom coded
[x] Add/Remove mail User [x] Add/Remove mail User
[x] Add/Remove Aliases [x] Add/Remove Aliases
[ ] custom DNS records [x] custom DNS records planned, as part of DNS
[x] multiadmin [ ] mutliadmin

OpenDKIM

Run the add_domain.sh script inside the postix container, and configure your DNS, you should be fine!

Add a mailbox

You can find a script here

Contributing

If you have any issue (something not working, mail marked as spam, missing doc), please do report an issue here! Thanks

This system is used in production at IndieHosters so it is maintained. If you use it, please tell us, and we'll be really happy to update this README!

You can help us by:

  • starring this project
  • sending us a thanks email
  • reporting bugs
  • writing documentation/blog on how you got up and running in 5mins
  • writing more documentation
  • sending us cake :) We loove cake!

TODO

  • documentation for TLS for the web (reverse proxy FTW!)
  • separate processes in postfix (one process/container! damn!)
  • postfix/dovecot - try to sync install instructions with mailinabox

Heavily inspired by mail-in-a-box! Thanks to the amazing work they produced. It is the best up to date how to for email hosting out there :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.