| .github | ||
| .res | ||
| examples | ||
| rootfs | ||
| .dockerignore | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| CHANGELOG.md | ||
| Dockerfile | ||
| LICENSE | ||
| README.md | ||
⚠️ 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 (defaultUTC)PUID: AnonAddy user id (default1000)PGID: AnonAddy group id (default1000)MEMORY_LIMIT: PHP memory limit (default256M)UPLOAD_MAX_SIZE: Upload max size (default16M)OPCACHE_MEM_SIZE: PHP OpCache memory consumption (default128)REAL_IP_FROM: Trusted addresses that are known to send correct replacement addresses (default0.0.0.0/32)REAL_IP_HEADER: Request header field whose value will be used to replace the client address (defaultX-Forwarded-For)LOG_IP_VAR: Use another variable to retrieve the remote IP address for access log_format on Nginx. (defaultremote_addr)
App
APP_KEY: Application key for encrypter service. You can generate one throughphp artisan key:generate --showcommand requiredAPP_DEBUG: Enables or disables debug mode, used to troubleshoot issues (defaultfalse)APP_URL: The URL of your AnonAddy installation
AnonAddy
ANONADDY_RETURN_PATH: Return-path header for outbound emailsANONADDY_ADMIN_USERNAME: If set this value will be used and allow you to receive forwarded emails at the root domainANONADDY_ENABLE_REGISTRATION: If set to false this will prevent new users from registering on the site (defaultfalse)ANONADDY_DOMAIN: Root domain to receive email fromANONADDY_HOSTNAME: FQDN hostname for your server used to validate records on custom domains that are added by usersANONADDY_DNS_RESOLVER: Custom domains that are added by users to validate records (default127.0.0.1)ANONADDY_ALL_DOMAINS: Other domains to useANONADDY_SECRET: Long random string used when hashing data for the anonymous replies requiredANONADDY_LIMIT: Number of emails a user can forward and reply per hour (default200)ANONADDY_BANDWIDTH_LIMIT: Monthly bandwidth limit for users in bytes domains to use (default104857600)ANONADDY_NEW_ALIAS_LIMIT: Number of new aliases a user can create each hour (default10)ANONADDY_ADDITIONAL_USERNAME_LIMIT: Number of additional usernames a user can add to their account (default3)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 requiredDB_PORT: MySQL database port (default3306)DB_DATABASE: MySQL database name (defaultanonaddy)DB_USERNAME: MySQL user (defaultanonaddy)DB_PASSWORD: MySQL passwordDB_TIMEOUT: Time in seconds after which we stop trying to reach the MySQL server (useful for clusters, default60)
Redis
REDIS_HOST: Redis hostname / IP addressREDIS_PORT: Redis port (default6379)REDIS_PASSWORD: Redis password
MAIL_HOST: SMTP hostname / IP addressMAIL_PORT: SMTP port (default25)MAIL_USERNAME: SMTP usernameMAIL_PASSWORD: SMTP passwordMAIL_ENCRYPTION: SMTP encryption protocolMAIL_FROM_NAME: From name (defaultAnonAddy)MAIL_FROM_ADDRESS: Frtom email address
Volumes
/data: Contains storage
⚠️ Note that the volume should be owned by the user/group with the specified
PUIDandPGID. If you don't give the volume correct permissions, the container may not start.
Ports
2500: SMTP port8000: 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.
