{"id":48269220,"url":"https://github.com/semhoun/sqmail_all-in-one","last_synced_at":"2026-04-04T22:05:26.145Z","repository":{"id":54489588,"uuid":"466822436","full_name":"semhoun/sqmail_all-in-one","owner":"semhoun","description":"All-in-one S/QMail server with: s/qmail, dkim, spam filter, imap/pop3, web admin","archived":false,"fork":false,"pushed_at":"2026-01-29T17:55:00.000Z","size":2299,"stargazers_count":7,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-01-30T04:31:14.674Z","etag":null,"topics":["docker","dovecot","qmail","smtp"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/semhoun.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-03-06T18:30:52.000Z","updated_at":"2026-01-29T17:55:03.000Z","dependencies_parsed_at":"2023-02-13T03:01:42.814Z","dependency_job_id":"d6cdf81a-8b2c-42b8-8d5a-042a9669a6bd","html_url":"https://github.com/semhoun/sqmail_all-in-one","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/semhoun/sqmail_all-in-one","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semhoun%2Fsqmail_all-in-one","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semhoun%2Fsqmail_all-in-one/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semhoun%2Fsqmail_all-in-one/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semhoun%2Fsqmail_all-in-one/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/semhoun","download_url":"https://codeload.github.com/semhoun/sqmail_all-in-one/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semhoun%2Fsqmail_all-in-one/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31416462,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T20:09:54.854Z","status":"ssl_error","status_checked_at":"2026-04-04T20:09:44.350Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","dovecot","qmail","smtp"],"created_at":"2026-04-04T22:05:24.401Z","updated_at":"2026-04-04T22:05:26.131Z","avatar_url":"https://github.com/semhoun.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SQMail All-In-One\n\n![License](https://img.shields.io/github/license/semhoun/sqmail_all-in-one) ![OpenIssues](https://img.shields.io/github/issues-raw/semhoun/sqmail_all-in-one) ![Version](https://img.shields.io/github/v/tag/semhoun/sqmail_all-in-one) ![Docker Size](https://img.shields.io/docker/image-size/semhoun/sqmail_all-in-one) ![Docker Pull](https://img.shields.io/docker/pulls/semhoun/sqmail_all-in-one) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/semhoun/sqmail_all-in-one)\n\n\n## Introduction\n\nSQMail All-In-One is a comprehensive, Docker-based mail server solution that integrates the following components:\n\n- **S/QMail**: A secure and efficient mail transfer agent.\n- **Spam Filter**: Integrated SpamAssassin for filtering unwanted emails.\n- **Dovecot**: IMAP and POP3 server for email retrieval.\n- **Web Admin**: A web-based interface for managing the mail server.\n- **Roundcube**: A webmail client for accessing emails via a browser.\n- **Fetchmail**: A utility for retrieving emails from remote servers.\n\n## Usage\n\n### Docker\n\nTo run SQMail All-In-One using Docker, use the following command:\nRefer to the [Ports](#ports) and [Volumes](#volumes) sections for details on the required configurations.\n\n```shell\ndocker run \\\n  --name sqmail-aio \\\n  --publish 80:80 \\\n  --publish 88:88 \\\n  --publish 25:25 \\\n  --publish 465:465 \\\n  --publish 587:587 \\\n  --publish 110:110 \\\n  --publish 995:995 \\\n  --publish 143:143 \\\n  --publish 993:993 \\\n  --volume /opt/mail_data/qcontrol:/var/qmail/control \\\n  --volume /opt/mail_data/ssl:/ssl \\\n  --volume /opt/mail_data/domains:/var/vpopmail/domains \\\n  --volume /opt/mail_data/vpopmail_etc:/var/vpopmail/etc \\\n  --volume /opt/mail_data/log:/log \\\n  --volume /opt/mail_data/spamassassin:/var/spamassassin \\\n  --volume /opt/mail_data/qusers:/var/qmail/users \\\n  --volume /opt/mail_data/queue:/var/qmail/queue \\\n  --volume /opt/mail_data/qalias:/var/qmail/alias \\\n  --volume /opt/mail_data/domainkeys:/var/qmail/ssl/domainkeys\n  semhoun/sqmail_all-in-one\n```\n\n### Docker Compose\n\nTo run SQMail All-In-One using Docker Compose, use the following configuration:\nRefer to the [Ports](#ports) and [Volumes](#volumes) sections for details on the required configurations.\n\n```yaml\nversion: '3.8'\n\nservices:\n  sqmail-aio:\n    image: semhoun/sqmail_all-in-one\n    volumes:\n      - ./data/qcontrol:/var/qmail/control\n      - ./data/ssl:/ssl\n      - ./data/domains:/var/vpopmail/domains\n      - ./data/vpopmail_etc:/var/vpopmail/etc\n      - ./data/log:/log\n      - ./data/spamassassin:/var/spamassassin\n      - ./data/qusers:/var/qmail/users\n      - ./data/queue:/var/qmail/queue\n      - ./data/qalias:/var/qmail/alias\n      - ./data/domainkeys:/var/qmail/ssl/domainkeys\n    ports:\n      - 80:80\n      - 88:88\n      - 443:443\n      - 25:25\n      - 465:465\n      - 587:587\n      - 110:110\n      - 995:995\n      - 143:143\n      - 993:993\n```\n\n## Initialization\n\n### Docker\n\nTo initialize the environment and certificates, run the following commands:\nRefer to the [Volumes](#volumes) section for details on the required configurations.\n\n```shell\ndocker run \\\n  --rm -it \\\n  --env SKIP_INIT_ENV=1 \\\n  --volume /opt/mail_data/qcontrol:/var/qmail/control \\\n  --volume /opt/mail_data/ssl:/ssl \\\n  --volume /opt/mail_data/domains:/var/vpopmail/domains \\\n  --volume /opt/mail_data/vpopmail_etc:/var/vpopmail/etc \\\n  --volume /opt/mail_data/spamassassin:/var/spamassassin \\\n  --volume /opt/mail_data/qusers:/var/qmail/users \\\n  --volume /opt/mail_data/queue:/var/qmail/queue \\\n  --volume /opt/mail_data/qalias:/var/qmail/alias \\\n  --volume /opt/mail_data/domainkeys:/var/qmail/ssl/domainkeys\n  semhoun/sqmail_all-in-one /opt/bin/init.sh\n```\n\n```shell\ndocker run \\\n  --rm -it \\\n  --env SKIP_INIT_ENV=1 \\\n  --volume ./mail_data/ssl:/ssl \\\n  --publish 80:80 \\\n  semhoun/sqmail_all-in-one /opt/bin/init-certs.sh\n```\n\n### Docker Compose\n\nTo initialize the environment and certificates using Docker Compose, run the following commands:\nRefer to the [Volumes](#volumes) section for details on the required configurations.\n\n```shell\ndocker compose run -e SKIP_INIT_ENV=1 --rm sqmail-aio /opt/bin/init.sh\ndocker compose run -e SKIP_INIT_ENV=1 --rm sqmail-aio /opt/bin/init-certs.sh\n```\n\n## Configuration\n\n### Environment Variables\n\n| Variable          | Description                                                                                     |\n|-------------------|-------------------------------------------------------------------------------------------------|\n| `SKIP_INIT_ENV`   | Skip all initialization of docker_entrypoint (e.g., directory, spamassassin, clamav).          |\n| `DEV_MODE`        | Remove some ClamAV databases for development purposes.                                         |\n| `DEFAULT_LANGUAGE`| Set the default language for the web interface. Valid values: `en`, `fr`, `it`. (Required for first launch) |\n\n### Volumes\n\n| Host Path                     | Container Path                     | Description                                      |\n|-------------------------------|------------------------------------|--------------------------------------------------|\n| `/ssl`                        | `/ssl`                          | SSL Certificates                                  |\n| `/var/qmail/control`          | `/var/qmail/control`            | QMail configuration files                        |\n| `/var/vpopmail/domains`       | `/var/vpopmail/domains`         | Domains and mail data                            |\n| `/var/vpopmail/etc`           | `/var/vpopmail/etc`             | vpopmail configuration files                     |\n| `/log`                        | `/log`                          | Log directory                                     |\n| `/var/spamassassin`           | `/var/spamassassin`             | SpamAssassin data and configuration              |\n| `/var/qmail/tmp`              | `/var/qmail/tmp`                | QMail temporary directory (best if tmpfs)        |\n| `/var/qmail/users`            | `/var/qmail/users`              | QMail user files                                  |\n| `/var/qmail/queue`            | `/var/qmail/queue`              | QMail queue                                       |\n| `/var/qmail/alias`            | `/var/qmail/alias`              | QMail aliases for local users                    |\n| `/var/qmail/ssl/domainkeys`   | `/var/qmail/ssl/domainkeys`     | Domain DKIM private and public keys              |\n\n## Ports\n\n| Port  | Service          | Description                                      |\n|-------|------------------|--------------------------------------------------|\n| `80`  | HTTP             | Webmail (Roundcube) and SSL ACME certificates    |\n| `88`  | HTTP Admin       | Admin interface (HTTP only)                      |\n| `443` | HTTPS            | SSL Webmail (Roundcube)                          |\n| `25`  | SMTP             | Mail transfer                                    |\n| `465` | SMTPS            | SMTP over SSL                                    |\n| `587` | Submission       | SMTP for email clients                           |\n| `110` | POP3             | Mail retrieval                                   |\n| `995` | POP3S            | POP3 over SSL                                    |\n| `143` | IMAP             | Mail retrieval                                   |\n| `993` | IMAPS            | IMAP over SSL                                    |\n\n## Useful File Locations\n* `/ssl`/acme - Letsencrypt SSL data (remove to renew certs installation)\n* `/ssl` - SSL Certificates\n  * `/ssl/http.key` - Webmail Key\n  * `/ssl/http.crt` - Webmail Certificate\n  * `/ssl/imap.key` - IMAP Key\n  * `/ssl/imap.crt` - IMAP Certificate\n  * `/ssl/pop.key` - POP3 Key\n  * `/ssl/pop.crt` - POP3 Certificate\n  * `/ssl/smtp.key` - SMTP Key\n  * `/ssl/smtp.crt` - SMTP Certificate\n* `/opt/bin/init.sh` - Initialisation script\n* `/opt/bin/init_certs.sh` - Certs initialisation script\n* `/opt/bin/init_dmarc.sh` - Create local dmarc user, and init web interface\n  * usage `/opt/bin/init_dmarc.sh \u003cemail\u003e \u003cpassword\u003e`\n* `/opt/bin/lighttpd_admin.sh` - Add an user allowed to acces the admin web interface\n  * usage `/opt/bin/lighttpd_admin.sh \u003cuser\u003e \u003cpassword\u003e`\n  * Administator user for `vqadmin` must be *admin*\n* `/opt/bin/mkdkimkey.sh` - DKIM key creation\n  * usage `/opt/bin/mkdkimkey.sh [-p] \u003cdomain\u003e`\n  * Print domainkey with -p, without create domain keys\n  * You can split the result here: https://www.mailhardener.com/tools/dns-record-splitter\n*  `/var/qmail/control/dkimdomains` - DKIM domains\n  * Sending domains other than the default domain and with they own key must be added in this file\n  * For more information see https://www.fehcom.de/sqmail/man/qmail-dksign.html\n* `/opt/bin/tester.sh` - Check is IMAP POP SMTP Clamav and SpamAssasin was working\n  * usage `tester.sh \u003ctest mail recipient\u003e -doit`\n\n## Built With\n\n| Component               | Version | Description                                                                                     |\n|------------------------|---------|-------------------------------------------------------------------------------------------------|\n| [ClamAV](https://www.clamav.net/)               | 1.5.1   | Antivirus engine for detecting threats.                                                        |\n| [Dovecot](https://www.dovecot.org/)             | 2.4.1-4 | IMAP and POP3 server.                                                                          |\n| ezmlm-idx               | 7.2.2   | Mailing list management tools.                                                                 |\n| [fehQlibs](https://www.fehcom.de/ipnet/qlibs.html) | 29      | Libraries for QMail.                                                                           |\n| [fcron](https://github.com/yo8192/fcron)         | 3.4.0   | Task scheduler.                                                                                |\n| [qmailadmin](https://github.com/sagredo-dev/qmailadmin) | 1.2.27  | Web interface for managing QMail.                                                              |\n| [qmail-autoresponder](https://untroubled.org/qmail-autoresponder) | 2.0     | Autoresponder for QMail.                                                                       |\n| [Roundcube](https://roundcube.net/)             | 1.6.12  | Webmail client.                                                                                |\n| [SpamAssassin](https://spamassassin.apache.org/) | 4.0.2   | Spam filter for email.                                                                         |\n| [s6](https://github.com/skarnet/s6)             | 2.14.0.0| Process supervision suite.                                                                     |\n| [SQMail](https://www.fehcom.de/)               | 4.3.25  | Secure and efficient mail transfer agent.                                                      |\n| [VPopMail](https://github.com/semhoun/vpopmail) | 5.6.11  | Virtual domain management for QMail.                                                          |\n| [vqadmin](https://github.com/sagredo-dev/vqadmin) | 2.4.4   | Web-based administration tool for VPopMail.                                                    |\n| [acme.sh](https://github.com/acmesh-official/acme.sh) | 3.1.2   | ACME protocol client for SSL certificates.                                                     |\n| fetchmail                | -       | Utility for retrieving emails from remote servers.                                             |\n| [DmarcSrg](https://github.com/liuch/dmarc-srg)   | 2.3     | DMARC report generation tool.                                                                  |\n\n## Testing\n\n### Manual Testing\n\nYou can test the SMTP functionality using [Swaks](https://github.com/jetmore/swaks), a feature-rich SMTP test tool. Here’s an example command to send a test email:\n\n```shell\nswaks --to \u003crecipient email\u003e --from \u003csender email\u003e --server \u003cqmail-aio-hostname\u003e\n```\n\n### Automated Testing\n\nYou can verify the IMAP, POP3, SMTP, ClamAV, and SpamAssassin configurations using the `tester.sh` script. A valid mail account must be used (a temporary account is created for testing). Ensure Docker is running during the tests.\n\n#### Docker\n\n```shell\ndocker exec -it sqmail-aio /opt/bin/tester.sh \u003crecipient_email\u003e -doit\n```\n\n#### Docker Compose\n\n```shell\ndocker compose exec sqmail-aio /opt/bin/tester.sh \u003crecipient_email\u003e -doit\n```\n\n## Upgrade\n\n### 1.6 to 1.7\n\nWhen upgrading from version 1.6 to 1.7, you must add the `DEFAULT_LANGUAGE` environment variable at the first launch (and only at the first launch). Valid values are:\n- `en` (English)\n- `fr` (French)\n- `it` (Italian)\n\nExample:\n```shell\ndocker run -e DEFAULT_LANGUAGE=en ...\n```\n\n## Troubleshooting\n\nHere are some common issues and their solutions:\n\n### 1. Port Conflicts\n- **Issue**: Ports `80`, `443`, `25`, `465`, `587`, `110`, `995`, `143`, or `993` are already in use.\n- **Solution**: Stop the service using the conflicting port or change the published ports in your Docker command. Refer to the [Ports](#ports) section for details.\n\n### 2. SSL Certificate Issues\n- **Issue**: SSL certificates are not being generated or renewed.\n- **Solution**: Ensure port `80` is accessible and remove the `/ssl/acme` directory to force certificate regeneration.\n\n### 3. Permission Issues\n- **Issue**: Permission denied errors when accessing volumes.\n- **Solution**: Ensure the host directories mounted as volumes have the correct permissions. Use `chmod` or `chown` to adjust permissions as needed. Refer to the [Volumes](#volumes) section for details.\n\n### 4. Initialization Failures\n- **Issue**: The initialization script (`init.sh`) fails to run.\n- **Solution**: Ensure all required volumes are mounted and the `SKIP_INIT_ENV` variable is set correctly. Refer to the [Volumes](#volumes) section for details.\n\n### 5. Mail Delivery Issues\n- **Issue**: Emails are not being delivered.\n- **Solution**: Check the logs in the `/log` directory for errors. Ensure DNS records (SPF, DKIM, DMARC) are correctly configured for your domain.\n\n## Contributing\n\nContributions are welcome! To contribute to SQMail All-In-One:\n\n1. Fork the repository on [GitHub](https://github.com/semhoun/sqmail_all-in-one).\n2. Create a new branch for your feature or bugfix.\n3. Commit your changes and push them to your fork.\n4. Open a pull request with a clear description of your changes.\n\nFor major changes, please open an issue first to discuss your ideas.\n## Find Me\n\n* [GitHub](https://github.com/semhoun/)\n* [DockerHub](https://hub.docker.com/u/semhoun)\n\n## Authors\n\n* **Nathanaël Semhoun** - *Docker creation* - [semhoun](https://github.com/semhoun/)\n\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.\n\n## Acknowledgments\nThis docker use sources and patches from\n\n- http://cr.yp.to\n- https://www.fehcom.de/sqmail/sqmail.html\n- https://notes.sagredo.eu\n- https://github.com/brunonymous/vpopmail\n- http://skarnet.org/software/s6/index.html\n- http://fcron.free.fr\n- http://untroubled.org/qmail-autoresponder/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemhoun%2Fsqmail_all-in-one","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsemhoun%2Fsqmail_all-in-one","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemhoun%2Fsqmail_all-in-one/lists"}