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:
thesabear committed 2026-08-25 08:27:33 +03:00
1 parent c86d53b60c
commit 342fde4654
10 files changed
+2 -244

No files matched your search

+2 -2
View File
@@ -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
-19
View File
@@ -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
-27
View File
@@ -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