Skip to content

Deployment

Laju Go ships as a single Go binary that serves both the backend and the compiled Svelte frontend. There is no separate API server or static file host to wire up. Pick one path:

Don’t want to touch a terminal? Hand the deployment to an AI coding agent. Copy-paste a prompt, the agent SSHes in, installs everything, and starts the app. Works with omp.sh, Claude Code, Cursor, or any agent that can run shell commands.

AI agent deployment guide

One command, everything containerized:

Terminal window
docker compose up -d --build

Multi-stage image, persistent SQLite volume, healthcheck built in. If you have Docker on your server, start here.

Docker guide

Go + systemd + reverse proxy. More control, fewer moving parts, but ~6 manual steps for first-time setup.

Linux VPS guide

Docker Bare VPS (systemd)
First-time setup docker compose up -d --build (1 command after clone) ~6 steps: install Go + Node, create user, clone, .env, systemd unit, start
Routine update git pull && docker compose up -d --build git pull && npm run build:all && systemctl --user restart laju-go
Downtime on update ~2s (container swap) ~1s (process restart)
Install on server Docker + Docker Compose Go + Node.js (or cross-compile with Zig, no Go on server)
Isolation Containerized (filesystem, network, process) Runs directly on host
Memory overhead ~120 MB (container runtime) ~40 MB (single Go binary)
Best for Most users — simplest setup, reproducible environment Users who want minimal overhead, already comfortable with Linux

Both paths serve the same app on port 8080 and need a reverse proxy for HTTPS. For a single-process Go + SQLite app, systemd is faster and lighter — Docker’s benefits (isolation, reproducibility) kick in when orchestrating multiple services.


Your app is running on port 8080, but it speaks plain HTTP — no encryption. Before users can visit https://your-domain.com (with the lock icon), you need a reverse proxy in front to handle TLS (HTTPS certificates) and route traffic to port 8080. If your domain is on Cloudflare, that’s the proxy — nothing to install. Otherwise, Caddy or Nginx both work.

Reverse proxy guide

Env vars, the full .env reference table, and defaults from app/config/config.go.

Configuration