Skip to content

docs: how to deploy the gateway beside its Postgres - #26

Merged
fajarhide merged 1 commit into
mainfrom
docs/vps-deploy
Aug 17, 2026
Merged

docs: how to deploy the gateway beside its Postgres#26
fajarhide merged 1 commit into
mainfrom
docs/vps-deploy

Conversation

@fajarhide

Copy link
Copy Markdown
Owner

The README explained how to run Selat on a laptop and stopped there. Anyone
self-hosting had to infer the production shape from the Dockerfile.

This is written from a deploy that is actually running, not from memory. One
container under a podman quadlet, Postgres on the same host bound to localhost,
a reverse proxy terminating TLS. It says why the unit uses Network=host, which
is the line that keeps Postgres off any interface the container network can see.

It also names the failure that cost the most time: podman writes an OCI spec that
older crun rejects, and the build dies at RUN npm ci with unknown version specified. That points at npm and the fix is a crun upgrade.

The section opens by saying why this is a server and not a serverless function,
since that is the first thing a reader will ask, and the answer is the shared
connection ceiling plus a database that would have to face the internet.

Docs only, no code touched. npm test still 366 passed.

The README covered running it locally and never covered running it for real,
so anyone self-hosting had to work out the shape from the Dockerfile.

Written from an actual deploy rather than from memory: podman quadlet under
systemd, Postgres on the same host and only on localhost, a reverse proxy in
front. Includes why the unit uses host networking, and the crun version
mismatch that kills the build at `RUN npm ci` while looking like an npm fault.
@fajarhide
fajarhide merged commit 64b85e7 into main Aug 17, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant