{"id":30363784,"url":"https://github.com/rorycl/dovecot-config","last_synced_at":"2025-08-19T19:48:56.762Z","repository":{"id":310109779,"uuid":"1038700949","full_name":"rorycl/dovecot-config","owner":"rorycl","description":"dovecot 2.4 config suitable for testing in docker","archived":false,"fork":false,"pushed_at":"2025-08-15T20:01:30.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-15T20:45:32.395Z","etag":null,"topics":["docker","dovecot","dovecot-configuration"],"latest_commit_sha":null,"homepage":"","language":null,"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/rorycl.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"zenodo":null}},"created_at":"2025-08-15T17:11:17.000Z","updated_at":"2025-08-15T20:01:33.000Z","dependencies_parsed_at":"2025-08-15T20:45:34.002Z","dependency_job_id":"355c6e11-90ab-4fcf-9a19-bd899e4261af","html_url":"https://github.com/rorycl/dovecot-config","commit_stats":null,"previous_names":["rorycl/dovecot-config"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/rorycl/dovecot-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rorycl%2Fdovecot-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rorycl%2Fdovecot-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rorycl%2Fdovecot-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rorycl%2Fdovecot-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rorycl","download_url":"https://codeload.github.com/rorycl/dovecot-config/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rorycl%2Fdovecot-config/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271213600,"owners_count":24720074,"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","status":"online","status_checked_at":"2025-08-19T02:00:09.176Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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","dovecot-configuration"],"created_at":"2025-08-19T19:48:54.088Z","updated_at":"2025-08-19T19:48:56.736Z","avatar_url":"https://github.com/rorycl.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# dovecot 2.4 config\n\nMinimal docker setup for testing dovecot 2.4 configurations.\n\n\u003e [!WARNING]\n\u003e The dovecot.conf file provided here is insecure.\n\nContents\n\n* [config](#config)\n* [run](#run)\n* [test](#test)\n* [examples](#examples)\n* [notes](#notes)\n\n## config\n\nGrab the minimal [dovecot.conf](./dovecot.conf) and [users.db](./users.db)\nand put them somewhere, perhaps `/tmp/dovecot`.\n\n## run \n\nAn example docker invocation, with configuration loaded from \n`/tmp/dovecot`, which also holds the `users.db` file.\n\n```\ndocker run -p 1143:143 -p 1993:993 \\\n           -v /tmp/dovecot:/etc/dovecot \\\n              dovecot/dovecot:latest\n```\n\n## test\n\nExample login with no domain, using `auth_default_domain`\n\n```\n$ nc 127.0.0.1 1143\n* OK [CAPABILITY IMAP4rev1 LOGIN-REFERRALS ID ENABLE IDLE SASL-IR\n  LITERAL+ AUTH=PLAIN] Dovecot ready.\na login tom test\na OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT\n  ...trimmed...\n  Logged in\n```\n\nExample login with specified domain:\n\n```\n$ nc 127.0.0.1 1143\n* OK [CAPABILITY IMAP4rev1 LOGIN-REFERRALS ID ENABLE IDLE SASL-IR\n  LITERAL+ AUTH=PLAIN] Dovecot ready.\na login terry@another.com test\na OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT\n  ...trimmed...\n  Logged in\n```\n\nThe dovecot config provided here logs to `/dev/stderr`, and produces\noutput along the lines below. Note the expansion to `tom@example.com`.\n\n```\nAug 15 17:05:53 master: Info: Dovecot v2.4.1 (7d8c0e5759) starting up for imap\nAug 15 17:05:57 auth: Debug: Loading modules from directory: /dovecot/lib/dovecot/modules/auth\n...\nAug 15 17:05:57 auth: Debug: Wrote new auth token secret to /run/dovecot/auth-token-secret.dat\nAug 15 17:05:57 auth: Debug: passwd-file /etc/dovecot/users.db:Read 3 users in 0 secs\n...\nAug 15 17:06:02 auth: Debug: conn unix:login (pid=12,uid=1000) [1]: client in: AUTH\t1\tPLAIN\tprotocol=imap\tfinal-resp-ok\tsession=Cd5NZ2o8ZpysEQAB\tlip=172.17.0.2\trip=172.17.0.1\tlport=143\trport=40038\tresp=\u003chidden\u003e\nAug 15 17:06:02 auth(tom@example.com,172.17.0.1,sasl:plain)\u003cCd5NZ2o8ZpysEQAB\u003e: Debug: passwd-file: Performing passdb lookup\nAug 15 17:06:02 auth(tom@example.com,172.17.0.1,sasl:plain)\u003cCd5NZ2o8ZpysEQAB\u003e: Debug: passwd-file: lookup: user=tom@example.com file=/etc/dovecot/users.db\nAug 15 17:06:02 auth(tom@example.com,172.17.0.1,sasl:plain)\u003cCd5NZ2o8ZpysEQAB\u003e: Debug: passwd-file: Finished passdb lookup\nAug 15 17:06:02 auth(tom@example.com,172.17.0.1,sasl:plain)\u003cCd5NZ2o8ZpysEQAB\u003e: Debug: Auth request finished\nAug 15 17:06:02 auth: Debug: conn unix:login (pid=12,uid=1000) [1]: client passdb out: OK\t1\tuser=tom@example.com\t:=\toriginal_user=tom\nAug 15 17:06:02 auth: Debug: conn unix:/run/dovecot/auth-master (pid=15,uid=1000): Server accepted connection (fd=20)\nAug 15 17:06:02 auth: Debug: master in: REQUEST\t3342336001\t12\t1\tc32446853f20868faf73f76a286beab0\tsession_pid=15\trequest_auth_token\nAug 15 17:06:02 auth(tom@example.com,172.17.0.1,sasl:plain)\u003cCd5NZ2o8ZpysEQAB\u003e: Debug: passwd-file: Performing userdb lookup\nAug 15 17:06:02 auth(tom@example.com,172.17.0.1,sasl:plain)\u003cCd5NZ2o8ZpysEQAB\u003e: Debug: passwd-file: lookup: user=tom@example.com file=/etc/dovecot/users.db\nAug 15 17:06:02 auth(tom@example.com,172.17.0.1,sasl:plain)\u003cCd5NZ2o8ZpysEQAB\u003e: Debug: passwd-file: Finished userdb lookup\nAug 15 17:06:02 auth: Debug: master userdb out: USER\t3342336001\ttom@example.com\tuid=1000\tgid=1000\thome=/srv/mail/tom\tauth_mech=PLAIN\tauth_token=1da9be7cba83819ae2d93a33e448d52ddeec144f\tauth_user=tom\nAug 15 17:06:02 imap-login: Info: Logged in: user=\u003ctom@example.com\u003e, method=PLAIN, rip=172.17.0.1, lip=172.17.0.2, mpid=15, session=\u003cCd5NZ2o8ZpysEQAB\u003e\n```\n\n## examples\n\nOther examples:\n\n* [two-userdbs](./two-userdbs/)  \n  use of two different userdbs, each both for the user and pass\n  databases. This also shows the use of the `userdb_result_failure` and\n  `userdb_result_success` configuration directives.\n* [no-domain](./no-domain/)  \n  use of the same userdb, both for domain-less and \"with\" domain logins.\n\n## notes\n\nThe main configuration reference for Dovecot CE 2.4.x is\n[here](https://doc.dovecot.org/2.4.1/core/settings/variables.html).\n\nHave a look at the [Dovecot testing\nguide](https://doc.dovecot.org/main/core/admin/testing.html).\n\nThe \"Upgrading Dovecot CE from 2.3 to 2.4\" docs are\n[here](https://doc.dovecot.org/main/installation/upgrade/2.3-to-2.4.html)\nand include a link to an example config for 2.4 at\nhttps://github.com/dovecot/tools/blob/main/dovecot-2.4.0-example-config.tar.gz\n\nThe configuration included with the docker image can be read by using\n`docker container export ...` which writes to a tar file.\n\n## licence\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frorycl%2Fdovecot-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frorycl%2Fdovecot-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frorycl%2Fdovecot-config/lists"}