Optional components
Add mail, webmail, DNS, WAF, Apache, FTP, PostgreSQL, MongoDB, Adminer, Docker and S3 storage to a ZoPanel server, at install time or later from Components.
A default ZoPanel install (--profile web) contains only the web stack: nginx, PHP, MariaDB, SFTP, the firewall and the panel. Everything else is an optional component that you add when you need it, because every component costs memory. You can choose components when you install, or add them at any time from the panel.
Available components
| ID | Component | What it adds | Typical extra RAM |
|---|---|---|---|
mail |
Mail server | Postfix, Dovecot and Rspamd: mailboxes, forwarders, DKIM, spam filter, Sieve rules | ~300 MB |
webmail |
Webmail | Read and send mail in the browser (port 2096) | ~40 MB |
dav |
Calendars & contacts | CalDAV/CardDAV for every mailbox (Radicale), port 2080 | ~40 MB |
dns |
DNS server | PowerDNS: customers' zones, DNSSEC, wildcard certificates | ~30 MB |
waf |
Web application firewall | ModSecurity with the OWASP Core Rule Set, enabled per website | ~130 MB |
apache |
Apache (.htaccess) | Lets websites switch to Apache mode so .htaccess files work |
~40 MB |
ftp |
FTP server | Pure-FTPd with TLS, for customers who still use FTP | ~10 MB |
postgres |
PostgreSQL | PostgreSQL databases for applications | ~120 MB |
mongo |
MongoDB | MongoDB databases for Node.js and other applications | ~250 MB |
adminer |
Adminer | Web interface for MariaDB, PostgreSQL and MongoDB | ~20 MB |
docker |
Docker | Runs App Store applications and Dockerfile deploys, isolated per website | ~150 MB |
storage |
S3 object storage | S3-compatible buckets for customers | ~150 MB |
Dependencies are added for you:
webmailanddavneed the mail server, somailis installed with them.storageneeds Docker, sodockeris installed with it.
storage requires a Pro license; on the Free plan it is skipped. Apache is also installed automatically the first time a website switches to Apache mode, so you rarely need to add it by hand.
Install components from the panel
- Sign in as an administrator and go to Components (under Server in the menu).
- Components are grouped as Email, Web & security, Databases and Applications. Installed ones are marked installed.
- Tick the components you want. The panel shows about how much extra memory they need.
- If you selected the mail server, enter the Mail server hostname, for example
mail.example.com. It must resolve to this server; set its reverse DNS (PTR) at your VPS provider. - If you selected the DNS server, enter the Nameservers, for example
ns1.example.com, ns2.example.com. Create them as glue records (A records pointing to this server's IP) at the registrar of that domain. - Click Install N component(s).
The installation runs as one background task. You can close the window: follow it under Tasks. Components that are already installed are skipped. If one fails, the others continue and the task lists what was not installed; you can retry it.
Some pages also offer to install their component directly, for example Install mail server on the Email page or Install FTP server on the FTP / SFTP page.
Choose components at install time
Profiles
| Profile | Components |
|---|---|
web (default) |
None: the web stack only |
full |
mail, webmail, dav, dns, waf, apache, ftp, postgres, adminer, docker |
curl -fsSL https://get.zopanel.net | sudo bash -s -- --profile full \
--mail-hostname mail.example.com \
--nameservers ns1.example.com,ns2.example.com
Individual components
Add components to any profile with --with, comma separated:
curl -fsSL https://get.zopanel.net | sudo bash -s -- --with waf,docker,postgres
mongo and storage are not part of full; add them with --with.
What the installer needs
| Component | Flag | If missing |
|---|---|---|
mail, webmail |
--mail-hostname mail.example.com |
Skipped with a message. If --hostname has at least three labels (for example srv1.example.com), it is used as the mail hostname. |
dns |
--nameservers ns1.example.com,ns2.example.com |
Skipped with a message |
The installer does not install components itself. It queues them, and the panel installs them as a background task right after it starts, visible under Tasks. If the installer restarts the server (for a new kernel), the components are installed after the restart. If the server restarts in the middle, the task resumes.
Ports opened
Components open their ports in the UFW firewall when installed. If your provider has its own firewall, open them there too.
| Component | Ports |
|---|---|
| Mail server | 25, 465, 587 (SMTP), 143, 993 (IMAP), 110, 995 (POP3) |
| Webmail | 2096 |
| Calendars & contacts | 2080 |
| DNS server | 53 TCP and UDP |
| FTP server | 21 and passive ports 30000-30100 |
| Adminer | 8889 |
After installing
| Component | Where to use it |
|---|---|
| Mail server, webmail, calendars & contacts | Email page: enable email for a domain, create mailboxes, check DNS records and deliverability |
| DNS server | DNS page: zones, records, DNSSEC, DNS cluster |
| Web application firewall | Security page for all websites, and each website's Tools tab; start with Detect only (log) for a few days, then switch to blocking |
| Apache (.htaccess) | A website's Tools tab: .htaccess support (Apache mode) |
| FTP server | FTP / SFTP page: FTP accounts restricted to one folder |
| PostgreSQL, MongoDB, Adminer | Databases page |
| Docker | App Store, and Docker or Dockerfile deploys for websites |
| S3 object storage | S3 storage page: buckets and access keys |
Plan memory before you install
Every component uses memory all the time, which is then not available for websites. On a 1-2 GB server, install only what you use. The Tuning page and the PHP performance card in Settings → System show how memory is shared between the system and customers after you add components.