mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-15 13:21:08 +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>
135 lines
3.2 KiB
Markdown
135 lines
3.2 KiB
Markdown
# 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)
|
|
|
|
```yaml
|
|
# Als separater Service in Coolify
|
|
Service: PocketBase
|
|
Port: 8090
|
|
Persistent Volume: /pb_data
|
|
```
|
|
|
|
### 2. uLoad App Service
|
|
|
|
```yaml
|
|
# 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:
|
|
|
|
1. **PocketBase Daten sichern** (falls noch embedded):
|
|
|
|
```bash
|
|
docker cp container_name:/app/pb_data ./pb_data_backup
|
|
```
|
|
|
|
2. **Externe PocketBase aufsetzen** in Coolify
|
|
|
|
3. **Daten importieren** in neue PocketBase Instanz
|
|
|
|
4. **Environment Variables anpassen**:
|
|
|
|
```env
|
|
PUBLIC_POCKETBASE_URL=http://pocketbase:8090
|
|
```
|
|
|
|
5. **Neues Image deployen** mit aktualisiertem Dockerfile
|
|
|
|
## 📝 Environment Variables
|
|
|
|
```env
|
|
# 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:
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
# Via Coolify mit docker-compose.coolify.yml
|
|
# Oder direkt:
|
|
docker compose -f docker-compose.yml up -d
|
|
```
|
|
|
|
## 📊 Vorteile der neuen Architektur
|
|
|
|
1. **Bessere Skalierbarkeit**: App und DB können unabhängig skaliert werden
|
|
2. **Einfachere Updates**: PocketBase Updates ohne App-Rebuild
|
|
3. **Kleinere Images**: ~120MB statt ~200MB
|
|
4. **Klarere Trennung**: Frontend und Backend sind klar getrennt
|
|
5. **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)
|