pterodactyl

This commit is contained in:
James Turland 2024-11-22 13:29:03 +00:00
parent 9b130ebc96
commit d93be3b674
2 changed files with 174 additions and 0 deletions

42
Pterodactyl/config.yml Normal file
View File

@ -0,0 +1,42 @@
debug: false
uuid: e4c68ecc-3c2a-4c30-a3e7-d631969b8bc5
token_id: hDeKbBQIOzKNOu4T
token: P3IgxW490amCoA3J3W7csEXV6XRxrf5kb7QgMboTn0Drtf7AKSJYdsOKOIwenUVR
api:
host: 0.0.0.0
port: 443
ssl:
enabled: false
cert: /etc/letsencrypt/live/wings0.jimsgarage.co.uk/fullchain.pem
key: /etc/letsencrypt/live/wings0.jimsgarage.co.uk/privkey.pem
upload_limit: 100
system:
data: /var/lib/pterodactyl/volumes
sftp:
bind_port: 2022
allowed_mounts: []
remote: 'https://panel.jimsgarage.co.uk'
docker:
network:
interface: 172.50.0.1
dns:
- 192.168.200.11
- 1.0.0.1
name: wings0
ispn: false
driver: bridge
network_mode: wings0
is_internal: false
enable_icc: true
network_mtu: 1500
interfaces:
v4:
subnet: 172.50.0.0/16
gateway: 172.50.0.1
v6:
subnet: fdba:17c8:6c94::/64
gateway: fdba:17c8:6c94::1011
allowed_mounts: []
allowed_origins: []
allow_cors_private_network: false
ignore_panel_config_updates: false

View File

@ -0,0 +1,132 @@
services:
db:
image: mariadb:latest
container_name: pterodactyl_mariadb
restart: unless-stopped
command: --default-authentication-plugin=mysql_native_password
volumes:
- ./panel/db:/var/lib/mysql
environment:
MYSQL_DATABASE: panel
MYSQL_USER: pterodactyl
MYSQL_PASSWORD: pterodactyl!
MYSQL_ROOT_PASSWORD: pterodactyl!!
networks:
- pterodactyl
cache:
image: redis:alpine
container_name: pterodactyl_redis
restart: unless-stopped
networks:
- pterodactyl
panel:
image: ghcr.io/pterodactyl/panel:latest
container_name: pterodactyl_panel
restart: unless-stopped
stdin_open: true
tty: true
# port required if you do not use a reverse proxy
# ports:
# - 8080:80
# - 8443:443 # OPTIONAL
volumes:
- "./panel/var/:/app/var/"
- "./panel/logs/:/app/storage/logs"
- "./panel/nginx/:/etc/nginx/conf.d/"
environment:
RECAPTCHA_ENABLED: false
TZ: Etc/UTC
APP_TIMEZONE: Europe/London
APP_ENV: production
APP_ENVIRONMENT_ONLY: false
APP_URL: https://gpanel.jimsgarage.co.uk
APP_SERVICE_AUTHOR: noreply@jimsgarage.co.uk
MAIL_FROM: noreply@jimsgarage.co.uk
MAIL_DRIVER: smtp
MAIL_HOST: mail.jimsgarage.co.uk
MAIL_PORT: 587
MAIL_USERNAME: noreply@jimsgarage.co.uk
MAIL_PASSWORD: REPLACE_WITH_YOUR_EMAIL_PASSWORD
MAIL_ENCRYPTION: false
TRUSTED_PROXIES: "*"
PTERODACTYL_TELEMETRY_ENABLED: false
DB_HOST: db
DB_PORT: 3306
DB_USERNAME: pterodactyl
DB_PASSWORD: pterodactyl!
CACHE_DRIVER: redis
SESSION_DRIVER: redis
QUEUE_DRIVER: redis
REDIS_HOST: cache
# LE_EMAIL: "" # Uncomment if you want to use Let's Encrypt to generate an SSL certificate for the Panel.
networks:
- proxy
- pterodactyl
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.panel.entrypoints=http"
- "traefik.http.routers.panel.rule=Host(`panel.jimsgarage.co.uk`)"
- "traefik.http.middlewares.panel-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.panel.middlewares=panel-https-redirect"
- "traefik.http.routers.panel-secure.entrypoints=https"
- "traefik.http.routers.panel-secure.rule=Host(`panel.jimsgarage.co.uk`)"
- "traefik.http.routers.panel-secure.tls=true"
- "traefik.http.routers.panel-secure.tls.certresolver=cloudflare"
- "traefik.http.routers.panel-secure.service=panel"
- "traefik.http.services.panel.loadbalancer.server.port=80" # make sure the loadbalancer is the last line!!!
wings:
image: ghcr.io/pterodactyl/wings:latest
container_name: pterodactyl_wings
restart: unless-stopped
ports:
- 2022:2022 # SFTP
stdin_open: true
tty: true
environment:
TZ: Europe/London
APP_TIMEZONE: Europe/London
WINGS_UID: 1000
WINGS_GID: 1000
WINGS_USERNAME: pterodactyl
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "/var/lib/docker/containers/:/var/lib/docker/containers/"
- "/etc/pterodactyl/:/etc/pterodactyl/"
- "/var/lib/pterodactyl/:/var/lib/pterodactyl/"
- "/var/log/pterodactyl/:/var/log/pterodactyl/"
- "/tmp/pterodactyl/:/tmp/pterodactyl/"
- "/etc/ssl/certs:/etc/ssl/certs:ro"
networks:
- proxy
- wings0
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.wings0.entrypoints=http"
- "traefik.http.routers.wings0.rule=Host(`wings0.jimsgarage.co.uk`)"
- "traefik.http.middlewares.wings0-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.wings0.middlewares=wings0-https-redirect"
- "traefik.http.routers.wings0-secure.entrypoints=https"
- "traefik.http.routers.wings0-secure.rule=Host(`wings0.jimsgarage.co.uk`)"
- "traefik.http.routers.wings0-secure.tls=true"
- "traefik.http.routers.wings0-secure.tls.certresolver=cloudflare"
- "traefik.http.routers.wings0-secure.service=wings0"
- "traefik.http.services.wings0.loadbalancer.server.port=443" # make sure the loadbalancer is the last line!!!
networks:
pterodactyl:
name: pterodactyl
proxy:
external: true
wings0:
name: wings0
driver: bridge
ipam:
config:
- subnet: "172.50.0.0/16" # make sure this doesn't conflict with existing networks
driver_opts:
com.docker.network.bridge.name: wings0