Skip to main content
Version: 2.0.2

Configuration Files Reference

This page lists the configuration files used across the OpenPanel stack: the OpenPanel user panel, OpenAdmin admin panel, opencli command-line tool, and the default files shipped by openpanel-configuration, deployed to /etc/openpanel/ on install.

Unless noted otherwise, all paths are on the host filesystem, not inside containers. Files under /etc/openpanel/ are considered defaults/templates — most are copied into a user's home directory (/home/<username>/...) on account creation, where the user's own copy takes over.

DANGER

Manually editing these files can break the panel or be overwritten during updates. Prefer changing settings from OpenAdmin > Settings (or the relevant panel UI) whenever an option is exposed there.

Panel core settings

PathUsed byFormatPurpose
/etc/openpanel/openpanel/conf/openpanel.configOpenPanel, OpenAdmin, openclikey=valueMain panel settings: license key, enabled modules, session/2FA settings, nameservers, update settings
/etc/openpanel/openpanel/secret.keyOpenPanel, OpenAdminraw text (hex)Signing key for session cookies/CSRF, also reused as the Dovecot master-password source
/etc/openpanel/openpanel/default_localeOpenPaneltextDefault UI locale
/etc/openpanel/openpanel/translations/OpenPanel, OpenAdmindirTranslation catalogs
/etc/openpanel/openpanel/static/OpenPaneldirOverride dir for css/custom.css, js/custom.js, robots.txt, security.txt
/etc/openpanel/openpanel/features/default.txt, <plan>.txtOpenPanel, OpenAdmintext listFeature flags available per plan
/etc/openpanel/openpanel/quota_report.jsonOpenPanel, OpenAdminJSONCached disk/quota usage report
/etc/openpanel/openpanel/conf/custom_dashboard_section.jsonOpenPanel, OpenAdminJSONAdmin-injected custom dashboard content
/etc/openpanel/openpanel/conf/knowledge_base_articles.jsonOpenPanel, OpenAdmin, opencliJSONCached "how-to" / knowledge base links
/etc/openpanel/openpanel/conf/domain_restriction.txtOpenAdmin, openclitext listDomains forbidden from being added by users
/etc/openpanel/openpanel/conf/blacklist_useragents.txtOpenAdmin, openclitext listBlocked user-agents (bot/scraper blocking)
/etc/openpanel/openpanel/conf/public_suffix_list.datopenclitextPublic suffix (TLD) list, used for DNS zone-apex handling
/etc/openpanel/openpanel/custom_code/custom.css, custom.js, in_header.html, in_footer.htmlOpenPanel, OpenAdminCSS/JS/HTMLUser-editable custom code injected into the panel UI
/etc/openpanel/openpanel/service/pagespeed.apiOpenPanel, OpenAdmintextPageSpeed Insights API key
/etc/openpanel/openpanel/service/service.config.py(system)Python configsystemd/service config, fetched during updates
/etc/openpanel/modules/OpenPanel, OpenAdmindirThird-party/custom plugin modules (<plugin>/readme.txt metadata)
/etc/openpanel/skeleton/openclidirTemplate files copied into every new user's account directory
/etc/openpanel/no_portopencliflag fileMarker file
/etc/openpanel/upgrade/skip_versionsopenclitext listVersions to skip during opencli update

Per-user account data — /etc/openpanel/openpanel/core/users/<username>/

PathFormatPurpose
ip.jsonJSONUser's dedicated IP assignment
.lastlogintextLast login timestamp
aliases.ymlYAMLCached email alias list
emails.ymlYAMLCached email account list
notifications.yamlYAMLPer-user notification preferences
ip.json, activity.log, custom_message.htmlJSON/text/HTMLAllowed IPs, activity log, suspension message (OpenAdmin)

Per-website data

PathPurpose
/etc/openpanel/openpanel/websites/Per-website metadata directory
/var/www/html/<domain>Document root (base dir for File Manager)

OpenAdmin settings

PathFormatPurpose
/etc/openpanel/openadmin/config/admin.iniINIMain OpenAdmin settings (incl. email_storage_location)
/etc/openpanel/openadmin/secret.keytextSession/auth secret key
/etc/openpanel/openadmin/users.dbSQLiteOpenAdmin user accounts database
/etc/openpanel/openadmin/config/notifications.iniINISentinel/notification thresholds
/etc/openpanel/openadmin/config/services.jsonJSONService enable/status list
/etc/openpanel/openadmin/config/features.jsonJSONFeature toggle config
/etc/openpanel/openadmin/config/log_paths.jsonJSONCustom log file paths shown in the log viewer
/etc/openpanel/openadmin/config/forbidden_usernames.txttext listBlacklisted usernames for new accounts
/etc/openpanel/openadmin/config/reseller_template.jsonJSONDefault template applied to new resellers
/etc/openpanel/openadmin/config/shortcuts.jsonJSONUI shortcut/menu definitions
/etc/openpanel/openadmin/config/terms.mdMarkdownTerms of Service text shown at signup
/etc/openpanel/openadmin/config/quick_start.dismissed, tour.skipflag fileOnboarding/tour dismissal flags
/etc/openpanel/openadmin/ssh_whitelist.conftextSSH login IP whitelist
/etc/openpanel/openadmin/resellers/<name>.jsonJSONPer-reseller configuration (allowed plans, etc.)
/etc/openpanel/openadmin/usage_stats.jsonJSONUsage/telemetry state
/etc/openpanel/openadmin/service/openadmin.servicesystemd unitInstalled as the admin systemd service
/usr/local/admin/custom.cssCSSCustom OpenAdmin UI override
/usr/local/admin/modules/api/available_endpoints.txttextEnabled API endpoints
/usr/local/admin/modules/security/csf.plscriptConfigServer Firewall control script
/usr/local/admin/core/search/filtered.json, filter.jsonJSONCommand-palette / search index
/usr/local/admin/templates/emails/dirAdmin email report templates

Docker / Podman & containers

PathFormatPurpose
/etc/openpanel/docker/compose/docker-compose.yml, .envYAML/envMain podman/docker-compose stack (mysql, redis, openpanel, caddy, bind9, ftp, phpMyAdmin, clamav)
/etc/openpanel/docker/compose/nodejs.yml, python.ymlYAMLCompose overlays for Node.js/Python app hosting
/etc/openpanel/docker/compose/1.0/docker-compose.yml, .env, autostart.servicesYAML/env/textPer-account container stack template (legacy "1.0" webserver stack)
/etc/openpanel/docker/templates/docker_*.confconfPer-website nginx-vhost snippets matching the container backend
/etc/openpanel/docker/daemon/rootless.jsonJSONRootless Docker daemon config template
/etc/openpanel/docker/overlay2/*.jsonJSON/etc/docker/daemon.json templates per filesystem/distro
/etc/openpanel/docker/modprobe.txttextKernel modules loaded at boot (symlinked to /etc/modules-load.d/podman.conf)
/etc/openpanel/docker/selinux/pasta_local.ppSELinux policyRootless podman networking policy
/root/.envenvRoot-level docker-compose environment (e.g. CADDY_IMAGE)
/root/docker-compose.ymlYAMLHost-level compose stack for core services
/home/<user>/.envenvPer-user container stack env vars (WEB_SERVER, MYSQL_TYPE, etc.)
/home/<user>/docker-compose.ymlYAMLPer-user container stack definition
/home/<user>/.config/containers/{storage,containers}.confconfRootless podman container config

Web servers & reverse proxy (Caddy, Nginx, Apache, OpenLiteSpeed, OpenResty, Varnish)

PathFormatPurpose
/etc/openpanel/caddy/Caddyfile (mounted as /etc/caddy/Caddyfile in container)CaddyfileMain reverse-proxy config for all websites
/etc/openpanel/caddy/domains/<domain>.confCaddyfile snippetPer-domain vhost config, incl. WAF toggles
/etc/openpanel/caddy/suspended_domains/<domain>.confCaddyfile snippetVhost for suspended domains
/etc/openpanel/caddy/templates/*.conf, *.html, wp.rulestemplatesDomain, suspended-user/domain, WordPress vhost templates
/etc/openpanel/caddy/redirects.confCaddyfile snippetGlobal HTTP redirects (webmail, OpenAdmin port)
/etc/openpanel/caddy/coraza_rules.conf, check.confCoraza rulesWAF rule set
/etc/openpanel/caddy/coreruleset/rules/*.conf[.disabled]OWASP CRSWAF (Coraza) core rule set
/etc/openpanel/caddy/ssl/custom/, ssl/certs/, ssl/acme-v02.api.letsencrypt.org-directory/dirCustom and Let's Encrypt SSL certificate storage
/etc/openpanel/nginx/nginx.confconfDefault Nginx template
/etc/openpanel/nginx/user-nginx.confconfPer-user Nginx include, copied to /home/<user>/nginx.conf
/etc/openpanel/nginx/vhosts/openpanel_proxy.confconfReverse-proxy vhost for the panel itself
/etc/openpanel/nginx/vhosts/1.1/docker_*.conf, nginx_proxy_headers.txtconfPer-website nginx-vhost templates (current stack)
/etc/openpanel/nginx/vhosts/docker_*.confconfPer-website nginx-vhost templates (legacy "1.0" stack)
/etc/openpanel/nginx/certs/cert.crt, cert.keyPEMDefault/self-signed TLS cert used before a real cert is issued
/etc/openpanel/nginx/default_page.html, suspended_user.html, suspended_website.htmlHTMLPlaceholder/suspension pages
/etc/openpanel/nginx/cloudflare.incconfCloudflare real-IP restore config
/etc/openpanel/nginx/options-ssl-nginx.confconfRecommended TLS options
/etc/openpanel/nginx/modsecurity/*.confModSecurity rulesWAF rules for the nginx engine
/etc/openpanel/apache/httpd.confconfApache template, copied to /home/<user>/httpd.conf
/etc/openpanel/openlitespeed/httpd_config.confconfOpenLiteSpeed template, copied to /home/<user>/openlitespeed.conf
/etc/openpanel/openlitespeed/start.shscriptContainer entrypoint
/etc/openpanel/openresty/nginx.confconfOpenResty template, copied to /home/<user>/openresty.conf
/etc/openpanel/varnish/default.vcl, defaultVCLVarnish cache config, copied to /home/<user>/default.vcl
/home/<user>/nginx.conf, openresty.conf, openlitespeed.conf, httpd.conf, default.vclPer-user generated webserver configs
/var/log/caddy/domlogs/dirPer-domain access logs
/var/log/caddy/stats/dirGoAccess stats data
/var/log/caddy/coraza_waf/<domain>.logJSON-linesCoraza WAF access log
/etc/openpanel/goaccess/goaccess.confconfGoAccess web-log analytics config
/etc/openpanel/goaccess/GeoLite2-*.tar.gzMaxMind DBGeoIP data for GoAccess

DNS (BIND9)

PathFormatPurpose
/etc/bind/named.conf, named.conf.local, named.conf.options, named.conf.default-zonesBIND confCore BIND9 configuration, DNS cluster settings
/etc/bind/zones/<domain>.zoneBIND zonePer-domain DNS zone file
/etc/bind/zones/backups/dirZone file backups
/etc/bind/rndc.keykeyBIND RNDC key
/etc/openpanel/bind9/zone_template.txt, zone_template_ipv6.txttemplateTemplates used when generating new DNS zones

Mail (OpenMail / Dovecot / Postfix)

PathFormatPurpose
/usr/local/mail/openmail/compose.ymlYAMLMail server docker-compose stack
/usr/local/mail/openmail/mailserver.env, .envenvdocker-mailserver environment config
/usr/local/mail/openmail/docker-data/dms/config/postfix-accounts.cfconfPostfix mail account list
/usr/local/mail/openmail/docker-data/dms/config/postfix-regex.cfconfPostfix regex/alias rules
/usr/local/mail/openmail/docker-data/dms/config/opendkim/keys/dirPer-domain DKIM signing keys
/usr/local/mail/openmail/docker-data/dms/dovecot/userdbconfDovecot mailbox user database
/usr/local/mail/openmail/docker-data/dms/mail-logs/mail.loglogMail server log
/usr/local/mail/openmail/postfwd/postfwd.cfconfPostfwd policy config (per-domain sending limits)
/etc/dms-settingsconfdocker-mailserver settings snapshot
/etc/openpanel/email/snappymaildirSnappyMail webmail config

FTP

PathFormatPurpose
/etc/openpanel/ftp/vsftpd.conf (mounted as /etc/vsftpd/vsftpd.conf)confvsftpd server config
/etc/openpanel/ftp/all.userstextMaster FTP user list
/etc/openpanel/ftp/users/dirPer-user FTP account config
/etc/openpanel/ftp/server.confconfFTP server settings (e.g. hostname)
/etc/openpanel/ftp/filezilla.conf, cyberduck.conftemplateFTP client-config templates served to users
/etc/openpanel/ftp/start_vsftpd.shscriptContainer entrypoint

PHP

PathFormatPurpose
/etc/openpanel/php/ini/<version>.iniphp.iniDefault php.ini per PHP version (5.6–8.5), mounted into containers
/etc/openpanel/php/options.txttextDefault PHP option definitions shown in the panel
/etc/openpanel/php/ini.txt, extensions.txttextSelectable php.ini directives / extensions
/etc/openpanel/php/extensions_table.jsonJSONTable of installable PHP extensions
/etc/openpanel/openpanel/php/api_versions.jsonJSONCached list of available PHP versions
/etc/openpanel/php/composer/*.pharbinaryComposer versions installed into user containers
/etc/openpanel/php/ioncube/dirionCube loaders per PHP version
/home/<user>/php.ini/<version>.iniphp.iniPer-user, per-version PHP config
/home/<user>/php.ini/options.txttextPer-user PHP option overrides

Databases (MySQL/MariaDB, PostgreSQL)

PathFormatPurpose
/etc/my.cnfmy.cnf (INI)Panel's own MySQL client credentials ([client] section)
/etc/openpanel/mysql/host_my.cnf, container_my.cnfmy.cnfHost- and container-level MySQL client auth
/etc/openpanel/mysql/mysqld.cnf, user.cnfconfServer/user database config
/etc/openpanel/mysql/keys.txttextAllow-list of editable my.cnf keys for users
/etc/openpanel/mysql/initialize/1.1/plans.sqlSQLSeeds the panel database with default hosting plans
/etc/openpanel/mysql/scripts/dump.shscriptDB dump/backup helper mounted into containers
/etc/openpanel/mysql/phpmyadmin/pma.php, config.inc.phpPHP confphpMyAdmin container config
/home/<user>/custom.cnfmy.cnfUser's MySQL resource-limit config override
/home/<user>/my.cnfmy.cnfUser's MySQL root client credentials
/etc/openpanel/postgres/postgresql.confconfDefault PostgreSQL config template
/etc/openpanel/postgres/keys.txttextAllow-list of editable PostgreSQL config keys
/home/<user>/postgre_custom.confconfPer-user PostgreSQL config override

Cron (Ofelia)

PathFormatPurpose
/etc/cron.d/openpanelcrontabSystem-wide cron jobs for OpenPanel (do not edit manually)
/etc/openpanel/ofelia/users.iniINITemplate cron config, copied to /home/<user>/crons.ini
/home/<user>/crons.iniINIPer-user scheduled job definitions

Backups

PathFormatPurpose
/etc/openpanel/backups/backup.envenvDefault backup destination/schedule template
/etc/openpanel/backups/customized.templateGo templateBackup success/failure notification message template
/home/<user>/backup.envenvPer-user backup destination config (S3/WebDAV/SSH/Azure)

Firewall & security

PathFormatPurpose
/etc/csf/csf.confconfConfigServer Firewall main config
/etc/csf/csf.denytextCSF deny list
/etc/openpanel/csf/csf.blockliststextCSF blocklist sources
/etc/sysconfig/imunify360/integration.confconfImunify360 panel integration config
/etc/sysconfig/imunify360/malware-filters-admin-conf/ignored.txttextFiles ignored by malware scanning
/etc/pam.d/imunify360-denyPAM confDeny rule for blocked SSH logins
/etc/openpanel/clamav/domains.list, extensions.txttextClamAV scan target lists
/etc/openpanel/wordpress/vulnerability/dirCached WordPress vulnerability database
/etc/ssh/sshd_configconfSSH daemon config (port, root login)
~/.ssh/authorized_keysOpenSSHPer-user SSH keys

WordPress & app installers

PathFormatPurpose
/etc/openpanel/wordpress/htaccess/apache.htaccess, litespeed.htaccess.htaccessDefault .htaccess per webserver engine
/etc/openpanel/wordpress/mu-plugin.phpPHPMust-use plugin injected into new WordPress installs
/etc/openpanel/wordpress/sets/plugins.txt, themes.txttext listDefault plugin/theme bundles offered in the installer
/etc/openpanel/wordpress/wp-cli.phar (mounted as /usr/local/bin/wp)binaryWP-CLI
/etc/openpanel/<app>/archives/ (wordpress, joomla, matomo, mediawiki, moodle, nextcloud, opencart, prestashop)dirCached installer archives per application
/etc/openpanel/matomo/credentialstextStored Matomo admin credentials

System integration

PathFormatPurpose
/etc/passwd, /etc/shadow, /etc/groupsystemUser/group accounts, read/modified by opencli user management
/etc/subuid, /etc/subgidsystemSubordinate UID/GID ranges for rootless podman
/etc/fstabsystemChecked/modified for storage/quota mounts
/etc/hostssystemUpdated with domain/IP mappings
/etc/logrotate.d/openpanel, caddy-logs, sysloglogrotateLog rotation rules
/etc/openpanel/ssh/admin_welcome.shscriptSSH login MOTD/welcome script
/root/openpanel_restart_needed, openadmin_restart_needed, openadmin_is_disabled, disable_openadmin_reboot_ui, disable_openadmin_terminal_ui, disable_2087_portflag filesRestart/feature-disable state flags
/tmp/.openpanel_license_cache.jsonJSONCached license validation result