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: