185 lines
3.8 KiB
Markdown
185 lines
3.8 KiB
Markdown
# 🚀 TuxiNet Pterodactyl Stack – Docker Compose
|
||
|
||
Komplet Pterodactyl Panel & Wings setup pakket til Docker, inkl.:
|
||
|
||
- MariaDB (database)
|
||
- Redis (cache & køer)
|
||
- Panel (Pterodactyl web/APP)
|
||
- Wings (daemon til game servers)
|
||
- Nginx (reverse proxy)
|
||
- Certbot (Let's Encrypt SSL)
|
||
- 💜 Branded til **TuxiNet** med dark-mode/neon banner (`banner.png`)
|
||
|
||

|
||
|
||
---
|
||
|
||
## 📁 Struktur
|
||
|
||
Når du pakker dette ud i `/srv/pterodactyl`, vil du have:
|
||
|
||
```text
|
||
/srv/pterodactyl/
|
||
├── README.md
|
||
├── docker-compose.yml
|
||
├── install.sh
|
||
├── cert-renewal.sh
|
||
├── banner.png
|
||
├── docker/
|
||
│ ├── mariadb/Dockerfile
|
||
│ ├── panel/Dockerfile
|
||
│ ├── redis/Dockerfile
|
||
│ ├── wings/Dockerfile
|
||
│ ├── nginx/Dockerfile
|
||
│ └── certbot/Dockerfile
|
||
├── panel/
|
||
├── wings/
|
||
├── servers/
|
||
├── mysql/
|
||
│ └── data/
|
||
└── nginx/
|
||
├── conf.d/
|
||
└── certbot/
|
||
├── conf/
|
||
└── www/
|
||
```
|
||
|
||
> Mapperne `panel/`, `wings/`, `servers/`, `mysql/data`, `nginx/...` er med som tomme mapper, så alt er klar fra start.
|
||
|
||
---
|
||
|
||
## 🛠️ Trin 1: Klargøring
|
||
|
||
### 1.1 Flyt projektet til `/srv/pterodactyl`
|
||
|
||
```bash
|
||
sudo mkdir -p /srv/pterodactyl
|
||
sudo chown -R $(whoami):$(whoami) /srv/pterodactyl
|
||
# Kopiér/zippens indhold herind
|
||
```
|
||
|
||
---
|
||
|
||
### 1.2 Redigér `install.sh`
|
||
|
||
Øverst i `install.sh`:
|
||
|
||
```bash
|
||
DOMAIN="panel.ditdomæne.dk" # ← SKAL OPDATERES
|
||
```
|
||
|
||
---
|
||
|
||
### 1.3 Kør installationsscriptet
|
||
|
||
```bash
|
||
cd /srv/pterodactyl
|
||
chmod +x install.sh
|
||
./install.sh
|
||
```
|
||
|
||
Dette opretter mappestruktur og en midlertidig Nginx-konfiguration + dummy certifikater.
|
||
|
||
---
|
||
|
||
## ⚙️ Trin 2: Tilpas `docker-compose.yml`
|
||
|
||
**Vigtige felter:**
|
||
|
||
- MariaDB:
|
||
- `MYSQL_ROOT_PASSWORD`
|
||
- `MYSQL_PASSWORD`
|
||
|
||
- Panel (Pterodactyl):
|
||
- `APP_URL=https://panel.ditdomæne.dk`
|
||
- Alle `MAIL_*` (SMTP-konfiguration)
|
||
|
||
- Wings (game server ports):
|
||
- Tilføj fx `25565:25565` for Minecraft, m.m.
|
||
|
||
Når alt er rettet, start stacken:
|
||
|
||
```bash
|
||
docker-compose up -d
|
||
```
|
||
|
||
---
|
||
|
||
## 🔐 Trin 3: Hent rigtige SSL-certifikater
|
||
|
||
Skift domæne og email i følgende kommando:
|
||
|
||
```bash
|
||
docker-compose run --rm certbot certonly \\
|
||
--webroot -w /var/www/certbot \\
|
||
-d panel.ditdomæne.dk \\
|
||
--email din@email.dk \\
|
||
--agree-tos \\
|
||
--no-eff-email
|
||
```
|
||
|
||
Genstart Nginx:
|
||
|
||
```bash
|
||
docker-compose restart nginx
|
||
```
|
||
|
||
---
|
||
|
||
## 🧩 Trin 4: Pterodactyl Panel Setup
|
||
|
||
```bash
|
||
docker-compose exec panel php artisan migrate --force
|
||
docker-compose exec panel php artisan p:environment:setup
|
||
docker-compose exec panel php artisan p:user:make
|
||
```
|
||
|
||
Følg anvisningerne i terminalen for at oprette din admin-bruger.
|
||
|
||
---
|
||
|
||
## 🛰️ Trin 5: Wings konfiguration
|
||
|
||
1. Log ind i Panelet i browseren.
|
||
2. Opret en **Location** og derefter en **Node**.
|
||
3. Kopiér tokenet fra Node-konfigurationen.
|
||
4. Kør på hosten (indsæt dit token):
|
||
|
||
```bash
|
||
docker-compose exec wings /bin/bash -c "echo '{ \"token\": \"DIT_TOKEN_HER\" }' > /etc/pterodactyl/config.json"
|
||
docker-compose restart wings
|
||
```
|
||
|
||
---
|
||
|
||
## 🔄 Trin 6: Automatisk SSL-fornyelse
|
||
|
||
### 6.1 Gør scriptet eksekverbart
|
||
|
||
```bash
|
||
chmod +x /srv/pterodactyl/cert-renewal.sh
|
||
```
|
||
|
||
### 6.2 Cron-job
|
||
|
||
```bash
|
||
crontab -e
|
||
```
|
||
|
||
Tilføj:
|
||
|
||
```cron
|
||
# Certbot automatisk fornyelse (08:00 & 20:00)
|
||
0 8,20 * * * /srv/pterodactyl/cert-renewal.sh >> /var/log/cert-renewal.log 2>&1
|
||
```
|
||
|
||
---
|
||
|
||
## 🧡 Brand & Tilpasning (TuxiNet)
|
||
|
||
- Banneret (`banner.png`) er lavet i dark-mode med neon/teal gaming-look.
|
||
- Du kan frit udskifte det med et nyt TuxiNet-brandet banner (samme filnavn, så README stadig virker).
|
||
- Dockerfiles har simple `LABEL`-felter, hvor du kan tilføje mere metadata, hvis du vil.
|
||
|
||
Har du brug for en version med flere noder, Traefik i stedet for Nginx, eller ekstra monitoring (Prometheus/Grafana), kan vi bygge næste lag ovenpå den her stack.
|