ArchitectureDeployment

Deployment

How Septimius services are deployed and managed.

Environments

EnvironmentFrontendBackendDatabase
Productionapp.septimius.io (Vercel)api.septimius.io (Fly.io)Supabase (eu-west-1)
Stagingstaging.septimius.io (Vercel)api-staging.septimius.io (Fly.io)Supabase staging
Locallocalhost:3000 (Next.js dev)localhost:8000 (Uvicorn)Local or remote Supabase

Frontend (Vercel)

The Next.js frontend auto-deploys on push to main. Preview deploys are created for every pull request.

cd frontend && npm install && npm run dev
npm run typecheck
npm run build

Environment Variables

VariableDescription
NEXT_PUBLIC_SUPABASE_URLSupabase project URL
NEXT_PUBLIC_SUPABASE_ANON_KEYSupabase anon key (public)
NEXT_PUBLIC_API_URLBackend API base URL

Backend (Fly.io)

The FastAPI backend runs on Fly.io with auto-scaling. Deployments are triggered via GitHub Actions on push to main.

cd backend && python -m uvicorn app.main:app --reload --port 8000
python -m pytest tests/ --ignore=tests/integration -v --tb=short

Health Check

GET /api/health

Returns 200 OK with service version and uptime.

Design System Monorepo

The @septimius-technology-group/* packages are published from the design system monorepo. Changes to tokens, components, or icons follow this workflow:

cd design-system
npm install
npm run build        # Builds all packages
npm run test         # Runs component tests
npm run changeset    # Creates a changeset for versioning

Packages are published to the npm registry via GitHub Actions when changesets are merged to main.

Database (Supabase)

Septimius shares the Kennis OS Supabase project for cross-product data. Migrations are managed alongside the Kennis OS database:

supabase db push
supabase migration new description_of_change

Migration Rules

  1. Every CREATE TABLE includes ALTER TABLE ... ENABLE ROW LEVEL SECURITY in the same file
  2. Every migration includes rollback SQL as a comment block
  3. All tenant-scoped tables include an organisation_id column

CI/CD Pipeline

WorkflowTriggerWhat It Does
ci.ymlPush to any branchLint, type check, unit tests
design-system-ci.ymlPush to design-system/Token build, component tests, visual regression
architecture-checks.ymlPush to mainAssembler exclusivity, RLS verification

Wiki Docs

The documentation wiki at docs.septimius.io is a Nextra static site deployed from wiki/sites/septimius/ in the kennis_os repo. Changes to wiki content auto-deploy via Vercel on push to main.