diff --git a/stacks/backrest/README.md b/stacks/backrest/README.md new file mode 100644 index 0000000..23d0cc7 --- /dev/null +++ b/stacks/backrest/README.md @@ -0,0 +1,24 @@ +# Backrest + +💾 Backup Management UI + +## Deploy in Komodo + +**Pfad:** `stacks/backrest/` + +## Ports + +- `8080` - Web UI + +## Caddy + +```caddyfile +backup.example.com { + reverse_proxy localhost:8080 +} +``` + +## Notes + +- UI für Restic Backups +- Backup-Pfad anpassen diff --git a/stacks/backrest/compose.yml b/stacks/backrest/compose.yml new file mode 100644 index 0000000..496ae70 --- /dev/null +++ b/stacks/backrest/compose.yml @@ -0,0 +1,25 @@ +services: + backrest: + image: ghcr.io/gabm/backrest:latest + container_name: backrest + restart: unless-stopped + ports: + - "127.0.0.1:8080:8080" + volumes: + - backrest_config:/config + - /backups:/backups + networks: + - backrest-network + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8080/api/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 10s + +volumes: + backrest_config: + +networks: + backrest-network: + driver: bridge diff --git a/stacks/backrest/stack.toml b/stacks/backrest/stack.toml new file mode 100644 index 0000000..4122523 --- /dev/null +++ b/stacks/backrest/stack.toml @@ -0,0 +1,4 @@ +[[stacks]] +name = "backrest" +description = "Backup Management UI" +compose_path = "compose.yml" diff --git a/stacks/gotosocial/README.md b/stacks/gotosocial/README.md new file mode 100644 index 0000000..af28724 --- /dev/null +++ b/stacks/gotosocial/README.md @@ -0,0 +1,24 @@ +# GoToSocial + +🐘 ActivityPub Server (Fediverse) + +## Deploy in Komodo + +**Pfad:** `stacks/gotosocial/` + +## Ports + +- `8080` - Web UI & API + +## Caddy + +```caddyfile +social.example.com { + reverse_proxy localhost:8080 +} +``` + +## Notes + +- ActivityPub-kompatibel (Mastodon, Pixelfed, etc.) +- SQLite Datenbank (einfach) diff --git a/stacks/gotosocial/compose.yml b/stacks/gotosocial/compose.yml new file mode 100644 index 0000000..0870e13 --- /dev/null +++ b/stacks/gotosocial/compose.yml @@ -0,0 +1,27 @@ +services: + gotosocial: + image: docker.homeserver.net/gotosocial/gotosocial:latest + container_name: gotosocial + restart: unless-stopped + ports: + - "127.0.0.1:8080:8080" + volumes: + - gotosocial_data:/gotosocial + environment: + - GOTOSOCIAL_HOST=example.com + - GOTOSOCIAL_DB_TYPE=sqlite + networks: + - gotosocial-network + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8080/api/v1/instance"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 30s + +volumes: + gotosocial_data: + +networks: + gotosocial-network: + driver: bridge diff --git a/stacks/gotosocial/stack.toml b/stacks/gotosocial/stack.toml new file mode 100644 index 0000000..5742a3c --- /dev/null +++ b/stacks/gotosocial/stack.toml @@ -0,0 +1,4 @@ +[[stacks]] +name = "gotosocial" +description = "ActivityPub Server (Fediverse)" +compose_path = "compose.yml" diff --git a/stacks/plex/README.md b/stacks/plex/README.md new file mode 100644 index 0000000..362450e --- /dev/null +++ b/stacks/plex/README.md @@ -0,0 +1,24 @@ +# Plex + +🎬 Media Server (Commercial) + +## Deploy in Komodo + +**Pfad:** `stacks/plex/` + +## Ports + +- `32400` - Web UI & API + +## Caddy + +```caddyfile +plex.example.com { + reverse_proxy localhost:32400 +} +``` + +## Notes + +- PLEX_CLAIM Token von plex.tv nötig +- Hardware Transcoding: `/dev/dri` mounten diff --git a/stacks/plex/compose.yml b/stacks/plex/compose.yml new file mode 100644 index 0000000..b0ec436 --- /dev/null +++ b/stacks/plex/compose.yml @@ -0,0 +1,31 @@ +services: + plex: + image: plexinc/pms-docker:latest + container_name: plex + restart: unless-stopped + ports: + - "127.0.0.1:32400:32400" + volumes: + - plex_config:/config + - plex_transcode:/transcode + - /media:/media:ro + environment: + - PLEX_CLAIM=claim-token-from-plex.tv + devices: + - /dev/dri:/dev/dri + networks: + - plex-network + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:32400/identity"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 60s + +volumes: + plex_config: + plex_transcode: + +networks: + plex-network: + driver: bridge diff --git a/stacks/plex/stack.toml b/stacks/plex/stack.toml new file mode 100644 index 0000000..15c7837 --- /dev/null +++ b/stacks/plex/stack.toml @@ -0,0 +1,4 @@ +[[stacks]] +name = "plex" +description = "Media Server (Commercial)" +compose_path = "compose.yml" diff --git a/stacks/pterodactyl-panel/README.md b/stacks/pterodactyl-panel/README.md new file mode 100644 index 0000000..3a04482 --- /dev/null +++ b/stacks/pterodactyl-panel/README.md @@ -0,0 +1,25 @@ +# Pterodactyl Panel + +🎮 Game Server Management + +## Deploy in Komodo + +**Pfad:** `stacks/pterodactyl-panel/` + +## Ports + +- `8080` - HTTP +- `8443` - HTTPS + +## Caddy + +```caddyfile +panel.example.com { + reverse_proxy localhost:8080 +} +``` + +## Notes + +- Komplexes Setup mit MariaDB + Redis +- Benötigt Pterodactyl Wings auf Game-Servern diff --git a/stacks/pterodactyl-panel/compose.yml b/stacks/pterodactyl-panel/compose.yml new file mode 100644 index 0000000..cbfe60b --- /dev/null +++ b/stacks/pterodactyl-panel/compose.yml @@ -0,0 +1,51 @@ +services: + pterodactyl-panel: + image: ghcr.io/pterodactyl/panel:latest + container_name: pterodactyl-panel + restart: unless-stopped + ports: + - "127.0.0.1:8080:80" + - "127.0.0.1:8443:443" + volumes: + - pterodactyl_panel_var:/var/www/pterodactyl/var + - pterodactyl_panel_nginx:/etc/ssl/pterodactyl + environment: + - TRUSTED_PROXIES=* + networks: + - pterodactyl-network + depends_on: + - pterodactyl-db + - pterodactyl-cache + + pterodactyl-db: + image: mariadb:10.5 + container_name: pterodactyl-db + restart: unless-stopped + volumes: + - pterodactyl_db:/var/lib/mysql + environment: + - MYSQL_DATABASE=panel + - MYSQL_USER=pterodactyl + - MYSQL_PASSWORD=pterodactyl + - MYSQL_ROOT_PASSWORD=rootpassword + networks: + - pterodactyl-network + + pterodactyl-cache: + image: redis:alpine + container_name: pterodactyl-cache + restart: unless-stopped + volumes: + - pterodactyl_cache:/data + networks: + - pterodactyl-network + +volumes: + pterodactyl_panel_var: + pterodactyl_panel_nginx: + pterodactyl_db: + pterodactyl_cache: + +networks: + pterodactyl-network: + driver: bridge diff --git a/stacks/pterodactyl-panel/stack.toml b/stacks/pterodactyl-panel/stack.toml new file mode 100644 index 0000000..f05a32c --- /dev/null +++ b/stacks/pterodactyl-panel/stack.toml @@ -0,0 +1,4 @@ +[[stacks]] +name = "pterodactyl-panel" +description = "Game Server Management" +compose_path = "compose.yml"