Skip to content

Instantly share code, notes, and snippets.

@zefanjajobse
Last active June 21, 2025 11:15
Show Gist options
  • Select an option

  • Save zefanjajobse/dc006ff90dd9be7881bb852fdcaf9bcf to your computer and use it in GitHub Desktop.

Select an option

Save zefanjajobse/dc006ff90dd9be7881bb852fdcaf9bcf to your computer and use it in GitHub Desktop.
pterodactyl on a UGREEN NAS
x-common:
database:
&db-environment
# Do not remove the "&db-password" from the end of the line below, it is important
# for Panel functionality.
MYSQL_PASSWORD: &db-password "admin"
MYSQL_ROOT_PASSWORD: "admin"
panel:
&panel-environment
APP_URL: "https://DOMAIN"
# A list of valid timezones can be found here: http://php.net/manual/en/timezones.php
APP_TIMEZONE: "UTC"
APP_SERVICE_AUTHOR: "user@example.com"
mail:
&mail-environment
MAIL_FROM: "noreply@example.com"
MAIL_DRIVER: "smtp"
MAIL_HOST: "mail"
MAIL_PORT: "1025"
MAIL_USERNAME: ""
MAIL_PASSWORD: ""
MAIL_ENCRYPTION: "true"
wings:
&wings
WINGS_DOMAIN: DOMAIN
services:
database:
image: library/mysql:8.0
restart: always
command: --default-authentication-plugin=mysql_native_password
volumes:
- "./pterodactyl/database:/var/lib/mysql"
environment:
<<: *db-environment
MYSQL_DATABASE: "panel"
MYSQL_USER: "pterodactyl"
cache:
image: redis:alpine
restart: always
panel:
image: ghcr.io/pterodactyl/panel:v1.11.11
restart: always
ports:
- "8080:80"
# - "10443:443"
volumes:
- "./pterodactyl/panel/var/:/app/var/"
- "./pterodactyl/panel/logs/:/app/storage/logs"
- "./pterodactyl/panel/nginx/:/etc/nginx/conf.d/"
environment:
<<: [*panel-environment, *mail-environment]
DB_PASSWORD: *db-password
APP_ENV: "production"
APP_ENVIRONMENT_ONLY: "false"
CACHE_DRIVER: "redis"
SESSION_DRIVER: "redis"
QUEUE_DRIVER: "redis"
REDIS_HOST: "cache"
DB_HOST: "database"
TRUSTED_PROXIES: "*"
wings:
image: ghcr.io/pterodactyl/wings:v1.11.13
restart: always
ports:
- "2022:2022"
- "10443:443"
tty: true
environment:
<<: *wings
COMPOSE_PROJECT_NAME: pterodactyl
TZ: "UTC"
WINGS_UID: 988
WINGS_GID: 988
WINGS_USERNAME: pterodactyl
SERVERS_DATA_FULL_PATH: /volume1/docker/panel/pterodactyl/wings/data
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "/var/lib/docker/containers/:/var/lib/docker/containers/"
- "/tmp/pterodactyl:/tmp/pterodactyl"
- "./pterodactyl/wings/etc/:/etc/pterodactyl/"
- "./pterodactyl/wings/logs:/var/log/pterodactyl/"
- "/volume1/docker/panel/pterodactyl/wings/data:/volume1/docker/panel/pterodactyl/wings/data"

pterodactyl on a UGREEN NAS

add the docker compose file (with your changes) within the docker app

Create a user by connecting to the pterodactyl's panel container with /bin/sh as command and running php artisan p:user:make

Use a reverse proxy to forward: 10443 to node.6DOMAIN:443 8080 to panel.DOMAIN:443

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment