WARNING: THIS PROJECT IS STILL IN DEVELOPMENT AND NOT PRODUCTION READY.
A single-container solution for running multiple isolated PocketBase instances with path-based routing.
- Single Container: Run hundreds of instances on a single port.
- Path-Based Routing: Auto-configured Caddy proxy (e.g.,
domain.com/myapp/_/). - Resource Control: Set memory limits per instance.
- Monitoring: Background health checks with Discord/Slack notifications.
- Management: Web Dashboard and CLI tools.
- Backups: Built-in backup/restore and import tools.
This project follows a monorepo-style structure:
├── apps/
│ ├── dashboard/ # SvelteKit Dashboard
│ ├── docs/ # Documentation
│ └── web/ # Landing Page (Future)
├── core/
│ ├── api/ # Node.js API Server
│ ├── cli/ # Shell Scripts (add-instance, etc.)
│ └── entrypoint.sh
├── Dockerfile # Main container build
└── install.sh # Installer script
See the Development Guide for more details on project structure and testing.
git clone https://github.com/n3-rd/multi-pb.git
cd multi-pb
./install.shAccess dashboard at: http://localhost:25983/dashboard
- Installation Guide - Docker Compose, Installer options, Deployment.
- CLI Reference - Command line tools for managing instances.
- API Reference - HTTP API endpoints.
- Configuration - Notifications, Webhooks, Resource Limits.
Multi-PB uses a Supervisord process manager to run multiple PocketBase binaries alongside a Caddy reverse proxy and a Node.js API server for management.
[ Docker Container ]
├── Caddy (Reverse Proxy & Routing)
├── Node.js API (Management & Monitoring)
└── Supervisord
├── PocketBase Instance 1
├── PocketBase Instance 2
└── ...
MIT