feat: Add 7 new stacks (Batch 2)
Added stacks: - nextcloud-aio (Cloud storage) - wordpress (CMS) - searxng (Meta search) - authentik (SSO provider) - jellyfin (Media server) All stacks include: - compose.yml with proper configuration - README.md with deployment info - stack.toml for Komodo Resource Sync
This commit is contained in:
parent
03977fae5e
commit
41b4381048
15 changed files with 322 additions and 0 deletions
25
stacks/authentik/README.md
Normal file
25
stacks/authentik/README.md
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
# Authentik
|
||||||
|
|
||||||
|
🔐 SSO / Identity Provider
|
||||||
|
|
||||||
|
## Deploy in Komodo
|
||||||
|
|
||||||
|
**Pfad:** `stacks/authentik/`
|
||||||
|
|
||||||
|
## Ports
|
||||||
|
|
||||||
|
- `9000` - HTTP Interface
|
||||||
|
- `9443` - HTTPS Interface
|
||||||
|
|
||||||
|
## Caddy
|
||||||
|
|
||||||
|
```caddyfile
|
||||||
|
auth.example.com {
|
||||||
|
reverse_proxy localhost:9000
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- Komplexes Setup mit PostgreSQL + Redis
|
||||||
|
- SECRET_KEY ändern vor erstem Start!
|
||||||
55
stacks/authentik/compose.yml
Normal file
55
stacks/authentik/compose.yml
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
services:
|
||||||
|
authentik:
|
||||||
|
image: ghcr.io/goauthentik/server:latest
|
||||||
|
container_name: authentik
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:9000:9000"
|
||||||
|
- "127.0.0.1:9443:9443"
|
||||||
|
volumes:
|
||||||
|
- authentik_media:/media
|
||||||
|
- authentik_custom:/custom-templates
|
||||||
|
environment:
|
||||||
|
- AUTHENTIK_SECRET_KEY=change-me-to-random-secret
|
||||||
|
- AUTHENTIK_REDIS__HOST=authentik-redis
|
||||||
|
- AUTHENTIK_POSTGRESQL__HOST=authentik-db
|
||||||
|
- AUTHENTIK_POSTGRESQL__USER=authentik
|
||||||
|
- AUTHENTIK_POSTGRESQL__NAME=authentik
|
||||||
|
- AUTHENTIK_POSTGRESQL__PASSWORD=authentik
|
||||||
|
depends_on:
|
||||||
|
- authentik-db
|
||||||
|
- authentik-redis
|
||||||
|
networks:
|
||||||
|
- authentik-network
|
||||||
|
|
||||||
|
authentik-db:
|
||||||
|
image: postgres:15
|
||||||
|
container_name: authentik-db
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- authentik_db:/var/lib/postgresql/data
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=authentik
|
||||||
|
- POSTGRES_PASSWORD=authentik
|
||||||
|
- POSTGRES_DB=authentik
|
||||||
|
networks:
|
||||||
|
- authentik-network
|
||||||
|
|
||||||
|
authentik-redis:
|
||||||
|
image: redis:alpine
|
||||||
|
container_name: authentik-redis
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- authentik_redis:/data
|
||||||
|
networks:
|
||||||
|
- authentik-network
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
authentik_media:
|
||||||
|
authentik_custom:
|
||||||
|
authentik_db:
|
||||||
|
authentik_redis:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
authentik-network:
|
||||||
|
driver: bridge
|
||||||
4
stacks/authentik/stack.toml
Normal file
4
stacks/authentik/stack.toml
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
[[stacks]]
|
||||||
|
name = "authentik"
|
||||||
|
description = "SSO / Identity Provider"
|
||||||
|
compose_path = "compose.yml"
|
||||||
24
stacks/jellyfin/README.md
Normal file
24
stacks/jellyfin/README.md
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
# Jellyfin
|
||||||
|
|
||||||
|
🎬 Media Server
|
||||||
|
|
||||||
|
## Deploy in Komodo
|
||||||
|
|
||||||
|
**Pfad:** `stacks/jellyfin/`
|
||||||
|
|
||||||
|
## Ports
|
||||||
|
|
||||||
|
- `8096` - Web UI
|
||||||
|
|
||||||
|
## Caddy
|
||||||
|
|
||||||
|
```caddyfile
|
||||||
|
media.example.com {
|
||||||
|
reverse_proxy localhost:8096
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- Hardware Transcoding: `/dev/dri` mounten
|
||||||
|
- Medien-Pfad anpassen (`/media`)
|
||||||
31
stacks/jellyfin/compose.yml
Normal file
31
stacks/jellyfin/compose.yml
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
services:
|
||||||
|
jellyfin:
|
||||||
|
image: jellyfin/jellyfin:latest
|
||||||
|
container_name: jellyfin
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:8096:8096"
|
||||||
|
volumes:
|
||||||
|
- jellyfin_config:/config
|
||||||
|
- jellyfin_cache:/cache
|
||||||
|
- /media:/media:ro
|
||||||
|
devices:
|
||||||
|
- /dev/dri:/dev/dri
|
||||||
|
group_add:
|
||||||
|
- video
|
||||||
|
networks:
|
||||||
|
- jellyfin-network
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:8096/health"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 30s
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
jellyfin_config:
|
||||||
|
jellyfin_cache:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
jellyfin-network:
|
||||||
|
driver: bridge
|
||||||
4
stacks/jellyfin/stack.toml
Normal file
4
stacks/jellyfin/stack.toml
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
[[stacks]]
|
||||||
|
name = "jellyfin"
|
||||||
|
description = "Media Server"
|
||||||
|
compose_path = "compose.yml"
|
||||||
24
stacks/nextcloud-aio/README.md
Normal file
24
stacks/nextcloud-aio/README.md
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
# Nextcloud AIO
|
||||||
|
|
||||||
|
☁️ Cloud Storage & Collaboration
|
||||||
|
|
||||||
|
## Deploy in Komodo
|
||||||
|
|
||||||
|
**Pfad:** `stacks/nextcloud-aio/`
|
||||||
|
|
||||||
|
## Ports
|
||||||
|
|
||||||
|
- `8080` - Web UI
|
||||||
|
|
||||||
|
## Caddy
|
||||||
|
|
||||||
|
```caddyfile
|
||||||
|
cloud.example.com {
|
||||||
|
reverse_proxy localhost:8080
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- All-In-One Image mit Apache, PHP, DB
|
||||||
|
- Erster Start dauert länger (Setup)
|
||||||
29
stacks/nextcloud-aio/compose.yml
Normal file
29
stacks/nextcloud-aio/compose.yml
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
services:
|
||||||
|
nextcloud-aio:
|
||||||
|
image: nextcloud/all-in-one:latest
|
||||||
|
container_name: nextcloud-aio
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:8080:8080"
|
||||||
|
volumes:
|
||||||
|
- nextcloud_data:/var/www/html
|
||||||
|
- nextcloud_apps:/var/www/html/custom_apps
|
||||||
|
environment:
|
||||||
|
- APACHE_PORT=8080
|
||||||
|
- NEXTCLOUD_DATADIR=/var/www/html/data
|
||||||
|
networks:
|
||||||
|
- nextcloud-network
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:8080/status.php"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 60s
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
nextcloud_data:
|
||||||
|
nextcloud_apps:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
nextcloud-network:
|
||||||
|
driver: bridge
|
||||||
4
stacks/nextcloud-aio/stack.toml
Normal file
4
stacks/nextcloud-aio/stack.toml
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
[[stacks]]
|
||||||
|
name = "nextcloud-aio"
|
||||||
|
description = "Cloud Storage & Collaboration"
|
||||||
|
compose_path = "compose.yml"
|
||||||
24
stacks/searxng/README.md
Normal file
24
stacks/searxng/README.md
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
# SearXNG
|
||||||
|
|
||||||
|
🔍 Privacy Meta Search Engine
|
||||||
|
|
||||||
|
## Deploy in Komodo
|
||||||
|
|
||||||
|
**Pfad:** `stacks/searxng/`
|
||||||
|
|
||||||
|
## Ports
|
||||||
|
|
||||||
|
- `8080` - Web UI
|
||||||
|
|
||||||
|
## Caddy
|
||||||
|
|
||||||
|
```caddyfile
|
||||||
|
search.example.com {
|
||||||
|
reverse_proxy localhost:8080
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- Sucht in mehreren Suchmaschinen gleichzeitig
|
||||||
|
- Keine Trackung der Suchanfragen
|
||||||
26
stacks/searxng/compose.yml
Normal file
26
stacks/searxng/compose.yml
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
services:
|
||||||
|
searxng:
|
||||||
|
image: searxng/searxng:latest
|
||||||
|
container_name: searxng
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:8080:8080"
|
||||||
|
volumes:
|
||||||
|
- searxng_config:/etc/searxng
|
||||||
|
environment:
|
||||||
|
- SEARXNG_BASE_URL=https://searxng.example.com
|
||||||
|
networks:
|
||||||
|
- searxng-network
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:8080/healthz"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 30s
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
searxng_config:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
searxng-network:
|
||||||
|
driver: bridge
|
||||||
4
stacks/searxng/stack.toml
Normal file
4
stacks/searxng/stack.toml
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
[[stacks]]
|
||||||
|
name = "searxng"
|
||||||
|
description = "Privacy Meta Search Engine"
|
||||||
|
compose_path = "compose.yml"
|
||||||
24
stacks/wordpress/README.md
Normal file
24
stacks/wordpress/README.md
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
# WordPress
|
||||||
|
|
||||||
|
📝 CMS / Blog Platform
|
||||||
|
|
||||||
|
## Deploy in Komodo
|
||||||
|
|
||||||
|
**Pfad:** `stacks/wordpress/`
|
||||||
|
|
||||||
|
## Ports
|
||||||
|
|
||||||
|
- `8080` - Web UI
|
||||||
|
|
||||||
|
## Caddy
|
||||||
|
|
||||||
|
```caddyfile
|
||||||
|
blog.example.com {
|
||||||
|
reverse_proxy localhost:8080
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- Inklusive MySQL Datenbank
|
||||||
|
- Passwort ändern nach erstem Login!
|
||||||
40
stacks/wordpress/compose.yml
Normal file
40
stacks/wordpress/compose.yml
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
services:
|
||||||
|
wordpress:
|
||||||
|
image: wordpress:latest
|
||||||
|
container_name: wordpress
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:8080:80"
|
||||||
|
volumes:
|
||||||
|
- wordpress_data:/var/www/html
|
||||||
|
environment:
|
||||||
|
- WORDPRESS_DB_HOST=wordpress-db
|
||||||
|
- WORDPRESS_DB_USER=wordpress
|
||||||
|
- WORDPRESS_DB_PASSWORD=wordpress
|
||||||
|
- WORDPRESS_DB_NAME=wordpress
|
||||||
|
depends_on:
|
||||||
|
- wordpress-db
|
||||||
|
networks:
|
||||||
|
- wordpress-network
|
||||||
|
|
||||||
|
wordpress-db:
|
||||||
|
image: mysql:8.0
|
||||||
|
container_name: wordpress-db
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- wordpress_db:/var/lib/mysql
|
||||||
|
environment:
|
||||||
|
- MYSQL_DATABASE=wordpress
|
||||||
|
- MYSQL_USER=wordpress
|
||||||
|
- MYSQL_PASSWORD=wordpress
|
||||||
|
- MYSQL_ROOT_PASSWORD=rootpassword
|
||||||
|
networks:
|
||||||
|
- wordpress-network
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
wordpress_data:
|
||||||
|
wordpress_db:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
wordpress-network:
|
||||||
|
driver: bridge
|
||||||
4
stacks/wordpress/stack.toml
Normal file
4
stacks/wordpress/stack.toml
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
[[stacks]]
|
||||||
|
name = "wordpress"
|
||||||
|
description = "CMS / Blog Platform"
|
||||||
|
compose_path = "compose.yml"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue