Platform Overview · How to use it
2 min readRapid overview
How to use it
How you interact with the platform depends on who you are.
As a visitor / end user
You usually never see "the platform" at all — you see a product:
- You open a survey link (Erevna), browse a café's menu (Katalogos), land on an event page (Kefi), or play a browser game (Aurora).
- Your request hits Traefik, which routes you by hostname to the right frontend or static page over HTTPS.
- If the product needs you to log in, you authenticate against that product's Keycloak realm — your Erevna login is not your Katalogos login.
As a tenant (a customer running a product)
A tenant is a paying/organisation customer — say a restaurant using Katalogos or an organiser using Kefi:
- You sign up / log in through that product's Keycloak realm.
- You get a tenant identity; from then on everything you create is tagged with your tenant id and only ever visible to you, thanks to automatic per-tenant filtering.
- You manage your product data through the product's web app (build a menu, design a survey, set up an event), upload images that land in S3-compatible storage, and receive notifications (e.g. emails) when relevant events happen.
- Billing is handled by the payments service according to your plan.
- For Kefi specifically, you can point your own custom domain at your event page — Traefik's host routing plus path-rewrite middleware makes your domain resolve to the right internal route, with a TLS certificate issued automatically.
As a developer working on the platform
To work on or extend the platform you operate at the infrastructure and code level:
- You work inside the
dloizidesKubernetes namespace on the K3s cluster. - You build container images and push them to the private registry over the WireGuard VPN; deployments reference them by digest, so a rollout is an explicit, reproducible change.
- You add functionality by working within the relevant microservice (the one that owns that bounded concern), wiring cross-service reactions through RabbitMQ events rather than direct calls.
- You reuse the shared NuGet / NPM packages instead of re-implementing cross-cutting concerns, and you can stand up an entirely new product with the
create-dloizides-appscaffolder. - New routes and hostnames are exposed by configuring Traefik (host rules, TLS, and any middleware such as security headers or rewrites).