Files
Pterodactyl/docker-compose.yml
2025-11-21 19:20:26 +00:00

111 lines
3.2 KiB
YAML

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"