Commit graph

9 commits

Author SHA1 Message Date
Till-JS
c843531595 feat(analytics): update Umami tracking IDs for all web apps
Update all 15 web apps with correct Umami website IDs:
- calendar, chat, clock, contacts, manacore, manadeck, picture, planta, todo: updated IDs
- zitare, storage, nutriphi, skilltree, photos, presi: added tracking

All IDs now match the websites configured in Umami.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-14 11:14:16 +01:00
Till-JS
42c0069553 fix(admin): remove duplicate api/v1 prefix from controller routes
Photos, clock, storage backends use setGlobalPrefix('api/v1'),
so controller should use @Controller('admin') not @Controller('api/v1/admin')

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-12 13:49:52 +01:00
Till-JS
02a5172c7c feat(admin): add GDPR user-data endpoints to photos, clock, storage backends
- Add admin modules with GET/DELETE /api/v1/admin/user-data/:userId
- Photos: albums, favorites, tags counting and deletion
- Clock: alarms, timers, world clocks, presets counting and deletion
- Storage: files, folders, shares, tags counting and deletion
- Update UserDataService to include photos, clock, storage backends
- Add ADMIN_SERVICE_KEY env var to all backends in docker-compose
- Build storage-backend locally instead of using GHCR image

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-12 13:43:16 +01:00
Till-JS
552dc10f25 🔧 fix(docker): add --ignore-scripts to pnpm install in all backend Dockerfiles
The root package.json postinstall script runs scripts/generate-env.mjs
which doesn't exist in the Docker build context. Using --ignore-scripts
skips this postinstall step since env generation isn't needed in Docker.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-12 02:10:45 +01:00
Till-JS
fc2ee7ab76 🐛 fix(photos-backend): correct path to main.js
NestJS outputs to dist/src/ not dist/

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-12 01:59:02 +01:00
Till-JS
741c5bc00c 🐛 fix(photos): use valid Svelte 5 event syntax
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-12 01:49:11 +01:00
Till-JS
36563f4459 🔧 fix(photos): remove unused nestjs-integration dependency
Photos doesn't use credits, so ManaCoreModule is not needed.
Use shared-nestjs-auth directly instead.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-12 01:43:44 +01:00
Till-JS
5ce4e42c20 🚀 feat(photos): add Docker deployment configuration
- Add Dockerfile for photos-backend (port 3039)
- Add Dockerfile for photos-web (port 5019)
- Add docker-entrypoint.sh for database migrations
- Add health endpoint for photos-web
- Add photos services to docker-compose.macmini.yml
- Update CORS_ORIGINS for mana-auth and mana-media
- Update CLAUDE.md with production URLs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-11 18:21:19 +01:00
Till-JS
90c2f8573e feat(photos): add Photos app with mana-media EXIF integration
- Add Photos NestJS backend (port 3019) with albums, favorites, tags
- Add Photos SvelteKit web app (port 5189) with gallery, upload, filters
- Extend mana-media with EXIF extraction service using exifr
- Add cross-app photo listing endpoint to mana-media
- Add photo stats endpoint to mana-media
- Add photos to setup-databases.sh

Backend features:
- Albums CRUD with cover image and items management
- Favorites toggle with status check
- Tags CRUD with photo-tag associations
- Photo proxy to mana-media with local data enrichment

Web features:
- Photo grid with infinite scroll
- Photo detail modal with EXIF display
- Album grid and detail views
- Upload dropzone with progress tracking
- Filter bar (app, date range, location, sort)
- i18n support (de/en)
- Svelte 5 runes mode

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-11 17:58:44 +01:00