No description
Find a file
2019-12-15 15:39:14 +01:00
.github Remove linux/ppc64le support 2019-12-15 15:39:14 +01:00
.res Initial version based on AnonAddy anonaddy/anonaddy@bd78841 2019-12-15 14:36:08 +01:00
examples Initial version based on AnonAddy anonaddy/anonaddy@bd78841 2019-12-15 14:36:08 +01:00
rootfs Initial version based on AnonAddy anonaddy/anonaddy@bd78841 2019-12-15 14:36:08 +01:00
.dockerignore Initial version based on AnonAddy anonaddy/anonaddy@bd78841 2019-12-15 14:36:08 +01:00
.editorconfig Initial version based on AnonAddy anonaddy/anonaddy@bd78841 2019-12-15 14:36:08 +01:00
.gitattributes Initial version based on AnonAddy anonaddy/anonaddy@bd78841 2019-12-15 14:36:08 +01:00
.gitignore Initial version based on AnonAddy anonaddy/anonaddy@bd78841 2019-12-15 14:36:08 +01:00
CHANGELOG.md Initial version based on AnonAddy anonaddy/anonaddy@bd78841 2019-12-15 14:36:08 +01:00
Dockerfile Fix npm 2019-12-15 15:08:31 +01:00
LICENSE Initial version based on AnonAddy anonaddy/anonaddy@bd78841 2019-12-15 14:36:08 +01:00
README.md Remove linux/ppc64le support 2019-12-15 15:39:14 +01:00

Latest Version Build Status Docker Stars Docker Pulls Code Quality
Become a sponsor Donate Paypal

⚠️ This repository is a draft to make it possible to port AnonAddy to a Docker image. Some features have not yet been tested or are missing. Therefore, this image is not ready for production.

About

🐳 AnonAddy Docker image based on Alpine Linux.
If you are interested, check out my other 🐳 Docker images!

💡 Want to be notified of new releases? Check out 🔔 Diun (Docker Image Update Notifier) project!

Features

  • Run as non-root user
  • Multi-platform image
  • s6-overlay as process supervisor
  • Traefik as reverse proxy and creation/renewal of Let's Encrypt certificates (see this template)

Docker

Multi-platform image

Following platforms for this image are available:

$ docker run --rm mplatform/mquery crazymax/anonaddy:latest
Image: crazymax/anonaddy:latest
 * Manifest List: Yes
 * Supported platforms:
   - linux/amd64
   - linux/arm/v6
   - linux/arm/v7
   - linux/arm64
   - linux/386

Environment variables

General

  • TZ: The timezone assigned to the container (default UTC)
  • PUID: AnonAddy user id (default 1000)
  • PGID: AnonAddy group id (default 1000)
  • MEMORY_LIMIT: PHP memory limit (default 256M)
  • UPLOAD_MAX_SIZE: Upload max size (default 16M)
  • OPCACHE_MEM_SIZE: PHP OpCache memory consumption (default 128)
  • REAL_IP_FROM: Trusted addresses that are known to send correct replacement addresses (default 0.0.0.0/32)
  • REAL_IP_HEADER: Request header field whose value will be used to replace the client address (default X-Forwarded-For)
  • LOG_IP_VAR: Use another variable to retrieve the remote IP address for access log_format on Nginx. (default remote_addr)

App

  • APP_KEY: Application key for encrypter service. You can generate one through php artisan key:generate --show command required
  • APP_DEBUG: Enables or disables debug mode, used to troubleshoot issues (default false)
  • APP_URL: The URL of your AnonAddy installation

AnonAddy

  • ANONADDY_RETURN_PATH: Return-path header for outbound emails
  • ANONADDY_ADMIN_USERNAME: If set this value will be used and allow you to receive forwarded emails at the root domain
  • ANONADDY_ENABLE_REGISTRATION: If set to false this will prevent new users from registering on the site (default false)
  • ANONADDY_DOMAIN: Root domain to receive email from
  • ANONADDY_HOSTNAME: FQDN hostname for your server used to validate records on custom domains that are added by users
  • ANONADDY_DNS_RESOLVER: Custom domains that are added by users to validate records (default 127.0.0.1)
  • ANONADDY_ALL_DOMAINS: Other domains to use
  • ANONADDY_SECRET: Long random string used when hashing data for the anonymous replies required
  • ANONADDY_LIMIT: Number of emails a user can forward and reply per hour (default 200)
  • ANONADDY_BANDWIDTH_LIMIT: Monthly bandwidth limit for users in bytes domains to use (default 104857600)
  • ANONADDY_NEW_ALIAS_LIMIT: Number of new aliases a user can create each hour (default 10)
  • ANONADDY_ADDITIONAL_USERNAME_LIMIT: Number of additional usernames a user can add to their account (default 3)
  • ANONADDY_SIGNING_KEY_FINGERPRINT: GPG key used to sign forwarded emails. Should be the same as your mail from email address

Database

  • DB_HOST: MySQL database hostname / IP address required
  • DB_PORT: MySQL database port (default 3306)
  • DB_DATABASE: MySQL database name (default anonaddy)
  • DB_USERNAME: MySQL user (default anonaddy)
  • DB_PASSWORD: MySQL password
  • DB_TIMEOUT: Time in seconds after which we stop trying to reach the MySQL server (useful for clusters, default 60)

Redis

  • REDIS_HOST: Redis hostname / IP address
  • REDIS_PORT: Redis port (default 6379)
  • REDIS_PASSWORD: Redis password

Mail

  • MAIL_HOST: SMTP hostname / IP address
  • MAIL_PORT: SMTP port (default 25)
  • MAIL_USERNAME: SMTP username
  • MAIL_PASSWORD: SMTP password
  • MAIL_ENCRYPTION: SMTP encryption protocol
  • MAIL_FROM_NAME: From name (default AnonAddy)
  • MAIL_FROM_ADDRESS: Frtom email address

Volumes

  • /data: Contains storage

⚠️ Note that the volume should be owned by the user/group with the specified PUID and PGID. If you don't give the volume correct permissions, the container may not start.

Ports

  • 2500: SMTP port
  • 8000: HTTP port

Usage

Docker Compose

Docker compose is the recommended way to run this image. You can use the following docker compose template, then run the container:

docker-compose up -d
docker-compose logs -f

Upgrade

You can upgrade AnonAddy automatically through the UI, it works well. But I recommend to recreate the container whenever I push an update:

docker-compose pull
docker-compose up -d

Notes

First launch

On first launch you have to create an admin user with the following command:

docker-compose exec --user anonaddy anonaddy php artisan db:seed

Then try to connect to your AnonAddy instance with anonaddy/anonaddy credentials.

How can I help ?

All kinds of contributions are welcome 🙌! The most basic way to show your support is to star 🌟 the project, or to raise issues 💬 You can also support this project by becoming a sponsor on GitHub 👏 or by making a Paypal donation to ensure this journey continues indefinitely! 🚀

Thanks again for your support, it is much appreciated! 🙏

License

MIT. See LICENSE for more details.