SupaPanel is a web-based control panel that simplifies the deployment and management of multiple self-hosted Supabase projects. Deploy your own Supabase infrastructure on any Linux server with a single command.
Fork Notice: This project is based on sharonpraju/SupaConsole. Thanks to @sharonpraju for the original work.
- Why SupaPanel?
- Features
- Quick Start
- Tech Stack
- Usage Guide
- Uninstallation
- Project Structure
- Configuration
- Contributing
- License
If you're looking to self-host Supabase without the complexity of managing Docker Compose files, Traefik configurations, and SSL certificates manually, SupaPanel provides:
- Single-command deployment for production environments
- Multi-project management from a unified dashboard
- Automatic HTTPS via Traefik and Let's Encrypt
- Custom domain support for each Supabase project
- Team collaboration with user management
Perfect for agencies, development teams, and organizations that need to manage multiple Supabase instances on their own infrastructure.
| Feature | Description |
|---|---|
| One-Command Install | Deploy on any Linux server with a single curl command |
| Docker Integration | Automated Docker Compose deployment for each project |
| Traefik Reverse Proxy | Automatic HTTPS with Let's Encrypt certificates |
| Secure Registration | First-user-only admin registration |
| Environment Config | Web interface for managing project environment variables |
| Custom Domains | Assign unique domains to each Supabase project |
| Team Management | User authentication and team member access control |
| Modern Interface | Dark theme with responsive design using shadcn/ui |
Deploy SupaPanel on any fresh Linux server (Ubuntu 22.04+, Debian 11+):
curl -sSL https://raw.githubusercontent.com/alanfrigo/SupaPanel/main/install.sh | shThe installation script will:
- Install Docker if not present
- Configure Traefik reverse proxy with automatic HTTPS
- Deploy PostgreSQL database
- Launch the SupaPanel application
- Generate secure passwords automatically
After installation, access http://YOUR_SERVER_IP:3000 to create your admin account.
For local development setup, see the Testing Guide.
# Clone repository
git clone https://github.com/alanfrigo/SupaPanel.git
cd SupaPanel
# Install dependencies
npm install
# Start PostgreSQL
docker compose -f docker-compose.dev.yml up -d
# Configure environment
cp .env.example .env
npm run db:generate
npm run db:push
# Start development server
npm run dev| Layer | Technologies |
|---|---|
| Frontend | Next.js 15, TypeScript, Tailwind CSS, shadcn/ui |
| Backend | Next.js API Routes, Prisma ORM |
| Database | PostgreSQL |
| Proxy | Traefik v3 with Let's Encrypt |
| Container | Docker, Docker Compose |
- Access the panel at
http://YOUR_IP:3000 - Create your admin account (first user registration only)
- Click Initialize to set up Supabase core files
- Create your first Supabase project
- Click New Project on the dashboard
- Enter project name and description
- Configure environment variables
- Deploy with one click
To use a custom domain for your Supabase project, follow these steps:
- A domain you own with access to DNS settings
- Your SupaPanel server's public IP address
Add the following DNS records pointing to your server's IP:
| Type | Name | Value |
|---|---|---|
| A | api.example.com |
YOUR_SERVER_IP |
| A | studio.api.example.com |
YOUR_SERVER_IP |
Note: Replace
api.example.comwith your chosen domain andYOUR_SERVER_IPwith your server's public IP address.
- Go to Dashboard → Select your project → Click Configure
- Find the Custom Domain Configuration section at the top
- Enter your domain (e.g.,
api.example.com) - Click Save Domain
Once DNS is configured:
- Traefik automatically detects the domain
- Let's Encrypt issues an SSL certificate
- HTTPS is enabled automatically (no manual configuration needed)
After configuration, your Supabase services will be available at:
| Service | URL |
|---|---|
| Supabase API | https://api.example.com |
| Supabase Studio | https://studio.api.example.com |
| PostgREST | https://api.example.com/rest/v1 |
| Auth | https://api.example.com/auth/v1 |
| Storage | https://api.example.com/storage/v1 |
| Realtime | wss://api.example.com/realtime/v1 |
You can also set up a custom domain for the SupaPanel dashboard itself:
- Go to Dashboard → Click Settings (gear icon in header)
- In the Panel Domain section, enter your domain (e.g.,
panel.example.com) - Point your domain's DNS A record to this server's IP address
- Click Save Domain
After configuration:
- Access your SupaPanel at
https://panel.example.com - Direct IP access (
http://YOUR_IP:3000) remains available as fallback
To completely remove SupaPanel from your server, follow these steps:
-
Stop and remove containers:
cd /etc/supapanel docker compose down -v -
Remove data directory (WARNING: This will delete all your projects and data):
sudo rm -rf /etc/supapanel
-
Remove Docker image (optional):
docker rmi alanmf30/supapanel:latest
supapanel/
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── api/ # API routes
│ │ ├── auth/ # Authentication pages
│ │ └── dashboard/ # Dashboard pages
│ ├── components/ # React components
│ └── lib/ # Utilities (auth, db, project, traefik)
├── prisma/ # Database schema
├── traefik/ # Traefik configuration
├── docs/ # Documentation
│ └── TESTING.md # Testing guide
├── install.sh # Production installation script
└── docker-compose.dev.yml # Development PostgreSQL
| Variable | Description | Default |
|---|---|---|
DATABASE_URL |
PostgreSQL connection string | Required |
NEXTAUTH_SECRET |
Session encryption secret | Auto-generated |
NEXTAUTH_URL |
Panel base URL | http://localhost:3000 |
TRAEFIK_ACME_EMAIL |
Let's Encrypt notification email | admin@example.com |
DATA_PATH |
Data storage directory | /etc/supapanel |
Contributions are welcome. Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Make your changes
- Commit:
git commit -m 'Add your feature' - Push:
git push origin feature/your-feature - Open a Pull Request
See TESTING.md for development setup instructions.
This project is licensed under the MIT License. See the LICENSE file for details.
- sharonpraju/SupaConsole — Original project
- Supabase — The open-source Firebase alternative
- Traefik — Cloud-native reverse proxy

