Mirror of github.com/Memo-2023/mana-monorepo
Find a file
Wuesteon 2cfa09c84d 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>
2025-12-02 01:00:42 +01:00
.claude/plans style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
.claude-flow/metrics 🔒️ feat(auth): centralize JWT validation and add deployment docs 2025-12-01 20:44:45 +01:00
.github fix(ci): filter shared packages by directory not package name 2025-12-01 23:54:51 +01:00
apps fix(ci): remove nested turbo.json from presi 2025-12-02 00:03:31 +01:00
apps-archived 🔀 merge: auth/complete branch with Better Auth implementation 2025-12-01 15:25:38 +01:00
cicd fix(ci): build shared packages before tests and fix formatting 2025-12-01 23:15:00 +01:00
docker style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
docs fix(ci): build shared packages before tests and fix formatting 2025-12-01 23:15:00 +01:00
games fix(ci): build shared packages before tests and fix formatting 2025-12-01 23:15:00 +01:00
packages feat(storage): add MinIO local storage and @manacore/shared-storage package 2025-12-02 01:00:42 +01:00
scripts 🔒️ feat(auth): centralize JWT validation and add deployment docs 2025-12-01 20:44:45 +01:00
services/mana-core-auth fix(ci): build shared packages before tests and fix formatting 2025-12-01 23:15:00 +01:00
tests/e2e first implementation 2025-11-27 17:26:18 +01:00
.dockerignore make auth working 2025-11-26 01:31:12 +01:00
.editorconfig feat: add monorepo configuration and shared packages structure 2025-11-22 23:41:52 +01:00
.env.development feat(storage): add MinIO local storage and @manacore/shared-storage package 2025-12-02 01:00:42 +01:00
.env.example add mana core 2025-11-25 18:56:35 +01:00
.gitignore fix(cicd): docker paths, formatting config, 2025-11-27 18:33:08 +01:00
.nvmrc feat: add monorepo configuration and shared packages structure 2025-11-22 23:41:52 +01:00
.prettierignore fix(ci): build shared packages before tests and fix formatting 2025-12-01 23:15:00 +01:00
.prettierrc feat: add monorepo configuration and shared packages structure 2025-11-22 23:41:52 +01:00
.prettierrc.json fix(cicd): docker paths, formatting config, 2025-11-27 18:33:08 +01:00
AUTH_ANALYSIS_SUMMARY.md 🔒️ feat(auth): centralize JWT validation and add deployment docs 2025-12-01 20:44:45 +01:00
AUTH_ARCHITECTURE_REPORT.md 🔒️ feat(auth): centralize JWT validation and add deployment docs 2025-12-01 20:44:45 +01:00
AUTH_DOCUMENTATION_INDEX.md fix(ci): build shared packages before tests and fix formatting 2025-12-01 23:15:00 +01:00
AUTH_QUICK_REFERENCE.md 🔒️ feat(auth): centralize JWT validation and add deployment docs 2025-12-01 20:44:45 +01:00
AUTH_VALIDATION_CHECKLIST.md 🔒️ feat(auth): centralize JWT validation and add deployment docs 2025-12-01 20:44:45 +01:00
BACKEND_DESIGN_PATTERN_AUDIT.md 🔒️ feat(auth): centralize JWT validation and add deployment docs 2025-12-01 20:44:45 +01:00
CI_CD_IMPLEMENTATION_SUMMARY.md style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
CI_CD_README.md first auth impl 2025-12-01 13:30:58 +01:00
CLAUDE.md feat(storage): add MinIO local storage and @manacore/shared-storage package 2025-12-02 01:00:42 +01:00
COMMANDS.md fix(ci): build shared packages before tests and fix formatting 2025-12-01 23:15:00 +01:00
COMPATIBILITY_MATRIX_AND_REMEDIATION.md 🔒️ feat(auth): centralize JWT validation and add deployment docs 2025-12-01 20:44:45 +01:00
docker-compose.dev.yml feat(storage): add MinIO local storage and @manacore/shared-storage package 2025-12-02 01:00:42 +01:00
docker-compose.production.yml first implementation 2025-11-27 17:26:18 +01:00
docker-compose.staging.yml first implementation 2025-11-27 17:26:18 +01:00
docker-compose.yml refactor: restructure 2025-11-26 03:03:24 +01:00
DOCKER_REGISTRY_SETUP.md style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
FILES_CREATED.md first auth impl 2025-12-01 13:30:58 +01:00
HIVE_MIND_FINAL_REPORT.md first auth impl 2025-12-01 13:30:58 +01:00
jest.config.js first implementation 2025-11-27 17:26:18 +01:00
JWT_VALIDATION_REPORT.md 🔒️ feat(auth): centralize JWT validation and add deployment docs 2025-12-01 20:44:45 +01:00
package.json feat(storage): add MinIO local storage and @manacore/shared-storage package 2025-12-02 01:00:42 +01:00
playwright.config.ts style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
pnpm-lock.yaml feat(storage): add MinIO local storage and @manacore/shared-storage package 2025-12-02 01:00:42 +01:00
pnpm-workspace.yaml chore: archive inactive projects to apps-archived/ 2025-11-29 07:03:59 +01:00
QA_TESTING_CHECKLIST.md add mana core 2025-11-25 18:56:35 +01:00
QUICK_START_CICD.md style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
README.md style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
TEST_CASES_SAMPLES.md add mana core 2025-11-25 18:56:35 +01:00
TESTING_STRATEGY_AUTH_CREDITS.md add mana core 2025-11-25 18:56:35 +01:00
TESTING_STRATEGY_EXECUTIVE_SUMMARY.md style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
turbo.json style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
vitest.config.ts first implementation 2025-11-27 17:26:18 +01:00

Manacore Monorepo

Monorepo containing all Manacore projects with shared packages and unified tooling.

Projects

Project Description Tech Stack
maerchenzauber AI-powered story generation app NestJS, Expo, SvelteKit, Astro
manacore Multi-app ecosystem platform Expo, SvelteKit, Astro
manadeck Card/deck management app NestJS, Expo, SvelteKit
memoro Voice memo & AI analysis app Expo, SvelteKit, Astro

Getting Started

Prerequisites

  • Node.js 20+
  • pnpm 9.15.0+

Installation

# Install pnpm globally (if not installed)
npm install -g pnpm

# Install all dependencies
pnpm install

Development

# Start all projects in dev mode
pnpm run dev

# Start a specific project
pnpm run maerchenzauber:dev
pnpm run manacore:dev
pnpm run manadeck:dev
pnpm run memoro:dev

# Build all projects
pnpm run build

# Run tests
pnpm run test

# Type check
pnpm run type-check

# Format code
pnpm run format

Shared Packages

Located in packages/:

Package Description
@manacore/shared-types Common TypeScript types
@manacore/shared-supabase Unified Supabase client
@manacore/shared-utils Utility functions (date, string, async)
@manacore/shared-ui React Native UI components

Using Shared Packages

// In any project
import { User, ApiResponse } from '@manacore/shared-types';
import { createSupabaseClient } from '@manacore/shared-supabase';
import { formatDate, truncate, retry } from '@manacore/shared-utils';

Repository Structure

manacore-monorepo/
├── packages/                 # Shared packages
│   ├── shared-types/         # TypeScript types
│   ├── shared-supabase/      # Supabase utilities
│   ├── shared-utils/         # Common utilities
│   └── shared-ui/            # React Native components
├── maerchenzauber/           # Storyteller project
├── manacore/                 # Manacore apps project
├── manadeck/                 # ManaDeck project
├── memoro/                   # Memoro project
├── turbo.json                # Turborepo configuration
├── pnpm-workspace.yaml       # Workspace configuration
└── package.json              # Root package

Tooling

  • Package Manager: pnpm 9.15.0
  • Build System: Turborepo
  • Formatting: Prettier
  • Node Version: 20 (see .nvmrc)

Adding Dependencies

# Add to root (dev tools)
pnpm add -D <package> -w

# Add to specific project
pnpm add <package> --filter maerchenzauber

# Add to shared package
pnpm add <package> --filter @manacore/shared-utils

Contributing

  1. Create a feature branch
  2. Make changes
  3. Run pnpm run format and pnpm run type-check
  4. Commit with conventional commit messages
  5. Create pull request

License

Private - All rights reserved