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 user 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/pyrohost/pyrodactyl:main restart: always ports: - '80:80' 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