Open source · AGPL-3.0STJÓRNA keeps products, media and categories cleanly separated per tenant, with granular roles, single sign-on and a read-only REST API your storefront can trust.
# add the repo
helm repo add stjorna https://secanis.github.io/stjorna
helm repo update
# install (replace the host)
helm install my-stjorna stjorna/stjorna \
--version 3.1.0 \
--set ingress.hosts[0].host=stjorna.yourdomain.comOr run the two-serviceDocker Composestack on a single box.
Built on PocketBase, served with SolidJS, shipped as a Helm chart.
Tenants are first-class. Users, products and media are scoped per tenant and enforced by the API rules — not just the UI.
Viewer, editor and admin roles per tenant. Read-only members can never mutate products or media.
Issue scoped keys for storefronts and backends. Each key mints a short-lived viewer token — read-only, single tenant.
Map your identity provider’s groups to tenants and roles on every login. Optional password-less users.
AWS S3, Cloudflare R2, Backblaze B2 or MinIO. Settings are encrypted with your own secret — no credentials in your data.
A live OpenAPI 3.0 spec for every instance, with a Swagger UI ready to go. Three tiers: Public, Private, Admin.
Four steps from empty to first tenant and admin account. Storage, tenant and link handled in one pass.
Production-ready Helm chart for Kubernetes, or a two-service Docker Compose for a single box.
Every instance serves a live OpenAPI 3.0 spec and a Swagger UI. Access is decided by the same rules that guard the app — there is no anonymous read access.
Read products, media and categories for a storefront.
Create and update products, media and categories.
Manage tenants, users, memberships and instance settings.
A single compose file for your laptop, a hardened Helm chart for the cluster. Same multi-tenant model everywhere.