Sign inSign up

secanis/stjorna-frontend

By secanis

•Updated 13 days ago

STJÓRNA frontend — SolidJS SPA served by nginx-unprivileged, pairs with stjorna-pocketbase.

Image
0

1.4K

secanis/stjorna-frontend repository overview

⁠secanis/stjorna-frontend

Frontend image for STJÓRNA⁠ — SolidJS SPA built with Vite, served by nginx-unprivileged.

This image ships the compiled static assets only; it needs the secanis/stjorna-pocketbase⁠ backend reachable at /api/ to function. For a turnkey deployment use the Helm chart⁠.

⁠Quick start

# Backend on host network, frontend on a separate container.
docker network create stjorna

docker run -d --rm --name stjorna-pb \
  --network stjorna \
  -e PB_SECRET=$(openssl rand -hex 16) \
  -e [email protected] \
  -e PB_SUPERUSER_PASSWORD=changeme \
  -v stjorna-pb-data:/app/pb_data \
  secanis/stjorna-pocketbase:latest

docker run -d --rm --name stjorna-fe \
  --network stjorna \
  -p 8080:8080 \
  secanis/stjorna-frontend:latest

Open http://localhost:8080⁠. The frontend discovers the backend via the localStorage key stjorna_pb_url — set it to http://localhost:8090 (or your reverse-proxied URL) on the login screen if it is not auto-detected.

⁠Image details

Base buildnode:24-alpine
Base runtimenginxinc/nginx-unprivileged:1.25-alpine
Usernginx (uid 101)
Port8080 (HTTP)
Built withSTJORNA_VERSION + STJORNA_COMMIT args, stamped into /version.json
Proxies/api/ → configured backend (see below)

⁠Tags

TagExampleSource
latestlatestmain branch builds
vX.Y.Zv3.0.0-rc8Git tag v*
X.Y.Z3.0.0-rc8semver expansion
X.Y3.0semver expansion
X3semver expansion

⁠Backend URL

The container itself does not know your backend URL — the SPA stores it in localStorage (stjorna_pb_url) at runtime, so the same image can talk to any PocketBase instance. During build the default comes from VITE_PB_URL (in frontend/.env).

To set it permanently for all users on a self-hosted install, point a reverse proxy (Caddy, nginx, Traefik) at the backend and front the SPA — see the Helm chart⁠ for the production pattern.

⁠What's inside

  • Compiled SolidJS app (/usr/share/nginx/html/)
  • nginx.conf (in /etc/nginx/conf.d/default.conf) — SPA routing + gzip
  • /version.json — release tag + commit SHA, populated by scripts/generate-version.mjs

Tag summary

Content type

Image

Digest

sha256:d3407b868…

Size

20.1 MB

Last updated

2 months ago

docker pull secanis/stjorna-frontend