feat(storage): add MinIO local storage and @manacore/shared-storage package

- Add MinIO service to docker-compose.dev.yml with auto-bucket initialization
- Create @manacore/shared-storage package with S3-compatible client
- Add factory functions for each project (Picture, Chat, ManaDeck, etc.)
- Include file utilities (generateFileKey, getContentType, validators)
- Update environment variables for S3/MinIO configuration
- Document storage architecture in CLAUDE.md

Local dev uses MinIO, production will use Hetzner Object Storage.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Wuesteon 2025-12-02 01:00:42 +01:00
parent eb173217c1
commit 2cfa09c84d
13 changed files with 1195 additions and 130 deletions

View file

@ -64,7 +64,9 @@
"dev:mana-games:web": "pnpm --filter @mana-games/web dev",
"dev:mana-games:backend": "pnpm --filter @mana-games/backend dev",
"dev:mana-games:app": "turbo run dev --filter=@mana-games/web --filter=@mana-games/backend",
"docker:up": "docker compose -f docker-compose.dev.yml --env-file .env.development up -d postgres redis",
"docker:up": "docker compose -f docker-compose.dev.yml --env-file .env.development up -d postgres redis minio minio-init",
"docker:up:infra": "docker compose -f docker-compose.dev.yml --env-file .env.development up -d postgres redis minio minio-init",
"docker:up:db": "docker compose -f docker-compose.dev.yml --env-file .env.development up -d postgres redis",
"docker:up:auth": "docker compose -f docker-compose.dev.yml --env-file .env.development --profile auth up -d",
"docker:up:chat": "docker compose -f docker-compose.dev.yml --env-file .env.development --profile chat up -d",
"docker:up:all": "docker compose -f docker-compose.dev.yml --env-file .env.development --profile all up -d",