GSRN db870538a0
Some checks failed
API Docs (Node.js Express) / test (16) (push) Successful in 1m49s
API Docs (Node.js Express) / test (18) (push) Successful in 1m52s
LabFusion CI/CD Pipeline / api-docs (push) Failing after 47s
API Docs (Node.js Express) / build (push) Successful in 38s
Integration Tests / integration-tests (push) Failing after 46s
Integration Tests / performance-tests (push) Has been skipped
LabFusion CI/CD Pipeline / frontend (push) Failing after 1m45s
LabFusion CI/CD Pipeline / integration-tests (push) Has been skipped
Docker Build and Push / build-and-push (push) Failing after 40s
LabFusion CI/CD Pipeline / api-gateway (push) Failing after 1m11s
LabFusion CI/CD Pipeline / service-adapters (push) Failing after 19s
API Docs (Node.js Express) / test (20) (push) Successful in 1m40s
fix: Update SonarQube scanner installation in API Docs workflow
### Summary of Changes
- Replaced `sonar-scanner` with `@sonar/scan` for improved compatibility.
- Simplified SonarQube analysis command by removing unnecessary parameters.

### Expected Results
- Streamlined SonarQube integration in the CI workflow for API Docs.
- Enhanced maintainability and clarity of the CI configuration.
2025-09-15 20:12:37 +02:00
2025-09-11 22:08:12 +02:00
2025-09-11 22:08:12 +02:00
2025-09-11 21:40:56 +02:00

LabFusion

A unified dashboard and integration hub for your homelab services. LabFusion provides a centralized view of your Home Assistant, Frigate, Immich, n8n, and other homelab services with real-time monitoring, data correlation, and customizable dashboards.

Features

  • Unified Dashboard: Single interface for all homelab services
  • Real-time Monitoring: System metrics, service status, and event tracking
  • Service Integration: Connect to Home Assistant, Frigate, Immich, n8n, and more
  • Data Correlation: Cross-service insights and event correlation
  • Customizable Widgets: Build dashboards with charts, tables, and status cards
  • Polyglot Architecture: Java Spring Boot API gateway with Python FastAPI adapters
  • Dockerized Deployment: Easy setup with Docker Compose

Architecture

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   React         │    │   Spring Boot   │    │   FastAPI       │
│   Frontend      │◄──►│   API Gateway   │◄──►│   Adapters      │
│                 │    │                 │    │                 │
└─────────────────┘    └─────────────────┘    └─────────────────┘
                                │                        │
                                ▼                        ▼
                       ┌─────────────────┐    ┌─────────────────┐
                       │   PostgreSQL    │    │     Redis       │
                       │   Database      │    │  Message Bus    │
                       └─────────────────┘    └─────────────────┘

Quick Start

Prerequisites

  • Docker and Docker Compose
  • Git

Installation

  1. Clone the repository:
git clone <repository-url>
cd labfusion
  1. Copy the environment configuration:
cp env.example .env
  1. Edit .env file with your service URLs and tokens:
# Update these with your actual service URLs and tokens
HOME_ASSISTANT_URL=http://homeassistant.local:8123
HOME_ASSISTANT_TOKEN=your-ha-token-here
FRIGATE_URL=http://frigate.local:5000
FRIGATE_TOKEN=your-frigate-token-here
IMMICH_URL=http://immich.local:2283
IMMICH_API_KEY=your-immich-api-key-here
  1. Start the services:
docker-compose up -d
  1. Access the application:

Services

API Gateway (Spring Boot)

  • Port: 8080
  • Purpose: Core API, authentication, user management
  • Database: PostgreSQL
  • Features: JWT authentication, dashboard management, event storage

Service Adapters (FastAPI)

  • Port: 8000
  • Purpose: Integration with external services
  • Features: Home Assistant, Frigate, Immich, n8n integrations

Frontend (React)

  • Port: 3000
  • Purpose: Dashboard UI
  • Features: Real-time updates, customizable widgets, responsive design, offline mode, clean code architecture

Database (PostgreSQL)

  • Port: 5432
  • Purpose: Persistent storage
  • Data: Users, dashboards, widgets, events, device states

Message Bus (Redis)

  • Port: 6379
  • Purpose: Inter-service communication
  • Features: Event publishing, real-time updates

API Documentation (Node.js)

  • Port: 8083
  • Purpose: Unified API documentation
  • Features: Swagger UI, service health monitoring, dynamic spec generation

Development

Backend Development

Java API Gateway

cd services/api-gateway
mvn spring-boot:run

Python Service Adapters

cd services/service-adapters
pip install -r requirements.txt
uvicorn main:app --reload

Frontend Development

cd frontend
npm install
npm start

Configuration

Service Integration

  1. Home Assistant:

    • Get your token from Profile → Long-lived access tokens
    • Update HOME_ASSISTANT_URL and HOME_ASSISTANT_TOKEN in .env
  2. Frigate:

    • Get your API key from Frigate settings
    • Update FRIGATE_URL and FRIGATE_TOKEN in .env
  3. Immich:

    • Get your API key from Immich settings
    • Update IMMICH_URL and IMMICH_API_KEY in .env

Dashboard Customization

  • Access the Settings page to configure service integrations
  • Use the dashboard builder to create custom layouts
  • Add widgets for different data sources and visualizations

API Documentation

Roadmap

  • Basic project structure and Docker setup
  • Spring Boot API gateway with authentication
  • FastAPI service adapters with modular structure
  • React frontend with dashboard
  • Unified API documentation service
  • OpenAPI/Swagger integration
  • Frontend clean code refactoring
  • Offline mode and error resilience
  • Home Assistant integration
  • Frigate integration
  • Immich integration
  • Real-time WebSocket updates
  • Advanced dashboard builder
  • Data correlation engine
  • Notification system
  • Kubernetes deployment

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

For questions and support, please open an issue on GitHub.

Description
No description provided
Readme MIT 1.7 MiB
Languages
Python 45%
JavaScript 33.2%
Java 8.1%
CSS 5.4%
PowerShell 4.6%
Other 3.7%