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" panel: &panel-environment # This URL should be the URL that your reverse proxy routes to the panel server APP_URL: "https://panel.${DDN}" # A list of valid timezones can be found here: http://php.net/manual/en/timezones.php APP_TIMEZONE: "Europe/Brussels" APP_SERVICE_AUTHOR: "noreply@example.com" TRUSTED_PROXIES: "192.168.50.3/24,173.245.48.0/20,103.21.244.0/22,103.22.200.0/22,103.31.4.0/22,141.101.64.0/18,108.162.192.0/18,190.93.240.0/20,188.114.96.0/20,197.234.240.0/22,198.41.128.0/17,162.158.0.0/15,104.16.0.0/13,104.24.0.0/14,172.64.0.0/13,131.0.72.0/22" # Set this to your proxy IP, currently added are all cloudflare proxies # 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: "pterodactyl@${DDN}" MAIL_DRIVER: "smtp" MAIL_HOST: "smtp.eu.mailgun.org" MAIL_PORT: "587" MAIL_USERNAME: "pterodactyl@${DDN}" MAIL_PASSWORD: "<pterodactyl-mailgun-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" networks: - default cache: image: redis:alpine restart: always networks: - default panel: image: ghcr.io/pterodactyl/panel:latest restart: always ports: - "80:80" - "443:443" networks: - default - proxy 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_HOST: "database" DB_PORT: "3306" labels: # default traefik labels - traefik.enable=true - traefik.http.services.pterodactyl.loadbalancer.server.port=80 - traefik.http.routers.pterodactyl.entrypoints=https - traefik.http.routers.pterodactyl.rule=Host(`panel.${DDN}`) #- traefik.http.routers.pterodactyl.middlewares=authentik@file,corsALL@file # watchtower - com.centurylinklabs.watchtower.enable=truenetworks: default: driver: bridge proxy: external: true