The AI-native self-hosting toolkit. Deploy 28+ production-optimized Docker apps to any VPS with a single command.
Replace $300+/month in SaaS subscriptions with a $5/month server. StackPilot is the only self-hosting toolkit with MCP (Model Context Protocol) integration -- AI assistants like Claude can deploy and manage apps directly.
git clone https://github.com/jurczykpawel/stackpilot.git
cd stackpilot
./local/deploy.sh n8n # n8n is now running on your server- AI-native deployment: The only self-hosting toolkit with native MCP integration. AI assistants can deploy, configure, and troubleshoot your apps through natural conversation. No other tool does this.
- One command, production-ready: Each app is deployed with a single
deploy.shcall. Memory limits, log rotation, health checks, security headers, and database provisioning are handled automatically. - Zero platform overhead: No web dashboard to maintain, no background services eating RAM. Just Bash scripts, SSH, and Docker. Your server resources go to your apps, not the platform.
- Database flexibility: Bundled containers (auto-provisioned, zero config) or external databases. WordPress also supports SQLite. Your choice, per app.
- 28+ curated apps: Not a marketplace of untested community templates. Every app config is tuned and tested for small VPS environments (512MB--2GB RAM).
Solopreneurs, freelancers, and small teams who:
- Pay for Zapier, Mailchimp, Airtable, Typeform and watch bills grow with every contact
- Want data on their own server — not in someone else's cloud
- Prefer a one-time setup investment over endless monthly subscriptions
- Need leverage — automation that runs 24/7 without per-execution fees
- Why StackPilot?
- Who Is This For?
- Apps
- How It Works Together
- Quick Start
- Deployment Modes
- Domain and HTTPS Setup
- Savings Calculator
- Server Requirements
- How It Compares
- Diagnostics
- FAQ
- Roadmap
- Contributing
- Support
- Repository Structure
- Tech Stack
- Star History
- Acknowledgments
- Author
- License
| App | Replaces | Description |
|---|---|---|
| n8n | Zapier / Make | Workflow automation. Connect CRM, email, payments, APIs. |
| Uptime Kuma | UptimeRobot | Uptime monitoring with push/email/Slack alerts. |
| Dockge | Portainer | Manage Docker Compose stacks via a web UI. |
| ntfy | Pushover | Self-hosted push notification server. |
| Redis | - | In-memory cache. Speeds up n8n, WordPress, and others. |
| App | Replaces | Description |
|---|---|---|
| Listmonk | Mailchimp | High-performance newsletter and mailing list manager. |
| Typebot | Typeform | Conversational forms and chatbots. Lead capture, surveys. |
| Postiz | Buffer / Hootsuite | Schedule posts to X, LinkedIn, Instagram, Facebook, TikTok. |
| Cap | Loom | Screen recording and video sharing. |
| Cookie Hub | Cookiebot | Centralized GDPR consent server for all your sites. |
| Social Media Generator | Canva (basic) | Generate brand-consistent social media graphics from HTML templates. |
| App | Replaces | Description |
|---|---|---|
| WordPress | WordPress.com | Performance Edition: Nginx + PHP-FPM + Redis Object Cache. |
| GateFlow | Gumroad | Digital product storefront. Zero fees, zero commissions. |
| FileBrowser | Dropbox / Tiiny.host | Private file manager with web UI + static hosting. |
| LinkStack | Linktree | Link-in-bio page with admin panel. |
| LittleLink | Linktree | Ultra-lightweight link-in-bio page (pure HTML). |
| Umami | Google Analytics | Privacy-focused web analytics. No cookies, GDPR-compliant. |
| AFFiNE | Notion / Miro | Knowledge base with docs, whiteboards, and databases. Open-source. |
| App | Replaces | Description |
|---|---|---|
| Vaultwarden | 1Password / Bitwarden | Password manager for individuals and teams. |
| MinIO | AWS S3 | S3-compatible object storage. |
| App | Replaces | Description |
|---|---|---|
| Stirling PDF | Adobe Acrobat | Edit, merge, sign PDFs in the browser. |
| Gotenberg | - | Document conversion API (HTML/DOCX/ODT to PDF). ~150MB RAM. |
| ConvertX | CloudConvert | Convert 800+ file formats in the browser. |
| NocoDB | Airtable | Spreadsheet-style database. CRM, projects, orders. |
| MCP Docker | - | Let AI assistants manage Docker containers on your server. |
| App | Replaces | Description |
|---|---|---|
| PicoClaw | OpenClaw | Ultra-lightweight AI assistant (Telegram/Discord/Slack). ~10MB image, 64MB RAM. Security-hardened. |
| Crawl4AI | ScrapingBee | AI web scraper with REST API. Markdown output, JS rendering. |
| Coolify | Heroku / Vercel | Full PaaS with 280+ one-click apps. Requires 8GB+ RAM. |
Every app has its own
README.mdwith detailed docs, requirements, and configuration options.
These apps are not isolated islands. Together they form a business operating system.
Example: automated e-book sales funnel
Customer --> Typebot (chatbot) --> GateFlow (Stripe payment)
|
n8n (webhook)
/ | \ \
NocoDB Email Invoice Listmonk
(CRM) (ebook) (API) (newsletter)
|
Umami (conversion)
- Typebot -- the customer chats with a bot that qualifies their needs
- GateFlow -- the bot directs them to checkout for the e-book
- n8n -- detects the payment and automatically: adds the customer to CRM (NocoDB), sends the e-book via email, generates an invoice, subscribes them to a newsletter (Listmonk)
- Umami -- tracks the conversion
Everything on your server. Zero per-execution fees. Zero limits.
- A VPS with 1GB+ RAM (Hetzner, DigitalOcean, Vultr, Linode, OVH, or any provider)
- A domain name (optional but recommended)
- A terminal with SSH access
# Linux / macOS
bash <(curl -s https://raw.githubusercontent.com/jurczykpawel/stackpilot/main/local/setup-ssh.sh)
# Windows (PowerShell)
iwr -useb https://raw.githubusercontent.com/jurczykpawel/stackpilot/main/local/setup-ssh.ps1 | iexThe script generates an SSH key, configures ~/.ssh/config with the alias vps, and copies the key to your server.
git clone https://github.com/jurczykpawel/stackpilot.git
cd stackpilot./local/deploy.sh system/docker-setup.sh # Docker + log optimization
./local/deploy.sh system/caddy-install.sh # Reverse proxy with auto-SSL
./local/deploy.sh n8n # Your first appdeploy.sh handles everything: checks server resources, prompts for domain and database configuration, deploys the app, and verifies it is running.
./local/setup-backup.sh # Encrypted backup to Google Drive / Dropbox / S3StackPilot supports two deployment modes: CLI for direct control, and AI/MCP for conversational deployment.
Run deploy.sh from your local machine. It connects to your server over SSH, handles domain configuration, database provisioning, and health checks.
./local/deploy.sh <app> [options]
# Options:
# --ssh=ALIAS SSH alias (default: vps)
# --domain-type=TYPE cloudflare | caddy | local
# --domain=DOMAIN Your domain (e.g. n8n.example.com)
# --db-source=SOURCE bundled | custom
# --yes, -y Skip all confirmation prompts
# Examples:
./local/deploy.sh n8n --domain-type=cloudflare --domain=n8n.example.com
./local/deploy.sh uptime-kuma --domain-type=local --yes
./local/deploy.sh wordpress --domain-type=caddy --domain=blog.example.comInstall the MCP server and let Claude (or any MCP-compatible AI) deploy apps conversationally.
npx stackpilot-mcpOr add it to your Claude Code MCP config:
{
"mcpServers": {
"stackpilot": {
"command": "npx",
"args": ["-y", "stackpilot-mcp"]
}
}
}Then talk to Claude naturally:
- "Deploy n8n on my server"
- "Set up Uptime Kuma with a Cloudflare domain"
- "Check server status and free RAM"
- "Configure backups to Google Drive"
The AI handles SSH connection, port allocation, domain setup, database provisioning, and post-deploy verification.
Three options, depending on your needs:
| Method | Setup | SSL | Best for |
|---|---|---|---|
| Caddy auto-HTTPS | Automatic | Let's Encrypt | Most users. Zero config HTTPS. |
| Cloudflare DNS | One-time setup | Cloudflare + Let's Encrypt | Custom domains, CDN, DDoS protection. |
| SSH tunnel | None | N/A | Local development, testing. |
Caddy is installed during Quick Start and automatically provisions Let's Encrypt certificates for every domain you expose.
ssh vps 'sp-expose n8n.example.com 5678'For custom domains with Cloudflare DNS management:
./local/setup-cloudflare.sh # One-time API token setup
./local/dns-add.sh n8n.example.com # Add DNS record
ssh vps 'sp-expose n8n.example.com 5678' # Expose with HTTPSDetails: docs/cloudflare-domain-setup.md
Access any app locally without a public domain:
ssh -L 5678:localhost:5678 vps
# Open http://localhost:5678 in your browserDetails: docs/ssh-tunnels.md
| Tool | Replaces | SaaS price/month | Self-hosted |
|---|---|---|---|
| n8n | Zapier Pro | $29--99 | $0 |
| Listmonk | Mailchimp (5k contacts) | $50+ | $0 |
| Typebot | Typeform Pro | $50+ | $0 |
| NocoDB | Airtable Pro | $20+ | $0 |
| GateFlow | Gumroad (10% commission) | $$$ | $0 |
| Uptime Kuma | UptimeRobot Pro | $7+ | $0 |
| Vaultwarden | 1Password Teams | $8/user | $0 |
| Postiz | Buffer Pro | $15+ | $0 |
| WordPress | WordPress.com Business | $25+ | $0 |
| Stirling PDF | Adobe Acrobat Pro | $15+ | $0 |
| Cap | Loom Business | $15+ | $0 |
| FileBrowser | Tiiny.host Pro | $6+ | $0 |
| ConvertX | CloudConvert | $9+ | $0 |
| Umami | Plausible | $9+ | $0 |
| Crawl4AI | ScrapingBee | $49+ | $0 |
| Total SaaS | ~$300+/month |
SaaS stack: Zapier + Mailchimp + Typeform + UptimeRobot + hosting = $150/month ($1,800/year)
StackPilot: Any VPS with 2GB RAM ($5/month) + domain ($10/year) = ~$70/year
Savings: ~$1,730/year (96%)
| Stack | RAM |
|---|---|
| Base (Caddy + Dockge) | ~100MB |
| + n8n | ~500MB |
| + Listmonk + Uptime Kuma | ~800MB |
| + Typebot + GateFlow | ~1.5GB |
| Full stack (10+ tools) | ~1.8GB |
| Coolify (PaaS, 280+ apps) | ~500--800MB (platform only) |
Stirling PDF and Crawl4AI require 2GB+ RAM. Lightweight alternative for PDF conversion: Gotenberg (~150MB).
| StackPilot | Coolify | Dokku | Kamal | |
|---|---|---|---|---|
| Approach | Bash + SSH + Docker | Full PaaS platform | Git-push PaaS | Docker/SSH deploy tool |
| GitHub stars | New | ~50k | ~32k | ~14k |
| Min. RAM | 512MB | 2GB+ | 1GB+ | 512MB |
| AI integration | Native MCP server | No | No | No |
| Pre-built apps | 28 production-optimized | 280+ (community) | Via plugins | None (bring your own) |
| Complexity | Single deploy command | Web dashboard | CLI + buildpacks | YAML config files |
| Dependencies | Bash, SSH, Docker | Docker, Traefik, PostgreSQL, Redis | Docker, Nginx, buildpacks | Docker, Ruby |
| Domain/SSL | Caddy auto-HTTPS or Cloudflare | Traefik + Let's Encrypt | Nginx + Let's Encrypt | Traefik or manual |
| Best for | Solopreneurs, small teams | Teams wanting a full PaaS | Heroku-like git workflows | Rails/Docker deployments |
# Check if a container is running
ssh vps 'docker ps | grep service-name'
# View logs (last 50 lines)
ssh vps 'cd /opt/stacks/service-name && docker compose logs --tail 50'
# Check if a port responds (200/302 = OK)
ssh vps 'curl -s -o /dev/null -w "%{http_code}" http://localhost:PORT'
# Resource usage across all containers
ssh vps 'docker stats --no-stream'Access any app without a domain using SSH tunnels: docs/ssh-tunnels.md
What VPS providers are supported? Any provider that gives you a Linux VPS with SSH access: Hetzner, DigitalOcean, Vultr, Linode, OVH, and others. StackPilot only needs Docker and SSH. If you use Mikrus (a cheap Polish VPS), check out Mikrus Toolbox -- the Polish-language sibling project with built-in Mikrus integration (free subdomains, shared databases, one-click API setup).
How much RAM do I need? 512MB handles Caddy + 1 lightweight app. 1GB runs n8n + 2--3 smaller services comfortably. 2GB supports a full stack of 10+ apps. Coolify requires 8GB+.
How do databases work? Apps that need PostgreSQL or MySQL can use a bundled database container (auto-provisioned, zero config) or connect to an external database you provide. WordPress also supports SQLite for simple sites.
Is this secure?
Apps run in isolated Docker containers. External access is HTTPS-only via Caddy. Ports are bound to 127.0.0.1 by default. Encrypted off-site backups are supported out of the box.
How do I update an app?
Run deploy.sh again. The script detects existing installations and pulls the latest Docker image. Data in Docker volumes is preserved.
Can I deploy custom Docker apps? Yes. Via the MCP server, you can deploy any Docker Compose stack -- not just the 25 built-in apps. The AI generates the compose file and deploys it.
What is MCP?
Model Context Protocol is an open standard that lets AI assistants interact with external tools. StackPilot's MCP server (stackpilot-mcp) gives Claude (and other compatible AIs) the ability to deploy apps, check server status, configure domains, and set up backups -- all through natural conversation.
How is this different from Coolify? Coolify is a full PaaS platform (like a self-hosted Heroku) with a web dashboard, built-in Traefik, and its own PostgreSQL/Redis. It is powerful but heavyweight. StackPilot is minimal: Bash scripts + SSH + Docker. No platform overhead, no web UI to maintain. StackPilot also includes native AI/MCP integration that Coolify does not have. Note: Coolify itself can be deployed via StackPilot on servers with 8GB+ RAM.
- 28+ production-optimized app deployments
- CLI deploy with interactive prompts
- MCP server for AI-driven deployment
- Caddy auto-HTTPS and Cloudflare DNS integration
- Bundled database provisioning (PostgreSQL, MySQL, SQLite)
- Encrypted backups to Google Drive / Dropbox / S3
- WordPress multi-instance support with shared Redis
- Windows support (PowerShell SSH setup)
- Static and PHP hosting support (
add-static-hosting.sh,add-php-hosting.sh) - Feature parity with Mikrus Toolbox
- Web dashboard for server overview
- One-click app updates with rollback
- Multi-server management
- App marketplace with community contributions
- Monitoring dashboard (resource usage, alerts)
Contributions are welcome. Whether it is a bug report, feature request, new app template, or documentation improvement -- all contributions help.
See CONTRIBUTING.md for development workflow, commit conventions, and how to submit a pull request.
If you run into issues or have questions:
- Bug reports and feature requests: GitHub Issues
- Discussions: GitHub Discussions
- Security: Found a vulnerability? Do not open a public issue. Use GitHub Security Advisories.
local/ -> User-facing scripts (deploy, backup, setup, DNS)
apps/<app>/ -> App installers: install.sh + README.md
lib/ -> Shared libraries (CLI parser, DB setup, domain setup, health checks)
system/ -> System scripts (Docker, Caddy, backup, power tools)
docs/ -> Documentation (Cloudflare, backups, SSH tunnels, CLI reference)
Configuration is stored in ~/.config/stackpilot/.
| Technology | Role |
|---|---|
| Bash | Install scripts, deploy, backup, diagnostics |
| Docker / Docker Compose | Application containerization |
| Caddy | Reverse proxy with automatic HTTPS (Let's Encrypt) |
| TypeScript | MCP server (Model Context Protocol) |
| SSH / rsync | Remote server management and file sync |
| Cloudflare API | Automatic DNS configuration |
| rclone | Encrypted cloud backups (Google Drive, Dropbox, S3) |
- Caddy — Reverse proxy with automatic HTTPS
- Docker — Containerization that makes it all possible
- Model Context Protocol — The standard for AI tool integration
- All the open-source app creators whose software this toolkit deploys
Pawel (@jurczykpawel)
- GateFlow -- Open-source digital product storefront
- StackPilot -- The AI-native self-hosting toolkit
MIT -- see LICENSE for details.
Self-hosted infrastructure toolkit. Deploy 28+ open-source apps (n8n, WordPress, Listmonk, Typebot, NocoDB, Vaultwarden, and more) to any VPS with one command. Replace $300+/month in SaaS subscriptions with a $5/month server.