Skip to content
VerifAIer
Home / Docs / Operations
Operations · Overview

Operations overview

How to run VerifAIer in production, documented exactly as implemented. Where a capability is a metadata foundation or delegated to your infrastructure, this says so plainly.

Operations overview

VerifAIer is a self-hosted, local-first FastAPI service. The backend runs as a container (or a plain uvicorn process); the docs site, marketing site and Streamlit dashboards are separate static/UI surfaces. There is no managed SaaS control plane: you operate it on your own infrastructure.

pyproject.toml · Dockerfile · docker-compose.yml · vercel.json · src/vailidator/
flowchart LR
  subgraph HOST["Your host / VPC (local-first)"]
    RP["Reverse proxy, TLS, rate limit, timeouts (your gateway)"]
    subgraph COMPOSE["docker compose"]
      API["api, FastAPI / uvicorn :8000
vailidator.api.routes:app"] DASH["dashboard, Streamlit :8501"] CC["cc_dashboard, Streamlit :8502"] VOL[("db_data volume
/app/data/vailidator.db")] end end LIVE["Optional live AI provider (egress only if enabled+keyed+live)"] RP --> API DASH --> API CC --> API API --- VOL API -.->|opt-in| LIVE
Reference topology. Grounded in Dockerfile + docker-compose.yml. Backend is self-hosted; egress is opt-in.
ComponentRuntimePort
API (Evidence Engine)uvicorn vailidator.api.routes:app8000
Operator dashboardStreamlit apps/dashboard/app.py8501
Control Center dashboardStreamlit apps/cc_dashboard/app.py8502
Docs / marketing sitestatic HTML (demo/)via Vercel / any static host

Operational responsibilities

The clearest way to operate VerifAIer safely is to know exactly which line each concern falls on. The app owns the deterministic evidence path; your infrastructure owns the edge and durability.

ConcernVerifAIer appYou / deployment infra
TLS / HTTPSn/aterminate at your reverse proxy / platform
General rate limiting & quotaslogin only (per-IP)gateway (all other traffic)
Request timeoutsupstream provider call onlygateway / client per-request timeout
Secrets storagereads from env; never logs/echoesinject via env / secret manager
Database durabilitywrites SQLite at DB_PATHpersist & back up the volume/file
Backup / restore / DRrecords metadata onlyperform actual backup I/O + restore
Authenticationsessions + API keys (self-hosted)add SSO/MFA at the gateway if needed
Authorization (RBAC)authentication-gated; RBAC reservedenforce fine-grained authz at the gateway
Monitoring / alertingexposes /health + status endpoints + JSON logsscrape, alert, page
Horizontal scale / HAsingle-node SQLite by defaultfront with LB; use Postgres (DATABASE_URL) for multi-node
Read this first. Several enterprise concerns, general rate limiting, RBAC, backup/restore I/O, HA, are deliberately not in the app today. They are documented as known gaps with the responsible layer named, so you can close them at your gateway/infra rather than assume they are handled.

Operations documentation index

#TopicWhere
1Configuration referenceops-config
2Environment variable referenceops-config
3Provider configurationops-config
4Local development runbookops-runbooks
5Docker runbookops-runbooks
6docker-compose runbookops-runbooks
7Production deployment guideops-deploy
8Vercel / static site deploymentops-deploy
9Backend hosting requirementsops-deploy
10Health checksops-runbooks
11Logging postureops-observability
12Secret handlingops-resilience
13Backup postureops-resilience
14Restore postureops-resilience
15Disaster recovery postureops-resilience
16Upgrade guideops-deploy
17Release checklistops-hardening
18Smoke testsops-observability
19Monitoring checklistops-observability
20Security hardening checklistops-hardening
21Known production gapsops-hardening
22Operational responsibilitiesthis page