version: '3.7' services: # --- 1. MariaDB Database Service --- mariadb: build: ./docker/mariadb image: tuxinet/pterodactyl-mariadb:local container_name: pterodactyl_database restart: always environment: # SKAL UDSKIFTES! MYSQL_ROOT_PASSWORD: DitSuperSikreRootPassword MYSQL_DATABASE: panel MYSQL_USER: pterodactyl MYSQL_PASSWORD: DitSuperSikreDBPassword volumes: - /srv/pterodactyl/mysql/data:/var/lib/mysql ports: - "3306:3306" # --- 2. Pterodactyl Panel Service (Webserver/PHP) --- panel: build: ./docker/panel image: tuxinet/pterodactyl-panel:local container_name: pterodactyl_panel restart: always depends_on: - mariadb - redis environment: # Databaseforbindelse DB_HOST: mariadb DB_PORT: 3306 DB_DATABASE: panel DB_USERNAME: pterodactyl DB_PASSWORD: DitSuperSikreDBPassword # SKAL MATCHES # SMTP Email Konfiguration - SKAL UDFYLDES! MAIL_FROM_ADDRESS: "noreply@ditdomæne.dk" MAIL_FROM_NAME: "Pterodactyl Panel" MAIL_DRIVER: smtp MAIL_HOST: smtp.ditdomæne.dk # DIN SMTP HOST MAIL_PORT: 587 MAIL_USERNAME: "din-email-bruger" # DIN SMTP BRUGER MAIL_PASSWORD: "din-email-adgangskode" # DIN SMTP ADGANGSKODE MAIL_ENCRYPTION: tls # Generel App Konfiguration APP_URL: https://panel.ditdomæne.dk # SKAL REDIGERES APP_TIMEZONE: Europe/Copenhagen CACHE_DRIVER: redis SESSION_DRIVER: redis QUEUE_DRIVER: redis REDIS_HOST: redis REDIS_PORT: 6379 volumes: - /srv/pterodactyl/panel:/app # --- 3. Redis Service (Caching/Køer) --- redis: build: ./docker/redis image: tuxinet/pterodactyl-redis:local container_name: pterodactyl_redis restart: always # --- 4. Pterodactyl Wings Service (Game Server Daemon) --- wings: build: ./docker/wings image: tuxinet/pterodactyl-wings:local container_name: pterodactyl_wings restart: always cap_add: - NET_ADMIN - NET_RAW ports: # Wings API Port & SFTP Port (OBLIGATORISK) - "8080:8080" - "2022:2022" # Tilføj dine spilserver-porte her: # - "25565-25570:25565-25570" volumes: - /srv/pterodactyl/wings:/etc/pterodactyl - /var/run/docker.sock:/var/run/docker.sock:ro - /srv/pterodactyl/servers:/var/lib/pterodactyl/volumes # --- 5. Nginx Reverse Proxy Service (Webserver med SSL) --- nginx: build: ./docker/nginx image: tuxinet/pterodactyl-nginx:local container_name: pterodactyl_nginx restart: always ports: - "80:80" - "443:443" volumes: - /srv/pterodactyl/nginx/conf.d:/etc/nginx/conf.d:ro - /srv/pterodactyl/nginx/certbot/www:/var/www/certbot:ro - /srv/pterodactyl/nginx/certbot/conf:/etc/letsencrypt:ro depends_on: - panel # --- 6. Certbot Service (SSL/TLS) --- certbot: build: ./docker/certbot image: tuxinet/pterodactyl-certbot:local container_name: pterodactyl_certbot volumes: - /srv/pterodactyl/nginx/certbot/www:/var/www/certbot - /srv/pterodactyl/nginx/certbot/conf:/etc/letsencrypt entrypoint: /bin/sh -c "trap exit TERM; while :; do sleep 3600; done"