From 342fde46542a36e2933c5b801aa2561a3ab89880 Mon Sep 17 00:00:00 2001 From: thesabear Date: Tue, 25 Aug 2026 08:27:33 +0300 Subject: [PATCH] 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. --- README.md | 4 +- stacks/dev-tools/ollama/docker-compose.yaml | 44 ------------- stacks/media/emby/docker-compose.yaml | 19 ------ stacks/media/prowlarr/docker-compose.yaml | 27 -------- stacks/media/qbittorrent/docker-compose.yaml | 30 --------- .../mariadb-latest/docker-compose.yaml | 16 ----- stacks/platform/mysql-8/docker-compose.yaml | 15 ----- .../postgres-18-alpine/docker-compose.yaml | 17 ----- .../valkey-9.0-alpine/docker-compose.yaml | 11 ---- .../bookstack/docker-compose.yaml | 63 ------------------- 10 files changed, 2 insertions(+), 244 deletions(-) delete mode 100644 stacks/dev-tools/ollama/docker-compose.yaml delete mode 100644 stacks/media/emby/docker-compose.yaml delete mode 100644 stacks/media/prowlarr/docker-compose.yaml delete mode 100644 stacks/media/qbittorrent/docker-compose.yaml delete mode 100644 stacks/platform/mariadb-latest/docker-compose.yaml delete mode 100644 stacks/platform/mysql-8/docker-compose.yaml delete mode 100644 stacks/platform/postgres-18-alpine/docker-compose.yaml delete mode 100644 stacks/platform/valkey-9.0-alpine/docker-compose.yaml delete mode 100644 stacks/productivity/bookstack/docker-compose.yaml diff --git a/README.md b/README.md index cc55ac4..abc0c26 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ - + @@ -112,7 +112,7 @@ Authentik, self-hosted, fronts single sign-on fleet-wide — native OIDC where a ## 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. --- diff --git a/stacks/dev-tools/ollama/docker-compose.yaml b/stacks/dev-tools/ollama/docker-compose.yaml deleted file mode 100644 index cafebec..0000000 --- a/stacks/dev-tools/ollama/docker-compose.yaml +++ /dev/null @@ -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 diff --git a/stacks/media/emby/docker-compose.yaml b/stacks/media/emby/docker-compose.yaml deleted file mode 100644 index 6673628..0000000 --- a/stacks/media/emby/docker-compose.yaml +++ /dev/null @@ -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 diff --git a/stacks/media/prowlarr/docker-compose.yaml b/stacks/media/prowlarr/docker-compose.yaml deleted file mode 100644 index 4e28014..0000000 --- a/stacks/media/prowlarr/docker-compose.yaml +++ /dev/null @@ -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 diff --git a/stacks/media/qbittorrent/docker-compose.yaml b/stacks/media/qbittorrent/docker-compose.yaml deleted file mode 100644 index b015044..0000000 --- a/stacks/media/qbittorrent/docker-compose.yaml +++ /dev/null @@ -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 diff --git a/stacks/platform/mariadb-latest/docker-compose.yaml b/stacks/platform/mariadb-latest/docker-compose.yaml deleted file mode 100644 index ac2bdb9..0000000 --- a/stacks/platform/mariadb-latest/docker-compose.yaml +++ /dev/null @@ -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 diff --git a/stacks/platform/mysql-8/docker-compose.yaml b/stacks/platform/mysql-8/docker-compose.yaml deleted file mode 100644 index fbd8844..0000000 --- a/stacks/platform/mysql-8/docker-compose.yaml +++ /dev/null @@ -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 diff --git a/stacks/platform/postgres-18-alpine/docker-compose.yaml b/stacks/platform/postgres-18-alpine/docker-compose.yaml deleted file mode 100644 index 3c1d03c..0000000 --- a/stacks/platform/postgres-18-alpine/docker-compose.yaml +++ /dev/null @@ -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 diff --git a/stacks/platform/valkey-9.0-alpine/docker-compose.yaml b/stacks/platform/valkey-9.0-alpine/docker-compose.yaml deleted file mode 100644 index 27ba3b0..0000000 --- a/stacks/platform/valkey-9.0-alpine/docker-compose.yaml +++ /dev/null @@ -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 diff --git a/stacks/productivity/bookstack/docker-compose.yaml b/stacks/productivity/bookstack/docker-compose.yaml deleted file mode 100644 index f5fb395..0000000 --- a/stacks/productivity/bookstack/docker-compose.yaml +++ /dev/null @@ -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
🖥️
11
fleet hosts
🐳
53
compose stacks
🐳
44
compose stacks
📚
15
documented systems
🧱
4
trust boundaries
🔁
13
automated maintenance flows