Files
pyrodactyl/docker-compose.example.yml
2025-12-26 17:19:07 -08:00

81 lines
2.6 KiB
YAML

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 'CHANGE_ME'
MYSQL_ROOT_PASSWORD: 'CHANGE_ME_TOO'
panel: &panel-environment
APP_URL: 'http://example.com'
# A list of valid timezones can be found here: http://php.net/manual/en/timezones.php
APP_TIMEZONE: 'UTC'
APP_SERVICE_AUTHOR: 'noreply@example.com'
DB_USERNAME: "pterodactyl"
# DB_PASSWORD: "Uncomment this to use your own password"
# Uncomment the line below and set to a non-empty value if you want to use Let's Encrypt
# to generate an SSL certificate for the Panel.
# LE_EMAIL: ""
mail: &mail-environment
MAIL_FROM: 'noreply@example.com'
MAIL_DRIVER: 'smtp'
MAIL_HOST: 'mail'
MAIL_PORT: '1025'
MAIL_USERNAME: ''
MAIL_PASSWORD: ''
MAIL_ENCRYPTION: 'true'
#
# ------------------------------------------------------------------------------------------
# DANGER ZONE BELOW
#
# The remainder of this file likely does not need to be changed. Please only make modifications
# below if you understand what you are doing.
#
services:
database:
image: mariadb:10.5
restart: always
command: --default-authentication-plugin=mysql_native_password
volumes:
- '/srv/pterodactyl/database:/var/lib/mysql'
environment:
<<: *db-environment
MYSQL_DATABASE: 'panel'
MYSQL_USER: 'pterodactyl'
cache:
image: redis:alpine
restart: always
panel:
image: ghcr.io/pyrodactyl-oss/pyrodactyl:latest
restart: always
ports:
- '80:80'
- '443:443'
links:
- database
- cache
volumes:
- '/srv/pterodactyl/var/:/app/var/'
- '/srv/pterodactyl/nginx/:/etc/nginx/http.d/'
- '/srv/pterodactyl/certs/:/etc/letsencrypt/'
- '/srv/pterodactyl/logs/:/app/storage/logs'
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_CONNECTION: 'mariadb'
DB_HOST: 'database'
DB_PORT: '3306'
HASHIDS_LENGTH: 8
networks:
default:
ipam:
config:
- subnet: 172.20.0.0/16