Files
templates/blueprints/pterodactyl/docker-compose.yml
2025-04-09 22:10:04 -07:00

84 lines
2.1 KiB
YAML

version: '3.8'
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"
# 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:
- "pterodb:/var/lib/mysql"
environment:
MYSQL_DATABASE: "panel"
MYSQL_USER: "pterodactyl"
MYSQL_PASSWORD:
MYSQL_ROOT_PASSWORD:
cache:
image: redis:alpine
restart: always
panel:
image: ghcr.io/pterodactyl/panel:latest
restart: always
links:
- database
- cache
volumes:
- "pterovar/:/app/var/"
- "pteronginx:/etc/nginx/http.d/"
- "pterocerts/:/etc/letsencrypt/"
- "pterologs:/app/storage/logs"
environment:
APP_ENV: "production"
APP_ENVIRONMENT_ONLY: "false"
CACHE_DRIVER:
SESSION_DRIVER:
QUEUE_DRIVER:
REDIS_HOST:
DB_HOST:
DB_PORT:
MYSQL_PASSWORD:
MYSQL_ROOT_PASSWORD:
networks:
default:
ipam:
config:
- subnet: 172.20.0.0/16
volumes:
pterodb:
pterovar:
pteronginx:
pterocerts:
pterologs: