Installation
One-Click Deploy
Section titled “One-Click Deploy”Deploy Sparrow to Railway with a managed PostgreSQL database — no Docker or Kubernetes needed:
Docker Compose (Recommended)
Section titled “Docker Compose (Recommended)”The simplest way to run Sparrow. No need to clone the repo — save this docker-compose.yml anywhere and start it:
services: postgres: image: postgres:15-alpine environment: POSTGRES_DB: sparrow POSTGRES_USER: sparrow POSTGRES_PASSWORD: sparrow healthcheck: test: ["CMD-SHELL", "pg_isready -U sparrow"] interval: 5s timeout: 5s retries: 5
sparrow: image: ghcr.io/sarathsp06/sparrow:latest environment: DATABASE_URL: postgres://sparrow:sparrow@postgres:5432/sparrow?sslmode=disable SPARROW_SERVE_UI: "true" ports: ["8080:8080", "50051:50051"] depends_on: postgres: { condition: service_healthy }docker compose up -dThe server is available at:
| Endpoint | URL |
|---|---|
| Web UI | http://localhost:8080 |
| HTTP API (Connect-RPC) | http://localhost:8080 |
| gRPC API | localhost:50051 |
To stop:
docker compose down # stop containersdocker compose down -v # stop and delete dataBuild from Source
Section titled “Build from Source”Prerequisites
Section titled “Prerequisites”- Go 1.26+
- Node.js 22+ (for web UI)
- PostgreSQL 15+
make build-with-uimake buildexport DATABASE_URL=postgres://user:pass@localhost:5432/sparrow?sslmode=disable
# Run migrationsmake migrate
# Start the server with UISPARROW_SERVE_UI=true ./build/server-*Pre-built Binaries
Section titled “Pre-built Binaries”Cross-compiled binaries are available for:
linux/amd64linux/arm64darwin/amd64darwin/arm64windows/amd64
Build them all with:
make build-allDocker Image
Section titled “Docker Image”Pre-built multi-arch images (linux/amd64, linux/arm64) are published to GitHub Container Registry:
docker pull ghcr.io/sarathsp06/sparrow:latestThe Dockerfile uses a 3-stage build:
- Frontend (
node:22-alpine): Builds the SvelteKit UI - Backend (
golang:1.26-alpine): Compiles Go binaries with embedded UI - Runtime (
distroless/static-debian12:nonroot): Minimal production image