Merge pull request #6976 from majcek210/v4.x

Fix and update the "pterodactly with wings" template.
This commit is contained in:
Andras Bacsai 2025-10-28 10:30:34 +01:00 committed by GitHub
commit 81529e9274
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 5598 additions and 8754 deletions

14171
CHANGELOG.md

File diff suppressed because it is too large Load diff

View file

@ -7,10 +7,11 @@
services: services:
mariadb: mariadb:
image: mariadb:10.5 image: 'mariadb:11.8'
healthcheck: healthcheck:
test: test:
["CMD-SHELL", "healthcheck.sh --connect --innodb_initialized || exit 1"] - CMD-SHELL
- 'healthcheck.sh --connect --innodb_initialized || exit 1'
start_period: 10s start_period: 10s
interval: 10s interval: 10s
timeout: 1s timeout: 1s
@ -21,26 +22,27 @@ services:
- MYSQL_USER=$SERVICE_USER_MYSQL - MYSQL_USER=$SERVICE_USER_MYSQL
- MYSQL_PASSWORD=$SERVICE_PASSWORD_MYSQL - MYSQL_PASSWORD=$SERVICE_PASSWORD_MYSQL
volumes: volumes:
- pterodactyl-db:/var/lib/mysql - 'pterodactyl-db:/var/lib/mysql'
redis: redis:
image: redis:alpine image: 'redis:alpine'
healthcheck: healthcheck:
test: ["CMD-SHELL", "redis-cli ping || exit 1"] test:
- CMD-SHELL
- 'redis-cli ping || exit 1'
interval: 10s interval: 10s
timeout: 1s timeout: 1s
retries: 3 retries: 3
pterodactyl: pterodactyl:
image: ghcr.io/pterodactyl/panel:latest image: 'ghcr.io/pterodactyl/panel:v1.11.11'
volumes: volumes:
- "panel-var:/app/var/" - 'panel-var:/app/var/'
- "panel-nginx:/etc/nginx/http.d/" - 'panel-nginx:/etc/nginx/http.d/'
- "panel-certs:/etc/letsencrypt/" - 'panel-certs:/etc/letsencrypt/'
- type: bind -
type: bind
source: ./etc/entrypoint.sh source: ./etc/entrypoint.sh
target: /entrypoint.sh target: /entrypoint.sh
mode: "0755" mode: '0755'
content: | content: |
#!/bin/sh #!/bin/sh
set -e set -e
@ -65,26 +67,31 @@ services:
fi fi
exec supervisord --nodaemon exec supervisord --nodaemon
command: ["/entrypoint.sh"] command:
- /entrypoint.sh
healthcheck: healthcheck:
test: ["CMD-SHELL", "curl -sf http://localhost:80 || exit 1"] test:
- CMD-SHELL
- 'curl -sf http://localhost:80 || exit 1'
interval: 10s interval: 10s
timeout: 1s timeout: 1s
retries: 3 retries: 3
environment: environment:
- HASHIDS_SALT=$SERVICE_PASSWORD_HASHIDS
- HASHIDS_LENGTH=8
- SERVICE_URL_PTERODACTYL_80 - SERVICE_URL_PTERODACTYL_80
- ADMIN_EMAIL=${ADMIN_EMAIL:-admin@example.com} - 'ADMIN_EMAIL=${ADMIN_EMAIL:-admin@example.com}'
- ADMIN_USERNAME=${SERVICE_USER_ADMIN} - 'ADMIN_USERNAME=${SERVICE_USER_ADMIN}'
- ADMIN_FIRSTNAME=${ADMIN_FIRSTNAME:-Admin} - 'ADMIN_FIRSTNAME=${ADMIN_FIRSTNAME:-Admin}'
- ADMIN_LASTNAME=${ADMIN_LASTNAME:-User} - 'ADMIN_LASTNAME=${ADMIN_LASTNAME:-User}'
- ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN} - 'ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN}'
- PTERODACTYL_HTTPS=${PTERODACTYL_HTTPS:-false} - 'PTERODACTYL_HTTPS=${PTERODACTYL_HTTPS:-false}'
- APP_ENV=production - APP_ENV=production
- APP_ENVIRONMENT_ONLY=false - APP_ENVIRONMENT_ONLY=false
- APP_URL=$SERVICE_URL_PTERODACTYL - APP_URL=$SERVICE_URL_PTERODACTYL
- APP_TIMEZONE=${TIMEZONE:-UTC} - 'APP_TIMEZONE=${TIMEZONE:-UTC}'
- APP_SERVICE_AUTHOR=${APP_SERVICE_AUTHOR:-author@example.com} - 'APP_SERVICE_AUTHOR=${APP_SERVICE_AUTHOR:-author@example.com}'
- LOG_LEVEL=${LOG_LEVEL:-debug} - 'LOG_LEVEL=${LOG_LEVEL:-debug}'
- CACHE_DRIVER=redis - CACHE_DRIVER=redis
- SESSION_DRIVER=redis - SESSION_DRIVER=redis
- QUEUE_DRIVER=redis - QUEUE_DRIVER=redis
@ -101,41 +108,125 @@ services:
- MAIL_USERNAME=$MAIL_USERNAME - MAIL_USERNAME=$MAIL_USERNAME
- MAIL_PASSWORD=$MAIL_PASSWORD - MAIL_PASSWORD=$MAIL_PASSWORD
- MAIL_ENCRYPTION=$MAIL_ENCRYPTION - MAIL_ENCRYPTION=$MAIL_ENCRYPTION
wings: wings:
image: "ghcr.io/pterodactyl/wings:latest" image: 'ghcr.io/pterodactyl/wings:v1.11.13'
restart: unless-stopped
environment: environment:
- SERVICE_URL_WINGS_8443 - SERVICE_URL_WINGS_8443
- "TZ=${TIMEZONE:-UTC}" - 'TZ=${TIMEZONE:-UTC}'
- WINGS_USERNAME=$SERVICE_USER_WINGS - WINGS_USERNAME=pterodactyl
volumes: volumes:
- "/var/run/docker.sock:/var/run/docker.sock" - '/var/run/docker.sock:/var/run/docker.sock'
- "/var/lib/docker/containers/:/var/lib/docker/containers/" - '/var/lib/docker/containers/:/var/lib/docker/containers/'
- "/var/lib/pterodactyl/volumes:/var/lib/pterodactyl/volumes" - '/var/lib/pterodactyl/:/var/lib/pterodactyl/'
- "/tmp/pterodactyl:/tmp/pterodactyl" - '/tmp/pterodactyl/:/tmp/pterodactyl/'
- wings_lib:/var/lib/pterodactyl/ - 'wings-logs:/var/log/pterodactyl/'
- wings_logs:/var/log/pterodactyl/ -
- type: bind type: bind
source: ./etc/config.yml source: ./etc/config.yml
target: /etc/pterodactyl/config.yml target: /etc/pterodactyl/config.yml
content: | content: |-
debug: false debug: false
uuid: ReplaceConfig uuid: REPLACE FROM CONFIG #example: abc9abc8-abc7-abc6-abc5-abc4abc3abc2
token_id: ReplaceConfig token_id: REPLACE FROM CONFIG #example: abc1abc2abc3abc4
token: ReplaceConfig token: REPLACE FROM CONFIG #example: abc1abc2abc3abc4abc5abc6abc7abc8abc9abc10abc11abc12abc13abc14abc15abc16
api: api:
host: 0.0.0.0 host: 0.0.0.0
port: 8443 # Warning, panel must have 443 as daemon port, while here it should should be 8443, FQDN in Coolify for this service should be https://*:8443 port: 8443 # use port 443 IN THE PANEL during node setup
ssl: ssl:
enabled: false enabled: false
cert: ReplaceConfig cert: REPLACE FROM CONFIG #example: /etc/letsencrypt/live/wings-abcabcabcabcabc.example.com/fullchain.pem
key: ReplaceConfig key: REPLACE FROM CONFIG #example: /etc/letsencrypt/live/wings-abcabcabcabcabc.example.com/privkey.pem
disable_remote_download: false
upload_limit: 100 upload_limit: 100
trusted_proxies: []
system: system:
root_directory: /var/lib/pterodactyl
log_directory: /var/log/pterodactyl
data: /var/lib/pterodactyl/volumes data: /var/lib/pterodactyl/volumes
archive_directory: /var/lib/pterodactyl/archives
backup_directory: /var/lib/pterodactyl/backups
tmp_directory: /tmp/pterodactyl
username: pterodactyl
timezone: UTC
user:
rootless:
enabled: false
container_uid: 0
container_gid: 0
uid: 988
gid: 988
disk_check_interval: 150
activity_send_interval: 60
activity_send_count: 100
check_permissions_on_boot: true
enable_log_rotate: true
websocket_log_count: 150
sftp: sftp:
bind_address: 0.0.0.0
bind_port: 2022 bind_port: 2022
read_only: false
crash_detection:
enabled: true
detect_clean_exit_as_crash: true
timeout: 60
backups:
write_limit: 0
compression_level: best_speed
transfers:
download_limit: 0
openat_mode: auto
docker:
network:
interface: 172.28.0.1
dns:
- 1.1.1.1
- 1.0.0.1
name: pterodactyl_nw
ispn: false
driver: bridge
network_mode: pterodactyl_nw
is_internal: false
enable_icc: true
network_mtu: 1500
interfaces:
v4:
subnet: 172.28.0.0/16
gateway: 172.28.0.1
v6:
subnet: fdba:17c8:6c94::/64
gateway: fdba:17c8:6c94::1011
domainname: ""
registries: {}
tmpfs_size: 100
container_pid_limit: 512
installer_limits:
memory: 1024
cpu: 100
overhead:
override: false
default_multiplier: 1.05
multipliers: {}
use_performant_inspect: true
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: http://pterodactyl:80
remote_query:
timeout: 30
boot_servers_per_page: 50
allowed_mounts: [] allowed_mounts: []
remote: '' allowed_origins:
ports: - http://pterodactyl:80
- '2022:2022' - PANEL DOMAIN # example: https://pterodactyl-abcabcabcabcavc.example.com
allow_cors_private_network: false
ignore_panel_config_updates: false