Appearance
Getting Started
A practical guide to running the HVC platform locally. Read the Architecture and Tech Stack pages first for context.
Prerequisites
| Tool | Version | Used by |
|---|---|---|
| Node.js + pnpm | Node 18+ / pnpm 8+ | hvc-web, hvc-admin-web, hvc-docs |
| .NET SDK | 6, 7, 8 | Backend services (hvc-api, hvc-admin-api, hvc-services, hvc-sinkapi, ...) |
| Flutter (FVM) | 3.41 (mobile), 3.0 (headset) | hvcmobile, hvc-xr |
| SQL Server | local or container | Tenant + admin databases |
| Docker (optional) | — | Storage emulator / local infra |
Repo layout
hippo/
├── hvc-api # Main client-facing API (.NET 7)
├── hvc-admin-api # Admin/back-office API (.NET 7)
├── hvc-admin-web # Admin console (SvelteKit)
├── hvc-web # Web client (Svelte 3)
├── hvcmobile # Mobile client (Flutter)
├── hvc-xr # Headset client (Flutter/RealWear)
├── hvc-services # Email + recording worker (.NET 8)
├── hvc-ws # WebSocket presence (.NET 8)
├── hvc-sinkapi # Meeting finalizer (.NET 7)
├── hvc-filePushApi # Recording file pusher (.NET 8)
├── hvc-webLogger # Browser log ingestion (.NET 7)
├── hvc-storage # Storage abstraction library
├── hvc-shared # Shared helpers library
├── StorageEmulator # Local Azure Blob emulator project
└── hvc-docs # This documentation site (VitePress)Running the docs
bash
cd hvc-docs
pnpm install
pnpm docs:dev # http://localhost:5173
pnpm docs:build # static build (CI)Running the web client
bash
cd hvc-web
pnpm install
pnpm dev # Vite dev serverhvc-web needs a backend (hvc-api) + Keycloak to log in. Environment config comes from .env.development / .env.devlocal and src/stores/data.ts (server URL, GraphQL URL, realm resolution).
Running the backend services
Most .NET services read a shared, non-committed config folder. Set:
powershell
$env:DEV_CONFIG_PATH = "C:\path\to\your\config" # folder containing hvc/*-config/The expected layout (per service):
{DEV_CONFIG_PATH}/hvc/services-config/appsettings.json # hvc-services
{DEV_CONFIG_PATH}/hvc/sink-config/appsettings.dev.json # hvc-sinkapi
{DEV_CONFIG_PATH}/hvc/filepush-config/appsettings.json # hvc-filePushApiThen run with dotnet run (or the solution hvc.sln in Visual Studio). Each service loads the matching file in development automatically. This is needed only for local dev.
Required infrastructure
- SQL Server — tenant + admin databases (connection strings come from config).
- Keycloak — identity provider; realms per tenant (see Api — Auth).
- Pexip Infinity — conferencing (VMR creation + telemetry).
- Object storage — Azure Blob / MinIO / S3 via
hvc-storage(or local disk withstoreType: file). - Seq — centralized logs (optional locally).
- StorageEmulator — a local Azure Blob emulator project in the repo, useful when developing the recording/file pipeline without real Azure.
Where to look next
- Services — how the workers fit together + troubleshooting.
- Api — the main API and its feature areas.
- Data model — the main tables.
- Permissions — what each permission gates.
- Glossary — terms used across the platform.