stacks: remove 9 folders, update stack count in README
Removed: ollama (AI-related concerns), emby/qbittorrent/prowlarr (media-download concerns), bookstack (being deprecated in the homelab), and mariadb-latest/mysql-8/postgres-18-alpine/valkey-9.0- alpine (build-only base-image factories - nothing connects to them, they add no portfolio value on their own; real per-app DB usage, e.g. Kodi's own mariadb service, already lives in that app's stack folder and is unaffected). Stack count updated 53 -> 44 in both README references.
This commit is contained in:
10 files changed
+2
-244
No files matched your search
@@ -13,7 +13,7 @@
|
|||||||
<table style="margin: 0 auto;">
|
<table style="margin: 0 auto;">
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center">🖥️<br/><strong style="font-size:1.6em;">11</strong><br/>fleet hosts</td>
|
<td align="center">🖥️<br/><strong style="font-size:1.6em;">11</strong><br/>fleet hosts</td>
|
||||||
<td align="center">🐳<br/><strong style="font-size:1.6em;">53</strong><br/>compose stacks</td>
|
<td align="center">🐳<br/><strong style="font-size:1.6em;">44</strong><br/>compose stacks</td>
|
||||||
<td align="center">📚<br/><strong style="font-size:1.6em;">15</strong><br/>documented systems</td>
|
<td align="center">📚<br/><strong style="font-size:1.6em;">15</strong><br/>documented systems</td>
|
||||||
<td align="center">🧱<br/><strong style="font-size:1.6em;">4</strong><br/>trust boundaries</td>
|
<td align="center">🧱<br/><strong style="font-size:1.6em;">4</strong><br/>trust boundaries</td>
|
||||||
<td align="center">🔁<br/><strong style="font-size:1.6em;">13</strong><br/>automated maintenance flows</td>
|
<td align="center">🔁<br/><strong style="font-size:1.6em;">13</strong><br/>automated maintenance flows</td>
|
||||||
@@ -112,7 +112,7 @@ Authentik, self-hosted, fronts single sign-on fleet-wide — native OIDC where a
|
|||||||
|
|
||||||
## What's Running
|
## What's Running
|
||||||
|
|
||||||
53 Docker Compose stacks, grouped by purpose rather than by which host happens to run them — see [`stacks/`](stacks/): identity & security, platform/infra, media, productivity, and dev tools.
|
44 Docker Compose stacks, grouped by purpose rather than by which host happens to run them — see [`stacks/`](stacks/): identity & security, platform/infra, media, productivity, and dev tools.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,44 +0,0 @@
|
|||||||
services:
|
|
||||||
ollama:
|
|
||||||
# Uncomment below for GPU support
|
|
||||||
# deploy:
|
|
||||||
# resources:
|
|
||||||
# reservations:
|
|
||||||
# devices:
|
|
||||||
# - driver: nvidia
|
|
||||||
# count: 1
|
|
||||||
# capabilities:
|
|
||||||
# - gpu
|
|
||||||
volumes:
|
|
||||||
- /path/to/ollama:/root/.ollama
|
|
||||||
# Uncomment below to expose Ollama API outside the container stack
|
|
||||||
ports:
|
|
||||||
- "${HTTP_PORT2}:11434"
|
|
||||||
container_name: ollama
|
|
||||||
pull_policy: always
|
|
||||||
tty: true
|
|
||||||
restart: unless-stopped
|
|
||||||
image: ollama/ollama:latest
|
|
||||||
networks:
|
|
||||||
- openai-net
|
|
||||||
|
|
||||||
open-webui:
|
|
||||||
image: ghcr.io/open-webui/open-webui:latest
|
|
||||||
container_name: open-webui
|
|
||||||
volumes:
|
|
||||||
- /path/to/open-webui:/app/backend/data
|
|
||||||
depends_on:
|
|
||||||
- ollama
|
|
||||||
ports:
|
|
||||||
- "${HTTP_PORT}:8080"
|
|
||||||
environment:
|
|
||||||
- "OLLAMA_BASE_URL=http://ollama:11434"
|
|
||||||
extra_hosts:
|
|
||||||
- host.docker.internal:host-gateway
|
|
||||||
restart: unless-stopped
|
|
||||||
networks:
|
|
||||||
- openai-net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
openai-net:
|
|
||||||
external: true
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
services:
|
|
||||||
emby:
|
|
||||||
image: emby/embyserver:latest
|
|
||||||
container_name: emby
|
|
||||||
environment:
|
|
||||||
- TZ=${TZ}
|
|
||||||
volumes:
|
|
||||||
- /path/to/emby:/config
|
|
||||||
- /path/to/media:/data
|
|
||||||
- /path/to/transcodes/emby:/transcode
|
|
||||||
ports:
|
|
||||||
- ${HTTP_PORT}:8096
|
|
||||||
restart: unless-stopped
|
|
||||||
networks:
|
|
||||||
- media-net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
media-net:
|
|
||||||
external: true
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
services:
|
|
||||||
prowlarr:
|
|
||||||
container_name: prowlarr
|
|
||||||
image: lscr.io/linuxserver/prowlarr:latest
|
|
||||||
environment:
|
|
||||||
- PUID=${PUID}
|
|
||||||
- PGID=${PGID}
|
|
||||||
- TZ=${TZ}
|
|
||||||
- UMASK=${UMASK}
|
|
||||||
ports:
|
|
||||||
- ${HTTP_PORT}:9696
|
|
||||||
volumes:
|
|
||||||
- /path/to/prowlarr:/config
|
|
||||||
- /path/to/media:/data
|
|
||||||
restart: unless-stopped
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD-SHELL", "curl -f http://localhost:9696 || exit 1"]
|
|
||||||
interval: 15s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 5
|
|
||||||
start_period: 20s
|
|
||||||
networks:
|
|
||||||
- media-net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
media-net:
|
|
||||||
external: true
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
services:
|
|
||||||
qbittorrent:
|
|
||||||
image: ghcr.io/hotio/qbittorrent:release-5.1.4
|
|
||||||
container_name: qbittorrent
|
|
||||||
privileged: true
|
|
||||||
environment:
|
|
||||||
- PUID=${PUID}
|
|
||||||
- PGID=${PGID}
|
|
||||||
- TZ=${TZ}
|
|
||||||
- UMASK=${UMASK}
|
|
||||||
volumes:
|
|
||||||
- /path/to/qbittorrent:/config
|
|
||||||
- /path/to/media/torrents:/data/torrents
|
|
||||||
ports:
|
|
||||||
- ${HTTP_PORT}:8080
|
|
||||||
- ${HTTP_PORT1}:8999
|
|
||||||
- ${HTTP_PORT1}:8999/udp
|
|
||||||
restart: always
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD-SHELL", "curl -f http://localhost:8080 || exit 1"]
|
|
||||||
interval: 15s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 5
|
|
||||||
start_period: 30s
|
|
||||||
networks:
|
|
||||||
- media-net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
media-net:
|
|
||||||
external: true
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
services:
|
|
||||||
mariadb-latest:
|
|
||||||
container_name: mariadb-latest
|
|
||||||
image: mariadb:latest
|
|
||||||
restart: "no"
|
|
||||||
environment:
|
|
||||||
# No real data lives here - this is a thin self-hosted-registry mirror
|
|
||||||
# build target, not a running database. Random root password since
|
|
||||||
# the base image needs some root-auth setting to initialize at all.
|
|
||||||
- MYSQL_RANDOM_ROOT_PASSWORD=true
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD-SHELL", "mariadb-admin ping -h 127.0.0.1 -u root || exit 1"]
|
|
||||||
interval: 5s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 10
|
|
||||||
start_period: 15s
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
services:
|
|
||||||
mysql-8:
|
|
||||||
container_name: mysql-8
|
|
||||||
image: mysql:8
|
|
||||||
restart: "no"
|
|
||||||
environment:
|
|
||||||
# No real data lives here - a thin self-hosted-registry mirror build
|
|
||||||
# target, not a running database.
|
|
||||||
- MYSQL_RANDOM_ROOT_PASSWORD=yes
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 || exit 1"]
|
|
||||||
interval: 5s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 10
|
|
||||||
start_period: 20s
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
services:
|
|
||||||
postgres-18-alpine:
|
|
||||||
container_name: postgres-18-alpine
|
|
||||||
image: postgres:18-alpine
|
|
||||||
restart: "no"
|
|
||||||
environment:
|
|
||||||
# No real data lives here - a thin self-hosted-registry mirror build
|
|
||||||
# target so other stacks can pull the result. trust auth is fine
|
|
||||||
# since nothing reaches it but the health check below - Postgres
|
|
||||||
# refuses to start at all without some password/auth method set.
|
|
||||||
- POSTGRES_HOST_AUTH_METHOD=trust
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
|
||||||
interval: 5s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 10
|
|
||||||
start_period: 10s
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
services:
|
|
||||||
valkey-9.0-alpine:
|
|
||||||
container_name: valkey-9.0-alpine
|
|
||||||
image: valkey/valkey:9.0-alpine
|
|
||||||
restart: "no"
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "valkey-cli", "ping"]
|
|
||||||
interval: 5s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 10
|
|
||||||
start_period: 10s
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
---
|
|
||||||
services:
|
|
||||||
bookstack:
|
|
||||||
image: lscr.io/linuxserver/bookstack:latest
|
|
||||||
container_name: bookstack
|
|
||||||
environment:
|
|
||||||
- PUID=${PUID}
|
|
||||||
- PGID=${PGID}
|
|
||||||
- TZ=${TZ}
|
|
||||||
- APP_URL=https://subdomain.example.com
|
|
||||||
- DB_HOST=bookstack_db
|
|
||||||
- DB_PORT=${DB_PORT}
|
|
||||||
- DB_USER=${DB_USER}
|
|
||||||
- DB_PASS=${DB_PASS}
|
|
||||||
- DB_DATABASE=${DB_DATABASE}
|
|
||||||
- APP_DEFAULT_DARK_MODE=true
|
|
||||||
volumes:
|
|
||||||
- /path/to/bookstack/bookstack_app_data:/config
|
|
||||||
ports:
|
|
||||||
- ${HTTP_PORT}:80
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
bookstack_db:
|
|
||||||
condition: service_healthy
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:80/ || exit 1"]
|
|
||||||
interval: 15s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 5
|
|
||||||
start_period: 30s
|
|
||||||
networks:
|
|
||||||
- bookstack-net
|
|
||||||
|
|
||||||
bookstack_db:
|
|
||||||
image: lscr.io/linuxserver/mariadb:latest
|
|
||||||
container_name: bookstack_db
|
|
||||||
environment:
|
|
||||||
- PUID=${PUID}
|
|
||||||
- PGID=${PGID}
|
|
||||||
- TZ=${TZ}
|
|
||||||
- MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
|
|
||||||
- MYSQL_DATABASE=${DB_DATABASE}
|
|
||||||
- MYSQL_USER=${DB_USER}
|
|
||||||
- MYSQL_PASSWORD=${DB_PASSWORD}
|
|
||||||
volumes:
|
|
||||||
- /path/to/bookstack/bookstack_db_data:/config
|
|
||||||
restart: unless-stopped
|
|
||||||
healthcheck:
|
|
||||||
test:
|
|
||||||
[
|
|
||||||
"CMD-SHELL",
|
|
||||||
"mysqladmin ping -h localhost -u${DB_USER} -p${DB_PASSWORD} || exit 1",
|
|
||||||
]
|
|
||||||
interval: 10s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 10
|
|
||||||
start_period: 20s
|
|
||||||
networks:
|
|
||||||
- bookstack-net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
bookstack-net:
|
|
||||||
external: true
|
|
||||||
Reference in new issue
Block a user