Skip to content

PrivateAIM/hub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3,761 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

FLAME Hub

FLAME Hub

Central services for the FLAME platform.
Privacy-preserving, federated analytics across distributed institutions β€”
analysis orchestration, object storage, telemetry & real-time messaging.

CI CodeQL node >=22 Conventional Commits DOI license

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.

Architecture

Architecture

Services

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

Packages

Shared, independently published libraries (@privateaim/*).

Foundation

Package Description
kit 🧱 Core utilities β€” crypto, domain events, permissions, realms npm
errors 🚨 Shared error vocabulary β€” HubError, typed subclasses, code β†’ HTTP-status mapping npm

Domain Kits

Domain models, contracts, and typed HTTP / WebSocket clients per service area.

Package Description
core-kit 🧩 Domain models & 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 & HTTP client npm
telemetry-kit πŸ“Š Telemetry domain types & validators npm
messenger-kit πŸ’¬ Messenger contracts & crypto types npm
messenger-http-kit πŸ“¨ HTTP client for the messenger broker npm

Server Kits

Server-side building blocks shared across the backend services.

Package Description
server-kit πŸ”§ Server foundation β€” logging, auth, AMQP, Redis, DI npm
server-db-kit πŸ—„οΈ TypeORM utilities & migration support npm
server-http-kit 🌍 HTTP middleware & Swagger / OpenAPI npm
server-realtime-kit ⚑ Socket.io server helpers npm
server-storage-kit πŸ“¦ Storage service components npm
server-telemetry-kit πŸ“Š Telemetry components & Winston transport npm
server-core-worker-kit 🏭 Worker task definitions npm
server-test-kit πŸ§ͺ Shared test fakes & helpers npm

Client

Package Description
client-vue 🎨 Vue 3 component library npm
client-vue-theme 🌈 vuecs-based theme β€” design tokens & chrome npm

Quick Start

Prerequisites

  • 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 & Build

# Install dependencies
npm ci

# Build all packages (Nx, dependency-aware)
npm run build

# Run the test matrix
npm run test

# Lint
npm run lint

Development

# 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 site

Built With

FLAME 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).

Contributing

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.

Credits

Created and maintained by Peter Placzek (@tada5hi), with contributions from the PrivateAIM team. If you have any questions, feel free to reach out.

Citation

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.

DOI

License

Made with πŸ’š

Published under Apache 2.0.

About

FLAME Hub, central services for the FLAME platform: a privacy-preserving analytics infrastructure for federated data analysis across distributed institutions.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

6 stars

Watchers

3 watching

Forks

Packages

 
 
 

Contributors