System Architecture
Netra Uptime is a single-container Go + Svelte application backed by PostgreSQL or embedded SQLite with built-in in-memory caching. This page covers the overall topology and the principles behind the design.
System Topology
Netra Uptime is an open-source, self-hosted uptime monitoring and public status page platform. A single container or standalone binary runs a Go backend (Gin, GORM, goroutines) that serves the SvelteKit 5 SPA embedded via go:embed. Persistent data is stored in PostgreSQL 16 or embedded pure-Go SQLite in WAL mode; an in-process thread-safe cache (cache.MemoryCache) provides TTL caching, atomic sliding-window rate limiting, and prefix-based cache invalidation with zero external cache dependencies.
Rendering diagram...
Key Characteristics
- Single-container deployment: the compiled SvelteKit build is embedded into the Go binary, so the runtime image needs no Node.js.
- Runtime configuration: public settings such as PUBLIC_API_URL are injected through /_app/env.js, so the Docker image does not depend on build-time environment variables.
- Decoupled asynchronous workers: network checks run over non-blocking Go channels, so slow or failing targets never block HTTP requests or other monitors.
- Strict multi-tenant isolation: monitors, incidents, status pages, and audit logs are scoped by organization_id, validated by middleware on every request.