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:
mariadb:
image: mariadb:10.5
image: 'mariadb:11.8'
healthcheck:
test:
["CMD-SHELL", "healthcheck.sh --connect --innodb_initialized || exit 1"]
- CMD-SHELL
- 'healthcheck.sh --connect --innodb_initialized || exit 1'
start_period: 10s
interval: 10s
timeout: 1s
@ -21,26 +22,27 @@ services:
- MYSQL_USER=$SERVICE_USER_MYSQL
- MYSQL_PASSWORD=$SERVICE_PASSWORD_MYSQL
volumes:
- pterodactyl-db:/var/lib/mysql
- 'pterodactyl-db:/var/lib/mysql'
redis:
image: redis:alpine
image: 'redis:alpine'
healthcheck:
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
test:
- CMD-SHELL
- 'redis-cli ping || exit 1'
interval: 10s
timeout: 1s
retries: 3
pterodactyl:
image: ghcr.io/pterodactyl/panel:latest
image: 'ghcr.io/pterodactyl/panel:v1.11.11'
volumes:
- "panel-var:/app/var/"
- "panel-nginx:/etc/nginx/http.d/"
- "panel-certs:/etc/letsencrypt/"
- type: bind
- 'panel-var:/app/var/'
- 'panel-nginx:/etc/nginx/http.d/'
- 'panel-certs:/etc/letsencrypt/'
-
type: bind
source: ./etc/entrypoint.sh
target: /entrypoint.sh
mode: "0755"
mode: '0755'
content: |
#!/bin/sh
set -e
@ -65,26 +67,31 @@ services:
fi
exec supervisord --nodaemon
command: ["/entrypoint.sh"]
command:
- /entrypoint.sh
healthcheck:
test: ["CMD-SHELL", "curl -sf http://localhost:80 || exit 1"]
test:
- CMD-SHELL
- 'curl -sf http://localhost:80 || exit 1'
interval: 10s
timeout: 1s
retries: 3
environment:
- HASHIDS_SALT=$SERVICE_PASSWORD_HASHIDS
- HASHIDS_LENGTH=8
- SERVICE_URL_PTERODACTYL_80
- ADMIN_EMAIL=${ADMIN_EMAIL:-admin@example.com}
- ADMIN_USERNAME=${SERVICE_USER_ADMIN}
- ADMIN_FIRSTNAME=${ADMIN_FIRSTNAME:-Admin}
- ADMIN_LASTNAME=${ADMIN_LASTNAME:-User}
- ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN}
- PTERODACTYL_HTTPS=${PTERODACTYL_HTTPS:-false}
- 'ADMIN_EMAIL=${ADMIN_EMAIL:-admin@example.com}'
- 'ADMIN_USERNAME=${SERVICE_USER_ADMIN}'
- 'ADMIN_FIRSTNAME=${ADMIN_FIRSTNAME:-Admin}'
- 'ADMIN_LASTNAME=${ADMIN_LASTNAME:-User}'
- 'ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN}'
- 'PTERODACTYL_HTTPS=${PTERODACTYL_HTTPS:-false}'
- APP_ENV=production
- APP_ENVIRONMENT_ONLY=false
- APP_URL=$SERVICE_URL_PTERODACTYL
- APP_TIMEZONE=${TIMEZONE:-UTC}
- APP_SERVICE_AUTHOR=${APP_SERVICE_AUTHOR:-author@example.com}
- LOG_LEVEL=${LOG_LEVEL:-debug}
- 'APP_TIMEZONE=${TIMEZONE:-UTC}'
- 'APP_SERVICE_AUTHOR=${APP_SERVICE_AUTHOR:-author@example.com}'
- 'LOG_LEVEL=${LOG_LEVEL:-debug}'
- CACHE_DRIVER=redis
- SESSION_DRIVER=redis
- QUEUE_DRIVER=redis
@ -101,41 +108,125 @@ services:
- MAIL_USERNAME=$MAIL_USERNAME
- MAIL_PASSWORD=$MAIL_PASSWORD
- MAIL_ENCRYPTION=$MAIL_ENCRYPTION
wings:
image: "ghcr.io/pterodactyl/wings:latest"
image: 'ghcr.io/pterodactyl/wings:v1.11.13'
restart: unless-stopped
environment:
- SERVICE_URL_WINGS_8443
- "TZ=${TIMEZONE:-UTC}"
- WINGS_USERNAME=$SERVICE_USER_WINGS
- 'TZ=${TIMEZONE:-UTC}'
- WINGS_USERNAME=pterodactyl
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "/var/lib/docker/containers/:/var/lib/docker/containers/"
- "/var/lib/pterodactyl/volumes:/var/lib/pterodactyl/volumes"
- "/tmp/pterodactyl:/tmp/pterodactyl"
- wings_lib:/var/lib/pterodactyl/
- wings_logs:/var/log/pterodactyl/
- type: bind
- '/var/run/docker.sock:/var/run/docker.sock'
- '/var/lib/docker/containers/:/var/lib/docker/containers/'
- '/var/lib/pterodactyl/:/var/lib/pterodactyl/'
- '/tmp/pterodactyl/:/tmp/pterodactyl/'
- 'wings-logs:/var/log/pterodactyl/'
-
type: bind
source: ./etc/config.yml
target: /etc/pterodactyl/config.yml
content: |
content: |-
debug: false
uuid: ReplaceConfig
token_id: ReplaceConfig
token: ReplaceConfig
uuid: REPLACE FROM CONFIG #example: abc9abc8-abc7-abc6-abc5-abc4abc3abc2
token_id: REPLACE FROM CONFIG #example: abc1abc2abc3abc4
token: REPLACE FROM CONFIG #example: abc1abc2abc3abc4abc5abc6abc7abc8abc9abc10abc11abc12abc13abc14abc15abc16
api:
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:
enabled: false
cert: ReplaceConfig
key: ReplaceConfig
cert: REPLACE FROM CONFIG #example: /etc/letsencrypt/live/wings-abcabcabcabcabc.example.com/fullchain.pem
key: REPLACE FROM CONFIG #example: /etc/letsencrypt/live/wings-abcabcabcabcabc.example.com/privkey.pem
disable_remote_download: false
upload_limit: 100
trusted_proxies: []
system:
root_directory: /var/lib/pterodactyl
log_directory: /var/log/pterodactyl
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:
bind_address: 0.0.0.0
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: []
remote: ''
ports:
- '2022:2022'
allowed_origins:
- http://pterodactyl:80
- PANEL DOMAIN # example: https://pterodactyl-abcabcabcabcavc.example.com
allow_cors_private_network: false
ignore_panel_config_updates: false