mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-15 10:21:10 +02:00
## New Features ### Network Graph Visualization (Contacts, Calendar, Todo) - D3.js force simulation for physics-based layout - Zoom & pan with mouse/touchpad - Keyboard shortcuts: +/- zoom, 0 reset, Esc deselect, / search, F focus - Filtering by tags, company/location/project, connection strength - Shared components in @manacore/shared-ui ### Central Tags API (mana-core-auth) - CRUD endpoints for tags - Schema: tags table with userId, name, color, app - Shared tag components in @manacore/shared-ui ### Custom Themes System - Theme editor with live preview and color picker - Community theme gallery - Theme sharing (public, unlisted, private) - Backend API in mana-core-auth ### Todo App Extensions - Glass-pill design for task input and items - Settings page with 20+ preferences - Task edit modal with inline editing - Statistics page with visualizations - PWA support with offline capabilities - Multiple kanban boards ### Contacts App Features - Duplicate detection - Photo upload - Batch operations - Enhanced favorites page with multiple view modes - Alphabet view improvements - Search modal ### Help System - @manacore/shared-help-content - @manacore/shared-help-ui - @manacore/shared-help-types ### Other Features - Themes page for all apps - Referral system frontend - CommandBar (global search) - Skeleton loaders - Settings page improvements ## Bug Fixes - Network graph simulation initialization - Database schema TEXT for user_id columns (Better Auth compatibility) - Various styling fixes ## Documentation - Daily report for 2025-12-10 - CI/CD deployment guide 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
3.2 KiB
3.2 KiB
uLoad Deployment Guide
🚀 Deployment Architektur
Die Anwendung wurde vereinfacht und läuft nun ohne embedded PocketBase. PocketBase wird als separater Service in Coolify deployed.
Container-Struktur
uLoad Container (Port 3000)
├── SvelteKit App
├── Node.js Runtime
└── Health Check Endpoint
PocketBase Container (Port 8090) - Separat in Coolify
├── PocketBase Server
├── SQLite Database
└── Admin UI
📦 Was wurde geändert?
Entfernte Komponenten:
- ❌ Embedded PocketBase im Container
- ❌ Supervisor Process Manager
- ❌ Docker Entrypoint Script
- ❌ PocketBase Initialisierungs-Scripts
- ❌ Port 8090 Mapping im App Container
- ❌ Volume für pb_data
Neue Struktur:
- ✅ Schlanker Container nur mit SvelteKit
- ✅ Externe PocketBase Verbindung via
PUBLIC_POCKETBASE_URL - ✅ Direkte Node.js Ausführung (kein Supervisor)
- ✅ Reduzierte Image-Größe (~80MB kleiner)
🔧 Deployment in Coolify
1. PocketBase Service (falls noch nicht vorhanden)
# Als separater Service in Coolify
Service: PocketBase
Port: 8090
Persistent Volume: /pb_data
2. uLoad App Service
# docker-compose.coolify.yml verwenden
Service: uLoad
Port: 3000
Build: Dockerfile
Environment:
- PUBLIC_POCKETBASE_URL=http://pocketbase:8090 # Interner Service Name
- ORIGIN=https://ulo.ad
- PUBLIC_UMAMI_URL=...
- PUBLIC_UMAMI_WEBSITE_ID=...
🔄 Migration Steps
Für bestehende Deployments:
-
PocketBase Daten sichern (falls noch embedded):
docker cp container_name:/app/pb_data ./pb_data_backup -
Externe PocketBase aufsetzen in Coolify
-
Daten importieren in neue PocketBase Instanz
-
Environment Variables anpassen:
PUBLIC_POCKETBASE_URL=http://pocketbase:8090 -
Neues Image deployen mit aktualisiertem Dockerfile
📝 Environment Variables
# Required
PORT=3000
ORIGIN=https://ulo.ad
PUBLIC_POCKETBASE_URL=http://pocketbase:8090
# Optional
PUBLIC_UMAMI_URL=https://analytics.domain.com
PUBLIC_UMAMI_WEBSITE_ID=xxx-xxx-xxx
🏗️ Build & Deploy
Lokal testen:
# Build
docker build -t uload:latest .
# Run mit externer PocketBase
docker run -p 3000:3000 \
-e PUBLIC_POCKETBASE_URL=https://pb.ulo.ad \
-e ORIGIN=http://localhost:3000 \
uload:latest
Production Deploy:
# Via Coolify mit docker-compose.coolify.yml
# Oder direkt:
docker compose -f docker-compose.yml up -d
📊 Vorteile der neuen Architektur
- Bessere Skalierbarkeit: App und DB können unabhängig skaliert werden
- Einfachere Updates: PocketBase Updates ohne App-Rebuild
- Kleinere Images: ~120MB statt ~200MB
- Klarere Trennung: Frontend und Backend sind klar getrennt
- Flexiblere Konfiguration: PocketBase kann zentral für mehrere Apps genutzt werden
⚠️ Wichtige Hinweise
- PocketBase Hooks (
pb_hooks/) müssen manuell zur externen PocketBase migriert werden - Schema (
backend/pb_schema.json) muss in der externen PocketBase importiert werden - Interne Coolify Networking nutzen (nicht über Public URL)
- Health Check läuft nur auf Port 3000 (nicht mehr auf 8090)