Firebase alternative with Postgres, auth, REST, GraphQL, realtime and storage
CIS Level 1 hardened Ubuntu 24.04 LTS image by Lynxroute · unique credentials at first boot · CVE-scanned · SBOM and CIS report inside
| Cloud | Version | Software price | Last build | |
|---|---|---|---|---|
| AWS Marketplace EC2 AMI · all commercial regions | 2026.10.12 | $0.05/hr Recommended instance: t3.large · 5-day free trial | 2026-10-25 | Listing ↗ |
| Azure Marketplace VM image · plan payg-gen2 · Gen2 | 2026.09.07 | $0.028/vCPU/hr Recommended VM: Standard_D2s_v3 | 2026-09-13 | Listing ↗ |
Software price only; cloud infrastructure is billed separately by the provider. Prices in USD.
| Base OS | Ubuntu 24.04 LTS |
| Hardening | CIS Level 1, Ubuntu 24.04 LTS (tailored) |
| License | Apache-2.0 |
| Upstream | Supabase |
| Machine-readable | product.json · catalog.json |
Supabase is an open-source Firebase alternative built on PostgreSQL. It turns a Postgres database into a full application backend: instant RESTful and GraphQL APIs over your tables (PostgREST), a complete authentication and user-management server with email and JWT support (GoTrue), realtime subscriptions over WebSockets, S3-compatible object storage with on-the-fly image transformation, serverless edge functions, and the Supabase Studio dashboard for managing it all from the browser. The self-hosted edition runs as a docker-compose deployment of eleven services - Studio, the Kong API gateway, Auth, REST, Realtime, Storage, imgproxy, postgres-meta, Edge Functions, the Postgres database, and the Supavisor connection pooler. Build a backend for web and mobile apps without writing server code: define tables, get APIs and a typed client instantly, manage users, and subscribe to changes. Apache-2.0 license, no vendor lock-in.
Security hardening:
OS hardening (CIS Level 1):
Compliance artifacts:
ARCHITECTURE NOTES
A single host Nginx vhost on TCP 443 terminates TLS and proxies to the Kong gateway, which routes internally to Studio (/), Auth (/auth/v1), REST and GraphQL (/rest/v1, /graphql/v1), Realtime (/realtime/v1, WebSocket), Storage (/storage/v1), and Edge Functions (/functions/v1). Postgres data and uploaded objects persist at /opt/supabase/volumes/db/data and /opt/supabase/volumes/storage - operators can attach an EBS volume there. Direct database access on ports 5432 (session) and 6543 (transaction pooler) is bound to localhost by default; open it explicitly when you need external connections. Replace the self-signed certificate with a CA-signed certificate for production using Certbot, then set SUPABASE_PUBLIC_URL and SITE_URL in /opt/supabase/.env to your HTTPS hostname (and API_EXTERNAL_URL to the same hostname plus /auth/v1) so auth callbacks, storage URLs and the Studio dashboard use the new origin.
Credentials are generated at first boot and written to /root/supabase-credentials.txt.
# subscribe once on the AWS Marketplace listing, then:
aws ec2 run-instances \
--image-id resolve:ssm:/aws/service/marketplace/prod-2g7amfc6ymare/latest \
--instance-type t3.large --key-name my-key --security-group-ids sg-xxxxxxxx# accept the plan terms once, then:
az vm image terms accept --publisher lynxroute --offer supabase --plan payg-gen2
az vm create -g my-rg -n supabase --size Standard_D2s_v3 \
--image lynxroute:supabase:payg-gen2:latest --admin-username azureuser --generate-ssh-keys
The most recent release with notes; the full release history is in product.json.