View .md

FeatherQuilld config.yml reference

All 183 FeatherQuilld configuration keys with type and default, generated from the Quilld source (Utils/Config).

Last synced from FeatherQuilld 72bc34d on .

On this page

About the file

  • Location: /etc/featherquilld/config.yml. The configure command from the panel writes it (see Configuration).
  • Keys use snake_case (YamlDotNet's underscored naming of the C# properties), nested with dots below.
  • Defaults are the C# property initialisers. An empty default means the type's zero value.
  • Error reporting (sentry) is enabled by default and sends crash reports to MythicalSystems' GlitchTip. Set sentry.enabled: false to turn it off.
  • With api.docs.enabled: true (off by default) Quilld serves Scalar API docs at /scalar and the spec at /openapi/v1.json.

Keys

Top-level keys

KeyTypeDefaultDescription
debugbool
quietbool
app_namestringFeatherQuilld
uuidGuid(generated)
token_idstring(generated)
tokenstring(generated)

api

KeyTypeDefaultDescription
apiobject
api.hoststring0.0.0.0
api.portint8989
api.docsobject
api.docs.enabledboolOpenAPI/Scalar docs. Off by default for production hardening.
api.sslobject
api.ssl.enabledbool
api.ssl.certstringcert.pem
api.ssl.keystringkey.pem
api.ssl.passwordstringOptional password for PKCS#12 (.pfx / .p12) certificates.
api.disable_remote_downloadbool
api.remote_downloadobject
api.remote_download.max_redirectsint10
api.upload_limitint100Max upload size in megabytes.
api.trusted_proxiesList<string>[]
api.ignore_certificate_errorsbool
api.allowed_originsList<string>["http://localhost:3000", "http://localhost:3001"]

system

KeyTypeDefaultDescription
systemobject
system.root_directorystring/var/lib/featherquilld
system.log_directorystring/var/log/featherquilld
system.datastring/var/lib/featherquilld/volumes
system.websitesstring/var/lib/featherquilld/websites
system.archive_directorystring/var/lib/featherquilld/archives
system.backup_directorystring/var/lib/featherquilld/backups
system.backupsobject
system.backups.providerstringlocallocal, s3, restic, or pbs.
system.backups.s3object
system.backups.s3.endpointstring
system.backups.s3.regionstringus-east-1
system.backups.s3.bucketstringfeatherquilld-backups
system.backups.s3.access_keystring
system.backups.s3.secret_keystring
system.backups.s3.prefixstringwebspaces/
system.backups.s3.force_path_stylebool
system.backups.resticobject
system.backups.restic.repositorystringrestic repository URL (e.g. s3:s3.amazonaws.com/bucket or /var/backups/restic).
system.backups.restic.passwordstringPassword for the repository (RESTIC_PASSWORD).
system.backups.restic.binarystringresticOptional path to restic binary (default: restic on PATH).
system.backups.pbsobject
system.backups.pbs.repositorystringProxmox Backup Server repository, e.g. user@pbs@host:datastore.
system.backups.pbs.passwordstringAPI token / password for PBS.
system.backups.pbs.fingerprintstringOptional fingerprint for TLS verification.
system.backups.pbs.binarystringproxmox-backup-clientOptional path to proxmox-backup-client (default on PATH).
system.tmp_directorystring/tmp/featherquilld
system.eggs_directorystring/var/lib/featherquilld/eggs
system.vmount_directorystring/var/lib/featherquilld/vmounts
system.fusequota_pathstringfusequota
system.fqctl_pathstringfqctlPath to the fqctl helper (umount-lazy / chown-r / mount-bind). Override with env FQCTL_BIN. Falls back to system umount/chown when missing.
system.disk_limiter_modestringfuse_quotanone or fuse_quota. Default is FuseQuota. Explicit none/off/disabled hard-disables FUSE.
system.proxyobject
system.proxy.enabledbooltrue
system.proxy.providerstringcaddycaddy, nginx, or traefik.
system.proxy.config_pathstring
system.proxy.acme_emailstringOperator ACME fallback. Per-WebSpace owner email is preferred when present.
system.proxy.acme_stagingboolUse Let's Encrypt staging directory (safer for tests).
system.proxy.backend_port_minint20000Inclusive low end of loopback backend ports for Docker runtimes.
system.proxy.backend_port_maxint29999Inclusive high end of loopback backend ports for Docker runtimes.
system.proxy.backend_hoststring127.0.0.1Upstream address written into generated proxy configs (Caddy/nginx/Traefik). Default 127.0.0.1 when proxy runs on the same host as FeatherQuilld.
system.proxy.backend_bind_hoststring127.0.0.1Host/interface where WebSpace container ports and static backends are published. Default 127.0.0.1 (not reachable off-box). Use 0.0.0.0 or the node IP when an external reverse proxy must reach backends on this machine.
system.dnsobject
system.dns.powerdns_api_urlstringhttp://127.0.0.1:8081PowerDNS Authoritative HTTP API base URL (localhost only).
system.dns.powerdns_api_keystringAPI key for PowerDNS webserver/API. Generated on install if empty.
system.mailobject
system.mail.enabledbooltrue
system.mail.backendstringdocker-mailserverMail stack backend: docker-mailserver (default) or mailcow. Unknown values are reported by the mail API instead of silently switching.
system.mail.hostnamestringPublic mail hostname for MX records (defaults to mail.{domain}).
system.mail.webmail_hostnamestringPublic hostname for node Roundcube (proxied HTTPS), e.g. webmail.node.example.com.
system.mail.data_pathstring
system.mail.smtp_portint587
system.mail.imap_portint993
system.mail.dkim_selectorstringmail
system.mail.mailcowobjectSettings that only apply when Backend is mailcow.
system.mail.mailcow.pathstringDirectory that holds mailcow's compose file and its data/ tree.
system.mail.mailcow.urlstringBase URL of the mailcow UI used for API calls, e.g. https://mail.example.com. When empty the panel derives it from mail.hostname plus the HTTPS port.
system.mail.mailcow.api_keystringAPI key with write access. When empty the panel reads feather-api-key next to the compose file.
system.mail.mailcow.http_portint8080Host port of the mailcow UI/HTTP endpoint (default avoids clashing with the panel's Traefik).
system.mail.mailcow.https_portint8443Host port of the mailcow UI/HTTPS endpoint.
system.mail.mailcow.skip_acmebooltrueSkip mailcow's own ACME client (default true): certificates are expected to come from the panel's reverse proxy instead of mailcow binding port 80.
system.mail.mailcow.mail_hoststringIMAP/SMTP host used for probes; falls back to mail.hostname.
system.mail.mailcow.domain_mailbox_limitint10Max. number of mailboxes mailcow allows per domain the panel creates. mailcow reads this as a hard cap (functions.mailbox.inc.php: count &gt;= mailboxes), so 0 means "no mailboxes at all"; a real number is required, otherwise every mailbox on an auto-created domain fails with max_mailbox_exceeded.
system.mail.mailcow.insecure_tlsboolAccept mailcow's certificate even when it is self-signed (typical when the panel's reverse proxy terminates ACME and mailcow serves its default cert).
system.usernamestringfeatherquilld
system.timezonestringUTC
system.userobject
system.user.rootlessobject
system.user.rootless.enabledbool
system.user.rootless.container_uidint
system.user.rootless.container_gidint
system.user.uidint
system.user.gidint
system.user.mount_passwdbooltrue
system.user.passwd_filestring/etc/featherquilld/passwd
system.disk_check_intervalint150
system.quotasobject
system.quotas.enabledbooltrueHard disk quotas via FuseQuota. On by default for WebSpaces.

plugins

KeyTypeDefaultDescription
pluginsobject
plugins.enabledboolPlugins are off by default; enabling them is an explicit root-equivalent trust decision.
plugins.directorystring/var/lib/featherquilld/plugins
plugins.strictbool
plugins.disabledList<string>[]Plugin IDs to skip even if present on disk.

remote

KeyTypeDefaultDescription
remoteobject
remote.panelstring
remote.config_pathstring/api/quilld-remote/configPanel route for runtime config YAML (/api/quilld-remote/config).
remote.health_pathstring/api/quilld-remote/healthPanel route for health JSON (/api/quilld-remote/health).
remote.app_namestringFeatherPanel
remote.timeoutint30Request timeout in seconds for panel API calls.
remote.retry_limitint10
remote.custom_headersDictionary<string, string>[]

sftp

KeyTypeDefaultDescription
sftpobject
sftp.enabledbooltrue
sftp.portint2222Listen port for the SFTP (SSH) server.
sftp.key_algorithmstringssh-ed25519
sftp.disable_password_authbool
sftp.directory_entry_limitint20_000Max entries returned by readdir; 0 means unlimited.
sftp.directory_entry_send_amountint500Entries sent per readdir call (chunk size).
sftp.limitsobject
sftp.limits.authentication_password_attemptsint3
sftp.limits.authentication_pubkey_attemptsint20
sftp.limits.authentication_cooldownint60Cooldown in seconds after max auth attempts (0 disables cooldown).
sftp.limits.max_connections_per_userint10
sftp.limits.max_channels_per_connectionint10
sftp.limits.max_handles_per_channelint32
sftp.limits.max_handles_totalint1024

ftp

KeyTypeDefaultDescription
ftpobject
ftp.enabledbool
ftp.portint21Listen port for classic FTP (control channel).
ftp.passive_hoststringPublic hostname/IP advertised in PASV responses. Falls back to bind address when empty.
ftp.passive_port_minint50_000
ftp.passive_port_maxint50_100
ftp.disable_password_authbool

docker

KeyTypeDefaultDescription
dockerobject
docker.networkobject
docker.network.interfacestring172.19.0.1
docker.network.dnsList<string>["1.1.1.1", "1.0.0.1"]
docker.network.namestringfeatherquilld_nw
docker.network.ispnbool
docker.network.ipv6booltrue
docker.network.driverstringbridge
docker.network.network_modestringfeatherquilld_nw
docker.network.is_internalbool
docker.network.enable_iccbooltrue
docker.network.network_mtuint1500
docker.network.interfacesobject
docker.domainnamestring
docker.registriesDictionary<string, object>[]
docker.tmpfs_sizeint100
docker.container_pid_limitint512
docker.installer_limitsobject
docker.installer_limits.memoryint6144
docker.installer_limits.cpuint200
docker.overheadobject
docker.overhead.overridebool
docker.overhead.default_multiplierdouble1.05
docker.overhead.multipliersDictionary<string, double>[]
docker.use_performant_inspectbooltrue
docker.runtime_reconciliationobject
docker.runtime_reconciliation.enabledbooltrue
docker.runtime_reconciliation.interval_secondsint30
docker.runtime_reconciliation.inspect_timeout_secondsint5
docker.runtime_reconciliation.stuck_stopping_secondsint720
docker.runtime_reconciliation.stuck_starting_secondsint300
docker.runtime_reconciliation.unresponsive_thresholdint2
docker.runtime_reconciliation.recovery_cooldown_secondsint300
docker.userns_modestring
docker.web_space_securityobjectLinux capability handling for WebSpace containers.
docker.web_space_security.drop_capabilitiesbooltrueDrop every capability except Capabilities. Switching this off leaves the container with the Docker engine default set - only for plates that need more.
docker.web_space_security.capabilitiesList<string>[.. RequiredByPackageInstalls]Capabilities kept while DropCapabilities is on. An empty list drops every capability: strongest hardening, but plates that install packages at boot (PHP) need a prebuilt image then.
docker.web_space_security.no_new_privilegesbooltrueSet no-new-privileges on the container.
docker.system_ipsList<string>[]
docker.enable_native_kvmbooltrue
docker.log_configobject
docker.log_config.typestringlocal
docker.socketstring/var/run/docker.sockDocker engine Unix socket (or unix:///path).

sentry

KeyTypeDefaultDescription
sentryobjectError reporting via GlitchTip (Sentry-compatible). Enabled by default; set Enabled to false or clear Dsn to disable.
sentry.enabledbooltrueWhen true and Dsn is set, the SDK is initialized at daemon start.
sentry.dsnstring(built-in GlitchTip DSN)
sentry.traces_sample_ratedouble0.01Fraction of transactions to send (0 to 1). Keep low in production.
Written from the source:FeatherQuilld/Utils/Config