Repository navigation
Quick Start
Filip Chochół edited this page Jun 11, 2026
·
1 revision
This page is the shortest path from clone to working deployment.
You should already have:
- a working mail server,
- a public HTTPS reverse proxy,
- DNS control for your mail domain,
- IMAP and SMTP hostnames you want clients to use.
Copy .env.example to .env and fill in at least:
PUBLIC_BASE_URLALLOWED_DOMAINSMAIL_DISPLAY_NAMEMAIL_DISPLAY_SHORT_NAMEIMAP_HOSTIMAP_PORTIMAP_SOCKET_TYPESMTP_HOSTSMTP_PORTSMTP_SOCKET_TYPEUSERNAME_FORMATTRUST_PROXY_HEADERSTRUSTED_PROXY_IPS
For GHCR images:
cp .env.example .env
docker compose -f docker-compose.ghcr.yml up -dThat compose file reads the values from your .env, so you do not need to edit docker-compose.ghcr.yml just to replace the example domains.
For a local build:
cp .env.example .env
docker compose up -d --buildRoute these paths through your reverse proxy:
/autodiscover/autodiscover.xml/mail/config-v1.1.xml/.well-known/autoconfig/mail/config-v1.1.xml/mail/ios.mobileconfig/.well-known/apple-mail.mobileconfig
Typical setup:
autodiscover.example.com CNAME proxy.example.com
autoconfig.example.com CNAME proxy.example.com
mail.example.com A/CNAME <mail server>
Thunderbird:
curl "https://autoconfig.example.com/mail/config-v1.1.xml?emailaddress=user@example.com"Outlook:
curl -X POST "https://autodiscover.example.com/autodiscover/autodiscover.xml" \
-H "Content-Type: text/xml" \
--data '<?xml version="1.0" encoding="utf-8"?><Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/requestschema/2006"><Request><EMailAddress>user@example.com</EMailAddress><AcceptableResponseSchema>http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a</AcceptableResponseSchema></Request></Autodiscover>'If both return a valid response, you can move on to end-user testing.