Skip to content

munichdeveloper/n8n-instance-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

n8n Instance Manager - Community Edition

Ein Monorepo-Projekt zur Überwachung von bis zu 3 n8n-Instanzen (Community Edition).

πŸ—οΈ Architektur

  • Backend: Spring Boot (Java 17) - API-Fassade zu Agency Core
  • Frontend: Next.js 14 mit TypeScript, Tailwind CSS und TanStack Query
  • Database: PostgreSQL 16 (Standard) oder H2 (Dev)
  • Authentication: JWT-basiert mit Spring Security
  • Build-System: Maven (Monorepo mit Root-POM)
  • Deployment: Docker Compose
  • Core API: Agency Core API (Port 8081) mit Swagger/OpenAPI Dokumentation

πŸ“‹ Features

Community Edition

  • βœ… Übersicht ΓΌber bis zu 3 n8n-Instanzen
  • βœ… Status-Monitoring (online/offline)
  • βœ… Workflow-Übersicht (read-only)
  • βœ… FehlerΓΌbersicht (WORKFLOW_ERROR Events)
  • βœ… E-Mail-Alert-Einstellungen
  • βœ… Performance-Metriken (Basis)

πŸš€ Schnellstart

Voraussetzungen

  • Java 17+
  • Maven 3.9+
  • Docker & Docker Compose (fΓΌr PostgreSQL)
  • Node.js 20+ (optional, wird automatisch installiert)

Option 1: Automatisches Setup (Empfohlen)

# Windows PowerShell
.\setup-postgres.ps1

Das Script:

  1. Startet PostgreSQL in Docker
  2. Kompiliert Backend
  3. Installiert Frontend Dependencies

Dann manuell starten:

# Terminal 1: Backend
cd backend
mvn spring-boot:run

# Terminal 2: Frontend
cd frontend
npm run dev

Login: admin / admin123
URL: http://localhost:3000

Option 2: Alles in Docker

# Alle Services starten (PostgreSQL + Backend + Frontend)
docker-compose up -d

# Logs anschauen
docker-compose logs -f

URL: http://localhost:3000

Option 3: Lokale Entwicklung (ohne PostgreSQL)

# Backend mit H2-Datenbank starten
cd backend
mvn spring-boot:run -Dspring.profiles.active=dev

# Frontend starten
cd frontend
npm install
npm run dev

H2 Console: http://localhost:8080/h2-console
JDBC URL: jdbc:h2:file:./data/n8n-manager-dev

4. Frontend starten (Entwicklung)

cd frontend
npm install
npm run dev

Frontend lΓ€uft auf: http://localhost:3000

🐳 Docker

Docker Build

docker build -t n8n-instance-manager .

Docker Run

docker run -p 8080:8080 -p 3000:3000 \
  -e CORE_BASE_URL=https://core-api.example.com \
  -e CORE_API_TOKEN=your-token \
  n8n-instance-manager

πŸ“ Projektstruktur

n8n-instance-manager/
β”œβ”€β”€ backend/                    # Spring Boot Backend
β”‚   β”œβ”€β”€ src/main/java/
β”‚   β”‚   └── de/dgtlschmd/n8n/
β”‚   β”‚       β”œβ”€β”€ alerts/         # Alert Settings
β”‚   β”‚       β”œβ”€β”€ config/         # Configuration
β”‚   β”‚       β”œβ”€β”€ dto/            # Data Transfer Objects
β”‚   β”‚       β”œβ”€β”€ instance/       # Instance Domain
β”‚   β”‚       └── service/        # CoreApiClient
β”‚   └── pom.xml
β”œβ”€β”€ frontend/                   # Next.js Frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ app/               # Next.js App Router
β”‚   β”‚   β”‚   β”œβ”€β”€ instances/[id]/ # Instanz-Detail
β”‚   β”‚   β”‚   └── settings/alerts/ # Alert-Einstellungen
β”‚   β”‚   └── lib/
β”‚   β”‚       β”œβ”€β”€ api/           # API Client
β”‚   β”‚       β”œβ”€β”€ types/         # TypeScript Types
β”‚   β”‚       └── utils/         # Utility Functions
β”‚   └── pom.xml
β”œβ”€β”€ Dockerfile                 # Multi-Stage Docker Build
└── pom.xml                    # Root POM (Monorepo)

πŸ”Œ API-Endpunkte

Authentication

  • POST /api/auth/login - Login (JWT Token)
  • POST /api/auth/register - Registrierung
  • GET /api/auth/me - Aktueller User

Instanzen (πŸ”’ Authentifizierung erforderlich)

  • GET /api/instances - Liste aller Instanzen
  • POST /api/instances - Neue Instanz erstellen (max. 3)
  • GET /api/instances/{id} - Instanz-Details
  • GET /api/instances/{id}/workflows - Workflows einer Instanz
  • GET /api/instances/{id}/events - Events/Fehler einer Instanz
  • GET /api/instances/{id}/metrics - Metriken einer Instanz

Alert Settings (πŸ”’ Authentifizierung erforderlich)

  • GET /api/alerts/settings - Alert-Einstellungen abrufen
  • PUT /api/alerts/settings - Alert-Einstellungen speichern
  • PUT /api/alerts/settings - Alert-Einstellungen aktualisieren

Health

  • GET /actuator/health - Backend Health Check

πŸ’Ύ Datenbank

PostgreSQL (Standard - Produktion)

# Nur PostgreSQL starten
docker-compose -f docker-compose.postgres.yml up -d

# Verbinden mit psql
docker exec -it n8n-manager-postgres psql -U n8n_user -d n8n_manager

# Backup erstellen
docker exec n8n-manager-postgres pg_dump -U n8n_user n8n_manager > backup.sql

# Backup wiederherstellen
docker exec -i n8n-manager-postgres psql -U n8n_user -d n8n_manager < backup.sql

Credentials:

  • Host: localhost:5432
  • Database: n8n_manager
  • User: n8n_user
  • Password: n8n_secure_password

H2 (Dev - Lokale Entwicklung)

# Backend mit Dev-Profil starten
mvn spring-boot:run -Dspring.profiles.active=dev

H2 Console: http://localhost:8080/h2-console
JDBC URL: jdbc:h2:file:./data/n8n-manager-dev
User: sa / Password: password

Daten werden in ./data/ gespeichert und bleiben erhalten.

πŸ“– Detaillierte PostgreSQL-Dokumentation: docs/POSTGRESQL_SETUP.md

πŸ› οΈ Entwicklung

Backend

cd backend
mvn spring-boot:run

Frontend

cd frontend
npm run dev

Tests ausfΓΌhren

mvn test

🎨 Frontend-Technologien

  • Next.js 14 - React Framework mit App Router
  • TypeScript - Type Safety
  • Tailwind CSS - Utility-First CSS
  • TanStack Query - Server State Management
  • date-fns - Datum-Formatierung

πŸ“¦ Maven Build

Das Projekt nutzt ein Maven Monorepo:

# Alles bauen
mvn clean package

# Backend JAR: backend/target/backend-1.0.0-SNAPSHOT.jar
# Frontend Build: frontend/.next/

πŸ” Umgebungsvariablen

Backend

  • CORE_BASE_URL - URL der Agency Core API (Standard: http://localhost:8081)
  • CORE_API_TOKEN - API Key fΓΌr Core (Standard: dev-apikey-123)
  • CORE_TENANT_ID - Tenant-ID fΓΌr Multi-Tenancy (Standard: 123e4567-e89b-12d3-a456-426614174000)
  • SERVER_PORT - Port des Backends (Standard: 8080)

Frontend

  • NEXT_PUBLIC_BACKEND_BASE_URL - Backend URL (Standard: /api via Proxy)

πŸ“ˆ Erweiterbarkeit

Das Projekt ist so konzipiert, dass es einfach zur Pro-Version erweitert werden kann:

  • ✨ Mehr als 3 Instanzen
  • ✨ Team-Features
  • ✨ Erweiterte Analytics
  • ✨ Credentials-Monitoring
  • ✨ Slack/Telegram Alerts
  • ✨ Custom Dashboards

πŸ“š Dokumentation

Weitere Dokumentation finden Sie im docs/ Ordner:

πŸ“ Lizenz

Dieses Projekt ist Teil des n8n Instance Manager Systems.

🀝 Support

FΓΌr Fragen und Support kontaktieren Sie das Entwicklungsteam.

About

The most sophisticated Instance Manager for the Workflow Automation Platform n8n

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published