captainVersion: 4 services: $$cap_appname: image: analogic/poste.io:$$cap_POSTE_VERSION hostname: $$cap_POSTE_HOSTNAME environment: TZ: $$cap_POSTE_TZ HTTPS: $$cap_POSTE_HTTPS DISABLE_CLAMAV: $$cap_POSTE_DISABLE_CLAMAV DISABLE_RSPAMD: $$cap_POSTE_DISABLE_RSPAMD DISABLE_ROUNDCUBE: $$cap_POSTE_DISABLE_ROUNDCUBE VIRTUAL_HOST: $$cap_POSTE_HOSTNAME ports: - '25:25' - '110:110' - '143:143' - '465:465' - '587:587' - '993:993' - '995:995' - '4190:4190' volumes: - $$cap_appname:/data caproverOneClickApp: displayName: Poste.io isOfficial: true description: Complete mail server built in one container documentation: https://poste.io/doc instructions: start: |- SMTP + IMAP + POP3 + Antispam + Antivirus + Web Administration + Web Mail on your server in ca. 5 minutes. **Important notes:** - You may need to open the ports `25`, `110`, `143`, `465`, `587`, `993`, `995` and `4190` on your firewall - You will need access to DNS configuration after deployment - It's recommended to use `mail` as the app name end: |- Poste.io has been successfully deployed! Before you can start using it, you need to perform some steps. You only need to do this once. **Please screenshot/copy the following instructions before proceeding:** 1. Go to the **App Configs** of your deployment `$$cap_appname` here in CapRover 2. Insert the following snippet into **Pre-Deploy Script**: `var preDeployFunction = function (captainAppObj, dockerUpdateObject) {var ports = dockerUpdateObject.EndpointSpec.Ports || [];ports.forEach(function (port) {port.PublishMode = "host";});return Promise.resolve(dockerUpdateObject);};` 3. Go to the **HTTP Settings** and **Edit Default Nginx Configurations** 4. Search for **last occurrence** of `location /.well-known/acme-challenge/` and replace `root <%-s.staticWebRoot%>;` with `proxy_pass $upstream;` 5. **Save settings** and wait a minute 6. Access your mail server at `http://$$cap_appname.$$cap_root_domain` 7. Enter `$$cap_POSTE_HOSTNAME` in **Mailserver hostname** 8. Enter an email address for the admin (you can also use `admin@$$cap_POSTE_HOSTNAME`) and create a password 9. Navigate to **System Settings** > **TLS Certificate** and **Issue Free Letsencrypt.org Certificate** 10. Check **Enabled** and **Save Changes** The following steps guide you though the DNS configuration. Please **consult the documentation** (`https://poste.io/doc/configuring-dns`). 1. Enter the admin panel of the server hosting or if you are self-hosting locally make sure you have access to the DNS configuration 2. Create **PTR record** (also known as **Reverse DNS**) pointing to `$$cap_POSTE_HOSTNAME` 3. Create **A** record for `$$cap_POSTE_HOSTNAME` pointing to the IP address of the server 4. Create **MX** record pointing to `$$cap_POSTE_HOSTNAME` 5. Create **TXT** record with value `v=spf1 mx ~all` 6. Create **TXT** record with value `v=DMARC1; p=none; rua=mailto:dmarc-reports@$$cap_POSTE_HOSTNAME ruf=dmarc-reports@$$cap_POSTE_HOSTNAME; sp=none; ri=86400` (you may need to change the mail addresses) 7. Go to your application navigating to `http://$$cap_appname.$$cap_root_domain/admin/domain` 8. Click **Show** on `$$cap_POSTE_HOSTNAME` 9. In the line **DKIM Key** click on **Create New Key** and copy the generated value 10. Go back to the DNS settings 11. Create **TXT** record and insert copied value (starting with `k=rsa...`) 12. Verify the DNS configuration using tools like MXToolbox (`https://mxtoolbox.com`) If all your checks are green you are ready to create mailboxes. Enjoy your self-hosted mail server! variables: - id: $$cap_POSTE_VERSION label: General | Version description: Check out their Docker page for the valid tags https://hub.docker.com/r/analogic/poste.io/tags defaultValue: '2' validRegex: /.{1,}/ - id: $$cap_POSTE_TZ label: General | Timezone description: Timezone for the application, find yours at https://en.wikipedia.org/wiki/List_of_tz_database_time_zones defaultValue: UTC validRegex: /.{1,}/ - id: $$cap_POSTE_DISABLE_CLAMAV label: Features | Disable ClamAV description: Whether to disable ClamAV anti-virus. Useful for low memory usage. Set value `TRUE` to disable. - id: $$cap_POSTE_DISABLE_RSPAMD label: Features | Disable Rspamd description: Whether to disable Rspamd spam filter. Useful for low memory usage. Set value `TRUE` to disable. - id: $$cap_POSTE_DISABLE_ROUNDCUBE label: Features | Disable Roundcube description: Whether to disable Roundcube webmail. Set value `TRUE` to disable. - id: $$cap_POSTE_HOSTNAME label: Networking | Hostname description: Hostname of your mail server. **This is required**. It is usually `mail.mydomain.com`. validRegex: /.{1,}/ - id: $$cap_POSTE_HTTPS label: Networking | Use HTTPS description: >- Whether to redirect to encrypted HTTP. It's recommended to leave it to `OFF` since CapRover acts as reverse proxy and handles HTTPS. If you want to enable it, remove the value and leave it blank and then to change the configuration and ports accordingly. defaultValue: 'OFF'