# ๐Ÿš€ 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 ```bash # 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: ```js { 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