DocsOptional components

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:

  • webmail and dav need the mail server, so mail is installed with them.
  • storage needs Docker, so docker is 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

  1. Sign in as an administrator and go to Components (under Server in the menu).
  2. Components are grouped as Email, Web & security, Databases and Applications. Installed ones are marked installed.
  3. Tick the components you want. The panel shows about how much extra memory they need.
  4. 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.
  5. 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.
  6. 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.


← PHP performance Websites and PHP →