Central services for the FLAME platform.
Privacy-preserving, federated analytics across distributed institutions β
analysis orchestration, object storage, telemetry & real-time messaging.
Documentation Β Β·Β Quick Start Β Β·Β Services Β Β·Β Packages Β Β·Β Contributing
FLAME Hub is the home of the central services for FLAME (PrivateAIM) β a privacy-preserving analytics infrastructure that runs distributed computations across institutional boundaries without moving the underlying data. This monorepo bundles the backend services, the web frontend, the shared TypeScript libraries, and the documentation site.
Runnable applications. Each backend service follows the same hexagonal (ports & adapters) architecture and ships in the shared privateaim/hub Docker image.
| Service | Description |
|---|---|
| server-core π | Main REST API β analyses, projects, nodes, registries |
| server-core-worker π | Background worker β Docker container build & distribution |
| server-storage π¦ | File / object storage (MinIO / S3) |
| server-telemetry π | Log aggregation & events (VictoriaLogs) |
| server-messenger π¬ | Real-time messaging (Socket.io) |
| client-ui π₯οΈ | Nuxt 4 web application |
| docs π | VitePress documentation site |
Shared, independently published libraries (@privateaim/*).
| Package | Description | |
|---|---|---|
| kit π§± | Core utilities β crypto, domain events, permissions, realms | |
| errors π¨ | Shared error vocabulary β HubError, typed subclasses, code β HTTP-status mapping |
Domain models, contracts, and typed HTTP / WebSocket clients per service area.
| Package | Description | |
|---|---|---|
| core-kit π§© | Domain models & types for the core service | |
| core-http-kit π | HTTP client for the core API | |
| core-realtime-kit β‘ | WebSocket event contracts for the core API | |
| storage-kit π¦ | Storage domain types & HTTP client | |
| telemetry-kit π | Telemetry domain types & validators | |
| messenger-kit π¬ | Messenger contracts & crypto types | |
| messenger-http-kit π¨ | HTTP client for the messenger broker |
Server-side building blocks shared across the backend services.
| Package | Description | |
|---|---|---|
| server-kit π§ | Server foundation β logging, auth, AMQP, Redis, DI | |
| server-db-kit ποΈ | TypeORM utilities & migration support | |
| server-http-kit π | HTTP middleware & Swagger / OpenAPI | |
| server-realtime-kit β‘ | Socket.io server helpers | |
| server-storage-kit π¦ | Storage service components | |
| server-telemetry-kit π | Telemetry components & Winston transport | |
| server-core-worker-kit π | Worker task definitions | |
| server-test-kit π§ͺ | Shared test fakes & helpers |
| Package | Description | |
|---|---|---|
| client-vue π¨ | Vue 3 component library | |
| client-vue-theme π | vuecs-based theme β design tokens & chrome |
- Node.js 22+
- npm (workspaces)
- Docker (optional) β for MySQL / Postgres test databases
External services (for running the backend locally): Authup (OAuth2), Redis, RabbitMQ, and MySQL or PostgreSQL.
# Install dependencies
npm ci
# Build all packages (Nx, dependency-aware)
npm run build
# Run the test matrix
npm run test
# Lint
npm run lint# Start local databases (MySQL + Postgres)
docker-compose up -d
# Dev servers
npm run dev --workspace=apps/client-ui # Nuxt frontend
npm run dev --workspace=apps/server-core # Core API
npm run dev --workspace=apps/server-storage # Storage service
npm run dev --workspace=apps/server-telemetry # Telemetry service
npm run dev --workspace=apps/server-messenger # Messenger service
npm run dev --workspace=docs # Documentation siteFLAME Hub is built on a stack of open-source libraries maintained by the same author: Authup (identity & access), Routup (HTTP routing), Hapic (HTTP clients), validup (validation), ilingo (i18n), and vuecs (Vue components & theming).
Before starting to work on a pull request, it is important to review the guidelines for contributing and the code of conduct. These guidelines will help to ensure that contributions are made effectively and are accepted.
Created and maintained by Peter Placzek (@tada5hi), with contributions from the PrivateAIM team. If you have any questions, feel free to reach out.
If you use FLAME Hub in academic work, please cite it. Citation metadata is maintained in CITATION.cff β GitHub renders a "Cite this repository" button from it.
Made with π
Published under Apache 2.0.
