version: '2'
services:
  database:
    image: mariadb:10.4
    restart: always
    volumes:
      - "/srv/pterodactyl/database:/var/lib/mysql"
    environment:
      ## Database settings
      ## change if you want it to be more secure.
      - "MYSQL_ROOT_PASSWORD=apassword"
      - "MYSQL_DATABASE=pterodb"
      - "MYSQL_USER=ptero"
      - "MYSQL_PASSWORD=pterodbpass"

  cache:
    image: redis:alpine
    restart: always

  panel:
    image: quay.io/pterodactyl/panel:latest
    restart: always
    ports:
      - "80:80"
      - "443:443"
    links:
      - database
      - cache
    volumes:
      - "/srv/pterodactyl/var/:/app/var/"
      - "/srv/pterodactyl/nginx/:/etc/nginx/conf.d/"
      - "/srv/pterodactyl/certs/:/etc/letsencrypt/"
      - "/srv/pterodactyl/logs/:/var/log/"
    environment:
      ## These are defaults and should be left alone
      - "APP_ENV=production"
      - "APP_DEBUG=false"
      - "APP_THEME=pterodactyl"
      - "APP_CLEAR_TASKLOG=720"
      - "APP_DELETE_MINUTES=10"
      - "APP_ENVIRONMENT_ONLY=false"
      - "QUEUE_HIGH=high"
      - "QUEUE_STANDARD=standard"
      - "QUEUE_LOW=low"
      ## Cache settings
      - "CACHE_DRIVER=redis"
      - "SESSION_DRIVER=redis"
      - "QUEUE_DRIVER=redis"
      - "REDIS_HOST=cache"
      - "REDIS_PASSWORD=null"
      - "REDIS_PORT=6379"
      ## Domain settings
      - "APP_URL=https://your.domain.here" ## if you are running this behind a reverse proxy with ssl app_url needs to be https still. 
      ## Timezone settings
      - "APP_TIMEZONE=UTC" ## http://php.net/manual/en/timezones.php
      ## Service egg settings
      - "APP_SERVICE_AUTHOR=noreply@your.domain.here" ## this is the email that gets put on eggs you create
      ## Database settings
      ## These can be left alone. Only change if you know what you are doing.
      - "DB_HOST=database" 
      - "DB_PORT=3306"
      - "DB_DATABASE=pterodb"
      - "DB_USERNAME=ptero"
      - "DB_PASSWORD=pterodbpass"
      ## Email settings
      - "MAIL_FROM=noreply@your.domain.here"
      - "MAIL_DRIVER=smtp"
      - "MAIL_HOST=mail"
      - "MAIL_PORT=1025"
      - "MAIL_USERNAME=''"
      - "MAIL_PASSWORD=''"
      - "MAIL_ENCRYPTION=true"
      ## certbot settings - Used to automatically generate ssl certs and 
      # - "LE_EMAIL=" ## uncomment if you are using ssl

networks:
  default:
    ipam:
      config:
        - subnet: 172.20.0.0/16