Skip to content

Configuration ​

This page covers all the configuration options for the Calagopus Wings Daemon, including how to set up and manage these configurations.

Core Configuration ​

debug ​

Enables debug mode for Wings. When enabled, detailed logs are printed for troubleshooting.

Default value:

yaml
debug: false

app_name ​

A human-readable name for this Wings instance used to identify the node in log outputs.

Default value:

yaml
app_name: Pterodactyl

uuid ​

Unique identifier for this Wings node.

Default value:

yaml
uuid: UUID

token_id / token ​

Authentication credentials used by Wings to validate requests from the Panel. Must be kept secret.

Default value:

yaml
token_id: TOKEN_ID
token: TOKEN

API Settings ​

api.host ​

The IP address Wings binds its internal API to. Alternatively, a Unix socket path can be specified here.

Default value:

yaml
host: 0.0.0.0

api.port ​

The port used by the Wings internal API.

Default value:

yaml
test

api.ssl.enabled ​

Determines whether HTTPS is enabled for the Wings API to ensure encrypted communication.

Default value:

yaml
enabled: false

api.ssl.cert ​

The absolute filesystem path to the SSL certificate file used for API encryption.

Default value:

yaml
cert: ''

api.ssl.key ​

The absolute filesystem path to the SSL private key file corresponding to the certificate.

Default value:

yaml
key: ''

api.redirects ​

Custom HTTP redirects for the API server (e.g. / → Panel URL).

Default value:

yaml
redirects: {}

api.disable_openapi_docs ​

Controls the availability of the /openapi.json endpoint.

Default value:

yaml
disable_openapi_docs: false

api.disable_remote_download ​

Whether to prevent servers from downloading files directly through remote URLs via the file manager or API.

Default value:

yaml
disable_remote_download: false

api.server_remote_download_limit ​

The maximum number of concurrent remote file pulls (downloads via URL) allowed for a single server.

Default value:

yaml
server_remote_download_limit: 3

api.remote_download_blocked_cidrs ​

A security list of CIDR ranges blocked for remote downloads to prevent SSRF (Server-Side Request Forgery) attacks.

Default value:

yaml
remote_download_blocked_cidrs:
- 127.0.0.0/8
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
- 169.254.0.0/16
- ::1
- fe80::/10
- fc00::/7

api.disable_directory_size ​

Whether to disable the calculation of total directory sizes in the file manager.

Default value:

yaml
disable_directory_size: false

api.directory_entry_limit ​

The maximum number of files/folders returned in a single /list-directory API call (0 = unlimited).

Default value:

yaml
directory_entry_limit: 10000

api.send_offline_server_logs ​

When enabled, Wings will transmit cached logs from an offline server immediately upon a websocket connection. This only works when containers are not removed on stop.

Default value:

yaml
send_offline_server_logs: false

api.file_search_threads ​

The number of concurrent worker threads Wings spawns to crawl and scan through server files during a search request.

Default value:

yaml
file_search_threads: 4

api.file_copy_threads ​

The number of concurrent worker threads allocated for duplicating files and directories within the file manager.

Default value:

yaml
file_copy_threads: 4

api.file_decompression_threads ​

The number of threads used for extracting archives. Applies to .tar.xz, .tar.lz, .zip, .ddup, .7z.

Default value:

yaml
file_decompression_threads: 2

api.file_compression_threads ​

The number of threads used for creating archives. Applies to .tar.xz, .tar.lz, .zip, .ddup, .7z.

Default value:

yaml
file_compression_threads: 2

api.upload_limit ​

The maximum file size defined in MiB, that can be uploaded through the web-based file manager.

Default value:

yaml
upload_limit: 10240

api.max_jwt_uses ​

The number of times a single JWT can be used for a download or backup before it is invalidated. This provides a security layer to prevent the reuse of temporary access tokens for file and backup downloads.

Default value:

yaml
max_jwt_uses: 5

api.trusted_proxies ​

A list of trusted IP addresses from proxy servers (like Cloudflare, NGINX, or a Load Balancer) that Wings uses to resolve the actual IP address of a user using the X-Forwarded-For or X-Real-IP header.

Default value:

yaml
trusted_proxies: []

System Configuration ​

system.root_directory ​

This is the root directory where Wings stores its own persistent data (mainly state of servers so it can restore them on restart).

Default value:

yaml
root_directory: /var/lib/pterodactyl

system.log_directory ​

This is the directory where Wings stores its logs.

Default value:

yaml
log_directory: /var/log/pterodactyl

system.vmount_directory ​

This is the directory where Wings stores virtual mounts for servers. Currently mainly used for spoofing hardware UUIDs for containers. This directory should not be located on a tmpfs (temporary filesystem).

Default value:

yaml
vmount_directory: /var/lib/pterodactyl/vmounts

system.data ​

This is the directory where Wings stores server data. This is the directory that gets bind-mounted to server containers and is where all server files are stored.

Default value:

yaml
data: /var/lib/pterodactyl/volumes

system.archive_directory ​

This is the directory where Wings stores server archives. This is 100% unused in current code and is simply there for compatibility with Pterodactyl's codebase; it may be used in the future.

Default value:

yaml
archive_directory: /var/lib/pterodactyl/archives

system.backup_directory ​

This is the directory where Wings stores server backups. This applies to backups using the Wings backup driver; btrfs and zfs backups also use this directory for snapshots.

Default value:

yaml
backup_directory: /var/lib/pterodactyl/backups

system.tmp_directory ​

This is the directory where Wings stores temporary files. This is used for various temporary files that Wings needs to create during its operation.

Default value:

yaml
tmp_directory: /tmp/pterodactyl

system.username ​

System user that Wings runs under. The operating system user account that the Wings process runs under on the host.

Default value:

yaml
username: pterodactyl

system.timezone ​

The timezone used by Wings (e.g., +00:00) for logs and containers. It is auto-detected from the host, falls back to UTC if detection fails, and is passed into all created containers.

Default value:

yaml
timezone: +00:00

system.user.rootless.enabled ​

Enables rootless container execution, allowing Wings to run containers without requiring root privileges on the host.

Default value:

yaml
enabled: false

system.user.rootless.container_uid ​

The UID used inside rootless containers. This is typically set to 0 so the internal container user maps correctly to the user running Wings.

Default value:

yaml
container_uid: 0

system.user.rootless.container_gid ​

The GID used inside rootless containers. This is typically set to 0 so the internal container group maps correctly to the group running Wings.

Default value:

yaml
container_gid: 0

system.user.uid ​

The Iser ID (UID) on the host system that Wings uses when managing server files.

Default value:

yaml
uid: 995

system.user.gid ​

The Group ID (GID) on the host system that Wings uses when managing server files.

Default value:

yaml
gid: 985

system.passwd.enabled ​

Whether to enable dynamic generation of /etc/passwd files inside containers to ensure proper username resolution.

Default value:

yaml
enabled: false

system.passwd.directory ​

The absolute filesystem path where Wings generates and stores the dynamic passwd files.

Default value:

yaml
directory: /run/wings/etc

system.machine_id.enabled ​

Controls whether a unique, generated machine-id file should be mounted into each server container.

Default value:

yaml
enabled: true

system.machine_id.directory ​

The directory on the host disk where Wings stores the generated machine-id files.

Default value:

yaml
directory: /run/wings/machine-id

system.disk_check_interval ​

Defines how often (in seconds) Wings performs incremental disk usage checks using inotify. These checks are lightweight and rely on filesystem events rather than scanning the entire disk.

Default value:

yaml
disk_check_interval: 150

system.full_disk_check_every ​

Number of inotify disk check intervals before performing a full disk scan. Periodic full scans prevent desync between the OS and Wings (e.g. 150s × 6 = 900s / 15 min).

Default value:

yaml
full_disk_check_every: 6

system.disk_check_use_inotify ​

Uses inotify for selective scanning to reduce overhead.

Default value:

yaml
disk_check_use_inotify: true

system.disk_limiter_mode ​

INFO

Switching between drivers may require additional manual work. Enabling the quota driver requires specific filesystem support (like prjquota on XFS or ext4) and manual mounting configurations on the host machine. If not configured correctly at the OS level, Wings will fail to start or manage disk limits.

The backend driver used to enforce storage quotas on servers. Available Options:

none, btrfs_subvolume, zfs_dataset, xfs_quota or the experimental fuse_quota

Default value:

yaml
disk_limiter_mode: none

system.activity_send_interval ​

The amount of time (in seconds) that elapses between sending aggregated server activity to the Panel. Wings collects activity over this period and sends it in a single batch.

Default value:

yaml
activity_send_interval: 60

system.activity_send_count ​

The number of activity events to send per batch to the Panel. This limits how many collected events are transmitted during each interval.

Default value:

yaml
activity_send_count: 100

system.check_permissions_on_boot ​

Whether to check and correct file permissions for a server whenever its process is booted. This can cause boot delays if the server has a large amount of files.

Default value:

yaml
check_permissions_on_boot: true

system.check_permissions_on_boot_threads ​

The number of concurrent threads used to verify and correct file permissions (chown) during the server startup process.

Default value:

yaml
check_permissions_on_boot_threads: 4

system.websocket_log_count ​

The number of lines to send when a user connects to the server websocket. This provides the initial "backlog" of console history visible in the Panel.

Default value:

yaml
websocket_log_count: 150

SFTP Configuration ​

system.sftp.enabled ​

Whether to enable the integrated SFTP (SSH) server.

Default value:

yaml
enabled: true

system.sftp.bind_address ​

The IP address that the internal SFTP/SSH server binds to.

Default value:

yaml
bind_address: 0.0.0.0

system.sftp.bind_port ​

The port that the internal SFTP/SSH server binds to for incoming connections.

Default value:

yaml
bind_port: 2022

system.sftp.read_only ​

Whether the SFTP server should operate in read-only mode. If enabled, users can view and download files, but cannot upload, delete, or modify any content.

Default value:

yaml
read_only: false

system.sftp.key_algorithm ​

The cryptographic algorithm used for generating the SSH host key.

Default value:

yaml
key_algorithm: ssh-ed25519

system.sftp.disable_password_auth ​

If enabled, only SSH key authentication is permitted for SFTP/SSH.

Default value:

yaml
disable_password_auth: false

system.sftp.directory_entry_limit ​

The maximum number of files and folders returned in a single directory listing. This prevents the SFTP server from hanging when opening folders with massive amounts of data.

Default value:

yaml
directory_entry_limit: 20000

system.sftp.directory_entry_send_amount ​

The number of directory entries to send in each response chunk to the SFTP client.

Default value:

yaml
directory_entry_send_amount: 500

system.sftp.limits.authentication_password_attempts ​

The maximum number of failed password attempts allowed within the cooldown window before the connection is dropped.

Default value:

yaml
authentication_password_attempts: 3

system.sftp.limits.authentication_pubkey_attempts ​

The maximum number of failed public key authentication attempts allowed within the cooldown window before the connection is dropped.

Default value:

yaml
authentication_pubkey_attempts: 20

system.sftp.limits.authentication_cooldown ​

Cooldown period in seconds once attempts are exceeded. This is a sliding window based on the most recent attempt. (3 failed attempts in 1min = 60s wait time from the last attempt)

Default value:

yaml
authentication_cooldown: 60

system.sftp.shell.enabled ​

Determines whether to allow server management and command-line access via the Wings remote shell over SSH.

Default value:

yaml
enabled: true

system.sftp.shell.cli.name ​

The name used for the internal CLI tool when accessing a server via the remote shell. This is the command users type (e.g., .wings help) to interact with the Wings shell helper.

Default value:

yaml
name: .wings

system.sftp.activity.log_logins ​

Whether successful SFTP logins are recorded and displayed in the server's activity log.

Default value:

yaml
log_logins: false

system.sftp.activity.log_file_reads ​

Whether reading or downloading files via SFTP is recorded in the server's activity log.

Default value:

yaml
log_file_reads: false

Crash Detection ​

system.crash_detection.enabled ​

Enables or disables the automatic crash detection system for all servers on the node.

Default value:

yaml
enabled: true

system.crash_detection.detect_clean_exit_as_crash ​

Whether to treat a "clean" exit (an exit code of 0) as a server crash.

Default value:

yaml
detect_clean_exit_as_crash: true

system.crash_detection.timeout ​

The amount of time in seconds, that Wings waits after a server process stops before determining it has crashed and attempting a restart.

Default value:

yaml
timeout: 60

Backups Configuration ​

system.backups.write_limit ​

The maximum disk write speed (in MiB/s) for creating backups. This prevents restoration processes from saturating the disk I/O and slowing down the rest of the node (0 = unlimited).

Default value:

yaml
write_limit: 0

system.backups.read_limit ​

The maximum disk read speed (in MiB/s) when restoring backups. Prevents backups from slowing down the rest of the node (0 = unlimited).

Default value:

yaml
read_limit: 0

system.backups.compression_level ​

Defines the CPU vs. compression ratio. Higher compression saves disk space but uses more CPU (best_speed = fastest, best_compression = smallest file). Available options:

best_speed, good_speed, good_compression, best_compression

Default value:

yaml
compression_level: best_speed

system.backups.mounting.enabled ​

Allows users to browse and interact with backup contents directly via the File Manager without needing to download them first.

Default value:

yaml
enabled: true

system.backups.mounting.path ​

The path prefix used for the virtual backup mount (e.g., .backups/<uuid>).

Default value:

yaml
path: .backups

system.backups.wings.create_threads ​

The number of CPU threads used when compressing local backups. This applies specifically to .tar.gz, .tar.xz, .tar.lz, .tar.zst, and .7z.

Default value:

yaml
create_threads: 4

system.backups.wings.restore_threads ​

The number of CPU threads used for extracting local backup archives. This applies specifically to .tar.xz, .tar.lz, .zip, .ddup and .7z.

Default value:

yaml
restore_threads: 4

system.backups.wings.archive_format ​

The compression format used for local backups. Available options:

tar, tar_gz, tar_xz, tar_lzip, tar_bz2, tar_lz4, tar_zstd, zip, seven_zip

Default value:

yaml
archive_format: tar_gz

system.backups.s3.create_threads ​

The amount of Threads used when creating a .gz S3 backup.

Default value:

yaml
create_threads: 4

system.backups.s3.part_upload_timeout ​

The maximum time (in seconds) to wait for a single part of a multipart upload. Default value:

yaml
part_upload_timeout: 7200

system.backups.s3.retry_limit ​

The number of retry attempts for each failed upload part.

Default value:

yaml
retry_limit: 10

system.backups.ddup_bak.create_threads ​

The number of threads used for ddup-bak backup creation.

Default value:

yaml
create_threads: 4

system.backups.ddup_bak.compression_format ​

The compression format used for each ddup-bak chunk. Available Options:

none, deflate, gzip, brotli

Default value:

yaml
compression_format: deflate

system.backups.restic.repository ​

INFO

All restic options only apply when using Pterodactyl. On Calagopus, restic is fully managed by the panel, and these local configuration settings are ignored.

The Restic repository path used for backups. This must already be initialized and can be overridden by the panel.

Default value:

yaml
repository: /var/lib/pterodactyl/backups/restic

system.backups.restic.password_file ​

The local path to the file containing the Restic repository password used for authentication. This can be overridden by the panel.

Default value:

yaml
password_file: /var/lib/pterodactyl/backups/restic_password

system.backups.restic.retry_lock_seconds ​

The amount of time (in seconds) Wings will wait if the Restic repository is locked by another process before failing the backup task. This can be overridden by the panel.

Default value:

yaml
retry_lock_seconds: 60

system.backups.restic.environment ​

The environment variables passed to the restic process for authentication and configuration. This can be overridden by the panel.

Default value:

yaml
environment: {}

system.backups.btrfs.restore_threads ​

The number of threads used for restoring BTRFS snapshots. The number of threads used for restoring BTRFS snapshots. 1 thread will be used per file, so 4 threads in restore_threads = a snapshot restore can process 4 files at once.

Default value:

yaml
restore_threads: 4

system.backups.btrfs.create_read_only ​

Whether to create read-only snapshots to prevent data modification after the backup is taken.

Default value:

yaml
create_read_only: true

system.backups.zfs.restore_threads ​

The number of threads used for restoring ZFS snapshots. 1 thread will be used per file, so 4 threads in restore_threads = a snapshot restore can process 4 files at once.

Default value:

yaml
restore_threads: 4

Transfers ​

system.transfers.download_limit ​

The download rate limit for transfers in MiB/s (0 = unlimited).

Default value:

yaml
download_limit: 0

Docker Configuration ​

docker.socket ​

The path to the Docker daemon socket or HTTP address.

Default value:

yaml
socket: /var/run/docker.sock

docker.server_name_in_container_name ​

Whether to include the server's name within the Docker container name for easier identification in tools like docker ps.

Default value:

yaml
server_name_in_container_name: false

docker.delete_container_on_stop ​

When enabled, containers are deleted as soon as a server is stops, is killed, or crashes. This significantly reduces long-term CPU/resource overhead.

Default value:

yaml
delete_container_on_stop: true

docker.network.interface ​

The specific IP interface used for the Docker network bridge.

Default value:

yaml
interface: 172.18.0.1

docker.network.disable_interface_binding ​

Whether to disable binding containers to a specific network interface on the host.

Default value:

yaml
disable_interface_binding: false

docker.network.dns ​

The list of DNS servers used by containers for name resolution.

Default value:

yaml
dns:
- 1.1.1.1
- 1.0.0.1

docker.network.name ​

The name of the Docker network used by Wings to manage container communication.

Default value:

yaml
name: pterodactyl_nw

docker.network.ispn ​

The flag that determines if the Docker network used by Wings is "internal", meaning it has no access to the external internet.

Default value:

yaml
ispn: false

docker.network.driver ​

The Docker network driver used for the container network (e.g. bridge).

Default value:

yaml
driver: bridge

docker.network.mode ​

The internal network mode identifier used by the Docker daemon.

Default value:

yaml
mode: pterodactyl_nw

docker.network.is_internal ​

Whether to mark the network as internal-only, restricting containers from accessing the outside internet.

Default value:

yaml
is_internal: false

docker.network.enable_icc ​

Enables Inter-Container Communication, allowing containers on the same network to talk to one another.

Default value:

yaml
enable_icc: true

docker.network.network_mtu ​

Sets the Maximum Transmission Unit (MTU) size for the container network.

Default value:

yaml
network_mtu: 1500

docker.network.interfaces.v4.subnet ​

The IPv4 subnet range used by the Docker network.

Default value:

yaml
subnet: 172.18.0.0/16

docker.network.interfaces.v4.gateway ​

The IPv4 gateway address for the Docker network. This will automatically be incremented if the address is already in use by another network on the host.

Default value:

yaml
gateway: 172.18.0.1

docker.network.interfaces.v6.subnet ​

The IPv6 subnet range used by the Docker network.

Default value:

yaml
subnet: fdba:17c8:6c94::/64

docker.network.interfaces.v6.gateway ​

The IPv6 gateway address for the Docker network.

Default value:

yaml
gateway: fdba:17c8:6c94::1011

docker.domainname ​

The domain name assigned to containers, useful for internal networking resolution.

Default value:

yaml
domainname: ''

docker.registries ​

The Docker registry authentication configurations used for pulling private images.

Default value:

yaml
registries: {}

docker.tmpfs_size ​

The size (in MiB) of the /tmp directory mounted as a tmpfs in containers.

Default value:

yaml
tmpfs_size: 100

docker.container_pid_limit ​

The maximum number of processes (PIDs) allowed to run simultaneously within a single container.

Default value:

yaml
container_pid_limit: 5120

docker.installer_limits.timeout ​

The maximum time (in seconds) allowed for an installation container to run before it is considered failed (0 = no limit).

Default value:

yaml
timeout: 1800

docker.installer_limits.memory ​

The memory limit (in MiB) for installer containers. This will be overwritten with the server's memory limit if it is higher.

Default value:

yaml
memory: 1024

docker.installer_limits.cpu ​

The CPU limit (%) for installer containers. This will be overwritten with the server's CPU limit if it is higher.

Default value:

yaml
cpu: 100

docker.overhead.override ​

The toggle to enable or disable custom memory overhead multipliers.

Default value:

yaml
override: false

docker.overhead.default_multiplier ​

The default multiplier applied to a server's memory limit to account for Docker container overhead.

Default value:

yaml
default_multiplier: 1.05

docker.overhead.multipliers ​

Map of memory thresholds to multipliers. A map of specific memory thresholds to custom multipliers, allowing for granular overhead control based on server size.

Default value:

yaml
multipliers: {}

docker.userns_mode ​

The user namespace mode for containers, used to isolate container users from host users for enhanced security.

Default value:

yaml
userns_mode: ''

docker.log_config.type ​

The Docker logging driver type used to capture and store container output.

Default value:

yaml
type: local

docker.log_config.config.compress ​

Whether to enable compression for stored log files to save disk space.

Default value:

yaml
compress: 'false'

docker.log_config.config.max-file ​

The maximum number of log files to retain before the oldest ones are rotated out.

Default value:

yaml
max-file: '1'

docker.log_config.config.max-size ​

The maximum size allowed for a single log file before it is rotated.

Default value:

yaml
max-size: 5m

docker.log_config.config.mode ​

The delivery mode for logs (e.g. non-blocking), determining how Docker handles log data when the buffer is full.

Default value:

yaml
mode: non-blocking

Backups & Throttles ​

throttles.enabled ​

The toggle to enable or disable console output throttling for all containers.

Default value:

yaml
enabled: true

throttles.lines ​

The maximum number of console lines stored in the buffer for each server.

Default value:

yaml
lines: 2000

throttles.line_reset_interval ​

The interval (in seconds) at which the console line counters are reset.

Default value:

yaml
line_reset_interval: 100

Remote Configuration ​

remote ​

The URL of the Panel instance that this Wings node communicates with.

Default value:

yaml
remote: https://panel.example.com

remote_headers ​

Custom HTTP headers that Wings includes in every outgoing HTTP request to the Panel.

Default value:

yaml
remote_headers: {}

remote_query.timeout ​

The maximum number of retries for critical API requests. This uses an exponential backoff strategy.

Default value:

yaml
timeout: 30

remote_query.boot_servers_per_page ​

The number of servers Wings requests from the Panel API in a single batch during the initial boot sequence.

Default value:

yaml
boot_servers_per_page: 50

remote_query.retry_limit ​

The maximum number of times Wings will attempt to re-send a failed request to the Panel before giving up.

Default value:

yaml
retry_limit: 10

Security / Behaviour Flags ​

allowed_mounts ​

A security whitelist defining which specific directories or files on the host system are permitted to be mounted into a server's Docker container.

Default value:

yaml
allowed_mounts: []

allowed_origins ​

A list of specific URLs (origins) that are permitted to make cross-origin requests to the Wings API. By default, the URL defined in the remote: setting is the only allowed origin.

Default value:

yaml
allowed_origins: []

allow_cors_private_network ​

Determines whether Wings permits Cross-Origin Resource Sharing (CORS) requests originating from private network addresses.

Default value:

yaml
allow_cors_private_network: false

ignore_panel_config_updates ​

When set to true, Wings will ignore configuration update commands sent by the Panel.

Default value:

yaml
ignore_panel_config_updates: false

ignore_panel_wings_upgrades ​

When set to true, Wings will ignore remote upgrade commands sent by the Panel.

Default value:

yaml
ignore_panel_wings_upgrades: false

SSL Configuration ​

The Wings configuration file is located at /etc/pterodactyl/config.yml. To enable SSL for your node, you will need to modify the api section, specifically lines 10, 11, and 12.

INFO

This guide assumes you have already generated your certificates using Certbot. Replacing <domain> with your actual node domain will point Wings to the correct Let's Encrypt directory.

Enabling SSL ​

By default, the SSL setting is disabled. To secure your Wings communication, change enabled: false to true and provide the paths to your certificate files.

If you are using Let's Encrypt, your configuration block should be updated to look like this:

yaml
api:
  host: 0.0.0.0
  port: 8080
  ssl:
    enabled: true
    cert: /etc/letsencrypt/live/<domain>/fullchain.pem
    key: /etc/letsencrypt/live/<domain>/privkey.pem

Applying Changes ​

After saving your changes to config.yml, you must restart the Wings service for the new SSL configuration to take effect:

bash
sudo systemctl restart wings

Example Config ​

The following is an example of a standard generated config.yml for Wings with standard values:

yaml
debug: false
app_name: Pterodactyl
uuid: UUID
token_id: TOKEN_ID
token: TOKEN
api:
  host: 0.0.0.0
  port: 8080
  ssl:
    enabled: false
    cert: ''
    key: ''
  redirects: {}
  disable_openapi_docs: false
  disable_remote_download: false
  server_remote_download_limit: 3
  remote_download_blocked_cidrs:
  - 127.0.0.0/8
  - 10.0.0.0/8
  - 172.16.0.0/12
  - 192.168.0.0/16
  - 169.254.0.0/16
  - ::1
  - fe80::/10
  - fc00::/7
  disable_directory_size: false
  directory_entry_limit: 10000
  send_offline_server_logs: false
  file_search_threads: 4
  file_copy_threads: 4
  file_decompression_threads: 2
  file_compression_threads: 2
  upload_limit: 10240
  max_jwt_uses: 5
  trusted_proxies: []
system:
  root_directory: /var/lib/pterodactyl
  log_directory: /var/log/pterodactyl
  vmount_directory: /var/lib/pterodactyl/vmounts
  data: /var/lib/pterodactyl/volumes
  archive_directory: /var/lib/pterodactyl/archives
  backup_directory: /var/lib/pterodactyl/backups
  tmp_directory: /tmp/pterodactyl
  username: pterodactyl
  timezone: +00:00
  user:
    rootless:
      enabled: false
      container_uid: 0
      container_gid: 0
    uid: 995
    gid: 985
  passwd:
    enabled: false
    directory: /run/wings/etc
  machine_id:
    enabled: true
    directory: /run/wings/machine-id
  disk_check_interval: 150
  full_disk_check_every: 6
  disk_check_use_inotify: true
  disk_limiter_mode: none
  activity_send_interval: 60
  activity_send_count: 100
  check_permissions_on_boot: true
  check_permissions_on_boot_threads: 4
  websocket_log_count: 150
  sftp:
    enabled: true
    bind_address: 0.0.0.0
    bind_port: 2022
    read_only: false
    key_algorithm: ssh-ed25519
    disable_password_auth: false
    directory_entry_limit: 20000
    directory_entry_send_amount: 500
    limits:
      authentication_password_attempts: 3
      authentication_pubkey_attempts: 20
      authentication_cooldown: 60
    shell:
      enabled: true
      cli:
        name: .wings
    activity:
      log_logins: false
      log_file_reads: false
  crash_detection:
    enabled: true
    detect_clean_exit_as_crash: true
    timeout: 60
  backups:
    write_limit: 0
    read_limit: 0
    compression_level: best_speed
    mounting:
      enabled: true
      path: .backups
    wings:
      create_threads: 4
      restore_threads: 4
      archive_format: tar_gz
    s3:
      create_threads: 4
      part_upload_timeout: 7200
      retry_limit: 10
    ddup_bak:
      create_threads: 4
      compression_format: deflate
    restic:
      repository: /var/lib/pterodactyl/backups/restic
      password_file: /var/lib/pterodactyl/backups/restic_password
      retry_lock_seconds: 60
      environment: {}
    btrfs:
      restore_threads: 4
      create_read_only: true
    zfs:
      restore_threads: 4
  transfers:
    download_limit: 0
docker:
  socket: /var/run/docker.sock
  server_name_in_container_name: false
  delete_container_on_stop: true
  network:
    interface: 172.18.0.1
    disable_interface_binding: false
    dns:
    - 1.1.1.1
    - 1.0.0.1
    name: pterodactyl_nw
    ispn: false
    driver: bridge
    mode: pterodactyl_nw
    is_internal: false
    enable_icc: true
    network_mtu: 1500
    interfaces:
      v4:
        subnet: 172.18.0.0/16
        gateway: 172.18.0.1
      v6:
        subnet: fdba:17c8:6c94::/64
        gateway: fdba:17c8:6c94::1011
  domainname: ''
  registries: {}
  tmpfs_size: 100
  container_pid_limit: 5120
  installer_limits:
    timeout: 1800
    memory: 1024
    cpu: 100
  overhead:
    override: false
    default_multiplier: 1.05
    multipliers: {}
  userns_mode: ''
  log_config:
    type: local
    config:
      compress: 'false'
      max-file: '1'
      max-size: 5m
      mode: non-blocking
throttles:
  enabled: true
  lines: 2000
  line_reset_interval: 100
remote: https://panel.example.com
remote_headers: {}
remote_query:
  timeout: 30
  boot_servers_per_page: 50
  retry_limit: 10
allowed_mounts: []
allowed_origins: []
allow_cors_private_network: false
ignore_panel_config_updates: false
ignore_panel_wings_upgrades: false