How to install BillionMail on aaPanel (Docker one-click)
This guide installs BillionMail from aaPanel's Docker app store, step by step. It takes about ten minutes. At the end you'll have the BillionMail dashboard running and secured, ready to add your sending domain.
Prefer video? Watch the full BillionMail on aaPanel walkthrough (install, DNS, SSL and your first newsletter):
New to BillionMail? Read What is BillionMail? in this forum first.
Before you start: four checks
1. A suitable server. BillionMail's official minimum is 1 CPU core, 1 GB RAM and 20 GB disk; for a real newsletter server, about 2 CPU cores and 4 GB RAM is more comfortable. More detail: BillionMail installation requirements. Avoid installing on a server that already runs another mail server.
2. Outgoing port 25 must be open. This is the one that catches most people. Mail servers talk to each other on port 25, and many cloud providers block it on new servers. Test it from your server:
If it says succeeded, you're fine. If it hangs or times out, ask your provider to open outgoing port 25. Without it, BillionMail installs fine and then never delivers anything.
3. Pick two names.
Step 1: Open the Docker app store
In aaPanel, click Docker in the left menu. The first time, aaPanel offers to install Docker for you. Let it finish.
Then open the One-Click Install tab. This is aaPanel's app store for container apps.
![[Image: attachment.php?aid=413]](https://adminsforum.com/attachment.php?aid=413)
Step 2: Install BillionMail
Find BillionMail (search for it, or scroll) and click Install. You'll see the install form:
![[Image: attachment.php?aid=414]](https://adminsforum.com/attachment.php?aid=414)
What each field means:
Step 3: Check that it's running (optional)
If you like the terminal:
You should see containers for postfix, dovecot, rspamd, webmail, pgsql and redis, all Up. On an aaPanel install, the BillionMail files live in:
Step 4: Open the dashboard
Go to https://YOUR_SERVER_IP:41443. Your browser warns about the certificate the first time. That's expected, because there's no real certificate yet. Continue, and log in.
If you've lost the login, run this on the server:
Step 5: Secure it right away
Open Settings > Common Settings > Security Settings:
Step 6: Look around
The left menu has everything:
Common install problems
What's next
Next, add your sending domain and its DNS records: BillionMail DNS setup: MX, SPF, DKIM, DMARC and PTR.
More BillionMail how-to guides
Tested on BillionMail 4.9.0 through aaPanel, October 2026. Sources: BillionMail on GitHub.
This guide installs BillionMail from aaPanel's Docker app store, step by step. It takes about ten minutes. At the end you'll have the BillionMail dashboard running and secured, ready to add your sending domain.
Prefer video? Watch the full BillionMail on aaPanel walkthrough (install, DNS, SSL and your first newsletter):
New to BillionMail? Read What is BillionMail? in this forum first.
Before you start: four checks
1. A suitable server. BillionMail's official minimum is 1 CPU core, 1 GB RAM and 20 GB disk; for a real newsletter server, about 2 CPU cores and 4 GB RAM is more comfortable. More detail: BillionMail installation requirements. Avoid installing on a server that already runs another mail server.
2. Outgoing port 25 must be open. This is the one that catches most people. Mail servers talk to each other on port 25, and many cloud providers block it on new servers. Test it from your server:
Code:
nc -vz -w 5 gmail-smtp-in.l.google.com 253. Pick two names.
- A name for the mail server itself, for example bm.example.com. This is also the dashboard address.
- The domain you'll send from, for example news.example.com. A subdomain for newsletters keeps your main domain's reputation separate.
Step 1: Open the Docker app store
In aaPanel, click Docker in the left menu. The first time, aaPanel offers to install Docker for you. Let it finish.
Then open the One-Click Install tab. This is aaPanel's app store for container apps.
Step 2: Install BillionMail
Find BillionMail (search for it, or scroll) and click Install. You'll see the install form:
What each field means:
- Name: generated for you. Leave it.
- Version: keep latest.
- Web port (HTTPS): where the dashboard lives. The default is 41443.
- Web user / Web password: the first login, billion / billion by default. Change them here, or right after the install. Don't keep them.
- Allow external access: keep it ticked so you can open the dashboard from your browser.
- Mail ports (25, 465, 587, 143, 993, 110, 995): leave the defaults.
Step 3: Check that it's running (optional)
If you like the terminal:
Code:
docker ps --format "table {{.Names}}\t{{.Status}}"Code:
/www/dk_project/dk_app/billionmail/Step 4: Open the dashboard
Go to https://YOUR_SERVER_IP:41443. Your browser warns about the certificate the first time. That's expected, because there's no real certificate yet. Continue, and log in.
If you've lost the login, run this on the server:
Code:
bm defaultStep 5: Secure it right away
Open Settings > Common Settings > Security Settings:
- Change Username to something other than "billion".
- Change Password to a long, unique password.
- Set a Security Path. This adds a secret word to the dashboard address, so bots scanning your IP never even find the login page.
Step 6: Look around
The left menu has everything:
- Overview: delivered, opened, clicked and bounced for all your mail.
- Email Marketing: campaigns ("tasks").
- Template: your email designs.
- Send API: for apps and websites.
- Contacts: groups, subscribers, the suspend list and tags.
- Domain and Mailboxes: sending domains and real inboxes.
- SMTP: optional relays like Amazon SES or Mailgun.
- Logs and Settings.
Common install problems
- "Port is occupied": another program uses that port, usually aaPanel's mail plugin or Postfix installed on the host. Remove it, then install again.
- Dashboard doesn't open: open port 41443 in aaPanel's Security page and in your provider's firewall.
- Not enough memory: containers restart over and over. Check with docker ps; if the status keeps resetting, give the server more RAM.
What's next
Next, add your sending domain and its DNS records: BillionMail DNS setup: MX, SPF, DKIM, DMARC and PTR.
More BillionMail how-to guides
- Send API for transactional email
- WordPress email through BillionMail SMTP
- Import contacts, groups and tags
- Email templates explained
- SMTP relay with Amazon SES, Brevo or Mailgun
- Mailboxes and webmail
- Campaign analytics explained
- IP warm-up plan
- Move from Mailchimp or Sendy
- Add a second sending domain
Tested on BillionMail 4.9.0 through aaPanel, October 2026. Sources: BillionMail on GitHub.

