Documentation

Server layout

Path What
/usr/local/hostfog/panel · webmail · shared panel, webmail and the shared mail-filter code
/usr/local/hostfog/bin/hf-agent + bin/lib/*.sh root helper (the only thing the panel can run as root)
/etc/hostfog/config.php · webmail.php installer settings
/etc/hostfog/sites/<user>--<domain>.conf each website's settings (folder, PHP version, SSL…); web server configs are generated from these
/var/lib/hostfog/hostfog.sqlite panel database
/var/lib/hostfog-webmail/ webmail sessions, contacts and settings
/var/backups/hostfog/<user>/ backups — copy these off the server too
/var/backups/hostfog-config/ earlier versions of config files edited in the panel
/home/<user>/web/<domain>/public_html websites
/var/mail/vhosts/<domain>/<mailbox> email
/var/log/hostfog-*.log nightly jobs, panel/webmail PHP errors, updates, package installs

Stack

Nginx (SSL, static files, in front) → Apache 2.4 (so .htaccess works; or Nginx only per website) → PHP-FPM pool per account · MariaDB · Postfix + Dovecot (Sieve) + OpenDKIM + SpamAssassin · BIND · Pure-FTPd · Let's Encrypt · phpMyAdmin · HostFog Webmail · Node.js · SQLite (panel data).

The panel runs as its own unprivileged user. Everything that needs root goes through one helper, hf-agent, which checks every argument it's given.