I’m looking for an experienced DevOps / Backend Engineer to set up and configure a self-hosted Supabase instance on my Ubuntu VPS.
Docker is already installed, but it should be verified and properly configured.
The goal is a secure, production-ready Supabase stack running locally (Postgres, Auth, REST, Realtime, Storage, Kong Gateway, and optional Studio), behind an HTTPS reverse proxy with automatic backups and full documentation.
Scope of Work
Docker & Environment Setup
Verify existing Docker installation (version, permissions, network stability).
Create dedicated Docker network (supabase_net).
Prepare directory structure under /opt/supabase/.
Supabase Stack Installation
Deploy Supabase components using Docker Compose:
Postgres
GoTrue (Auth)
PostgREST (REST API)
Realtime
Storage API
Kong Gateway
(Optional) Supabase Studio
Configure .env and docker-compose.yml following best practices:
No public database ports.
All services communicate over internal Docker network.
Security & Networking
Set up Nginx reverse proxy for HTTPS with Let’s Encrypt certificates.
Configure UFW firewall (only ports 22, 80, 443 open).
Add security headers and enforce HTTPS redirects.
Keep all credentials and secrets outside version control.
Backups & Monitoring
Implement automated daily PostgreSQL backups (with 30-day retention).
Include a tested restore script.
Add basic monitoring and health checks (Docker health, HTTP status).
(Optional) S3-compatible offsite backup upload.
Testing & Validation
Verify user sign-up, login, and password reset via GoTrue (SMTP).
Confirm REST endpoints respond via HTTPS.
Validate Storage uploads/downloads.
Test Realtime subscriptions.
Run at least 3 negative RLS access tests.
Documentation
Provide a short runbook (README) including:
Install, deploy, and rollback steps.
Backup and restore instructions.
Secrets handling.
Service management commands.
Include .env.example with comments.
Deliverables
Fully running self-hosted Supabase stack on Ubuntu VPS.
docker-compose.yml, .env.example, and Nginx config files.
Verified TLS certificate (Let’s Encrypt) and working HTTPS.
Working Auth, REST, Storage, and Realtime endpoints.
Automated daily database backup + successful restore test.
Clean and concise documentation/runbook.
Technical Environment
Ubuntu 22.04 LTS
Docker & Docker Compose v2
Nginx with Let’s Encrypt
Domain & DNS already configured
SSH access available
Acceptance Criteria
HTTPS active, A-grade SSL config, forced redirect HTTP→HTTPS
PostgreSQL not publicly accessible
Auth, REST, Storage, and Realtime endpoints all operational
Backups run daily; restore script verified
Logs rotate properly, disk usage monitored
Only ports 22/80/443 open (UFW enabled)
Documentation and .env.example delivered
No hardcoded secrets in any file under version control
Timeline & Deliverables
Estimated workload: 1–2 working days setup, +1 day for testing and documentation.
Deliverables pushed via Git repository and deployed on my VPS.
Required Skills
Docker & Docker Compose (production environments)
Supabase or similar stacks (Postgres, GoTrue, Kong, Realtime)
Linux server administration (Ubuntu)
Nginx + Let’s Encrypt TLS setup
Bash scripting (for backup/restore)
PostgreSQL and basic SQL/RLS understanding
Additional Notes
Docker is already running but needs verification.
Domain and DNS are fully configured.
No Supabase cloud integration — this must be 100% self-hosted.
Open to small improvements if you can make the setup more robust or secure.
⚠️ Reliability Disclaimer
Only apply if you agree to the fixed budget and milestone structure.
Any attempt to renegotiate price or terms after acceptance will be reported to PeoplePerHour as a reliability issue.
Serious professionals only, let’s keep things efficient and transparent.