{"id":16164000,"url":"https://github.com/iredmail/dockerized","last_synced_at":"2025-07-16T13:31:16.846Z","repository":{"id":38475255,"uuid":"220764916","full_name":"iredmail/dockerized","owner":"iredmail","description":"Official dockerized iRedMail.","archived":false,"fork":false,"pushed_at":"2023-12-23T21:12:37.000Z","size":505,"stargazers_count":281,"open_issues_count":32,"forks_count":71,"subscribers_count":21,"default_branch":"master","last_synced_at":"2024-11-16T18:27:46.588Z","etag":null,"topics":["docker","iredmail"],"latest_commit_sha":null,"homepage":"https://www.iredmail.org/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iredmail.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-10T08:57:16.000Z","updated_at":"2024-11-13T22:58:18.000Z","dependencies_parsed_at":"2024-11-09T18:02:31.204Z","dependency_job_id":"3010c7f3-4930-417c-af39-aa7636d012f6","html_url":"https://github.com/iredmail/dockerized","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iredmail%2Fdockerized","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iredmail%2Fdockerized/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iredmail%2Fdockerized/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iredmail%2Fdockerized/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iredmail","download_url":"https://codeload.github.com/iredmail/dockerized/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226130375,"owners_count":17578099,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","iredmail"],"created_at":"2024-10-10T02:44:57.958Z","updated_at":"2024-11-24T06:07:47.798Z","avatar_url":"https://github.com/iredmail.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"__WARNING__: THIS IS A BETA EDITION AND NOT ALWAYS STABLE, DO NOT TRY IT IN PRODUCTION (YET).\n\n- Source code is hosted on [GitHub](https://github.com/iredmail/dockerized).\n  Bug report, feedback, patches are always welcome.\n- Base image is [Ubuntu 22.04 (jammy)](https://hub.docker.com/_/ubuntu).\n- Dockerized iRedMail follows the [Best Practice of iRedMail Easy platform](https://docs.iredmail.org/iredmail-easy.best.practice.html).\n- 2 tags are available:\n  - `iredmail/mariadb:stable`: Stable version.\n  - `iredmail/mariadb:nightly`: Triggered by __EACH__ GitHub commit.\n\n# Quick start\n\nCreate a docker environment file used to store custom settings:\n\n```\nmkdir /iredmail         # Create a new directory or use any directory\n                        # you prefer. `/iredmail/` is just an example\ncd /iredmail\ntouch iredmail-docker.conf\n\necho HOSTNAME=mail.mydomain.com \u003e\u003e iredmail-docker.conf\necho FIRST_MAIL_DOMAIN=mydomain.com \u003e\u003e iredmail-docker.conf\necho FIRST_MAIL_DOMAIN_ADMIN_PASSWORD=my-secret-password \u003e\u003e iredmail-docker.conf\necho MLMMJADMIN_API_TOKEN=$(openssl rand -base64 32) \u003e\u003e iredmail-docker.conf\necho ROUNDCUBE_DES_KEY=$(openssl rand -base64 24) \u003e\u003e iredmail-docker.conf\n```\n\nCreate required directories to store application data:\n\n```\ncd /iredmail\nmkdir -p data/{backup-mysql,clamav,custom,imapsieve_copy,mailboxes,mlmmj,mlmmj-archive,mysql,sa_rules,ssl,postfix_queue}\n```\n\nLaunch the container:\n\n```\ndocker run \\\n    --rm \\\n    --name iredmail \\\n    --env-file iredmail-docker.conf \\\n    --hostname mail.mydomain.com \\\n    -p 80:80 \\\n    -p 443:443 \\\n    -p 110:110 \\\n    -p 995:995 \\\n    -p 143:143 \\\n    -p 993:993 \\\n    -p 25:25 \\\n    -p 465:465 \\\n    -p 587:587 \\\n    -v /iredmail/data/backup-mysql:/var/vmail/backup/mysql \\\n    -v /iredmail/data/mailboxes:/var/vmail/vmail1 \\\n    -v /iredmail/data/mlmmj:/var/vmail/mlmmj \\\n    -v /iredmail/data/mlmmj-archive:/var/vmail/mlmmj-archive \\\n    -v /iredmail/data/imapsieve_copy:/var/vmail/imapsieve_copy \\\n    -v /iredmail/data/custom:/opt/iredmail/custom \\\n    -v /iredmail/data/ssl:/opt/iredmail/ssl \\\n    -v /iredmail/data/mysql:/var/lib/mysql \\\n    -v /iredmail/data/clamav:/var/lib/clamav \\\n    -v /iredmail/data/sa_rules:/var/lib/spamassassin \\\n    -v /iredmail/data/postfix_queue:/var/spool/postfix \\\n    iredmail/mariadb:stable\n```\n\nNotes:\n\n- On first run, it will generate a self-signed ssl cert, this may take a long\ntime, please be patient.\n- Each time you run the container, few tasks will be ran:\n    - Update SpamAssassin rules.\n    - Update ClamAV virus signature database.\n- `FIRST_MAIL_DOMAIN_ADMIN_PASSWORD` is only set/reset on first run, not each run.\n- All SQL passwords are randomly set/reset by default each time you launch or\n  relaunch the container. If you don't like this, please set fixed passwords\n  in `iredmail-docker.conf`, e.g. `MYSQL_ROOT_PASSWORD=\u003cyour-password\u003e`.\n- Do not forget to [setup DNS records](https://docs.iredmail.org/setup.dns.html)\n  for your server hostname and email domain names.\n- If you're running Docker on Windows and macOS, container will fail to launch\n  and you must switch to docker volumes as described below.\n\nIf you're running Docker on Windows and macOS, or you just prefer storing\npersistent data in Docker volumes, please create required volumes:\n\n```\ndocker volume create iredmail_backup           # Backup copies\ndocker volume create iredmail_mailboxes        # All users' mailboxes\ndocker volume create iredmail_mlmmj            # mailing list data\ndocker volume create iredmail_mlmmj_archive    # mailing list archive\ndocker volume create iredmail_imapsieve_copy   # Used by Dovecot plugin 'imapsieve'\ndocker volume create iredmail_custom           # custom config files\ndocker volume create iredmail_ssl              # SSL cert/key files\ndocker volume create iredmail_mysql            # MySQL databases\ndocker volume create iredmail_clamav           # ClamAV database\ndocker volume create iredmail_sa_rules         # SpamAssassin rules\ndocker volume create iredmail_postfix_queue    # Postfix queues\n```\n\nThen launch the container with volumes:\n\n```\ndocker run \\\n    --rm \\\n    --name iredmail \\\n    --env-file iredmail-docker.conf \\\n    --hostname mail.mydomain.com \\\n    -p 80:80 \\\n    -p 443:443 \\\n    -p 110:110 \\\n    -p 995:995 \\\n    -p 143:143 \\\n    -p 993:993 \\\n    -p 25:25 \\\n    -p 465:465 \\\n    -p 587:587 \\\n    -v iredmail_backup-mysql:/var/vmail/backup/mysql \\\n    -v iredmail_mailboxes:/var/vmail/vmail1 \\\n    -v iredmail_mlmmj:/var/vmail/mlmmj \\\n    -v iredmail_mlmmj_archive:/var/vmail/mlmmj-archive \\\n    -v iredmail_imapsieve_copy:/var/vmail/imapsieve_copy \\\n    -v iredmail_custom:/opt/iredmail/custom \\\n    -v iredmail_ssl:/opt/iredmail/ssl \\\n    -v iredmail_mysql:/var/lib/mysql \\\n    -v iredmail_clamav:/var/lib/clamav \\\n    -v iredmail_sa_rules:/var/lib/spamassassin \\\n    -v iredmail_postfix_queue:/var/spool/postfix \\\n    iredmail/mariadb:stable\n```\n\n# Overview\n\nOnly one config file `iredmail-docker.conf` on Docker host.\n\nThis file is optional if you prefer overwriting parameters with the `-e`\nargument while launching container. For example:\n\n```\ndocker run -e HOSTNAME=mail.mydomain.com -e FIRST_MAIL_DOMAIN=mydomain.com ...\n```\n\nWe recommend storing them in an env file (`iredmail-docker.conf` in our\nexample) to save some typing each time you launch the container.\n\n# Required parameters\n\nThere're few __REQUIRED__ parameters you __MUST__ set in `iredmail-docker.conf`:\n\n```\n# Server hostname. Must be a FQDN. For example, mail.mydomain.com\nHOSTNAME=\n\n# First mail domain name. For example, mydomain.com.\nFIRST_MAIL_DOMAIN=\n\n# (Plain) password of mail user `postmaster@\u003cFIRST_MAIL_DOMAIN\u003e`.\nFIRST_MAIL_DOMAIN_ADMIN_PASSWORD=\n\n# A secret token used for accessing mlmmjadmin API.\nMLMMJADMIN_API_TOKEN=\n\n# The secret string used to encrypt/decrypt Roundcube session data.\n# Required if you need to run Roundcube webmail.\n# You can generate random string with command `openssl rand -base64 24` as the\n# des key.\n# Every time this key changed, all Roundcube session data becomes invalid and\n# users will be forced to re-login.\nROUNDCUBE_DES_KEY=\n```\n\nNotes:\n\n- `iredmail-docker.conf` will be read by Docker as an environment file,\n  any single quote or double quote will be treated as part of the value.\n  __Do not use any whitespace, tab in value, and no single or double quotes.__\n- It will be imported as bash shell script too.\n\nThere're many OPTIONAL settings defined in file\n`/docker/entrypoints/settings.conf` inside docker container,\nyou'd like to change any of them, please write the same parameter name with\nyour custom value in `iredmail-docker.conf` to override it.\n\n# Optional parameters\n\n```\n# Define your custom https port if you don't want to the default one (443).\nPORT_HTTPS=4443\n```\n\n# Hardware requirements\n\n- At least 4GB RAM is required for a low traffic production mail server.\n\n# Installed softwares\n\n- Postfix: SMTP server.\n- Dovecot: POP3/IMAP/LMTP/Sieve server, also offers SASL AUTH service for Postfix.\n- mlmmj: mailing list manager.\n- mlmmjadmin: RESTful API server used to manage (mlmmj) mailing lists.\n- Amavisd-new + ClamAV + SpamAssassin: anti-spam and anti-virus, DKIM signing and verification, etc.\n- iRedAPD: Postfix policy server. Developed by iRedMail team.\n- Fail2ban: scans log files and bans bad clients.\n- Roundcube: webmail.\n- iRedAdmin: web-based admin panel, open source edition.\n\nYou may want to check [this tutorial](https://docs.iredmail.org/network.ports.html)\nto figure out the mapping of softwares and network ports.\n\n# Exposed network ports\n\n- 80: HTTP\n- 443: HTTPS\n- 25: SMTP\n- 465: SMTPS (SMTP over SSL)\n- 587: SUBMISSION (SMTP over TLS)\n- 143: IMAP over TLS\n- 993: IMAP over SSL\n- 110: POP3 over TLS\n- 995: POP3 over SSL\n- 4190: Managesieve service\n\n# Links\n\n- If you're trying to deploy this docker image with Ansible, user @ricristian\n  already have some code for your reference: \u003chttps://github.com/ricristian/ansible-dockerized-iredmail\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Firedmail%2Fdockerized","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Firedmail%2Fdockerized","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Firedmail%2Fdockerized/lists"}