From 89c617405bbaac577f1f7dd256aa55840127d3d6 Mon Sep 17 00:00:00 2001 From: thomas Date: Fri, 21 Nov 2025 19:20:26 +0000 Subject: [PATCH] Upload files to "/" --- banner.png | Bin 0 -> 65193 bytes cert-renewal.sh | 21 +++++++++ docker-compose.yml | 110 +++++++++++++++++++++++++++++++++++++++++++++ install.sh | 66 +++++++++++++++++++++++++++ 4 files changed, 197 insertions(+) create mode 100644 banner.png create mode 100644 cert-renewal.sh create mode 100644 docker-compose.yml create mode 100644 install.sh diff --git a/banner.png b/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..f3e50e0f18649fbb9d610e7f483a166790afd95a GIT binary patch literal 65193 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 KN|%E_1pXh5)f|if literal 0 HcmV?d00001 diff --git a/cert-renewal.sh b/cert-renewal.sh new file mode 100644 index 0000000..e6b58e5 --- /dev/null +++ b/cert-renewal.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +# /srv/pterodactyl/cert-renewal.sh +# Script til automatisk fornyelse af Certbot certifikater + +cd /srv/pterodactyl/ || exit + +echo "--- Starter Let's Encrypt certifikatfornyelse ---" + +# Kører Certbot for at tjekke fornyelse +docker-compose run --rm certbot renew --quiet + +# Tjekker exit-koden +if [ $? -eq 0 ]; then + echo "Certbot kørsel succesfuld. Genstarter Nginx." + docker-compose restart nginx +else + echo "FEJL: Certbot fornyelsen mislykkedes." +fi + +echo "--- Certifikatfornyelse afsluttet ---" diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..5d1febe --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,110 @@ +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" diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..6ef1673 --- /dev/null +++ b/install.sh @@ -0,0 +1,66 @@ +#!/bin/bash + +# Domæne du vil bruge til Pterodactyl Panel (SKAL REDIGERES!) +DOMAIN="panel.ditdomæne.dk" + +# Opret hovedmapper +mkdir -p /srv/pterodactyl/{panel,wings,mysql/data,servers} +mkdir -p /srv/pterodactyl/nginx/{conf.d,certbot/{conf,www}} + +# Opret Nginx konfigurationsfil +cat < /srv/pterodactyl/nginx/conf.d/default.conf +server { + listen 80; + server_name ${DOMAIN}; + + location ~ /.well-known/acme-challenge { + allow all; + root /var/www/certbot; + } + + location / { + return 301 https://$host$request_uri; + } +} + +server { + listen 443 ssl http2; + server_name ${DOMAIN}; + + # SSL konfiguration (Certbot stier) + ssl_certificate /etc/letsencrypt/live/${DOMAIN}/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/${DOMAIN}/privkey.pem; + + include /etc/letsencrypt/options-ssl-nginx.conf; + ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; + + root /var/www/html/public; + index index.html index.php; + + location / { + try_files $uri $uri/ /index.php?$query_string; + } + + location ~ \.php$ { + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass panel:9000; + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $fastcgi_path_info; + } + + location ~ /\. { + deny all; + } +} +EOF + +echo "✅ Mappestruktur og Nginx konfiguration er oprettet." + +# Generer dummy certifikater for at starte Nginx +openssl req -x509 -nodes -newkey rsa:4096 -days 365 -keyout /srv/pterodactyl/nginx/certbot/conf/privkey.pem -out /srv/pterodactyl/nginx/certbot/conf/fullchain.pem -subj "/CN=${DOMAIN}" 2>/dev/null + +echo "✅ Dummy SSL-certifikater oprettet." +echo "" +echo "Næste trin: Rediger 'docker-compose.yml' og kør 'docker-compose up -d'."