Technical Questions
Technical FAQ for Supascale.
Technical frequently asked questions about Supascale architecture, configuration, and advanced usage.
Architecture
What technology stack does Supascale use?
| Component | Technology |
|---|---|
| Backend | Next.js 15 (App Router) |
| Frontend | React 19 |
| Database | SQLite |
| Container runtime | Docker + Docker Compose |
| Process manager | PM2 |
Why SQLite instead of PostgreSQL?
Supascale uses SQLite for:
- Zero configuration - No separate database server
- Portability - Easy backup and migration
- Low resource usage - Suitable for small servers
- Reliability - Battle-tested, no network issues
SQLite handles Supascale's use case (configuration storage, not high-throughput) excellently.
How does Supascale manage Docker containers?
Supascale:
- Generates
docker-compose.ymlfor each project - Uses Docker Compose API to start/stop services
- Monitors container health via Docker API
- Collects logs via Docker logging driver
Can Supascale run without Docker?
No. Docker is required because Supabase services are distributed as Docker images. Supascale orchestrates these containers.
Performance
What are the minimum system requirements?
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 1 core | 2+ cores |
| RAM | 512MB + 512MB per project | 1GB + 1GB per project |
| Disk | 10GB + project data | SSD recommended |
| OS | Linux (Ubuntu 22.04+) | Linux |
How many projects can one server handle?
Depends on resources:
| Server Size | Projects | Notes |
|---|---|---|
| 2GB RAM | 1-2 | Small/dev projects |
| 4GB RAM | 3-5 | Medium traffic |
| 8GB RAM | 5-10 | Production loads |
| 16GB+ RAM | 10+ | Heavy usage |
Projects can be tuned to use fewer resources by disabling unused services.
How do I reduce memory usage?
Disable unused services:
- Edge Functions (if not used)
- Realtime (if not needed)
- Vector (if not using pgvector)
Tune PostgreSQL:
# In docker-compose.yml services: db: command: > postgres -c shared_buffers=128MB -c work_mem=8MBEnable connection pooling (PgBouncer)
Can I use Supascale on ARM processors?
Yes, with limitations:
- Supabase images support
arm64(Apple Silicon, AWS Graviton) - Some services may have reduced performance
- Verify all required images support ARM
Security
How are sensitive data encrypted?
| Data | Encryption |
|---|---|
| Database credentials | AES-256 (DB_ENCRYPTION_KEY) |
| API keys | Bcrypt hash |
| SMTP passwords | AES-256 |
| Cloud storage keys | AES-256 |
The DB_ENCRYPTION_KEY environment variable is used for all symmetric encryption.
How do I rotate the encryption key?
Key rotation requires decrypting and re-encrypting all sensitive data. Plan carefully.
- Export all sensitive configuration
- Update
DB_ENCRYPTION_KEY - Re-import configuration
- Verify all services work
What authentication methods are supported?
For Supascale admin access:
- Username/password (stored with bcrypt)
- Session-based authentication (NextAuth.js)
- API key authentication
For Supabase projects:
- All Supabase auth providers (configured per project)
How do I secure Supascale behind a firewall?
# Only allow local access ufw allow from 192.168.1.0/24 to any port 3000 # Or use SSH tunnel ssh -L 3000:localhost:3000 your-server
Are API communications encrypted?
- Web UI: Use HTTPS (reverse proxy with SSL)
- Docker API: Local socket (no network exposure)
- Database: Local SQLite (no network)
Database
Can I view/edit the Supascale database directly?
Yes:
sqlite3 data/supascale.db # View tables .tables # View schema .schema projects
Direct database edits can corrupt data. Always back up first.
How do I reset Supascale to fresh state?
# Stop Supascale pm2 stop supascale-web # Remove database (keeps projects) rm data/supascale.db # Restart (re-runs setup) pm2 start supascale-web
Can I use an external database?
Not currently. SQLite is embedded. External database support (PostgreSQL) may be added in future versions.
Docker
How do I use a custom Docker registry?
Set environment variable:
DOCKER_REGISTRY=your-registry.com
Or modify image paths in project settings.
Can I customize the Docker Compose configuration?
Yes, but with caveats:
- Changes may be overwritten on project updates
- Use Supascale settings when possible
- For advanced needs, edit files directly:
vim ~/supabase/projects/your-project/docker-compose.yml docker compose up -d
How do I update Supabase Docker images?
- Via UI: Project Settings > Services > Update
- Via API: Use container update scheduled task
- Manually:
cd ~/supabase/projects/your-project docker compose pull docker compose up -d
Can I run Supascale in Docker?
Not officially supported yet. Challenges:
- Docker-in-Docker complexity
- Volume mount management
- Network configuration
Running directly on host is recommended.
Networking
What ports does Supascale use?
| Port | Service | Configurable |
|---|---|---|
| 3000 | Supascale Web | Yes (PORT env) |
| 54321+ | Supabase projects | Per project |
Can multiple projects share ports?
No. Each project needs unique ports. Supascale automatically assigns ports starting from 54321.
How do I configure projects for external access?
- Use domain binding with Supascale
- Configure reverse proxy (Nginx/Caddy)
- Set up SSL via Let's Encrypt
Does Supascale support IPv6?
Yes, if your Docker and network support IPv6:
# In docker-compose.yml
networks:
default:
enable_ipv6: true
API
What's the API rate limit?
Default limits:
- 1000 requests per minute per API key
- Configurable via environment variables
Can I use the API without authentication?
No. All API endpoints require either:
- Valid session (web UI)
- API key header (
X-API-Key)
How do I debug API issues?
- Check response body for error details
- Enable debug logging:
DEBUG=supascale:* pm2 restart supascale-web
- Check Supascale logs:
pm2 logs supascale-web
Backups
What backup formats are used?
| Component | Format |
|---|---|
| Database | SQL dump (pg_dump) |
| Storage | Tar archive |
| Functions | Source files |
| Config | JSON |
| Container | tar.gz |
Can I restore to a different project?
Partial support:
- Database: Yes (schema may need adjustment)
- Storage: Yes
- Functions: Yes
- Config: Not directly (project-specific)
How do I automate off-site backups?
- Configure cloud storage provider
- Create scheduled backup task
- Set destination to cloud storage
- Enable encryption for sensitive data
Updates
How do I roll back an update?
- Stop Supascale
- Restore from git:
git checkout v1.0.0 # Previous version tag npm install npm run build
- Restart Supascale
Do updates require downtime?
Minimal downtime:
- New version downloads in background
- Brief restart required (~30 seconds)
- Projects continue running
Can I skip versions when updating?
Yes. Update directly to latest. Database migrations handle version gaps.
Troubleshooting
Where are log files?
| Log | Location |
|---|---|
| Supascale | pm2 logs supascale-web |
| Projects | Docker Compose logs |
| System | Activity log in web UI |
How do I enable verbose logging?
# Set debug environment DEBUG=* pm2 restart supascale-web # For specific modules DEBUG=supascale:api:* pm2 restart supascale-web
How do I report a technical issue?
Include:
- Supascale version (
/api/v1/system/updates) - Operating system and version
- Docker version (
docker --version) - Error logs (
pm2 logs supascale-web --lines 100) - Steps to reproduce