Skip to content

Latest commit

 

History

3,814 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
FLAME Hub — federated analytics across institutions. The data never moves.

CI CodeQL node 24 DOI license

A FLAME analysis is a container that travels to the data. Institutions each run a node; Hub is the centre that decides what runs where — it builds the analysis image, ships it to the nodes that joined a project, and collects the results, without ever seeing a row of the underlying data.

This monorepo is the central half: five backend services, a Nuxt frontend, 19 shared TypeScript libraries, and the documentation site.

Documentation · Quick start · Services · Packages · Contributing

Quick start

Requires Node.js 24, npm, and Docker. Running the backend locally also expects Authup (OAuth2), Redis, RabbitMQ, and MySQL or PostgreSQL.

npm ci          # install
npm run build   # build all packages (Nx, dependency-aware)
npm run test    # run the test matrix
npm run lint    # lint
docker compose up -d                            # MySQL + Postgres

npm run dev --workspace=apps/server-core        # Core API
npm run dev --workspace=apps/client-ui          # Nuxt frontend
npm run dev --workspace=docs                    # Documentation site

Every entity endpoint answers with a { data, meta } envelope, and every query-capable GET publishes the vocabulary it accepts under meta.schema — so a client never has to read server source to build a valid query.

📖 Local setup · API reference · Deployment

Services

Architecture

Each backend service follows the same hexagonal (ports & adapters) architecture and ships in the shared privateaim/hub Docker image, selected at startup with SERVICE=<name>.

Service Responsibility
server-core Main REST API — analyses, projects, nodes, registries
server-core-worker Background worker — Docker image build & distribution
server-storage File and object storage, on MinIO / S3 or the filesystem
server-telemetry Log aggregation and events, backed by VictoriaLogs
server-messenger Durable store-and-forward message broker
client-ui Nuxt 4 web application

Packages

Shared libraries, published to npm as @privateaim/*.

Foundation

Package Responsibility Version
kit Crypto, domain events, permissions, realms npm
errors HubError, typed subclasses, code → HTTP-status mapping npm

Domain kits

Models, contracts and typed clients, one set per service area.

Package Responsibility Version
core-kit Domain models and types for the core service npm
core-http-kit HTTP client for the core API npm
core-realtime-kit WebSocket event contracts for the core API npm
storage-kit Storage domain types and HTTP client npm
telemetry-kit Telemetry domain types and validators npm
messenger-kit Messenger contracts and crypto types npm
messenger-http-kit HTTP client for the messenger broker npm

Server kits

Building blocks shared across the backend services.

Package Responsibility Version
server-kit Logging, auth, AMQP, Redis, dependency injection npm
server-db-kit TypeORM utilities and migration support npm
server-http-kit HTTP middleware and OpenAPI generation npm
server-realtime-kit Socket.io server helpers npm
server-storage-kit Storage service components npm
server-telemetry-kit Telemetry components and Winston transport npm
server-core-worker-kit Worker task definitions npm
server-test-kit Shared test fakes and helpers npm

Client

Package Responsibility Version
client-vue Vue 3 component library npm
client-vue-theme vuecs-based theme — design tokens and chrome npm

Built with

FLAME Hub runs on a stack of open-source libraries maintained by the same author: Authup (identity and access), Routup (HTTP routing), Hapic (HTTP clients), validup (validation), ilingo (i18n), and vuecs (Vue components and theming).

Contributing

Before starting work on a pull request, please review the contributing guidelines and the code of conduct.

Credits and citation

Created and maintained by Peter Placzek (@tada5hi), with contributions from the PrivateAIM team.

If you use FLAME Hub in academic work, please cite it — citation metadata lives in CITATION.cff, which GitHub renders as a "Cite this repository" button.

License

Made with 💚 · Published under Apache 2.0.

About

Central services for the FLAME platform (PrivateAIM), privacy-preserving federated analytics across distributed institutions: analysis orchestration, object storage, telemetry & real-time messaging.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

6 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages