Platform layout
Top-level: /opt/shm
certificate/— TLS materials for panel endpoints (ports 882/883/884):key.pem,cert.pem,chain.pem,fullchain.pem.logs/— panel & job logs (rotated):access.log*,error.log*,login.log*,autossl.log*,update.log*.public/— SHM web application (UI & endpoints).- Key entries:
index.php,login.php,logout.php,submit.php,menu.php,header.php,footer.php. - Feature dirs:
account/,server/,api/,assets/,functions/,vendor/. - Helpers:
cli.php,cron.php.
- Key entries:
phpmyadmin/— embedded phpMyAdmin instance (served on port 884 when enabled).roundcube/— embedded Roundcube Webmail (served on port 883 when enabled).scripts/— integration utilities invoked by SHM:dns_sync.sh,dovecot_auth.php,pureftpd-auth.php,rebuild_exim_maps.php,set_permissions.sh.services/— panel-bundled service assets:nginx/,php/,node/.sessions/— PHP session storage for SHM and embedded apps (numeroussess_*files).users/— per-account working areas (one directory per account ).vftp/— virtual-FTP backend data (Pure-FTPd DBpureftpd.pdb, utility scripts likepure-certd.sh).zones/— domain zone definitions tracked by DNS Manager (YAML per zone).
Private state: /opt/shm/.shm
accounts/— per-account metadata files (account_*.yaml) and locks during mutations.certificates/— per-account certificate state (YAML).configuration/— platform configuration snapshots:config.yaml,services.yaml,monitor.yaml,remote_backup.yaml,version.yaml(with dated backups).listing/— cached inventories for fast counts/lists:accounts.yaml,addons.yaml,parked.yaml,subdomains.yaml,emailaccounts.yaml,databases.yaml,dbusers.yaml,ftpaccounts.yaml, plus helpers likepublic_suffix_list.dat.packages/— package and reseller definitions (package_*.yaml,reseller_*.yaml).playbooks/— automation units the panel runs (installers, generators, account/domain/email/FTP operations, SSL tasks; includesdynamic/andtemplates/).progress/— operation progress markers (create_account.txt,delete_account.txt,progress.txt).resellers/— reseller-scoped settings (e.g.,account_*.yaml).scripts/— support scripts used by playbooks and services:check_rate_limit.sh,dns-authenticator.sh,dns-cleanup.sh,jailmanager.sh.secrets/— sensitive keys/tokens (e.g.,dovecot_master.pass,roundcube_sso.key).services/— service-specific assets (e.g., jail tooling).update/— pre/post update hooks (pre-update.php,post-update.php).usage/— per-account usage tracking (one directory per username).zones/— zone data handled by DNS features (YAML per zone).
Tree Structure
/opt/shm
├─ certificate/ # panel TLS (882/883/884)
├─ logs/ # access/error/login/autossl/update
├─ phpmyadmin/ # web SQL UI (884)
├─ public/ # SHM web app (UI, endpoints, functions)
├─ roundcube/ # webmail (883)
├─ scripts/ # integration scripts
├─ services/ # bundled nginx/php/node
├─ sessions/ # PHP session storage
├─ users/ # per-account working dirs
├─ vftp/ # Pure-FTPd data
├─ zones/ # DNS zone YAML
└─ .shm/
├─ accounts/ # account_*.yaml
├─ certificates/ # per-account cert state (YAML)
├─ configuration/ # config.yaml, services.yaml, monitor.yaml, ...
├─ listing/ # cached inventories
├─ packages/ # package_* / reseller_*.yaml
├─ playbooks/ # ops units (install, create, generate, ssl, ...)
├─ profiles/ # profile_*.yaml
├─ progress/ # progress flags
├─ resellers/ # reseller configs
├─ scripts/ # helper scripts
├─ secrets/ # credentials/keys
├─ services/ # service assets
├─ update/ # pre/post update hooks
├─ usage/ # per-user usage
└─ zones/ # zone data
Logs (common locations)
- Web:
/var/log/nginx/,/var/log/httpd/ - Mail:
/var/log/maillog,/var/log/exim/,/var/log/dovecot/ - DB:
/var/log/mariadb/ - DNS:
/var/log/pdns/ - Panel/app: standard system logs plus any app-specific logs under platform paths.
Accounts & jails
/home/<user>/— typical layout:public_html/— primary web root.logs/— per-site access/error logs (if exposed to users).
/home/.jailshell/<user>/— chroot for shell access; includes minimal/etc/,/bin/,/usr/and profile snippets. Cross-account browsing is blocked.
Runtime toolchains (/usr/local/synconix)
/usr/local/synconix/php56,php80,php81,php84, … — full SCL-like trees with their ownbin/,lib/,etc/php.ini, and extensions.- Each account maps to a dedicated PHP-FPM master (e.g.,
user-php80,user-php81) that serves only that account, loading from the account’s chroot. - Optional compatibility libs (e.g., OpenSSL toolchains) may be placed under vendor subpaths if required by legacy PHP builds.
Admin note: Do not change the structure above or edit files under
/opt/shm/. Regular updates will
replace these paths and any manual changes will be lost.