Deploy and Host BillionMail on Sealos
BillionMail is an open-source mail server, newsletter, and email marketing platform. This template deploys the BillionMail web console, mail services, PostgreSQL, Redis, and persistent storage on Sealos Cloud.

About Hosting BillionMail
BillionMail provides a self-hosted control plane for domains, mailboxes, campaign sending, newsletter operations, and mail service management. The Sealos template runs the official BillionMail service set with a public HTTPS web console and internal mail service coordination.
The deployment includes the BillionMail core web/API service, Postfix for SMTP, Dovecot for IMAP/POP3 mailbox access, Rspamd for anti-spam processing, and Roundcube webmail under /roundcube. Sealos also provisions KubeBlocks PostgreSQL, KubeBlocks Redis, persistent storage, service discovery, ingress, and TLS for the web console.
Common Use Cases
- Self-hosted mail operations: Manage domains, mailboxes, and server-side mail settings from a web console.
- Newsletter publishing: Run newsletter lists and campaign sending from your own infrastructure.
- Email marketing workflows: Operate outbound campaigns while keeping data and configuration under your control.
- Team mailbox administration: Create mailboxes, manage credentials, and provide webmail access with Roundcube.
- Deliverability testing: Tune DNS, sending domains, and mail routing for controlled environments.
Dependencies for BillionMail Hosting
The Sealos template includes all required runtime dependencies: BillionMail Core, Postfix, Dovecot, Rspamd, Roundcube, PostgreSQL 16.4, Redis 7.2, and a persistent data volume.
Deployment Dependencies
Implementation Details
Architecture Components:
This template deploys the following services:
- BillionMail Core: Main web console and API service exposed through the Sealos App URL.
- Postfix: SMTP, SMTPS, and Submission service for mail sending.
- Dovecot: IMAP, IMAPS, POP3, and POP3S service for mailbox access.
- Rspamd: Anti-spam and mail filtering service.
- Roundcube: Webmail interface served at
/roundcube.
- PostgreSQL: KubeBlocks PostgreSQL 16.4 cluster for BillionMail and webmail data.
- Redis: KubeBlocks Redis 7.2 cluster for cache, sessions, and coordination.
- Persistent Volume: Stores mail data, mutable configuration, TLS files, logs, webmail data, and mail service state.
Configuration:
- The Sealos App URL opens BillionMail at the root path, for example
https://<app-host>.<sealos-domain>.
- The initial administrator account is created from the
admin_username and admin_password deployment parameters.
mail_hostname is used by Postfix and DNS guidance, for example mail.example.com.
timezone configures container time, and retention_days controls BillionMail log backup retention.
License Information:
This Sealos template is provided under the templates repository license. Review the upstream BillionMail repository for the current application license terms before production use.
Why Deploy BillionMail on Sealos?
Sealos is an AI-assisted Cloud Operating System built on Kubernetes that unifies application deployment, operation, and resource management. By deploying BillionMail on Sealos, you get:
- One-Click Deployment: Start the full BillionMail stack through a template-driven workflow.
- Managed Cloud Resources: Use KubeBlocks PostgreSQL, KubeBlocks Redis, persistent storage, ingress, and TLS from one platform.
- Canvas Operations: Adjust resources, inspect workloads, and update settings through Canvas, AI dialog, and resource cards after deployment.
- Resource Efficiency: Run the stack with pay-as-you-go resources and tune CPU, memory, and storage as usage grows.
- Kubernetes Foundation: Keep the deployment portable and observable, with routine changes handled through Sealos.
Deployment Guide
- Open the BillionMail template and click Deploy Now.
- Configure the deployment parameters in the popup dialog:
- Admin Username: Initial BillionMail administrator username. The default is
billion.
- Admin Password: Initial BillionMail administrator password. Set a strong value before deployment.
- Mail Hostname: Hostname used for mail service and DNS guidance, such as
mail.example.com.
- Timezone: Container timezone, such as
Etc/UTC.
- Retention Days: Number of days to keep BillionMail log backups.
- Wait for deployment to complete, typically 2-3 minutes. After deployment, Sealos redirects you to the Canvas. For later changes, describe your requirements in the AI dialog or click the relevant resource cards.
- Open the provided BillionMail App URL. The console is served at the root path, for example
https://<app-host>.<sealos-domain>.
- Log in with the administrator username and password configured in step 2. The initial administrator account is created during deployment, and first access uses these deployment credentials directly.
- After logging in, create mail domains and mailboxes before using mail delivery or Roundcube webmail.
First Login and Webmail
Use the administrator username and password from the deployment parameters on the BillionMail login page. Keep the password in your own password manager because the template input is the source of the initial administrator credential.
Roundcube webmail is available at:
https://<app-host>.<sealos-domain>/roundcube
Create a domain and mailbox in the BillionMail console before signing in to Roundcube.
Mail DNS and Ports
BillionMail exposes mail services inside Kubernetes for SMTP, SMTPS, Submission, IMAP, IMAPS, POP3, and POP3S. Public mail delivery also requires DNS and network planning:
- Point MX records to the configured
mail_hostname.
- Configure SPF, DKIM, and DMARC records for each sending domain.
- Confirm that the required SMTP and IMAP/POP ports are reachable from the networks where you send or receive mail.
- Use Submission port
587 for authenticated sending when port 25 is restricted by your environment.
Scaling
For resource tuning, open the deployment Canvas and adjust CPU, memory, and storage on the relevant workload, database, or volume resource cards. Treat mail storage and delivery services as stateful components and validate mail flow after changing replicas or storage settings.
Troubleshooting
Admin Login Fails
- Confirm that you are opening the root App URL from Sealos.
- Use the
admin_username and admin_password values configured during deployment.
- Wait until the BillionMail workload, PostgreSQL cluster, Redis cluster, and initialization job are complete before retrying.
Mail Delivery Fails
- Check MX, SPF, DKIM, and DMARC records for the sending domain.
- Confirm that
mail_hostname points to the intended mail host.
- Review whether your cloud or network provider restricts SMTP port
25.
Webmail Login Fails
- Create the domain and mailbox in BillionMail first.
- Open Roundcube at
/roundcube and use the mailbox credentials.
Additional Resources
License
This Sealos template is provided under the templates repository license. BillionMail is distributed by its upstream project; review the BillionMail GitHub repository for current license terms.