Open-source Backend as a Service — Database, Auth, Storage, and Realtime out of the box.
git clone https://github.com/aditya000099/zerobase.git
cd zerobase
cp .env.example .env # edit credentials
docker compose up --buildDashboard → http://localhost:3000
ZeroBase ships as a single Docker image. Any host that runs Docker works.
POSTGRES_USER=admin
POSTGRES_PASSWORD=<strong-password>
POSTGRES_DB=zerobase_mainAny $5/mo VPS (DigitalOcean, Hetzner, Linode, AWS Lightsail):
# SSH into your server
ssh user@your-server
# Install Docker
curl -fsSL https://get.docker.com | sh
# Clone & run
git clone https://github.com/aditya000099/zerobase.git
cd zerobase
cp .env.example .env # edit with real credentials
docker compose up -d # runs in backgroundPoint a domain to your server IP and put it behind a reverse proxy (Caddy/Nginx) for HTTPS.
Caddy example (/etc/caddy/Caddyfile):
api.yourdomain.com {
reverse_proxy localhost:3000
}
- Push to GitHub
- Create a new project on Railway or Render
- Add a PostgreSQL service
- Set env vars:
POSTGRES_USER,POSTGRES_PASSWORD,POSTGRES_DB - Deploy — it auto-detects the
Dockerfile
fly launch # auto-detects Dockerfile
fly postgres create # managed Postgres
fly secrets set POSTGRES_USER=admin POSTGRES_PASSWORD=<pw> POSTGRES_DB=zerobase_main
fly deploynpm install zerobaseimport { ZeroBaseClient, DatabaseClient, AuthClient, StorageClient, RealtimeClient } from "zerobase";
const client = new ZeroBaseClient("your-project-id", "https://api.yourdomain.com", "your-api-key");
const db = new DatabaseClient(client);
const auth = new AuthClient(client);
const storage = new StorageClient(client);
const rt = new RealtimeClient(client);| Layer | Tech |
|---|---|
| API | Node.js, Express |
| Database | PostgreSQL |
| Dashboard | React |
| Realtime | WebSocket |
| Container | Docker |
| SDK | TypeScript (npm) |