Files
stackpilot/README.md

5.3 KiB

🚀 StackPilot

The ultimate self-hosted Docker stack builder. A web-based wizard that lets you select from 186+ apps, configure paths and credentials, preview your generated Docker Compose setup live, and download a ready-to-deploy bundle — all client-side, no server required.

Features

  • 186+ self-hosted apps across 22 categories (media, automation, AI, games, security, monitoring, and more)
  • Visual app selection with categories, descriptions, and GitHub links
  • OS-aware defaults — paths adjust for Linux, macOS, or Windows
  • Live compose preview — see docker-compose.yml, .env, and setup.sh update as you select apps
  • Auto-linking setup script — post-deploy script wires services together via APIs (Prowlarr→Sonarr/Radarr, download clients, root folders)
  • Tailscale integration — optional remote access with sidecar container, subnet routing, and Funnel support
  • VPN routing — Gluetun routes download client traffic through your VPN automatically
  • Compose Analyser — paste an existing docker-compose.yml to get security, performance, and best-practice recommendations
  • Download bundle — zip containing compose + .env + setup.sh + README
  • Dark theme, responsive — works on desktop and mobile
  • Zero backend — everything runs in your browser via vanilla JS + Vite

Quick Start

# Clone and install
git clone https://github.com/yourusername/stackpilot.git
cd stackpilot
npm install

# Development
npm run dev

# Build for production
npm run build
# Output in dist/ — deploy anywhere (Netlify, Vercel, GitHub Pages, nginx, etc.)

How It Works

  1. Select your OS — paths auto-adjust (Linux/macOS/Windows)
  2. Pick your apps — browse 22 categories, click to select, use "Select all" per category
  3. Configure — paths, timezone, Tailscale options
  4. Preview — live tabs show docker-compose.yml, .env, and setup.sh
  5. Download — get a zip bundle ready to deploy
  6. Deploy — docker compose up -d && ./setup.sh

The Compose Analyser

Switch to "Compose Analyser" mode to paste any existing docker-compose.yml and get instant feedback:

  • Errors — port conflicts, missing images, invalid structure
  • Warnings — :latest tags, no restart policy, exposed database ports, privileged containers, docker socket access
  • Suggestions — healthchecks, resource limits, log rotation, secret management, network isolation, depends_on conditions

App Categories

Category Apps Examples
🎬 Media Servers 16 Jellyfin, Plex, Navidrome, Audiobookshelf, Kavita
📡 Arr Suite 10 Sonarr, Radarr, Prowlarr, Bazarr, Lidarr, Readarr
⬇️ Downloads 7 qBittorrent, Transmission, Deluge, SABnzbd
🔍 Requests 2 Jellyseerr, Overseerr
🌐 Networking 12 Tailscale, Gluetun, Traefik, Caddy, WireGuard, WG-Easy
🔒 Security 5 Authelia, Vaultwarden, CrowdSec, Keycloak, Fail2ban
🛡️ DNS 4 Pi-hole, AdGuard Home, Technitium, Unbound
🔔 Notifications 1 ntfy
💾 Backups 4 Duplicati, Syncthing, Restic, MinIO
📄 Documents & Photos 7 Paperless-ngx, Immich, PhotoPrism, Stirling-PDF
🏠 Automation 8 Home Assistant, Node-RED, n8n, Frigate, ESPHome
💻 Development 11 Gitea, GitLab, Code-Server, Drone CI, Woodpecker, PocketBase
📊 Monitoring 17 Grafana, Prometheus, Portainer, Uptime Kuma, Netdata
🎮 Games 8 Minecraft, Valheim, Palworld, Satisfactory, RomM, Pterodactyl
💬 Communication 7 Matrix, Element, Revolt, Rocket.Chat, Listmonk
🗄️ Databases 5 PostgreSQL, MariaDB, Redis, MongoDB, InfluxDB
🏡 Dashboards 4 Homepage, Homarr, Dashy, Organizr
🤖 AI & ML 9 Ollama, Open WebUI, ComfyUI, Stable Diffusion, Flowise
💰 Finance 5 Firefly III, Actual Budget, Ghostfolio, Invoice Ninja
📝 Knowledge 8 Trilium, Wiki.js, Outline, HedgeDoc, Memos, Answer
🕵️ Privacy 5 SearXNG, Whoogle, Nitter, Redlib, LibreTranslate
🔧 Utilities 27 Nextcloud, Mealie, CyberChef, RustDesk, Guacamole, Vikunja

Auto-Linking

The generated setup.sh script handles post-deploy wiring:

  • Prowlarr → Sonarr/Radarr/Lidarr/Readarr — syncs indexers automatically
  • qBittorrent/Transmission/Deluge → Arr apps — adds as download client
  • Root folders — configures media paths in each Arr app
  • Health checks — waits for all services before attempting links
  • VPN routing — download clients automatically route through Gluetun when selected

Tech Stack

  • Vite — fast dev/build
  • Vanilla JS — no framework, minimal bundle size
  • js-yaml — compose generation and parsing
  • JSZip — client-side zip creation

Contributing

To add a new app, edit src/catalog/apps.js and add an entry with:

{
  id: 'your-app',
  name: 'Your App',
  category: 'utilities',  // must match a category id
  description: 'What it does',
  image: 'dockerhub/image:tag',
  ports: [{ container: 8080, host: 8080, protocol: 'tcp' }],
  volumes: [{ host: '${CONFIG_PATH}/your-app', container: '/config' }],
  env: { OPTIONAL_VAR: 'value' },
  healthcheck: 'curl -f http://localhost:8080 || exit 1',
  api: { port: 8080 },  // or null
  links: {},  // dependency/linking metadata
  url: 'https://github.com/org/repo'
}

License

MIT