Your entire backend,
one platform
Deploy apps from GitHub, attach managed Postgres, tunnel your laptop to the internet, and bring your own VPS for unlimited scale — Railway + ngrok + Supabase, in one open-source platform you can self-host.
Platform
Everything you'd otherwise glue together
Deploys, managed Postgres, tunnels, observability, and your own VPS — all wired together. No five-tool stack, no AWS console deep-dives.
Deploy
Connect a GitHub repo. Every push builds a Docker image, runs migrations, health-checks, and serves on a subdomain.
- Auto-deploy on push to any branch
- Preview URL for every pull request
- Framework auto-detect: Next.js, Node, Python, Docker, static
- Custom domains with automatic TLS
- Deploy from specific commits, roll back in one click
Data
Managed PostgreSQL you can reach from your container and from your laptop. Backups on a schedule.
- PostgreSQL 16 per project, auto-injected as DATABASE_URL
- External connection URL (pgAdmin, DBeaver, psql from your laptop)
- Scheduled backups + one-click restore
- Standalone databases not tied to a project
Tunnel
Expose your local machine to the internet over HTTP, TCP, or TLS. Real-time request inspector + replay.
- HTTP tunnels with custom subdomains
- TCP tunnels for databases, game servers, SSH
- TLS passthrough (your certs, your control)
- Live request capture + one-click replay
Observe
Cookieless website analytics, CPU/memory/network metrics, and live-streaming container logs.
- Privacy-first analytics (no cookies, GDPR-safe)
- Real-time visitor counter, top pages, countries
- CPU / memory / network per project with sparklines
- Live container logs via WebSocket — stop paying for Datadog
BYOC
Bring your own VPS. We SSH in, install Docker, and deploy projects there with no plan resource caps. The escape hatch every PaaS lacks.
- Add any Linux VPS via SSH — we probe CPU/RAM and provision Docker
- Deploys go straight to your hardware — no plan memory/CPU ceiling
- Run managed Postgres on your own disk, your own quota
- Mix BYOC with platform overflow — scheduler picks lowest priority with capacity
Dashboard
Everything in one tab
Deploys, live logs, metrics, analytics, tunnels, databases — all in one place. No Grafana, Datadog, or five-tool stack.
Deploys
Push code. Ship code.
Connect a GitHub repo, pick a branch. Every push auto-deploys. Every PR gets its own preview URL with a real running container, a comment on the PR, and tear-down on close.
Tunnels
Localhost to the internet, instantly
HTTP, TCP, or TLS. Every request captured in real time — method, path, headers, body, status, timing. Replay any request with one click.
More
Batteries included
The stuff you'd end up bolting on anyway — already there.
Scheduled jobs
Cron-like jobs that run in a one-shot container from your image. Same env, same DB access.
Preview deploys
Every PR gets its own URL. Auto-cleanup when the PR closes.
Health checks
Deploy isn't marked 'running' until your /health endpoint returns 2xx. No silent bad pushes.
Release commands
Run migrations, seed data, or warm caches in a one-shot container before the app starts.
Team collaboration
Invite members with roles. Shared projects, shared databases, shared tunnels.
OAuth at edge
Google/GitHub auth before traffic reaches your app — no code changes needed.
Fast by default
Go server, Docker under the hood, smux-multiplexed tunnels. Sub-ms overhead.
End-to-end TLS
Let's Encrypt via Caddy on-demand. Works with your custom domains automatically.
Self-hostable
One-command install on any Ubuntu VPS. MIT license. Run your own stack.
Programmatic
CLI + SDKs
Scriptable from your terminal, your CI, or your own apps.
import { ServerMe } from '@serverme/sdk';
const sm = new ServerMe({ apiKey: 'sm_live_...' });
// Deploy a GitHub repo
const project = await sm.projects.create({
name: 'my-saas',
subdomain: 'my-saas',
github_repo: 'me/my-saas',
});
await sm.projects.deploy(project.id);
// Tail live container logs
for await (const line of sm.projects.logs(project.id)) {
console.log(line.message);
}from serverme import ServerMe
sm = ServerMe(api_key="sm_live_...")
# Spin up a managed database
db = sm.services.create(name="my-db", type="postgres")
print(db.external_connection_url)
# Trigger a deploy from a specific commit
sm.projects.deploy(project_id,
commit_sha="a1b2c3d")Pricing
Start free, scale when ready
Tunneling, deploys, databases, custom domains, analytics — all in one. Upgrade only when you outgrow the limits.
Try ServerMe with a real side project.
- 5 subdomains, 5 active tunnels
- 3 projects, 2 databases
- 1 custom domain, 1 BYOC server
- 256 MB RAM / 0.25 vCPU per project
- 50 GB bandwidth, 60 build min/mo
- Cookieless website analytics (7d)
For freelancers + indie hackers.
- 10 subdomains, 15 tunnels, 10 projects
- 10 databases, 5 services, 5 BYOC servers
- 5 custom domains, 5 PR previews
- 1 GB RAM / 1 vCPU (configurable)
- 500 GB bandwidth, 600 build min/mo
- Live logs, release commands, health checks
- Private repos, TCP/TLS tunnels, Telegram alerts
- 90-day analytics retention
For small teams shipping in production.
- Everything in Pro, plus:
- 50 subdomains / projects / databases
- 15 BYOC servers, 25 custom domains
- 25 scheduled jobs, 25 active PR previews
- Up to 8 GB RAM / 4 vCPU per project
- 1 TB bandwidth, 1800 build min/mo
- 30-day backups, 1-year analytics
- Multi-user collaboration, priority support
Ship your first project in 30 seconds
Connect GitHub, pick a repo, get a live URL. No credit card.
npm install -g serverme-cli