Skip to content

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

ServiceProjectRole
HVC Serviceshvc-servicesEmail outbox sender + meeting recording downloader (background workers)
HVC Wshvc-wsReal-time call-room presence over WebSockets
HVC Sink Apihvc-sinkapiIngests Pexip conference telemetry and finalizes events
HVC File Push Apihvc-filePushApiPushes recording files from disk to Azure Blob
HVC Web Loggerhvc-webLoggerAccepts browser logs and forwards them to Seq
HVC Storagehvc-storageStorage abstraction (Azure Blob / MinIO / S3 / local)
HVC Sharedhvc-sharedShared 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, except hvc-ws (config present, not yet wired) and hvc-filePushApi (console output).
  • Multi-environment workershvc-services and hvc-sinkapi drive 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.
  • Api — the main API these services support.
  • Getting started — running the stack locally.

Released under the MIT License.