feat(chat,picture): add OpenRouter integration and credit system

Chat:
- Add OpenRouter as primary AI provider with multiple models
- Update chat service with new model configurations
- Add model seed data for Llama, DeepSeek, Mistral, Claude, GPT-4o

Picture:
- Integrate @mana-core/nestjs-integration for credit system
- Implement freemium model (3 free generations, then 10 credits)
- Migrate storage to @manacore/shared-storage
- Add comprehensive project documentation
This commit is contained in:
Wuesteon 2025-12-10 20:46:33 +01:00
parent 422fcd6b34
commit 6f74e1d9a6
12 changed files with 878 additions and 468 deletions

View file

@ -229,24 +229,28 @@ const APP_CONFIGS = [
path: 'apps/picture/apps/backend/.env',
vars: {
NODE_ENV: () => 'development',
PORT: (env) => env.PICTURE_BACKEND_PORT || '3003',
BACKEND_URL: (env) => env.PICTURE_BACKEND_URL || 'http://localhost:3003',
PORT: (env) => env.PICTURE_BACKEND_PORT || '3006',
BACKEND_URL: (env) => env.PICTURE_BACKEND_URL || 'http://localhost:3006',
DATABASE_URL: (env) =>
env.PICTURE_DATABASE_URL || 'postgresql://picture:picturepassword@localhost:5434/picture',
env.PICTURE_DATABASE_URL || 'postgresql://manacore:devpassword@localhost:5432/picture',
MANA_CORE_AUTH_URL: (env) => env.MANA_CORE_AUTH_URL,
DEV_BYPASS_AUTH: () => 'true',
DEV_USER_ID: (env) => env.DEV_USER_ID || '00000000-0000-0000-0000-000000000000',
REPLICATE_API_TOKEN: (env) => env.MAERCHENZAUBER_REPLICATE_API_KEY,
REPLICATE_API_TOKEN: (env) => env.PICTURE_REPLICATE_API_TOKEN,
CORS_ORIGINS: (env) => env.CORS_ORIGINS,
// Storage configuration
STORAGE_MODE: (env) => env.PICTURE_STORAGE_MODE || 'local',
// Storage configuration - use shared MinIO for local dev
STORAGE_MODE: (env) => env.PICTURE_STORAGE_MODE || 's3',
LOCAL_STORAGE_PATH: (env) => env.PICTURE_LOCAL_STORAGE_PATH || './uploads',
S3_ENDPOINT: (env) => env.PICTURE_S3_ENDPOINT || '',
S3_REGION: (env) => env.PICTURE_S3_REGION || 'eu-central-1',
S3_ACCESS_KEY: (env) => env.PICTURE_S3_ACCESS_KEY || '',
S3_SECRET_KEY: (env) => env.PICTURE_S3_SECRET_KEY || '',
S3_BUCKET: (env) => env.PICTURE_S3_BUCKET || 'picture-uploads',
STORAGE_PUBLIC_URL: (env) => env.PICTURE_STORAGE_PUBLIC_URL || '',
S3_ENDPOINT: (env) => env.S3_ENDPOINT || 'http://localhost:9000',
S3_REGION: (env) => env.S3_REGION || 'us-east-1',
S3_ACCESS_KEY: (env) => env.S3_ACCESS_KEY || 'minioadmin',
S3_SECRET_KEY: (env) => env.S3_SECRET_KEY || 'minioadmin',
S3_BUCKET: (env) => env.PICTURE_S3_BUCKET || 'picture-storage',
STORAGE_PUBLIC_URL: (env) =>
env.PICTURE_STORAGE_PUBLIC_URL || 'http://localhost:9000/picture-storage',
// Credit system (for staging)
APP_ID: (env) => env.PICTURE_APP_ID || 'picture-app',
MANA_CORE_SERVICE_KEY: (env) => env.PICTURE_MANA_CORE_SERVICE_KEY || '',
},
},