Overview
Discover what makes Fasten powerful
Fasten On‑Premise is a self‑hosted Personal Health Record (PHR) platform that aggregates patient‑authorized data from multiple healthcare providers—hospitals, labs, insurance carriers, and specialty clinics—into a single, privacy‑first dashboard. From a technical standpoint the application exposes a **RESTful API** and a **GraphQL endpoint** for programmatic access, while the front‑end is a modern single‑page application that consumes these APIs over HTTPS. The core data model follows the FHIR (Fast Healthcare Interoperability Resources) standard, allowing seamless ingestion and export of clinical documents such as lab results, imaging reports, and medication lists. The server side is built in **Go** for high concurrency and low memory footprint, whereas the client uses **React** with TypeScript to provide a responsive UI.
Backend
Database
Provider Integration
Front‑end
Overview
Fasten On‑Premise is a self‑hosted Personal Health Record (PHR) platform that aggregates patient‑authorized data from multiple healthcare providers—hospitals, labs, insurance carriers, and specialty clinics—into a single, privacy‑first dashboard. From a technical standpoint the application exposes a RESTful API and a GraphQL endpoint for programmatic access, while the front‑end is a modern single‑page application that consumes these APIs over HTTPS. The core data model follows the FHIR (Fast Healthcare Interoperability Resources) standard, allowing seamless ingestion and export of clinical documents such as lab results, imaging reports, and medication lists. The server side is built in Go for high concurrency and low memory footprint, whereas the client uses React with TypeScript to provide a responsive UI.
Architecture
- Backend – Go (≥1.22) with the Gin web framework, leveraging
gorilla/muxfor routing andgo-chi/jwtauthfor token‑based authentication. The application is split into microservice‑like modules:auth,provider-sync,record-store, andnotification. Each module is container‑friendly, enabling independent scaling via Docker Compose or Kubernetes. - Database – PostgreSQL 15 serves as the primary relational store, enriched with the
pg_trgmextension for fuzzy search on clinical notes. A separate Redis cache holds session tokens and rate‑limit counters, while a small Elasticsearch 8.x cluster indexes FHIR resources for full‑text search across the record set. - Provider Integration – Fasten implements FHIR® and HL7v2 adapters. Providers expose either a RESTful FHIR endpoint or an HL7v2 feed; the
provider-syncmodule pulls new data, normalizes it into internal FHIR resources, and writes them to PostgreSQL. The sync process is event‑driven, using Kafka (or NATS) for inter‑service messaging when new data arrives. - Front‑end – React + Vite, bundled with Webpack for production. The UI consumes the backend APIs via Axios and uses React Query for optimistic updates. Authentication is handled by JSON Web Tokens (JWT) stored in HttpOnly cookies, ensuring no XSS exposure.
Core Capabilities
- FHIR Resource Store – Full CRUD on
Patient,Observation,MedicationStatement,Immunization, etc. The API supports FHIR search parameters (_id,_include,patient:identifier) and pagination. - Provider Connectors – Plug‑in architecture allows adding new providers by implementing a Go interface (
Syncer). The community hosts connectors for major insurers (BlueCross, UnitedHealth) and labs (Quest, LabCorp). - Webhooks & Callbacks – External services can subscribe to record updates via a webhook endpoint. Payloads are signed with HMAC SHA‑256 for integrity.
- Export & Import – Supports bulk export in FHIR Bundle JSON and CSV formats, facilitating interoperability with EMR systems.
- Audit Trail – Every API call is logged to PostgreSQL with user ID, timestamp, and action type. A separate audit microservice can stream these logs to an SIEM.
Deployment & Infrastructure
Fasten is fully container‑ready. The official docker-compose.yml orchestrates all services, while Helm charts are available for Kubernetes deployments. The system requires:
- CPU: 2 vCPUs (minimum), recommended 4 for production
- Memory: 4 GB RAM, scalable with the number of providers and patient volume
- Storage: 50 GB for PostgreSQL, 10 GB for Elasticsearch (adjust per data retention)
- Networking: TLS termination via Traefik or Nginx; optional reverse proxy for multi‑tenant setups
Horizontal scaling is achieved by replicating the record-store and provider-sync services behind a load balancer. PostgreSQL can be promoted to a read‑replica cluster for heavy query loads, while Redis and Elasticsearch scale horizontally as needed.
Integration & Extensibility
- Plugin System – New provider connectors are simple Go modules implementing a
Syncerinterface; the community provides a registry of pre‑built connectors. - API SDKs – Official Go and TypeScript client libraries wrap the REST/GraphQL endpoints, simplifying authentication and request handling.
- Custom Dashboards – The front‑end exposes a JSON configuration file (
dashboard.json) that developers can edit to rearrange widgets or add custom charts using D3.js. - Extensible Auth – Supports OAuth2, OpenID Connect, and SAML; custom authentication providers can be added by extending the
authservice.
Developer Experience
The project ships with comprehensive documentation: a developer guide covering architecture, API reference (Swagger/OpenAPI), and plugin development; a user manual for end‑users; and a community forum on Discord. Configuration is driven by environment variables and YAML files, enabling CI/CD pipelines to override defaults per deployment. The codebase follows idiomatic Go practices and is linted with golangci-lint. Unit tests cover 85 % of the backend logic, and end‑to‑end Cypress tests validate the UI. The active Git
Open SourceReady to get started?
Join the community and start self-hosting Fasten today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Tags
Explore More Apps
What to Cook?
Suggest recipes based on your pantry
Traccar
Open‑source GPS tracking platform for real‑time vehicle monitoring
Hemmelig
Secure client‑side encrypted secret sharing
bewCloud
Simple, lightweight web cloud built with Deno and Fresh
PrestaShop
Open‑source eCommerce platform for scalable online stores
ConvertX
Self-hosted file conversion for over a thousand formats