## 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>
7.5 KiB
Domain Setup: ulo.ad
Übersicht
Diese Anleitung beschreibt die Verbindung der Domain ulo.ad mit der auf Hetzner/Coolify gehosteten Anwendung.
Aktuelle Situation:
- App läuft auf:
http://w848k4ksk88o8w84kcosw488.91.99.221.179.sslip.io - Server IP:
91.99.221.179 - Ziel Domain:
ulo.ad
Schritt 1: DNS Konfiguration
Bei deinem DNS Provider (Namecheap, Cloudflare, etc.)
Erstelle folgende DNS Records:
Hauptdomain (ulo.ad):
Type: A
Name: @
Value: 91.99.221.179
TTL: 3600 (oder Auto)
Proxy: Aus (falls Cloudflare)
WWW Subdomain (www.ulo.ad):
Type: CNAME
Name: www
Value: ulo.ad
TTL: 3600
Optional - App Subdomain (app.ulo.ad):
Type: A
Name: app
Value: 91.99.221.179
TTL: 3600
DNS Einstellungen für verschiedene Provider:
Cloudflare:
- DNS → Records → Add Record
- Proxy Status: DNS only (graue Wolke) für Anfang
- Nach erfolgreichem Test: Proxy aktivieren (orange Wolke)
Namecheap:
- Domain List → Manage → Advanced DNS
- Add New Record → A Record
- Host: @ | Value: 91.99.221.179
Hetzner DNS:
- DNS Console → Zone hinzufügen
- Record hinzufügen → Type A
- Name: @ | Value: 91.99.221.179
Schritt 2: Coolify Konfiguration
2.1 Domain hinzufügen
-
Login in Coolify Dashboard
http://91.99.221.179:8000 -
Navigiere zu deiner Application
- Projects → Dein Projekt → Application
-
Domains Tab öffnen
- Klicke auf "Domains"
-
Domain hinzufügen
- Klicke "Add Domain"
- Eingabe:
ulo.ad - Für www auch:
www.ulo.ad
-
SSL Konfiguration
- ✅ Generate SSL Certificate (wichtig!)
- ✅ Force HTTPS Redirect
- ✅ Auto redirect www to non-www (oder umgekehrt)
2.2 Environment Variables anpassen
KRITISCH: Diese müssen angepasst werden!
-
Gehe zu "Environment Variables"
-
Update folgende Variablen:
# Alte Werte (LÖSCHEN/UPDATEN): ORIGIN=http://w848k4ksk88o8w84kcosw488.91.99.221.179.sslip.io PUBLIC_POCKETBASE_URL=http://localhost:8090 # NEUE WERTE: ORIGIN=https://ulo.ad PUBLIC_POCKETBASE_URL=https://ulo.ad/api # Admin Credentials (bleiben gleich): POCKETBASE_ADMIN_EMAIL=till.schneider@memoro.ai POCKETBASE_ADMIN_PASSWORD=p0ck3tRA1N -
Speichern und Deploy
- Save Changes
- Klicke "Redeploy" oder "Restart"
Schritt 3: Proxy Konfiguration (in Coolify)
Falls noch nicht vorhanden, füge diese Proxy Rules hinzu:
-
Gehe zu "Proxy" Tab
-
Custom Nginx Configuration:
# PocketBase API Routing location /api { rewrite ^/api/(.*) /$1 break; proxy_pass http://localhost:8090; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } # PocketBase Admin UI location /_/ { proxy_pass http://localhost:8090; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; } # WebSocket Support location /api/realtime { proxy_pass http://localhost:8090; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; }
Schritt 4: Deployment durchführen
-
In Coolify:
- Klicke "Deploy" oder "Redeploy"
- Warte bis Status "Running"
-
Deployment verifizieren:
- Container Logs prüfen
- Keine Errors sollten erscheinen
Schritt 5: DNS Propagation & Testing
Warten auf DNS Propagation
- Dauer: 5 Minuten bis 48 Stunden (meist < 1 Stunde)
- Tipp: .ad Domains können etwas länger dauern
DNS Status prüfen:
# Terminal/Command Line:
nslookup ulo.ad
# Sollte zeigen: 91.99.221.179
# Oder online:
# https://www.whatsmydns.net/#A/ulo.ad
SSL Zertifikat prüfen:
# Nach DNS Propagation (wichtig!):
curl -I https://ulo.ad
# Sollte HTTP/2 200 zeigen
Schritt 6: Testen
URLs die funktionieren sollten:
-
Hauptseite:
https://ulo.ad -
Health Check:
https://ulo.ad/health -
PocketBase Admin:
https://ulo.ad/_/Login: till.schneider@memoro.ai
-
API Endpoint:
https://ulo.ad/api/health
Troubleshooting
Problem: "DNS_PROBE_FINISHED_NXDOMAIN"
Ursache: DNS noch nicht propagiert Lösung:
- Warte 30-60 Minuten
- Prüfe DNS Records beim Provider
- Cache leeren:
ipconfig /flushdns(Windows) oderdscacheutil -flushcache(Mac)
Problem: "SSL_ERROR" oder "Your connection is not private"
Ursache: SSL Zertifikat noch nicht generiert Lösung:
- Warte bis DNS vollständig propagiert
- In Coolify: "Force Renew Certificate"
- Container neu starten
Problem: "502 Bad Gateway"
Ursache: App nicht gestartet oder ENV Variables falsch Lösung:
- Environment Variables prüfen (besonders ORIGIN)
- Container Logs in Coolify prüfen
- Container neu starten
Problem: "404 Not Found"
Ursache: Routing Problem oder App nicht gestartet Lösung:
- Proxy Configuration prüfen
- Health Check testen:
https://ulo.ad/health - Container Logs prüfen
Problem: PocketBase Admin nicht erreichbar
Ursache: Proxy Rules fehlen Lösung:
- Nginx Proxy Config prüfen (siehe oben)
- Direct URL testen:
http://91.99.221.179:8090/_/
Zeitplan
- DNS Setup: 5 Minuten
- Coolify Config: 10 Minuten
- DNS Propagation: 5-60 Minuten
- SSL Generation: 2-5 Minuten (nach DNS)
- Testing: 5 Minuten
Total: ~30-90 Minuten (abhängig von DNS)
Finale URLs
Nach erfolgreichem Setup:
| Service | URL | Beschreibung |
|---|---|---|
| Hauptseite | https://ulo.ad | SvelteKit Frontend |
| WWW | https://www.ulo.ad | Redirect zu Hauptseite |
| Admin Panel | https://ulo.ad/_/ | PocketBase Admin |
| API | https://ulo.ad/api | PocketBase API |
| Health Check | https://ulo.ad/health | System Status |
Sicherheits-Checkliste
- SSL Zertifikat aktiv (HTTPS)
- Force HTTPS Redirect aktiviert
- Environment Variables gesetzt
- PocketBase Admin Passwort geändert
- Firewall Rules aktiv
- Backup Strategy implementiert
Nächste Schritte nach Domain Setup
-
Cloudflare Integration (optional):
- Proxy aktivieren für DDoS Schutz
- Caching Rules einrichten
- Web Application Firewall
-
Monitoring einrichten:
- Uptime Monitoring (z.B. UptimeRobot)
- SSL Expiry Monitoring
- Performance Monitoring
-
Backups konfigurieren:
- Automated Backups in Coolify
- External Backup zu S3/B2
-
Short Links testen:
- Erstelle Test-Links
- QR Codes generieren
- Analytics prüfen
Support Kontakte
Domain Issues: DNS Provider Support Server/Coolify: Hetzner Support / Coolify Discord Application: Internal Team
Wichtige IPs/URLs:
- Server IP:
91.99.221.179 - Coolify Dashboard:
http://91.99.221.179:8000 - Temp URL:
http://w848k4ksk88o8w84kcosw488.91.99.221.179.sslip.io
Dokumentation erstellt für ulo.ad Domain Setup - August 2024