Appearance
Services
The HVC platform is split into a set of .NET services that run alongside the main hvc-api (the client-facing API, documented under Api). Each service has a narrow responsibility — sending email, finalizing meetings, pushing files, logging, etc. Two shared class libraries (hvc-storage, hvc-shared) provide common building blocks.
Service list
| Service | Project | Role |
|---|---|---|
| HVC Services | hvc-services | Email outbox sender + meeting recording downloader (background workers) |
| HVC Ws | hvc-ws | Real-time call-room presence over WebSockets |
| HVC Sink Api | hvc-sinkapi | Ingests Pexip conference telemetry and finalizes events |
| HVC File Push Api | hvc-filePushApi | Pushes recording files from disk to Azure Blob |
| HVC Web Logger | hvc-webLogger | Accepts browser logs and forwards them to Seq |
| HVC Storage | hvc-storage | Storage abstraction (Azure Blob / MinIO / S3 / local) |
| HVC Shared | hvc-shared | Shared helpers (Prelude, Conversions, Tenant) |
Each service section has its own pages for configuration, endpoints, workers, and data — see the Troubleshooting page for known gotchas.
Common patterns
- Serilog → Seq — every service logs to Seq (
Application=HVC ...) via Serilog, excepthvc-ws(config present, not yet wired) andhvc-filePushApi(console output). - Multi-environment workers —
hvc-servicesandhvc-sinkapidrive one worker per configured environment (dev,test,prod). - Refit typed clients — external APIs (Pexip, Mailgun) are called through Refit interfaces; config comes from a matching config section.
DEV_CONFIG_PATH— in development each service loads extra config from{DEV_CONFIG_PATH}/hvc/<services|sink|filepush>-config/..., pointing at the shared, non-committed config folders.
Related
- Api — the main API these services support.
- Getting started — running the stack locally.