Initial commit: StackPilot - Docker stack builder with 186 apps, compose analyser, analytics
This commit is contained in:
119
README.md
Normal file
119
README.md
Normal file
@@ -0,0 +1,119 @@
|
||||
# 🚀 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
|
||||
Reference in New Issue
Block a user