Skip to content
Osotechie edited this page Jun 22, 2026 · 2 revisions

NAS Containers-as-Code

Welcome to the wiki for the container deployment side of my NAS-as-Code project 👋

This repo manages all Docker container stacks running on the NAS. A push to main deploys everything — each stacks, and all containers — over SSH without ever touching the NAS directly.

🔗 This repo depends on the NAS being provisioned first. For OS-level setup, secrets management, and networking details, see the nas-as-code wiki.

What's Here

Each directory in the repo root represents a Docker Compose stack:

Stack Purpose Containers
ai AI/ML inference Hermes
games Game servers AMP, Playit
homeautomation Smart home Home Assistant, Node-RED, Mosquitto, MQTT Explorer, Frigate
management Docker management Portainer, Dockhand, WatchTower, Dozzle
media Media streaming & management Plex, Seerr, Sonarr, Radarr, Maintainerr, SABnzbd
misc Utilities IT-Tools, Bento-PDF, ConvertX, Open-Design
monitor Monitoring Glances, Netdata, AutoKuma
network DNS & network tools AdGuard, AdGuardHome-sync, Speedtest
proxy Reverse proxy Traefik, Cloudflare-Companion
security Password management Bitwarden
storage Storage health & backup SnapRAID, Scrutiny, Crashplan, PBS

How It Works (Quick Version)

  1. Edit a docker-compose.yml or .env file
  2. Push to main
  3. GitHub Actions connects to the NAS over WireGuard + SSH
  4. Secrets from Azure KeyVault are injected into .env files
  5. Each stack runs docker compose up -d
  6. Files are synced to /config/stacks on the NAS

For the full workflow breakdown, see Deployment Pipeline.

Quick Links

Clone this wiki locally