mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-19 13:23:37 +02:00
chore: complete ManaCore → Mana rename (docs, go modules, plists, images)
Final cleanup of references missed in previous rename commits: - Dockerfiles: PUBLIC_MANA_CORE_AUTH_URL → PUBLIC_MANA_AUTH_URL - Go modules: github.com/manacore/* → github.com/mana/* (7 go.mod files) - launchd plists: com.manacore.* → com.mana.* (14 files renamed + content) - Image assets: *_Manacore_AI_Credits* → *_Mana_AI_Credits* (11 files) - .env.example files: ManaCore brand strings → Mana - .prettierignore: stale apps/manacore/* paths → apps/mana/* - Markdown docs (CLAUDE.md, /docs/*): mana-core-auth → mana-auth, etc. Excluded from rename: .claude/, devlog/, manascore/ (historical content), client testimonials, blueprints, npm package refs (@mana-core/*). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
6f4667c2a3
commit
22a73943e1
307 changed files with 2408 additions and 4537 deletions
|
|
@ -1,11 +1,11 @@
|
|||
---
|
||||
title: API Reference
|
||||
description: API documentation for Manacore services.
|
||||
description: API documentation for Mana services.
|
||||
---
|
||||
|
||||
# API Reference
|
||||
|
||||
This section contains API documentation for all Manacore backend services.
|
||||
This section contains API documentation for all Mana backend services.
|
||||
|
||||
## Authentication
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import { Aside, Tabs, TabItem, Steps } from '@astrojs/starlight/components';
|
|||
|
||||
# Authentication
|
||||
|
||||
All Manacore applications use **Mana Core Auth** as the central authentication service, providing EdDSA JWT-based authentication.
|
||||
All Mana applications use **Mana Core Auth** as the central authentication service, providing EdDSA JWT-based authentication.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -36,8 +36,8 @@ Mana Core Auth uses **EdDSA (Ed25519)** for JWT signing:
|
|||
"role": "user",
|
||||
"sid": "session-uuid",
|
||||
"exp": 1764606251,
|
||||
"iss": "manacore",
|
||||
"aud": "manacore"
|
||||
"iss": "mana",
|
||||
"aud": "mana"
|
||||
}
|
||||
```
|
||||
|
||||
|
|
@ -48,18 +48,18 @@ Mana Core Auth uses **EdDSA (Ed25519)** for JWT signing:
|
|||
| `role` | User role (`user`, `admin`) |
|
||||
| `sid` | Session ID for invalidation |
|
||||
| `exp` | Expiration timestamp |
|
||||
| `iss` | Issuer (`manacore`) |
|
||||
| `aud` | Audience (`manacore`) |
|
||||
| `iss` | Issuer (`mana`) |
|
||||
| `aud` | Audience (`mana`) |
|
||||
|
||||
## Backend Integration
|
||||
|
||||
### Option 1: Simple Auth Only
|
||||
|
||||
Use `@manacore/shared-nestjs-auth` for JWT validation:
|
||||
Use `@mana/shared-nestjs-auth` for JWT validation:
|
||||
|
||||
```typescript
|
||||
// app.module.ts
|
||||
import { JwtAuthModule } from '@manacore/shared-nestjs-auth';
|
||||
import { JwtAuthModule } from '@mana/shared-nestjs-auth';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
|
|
@ -73,7 +73,7 @@ export class AppModule {}
|
|||
|
||||
```typescript
|
||||
// controller.ts
|
||||
import { JwtAuthGuard, CurrentUser, CurrentUserData } from '@manacore/shared-nestjs-auth';
|
||||
import { JwtAuthGuard, CurrentUser, CurrentUserData } from '@mana/shared-nestjs-auth';
|
||||
|
||||
@Controller('api')
|
||||
@UseGuards(JwtAuthGuard)
|
||||
|
|
@ -140,7 +140,7 @@ export class ApiController {
|
|||
|
||||
```typescript
|
||||
// src/lib/auth.ts
|
||||
import { createAuthService } from '@manacore/shared-auth';
|
||||
import { createAuthService } from '@mana/shared-auth';
|
||||
|
||||
export const auth = createAuthService({
|
||||
authUrl: import.meta.env.PUBLIC_MANA_AUTH_URL,
|
||||
|
|
@ -157,7 +157,7 @@ if (data) {
|
|||
|
||||
```typescript
|
||||
// src/services/auth.ts
|
||||
import { createAuthService } from '@manacore/shared-auth';
|
||||
import { createAuthService } from '@mana/shared-auth';
|
||||
|
||||
export const auth = createAuthService({
|
||||
authUrl: process.env.EXPO_PUBLIC_MANA_AUTH_URL,
|
||||
|
|
@ -277,7 +277,7 @@ Never enable auth bypass in production!
|
|||
| Backend | Package | Port |
|
||||
|---------|---------|------|
|
||||
| Chat | `@mana-core/nestjs-integration` | 3002 |
|
||||
| Picture | `@manacore/shared-nestjs-auth` | 3006 |
|
||||
| Zitare | `@manacore/shared-nestjs-auth` | 3007 |
|
||||
| Picture | `@mana/shared-nestjs-auth` | 3006 |
|
||||
| Zitare | `@mana/shared-nestjs-auth` | 3007 |
|
||||
| Cards | `@mana-core/nestjs-integration` | 3009 |
|
||||
| Contacts | `@manacore/shared-nestjs-auth` | 3015 |
|
||||
| Contacts | `@mana/shared-nestjs-auth` | 3015 |
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
---
|
||||
title: Backend (NestJS)
|
||||
description: NestJS backend architecture patterns in Manacore.
|
||||
description: NestJS backend architecture patterns in Mana.
|
||||
---
|
||||
|
||||
import { Aside, Tabs, TabItem } from '@astrojs/starlight/components';
|
||||
|
||||
# Backend Architecture
|
||||
|
||||
All Manacore backends use **NestJS 10-11** with consistent patterns for structure, validation, and error handling.
|
||||
All Mana backends use **NestJS 10-11** with consistent patterns for structure, validation, and error handling.
|
||||
|
||||
## Project Structure
|
||||
|
||||
|
|
@ -75,7 +75,7 @@ import {
|
|||
HttpCode,
|
||||
HttpStatus,
|
||||
} from '@nestjs/common';
|
||||
import { JwtAuthGuard, CurrentUser, CurrentUserData } from '@manacore/shared-nestjs-auth';
|
||||
import { JwtAuthGuard, CurrentUser, CurrentUserData } from '@mana/shared-nestjs-auth';
|
||||
import { UsersService } from './users.service';
|
||||
import { CreateUserDto } from './dto/create-user.dto';
|
||||
|
||||
|
|
@ -109,7 +109,7 @@ Services contain business logic and database operations:
|
|||
```typescript
|
||||
import { Injectable, NotFoundException } from '@nestjs/common';
|
||||
import { Inject } from '@nestjs/common';
|
||||
import { DRIZZLE } from '@manacore/shared-drizzle';
|
||||
import { DRIZZLE } from '@mana/shared-drizzle';
|
||||
import { eq, and } from 'drizzle-orm';
|
||||
import { users } from '../drizzle/schema';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
---
|
||||
title: Mobile (Expo)
|
||||
description: Expo React Native mobile application patterns in Manacore.
|
||||
description: Expo React Native mobile application patterns in Mana.
|
||||
---
|
||||
|
||||
import { Aside, Tabs, TabItem } from '@astrojs/starlight/components';
|
||||
|
||||
# Mobile Architecture
|
||||
|
||||
Manacore mobile apps use **Expo SDK 52+** with React Native, Expo Router, and NativeWind for styling.
|
||||
Mana mobile apps use **Expo SDK 52+** with React Native, Expo Router, and NativeWind for styling.
|
||||
|
||||
## Project Structure
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
---
|
||||
title: Architecture Overview
|
||||
description: High-level architecture of the Manacore ecosystem.
|
||||
description: High-level architecture of the Mana ecosystem.
|
||||
---
|
||||
|
||||
import { Card, CardGrid } from '@astrojs/starlight/components';
|
||||
|
||||
# Architecture Overview
|
||||
|
||||
Manacore is a multi-app ecosystem with shared infrastructure, enabling rapid development of interconnected applications.
|
||||
Mana is a multi-app ecosystem with shared infrastructure, enabling rapid development of interconnected applications.
|
||||
|
||||
## System Architecture
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import { Tabs, TabItem, Aside } from '@astrojs/starlight/components';
|
|||
|
||||
# Search Service
|
||||
|
||||
**Mana Search** provides web search and content extraction capabilities for Manacore applications.
|
||||
**Mana Search** provides web search and content extraction capabilities for Mana applications.
|
||||
|
||||
## Architecture
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
---
|
||||
title: Storage
|
||||
description: S3-compatible object storage for files and media in Manacore.
|
||||
description: S3-compatible object storage for files and media in Mana.
|
||||
---
|
||||
|
||||
import { Tabs, TabItem, Aside } from '@astrojs/starlight/components';
|
||||
|
||||
# Storage
|
||||
|
||||
Manacore uses S3-compatible object storage for file uploads, generated images, and other media.
|
||||
Mana uses S3-compatible object storage for file uploads, generated images, and other media.
|
||||
|
||||
## Architecture
|
||||
|
||||
|
|
@ -50,7 +50,7 @@ import {
|
|||
createPictureStorage,
|
||||
generateUserFileKey,
|
||||
getContentType,
|
||||
} from '@manacore/shared-storage';
|
||||
} from '@mana/shared-storage';
|
||||
|
||||
const storage = createPictureStorage();
|
||||
|
||||
|
|
@ -101,7 +101,7 @@ import {
|
|||
createChatStorage,
|
||||
createCardsStorage,
|
||||
createContactsStorage,
|
||||
} from '@manacore/shared-storage';
|
||||
} from '@mana/shared-storage';
|
||||
|
||||
// Each creates a client configured for that bucket
|
||||
const pictureStorage = createPictureStorage();
|
||||
|
|
@ -111,7 +111,7 @@ const chatStorage = createChatStorage();
|
|||
### Custom Storage Client
|
||||
|
||||
```typescript
|
||||
import { createStorageClient } from '@manacore/shared-storage';
|
||||
import { createStorageClient } from '@mana/shared-storage';
|
||||
|
||||
const customStorage = createStorageClient({
|
||||
bucket: 'my-custom-bucket',
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
---
|
||||
title: Web (SvelteKit)
|
||||
description: SvelteKit web application patterns in Manacore.
|
||||
description: SvelteKit web application patterns in Mana.
|
||||
---
|
||||
|
||||
import { Aside, Tabs, TabItem } from '@astrojs/starlight/components';
|
||||
|
||||
# Web Architecture
|
||||
|
||||
All Manacore web applications use **SvelteKit 2** with **Svelte 5** (runes mode) and Tailwind CSS.
|
||||
All Mana web applications use **SvelteKit 2** with **Svelte 5** (runes mode) and Tailwind CSS.
|
||||
|
||||
## Project Structure
|
||||
|
||||
|
|
|
|||
|
|
@ -15,10 +15,10 @@ All landing pages and static sites are deployed to **Cloudflare Pages** using Di
|
|||
|---------|---------|-------------------|-----|
|
||||
| Chat | `@chat/landing` | `chat-landing` | chat.mana.how |
|
||||
| Picture | `@picture/landing` | `picture-landing` | picture.mana.how |
|
||||
| Manacore | `@manacore/landing` | `manacore-landing` | mana.how |
|
||||
| Mana | `@mana/landing` | `mana-landing` | mana.how |
|
||||
| Cards | `@cards/landing` | `cards-landing` | cards.mana.how |
|
||||
| Zitare | `@zitare/landing` | `zitare-landing` | zitare.mana.how |
|
||||
| Docs | `@manacore/docs` | `manacore-docs` | docs.mana.how |
|
||||
| Docs | `@mana/docs` | `mana-docs` | docs.mana.how |
|
||||
|
||||
## Quick Deploy
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: Mac Mini Server
|
||||
description: Production server setup and management for Manacore backends.
|
||||
description: Production server setup and management for Mana backends.
|
||||
---
|
||||
|
||||
import { Steps, Aside, Tabs, TabItem } from '@astrojs/starlight/components';
|
||||
|
|
@ -37,7 +37,7 @@ Requires `cloudflared` installed: `brew install cloudflare/cloudflare/cloudflare
|
|||
## Directory Structure
|
||||
|
||||
```
|
||||
~/projects/manacore-monorepo/
|
||||
~/projects/mana-monorepo/
|
||||
├── docker-compose.macmini.yml # Production compose file
|
||||
├── .env.production # Production environment
|
||||
├── scripts/mac-mini/ # Server management scripts
|
||||
|
|
@ -53,7 +53,7 @@ Requires `cloudflared` installed: `brew install cloudflare/cloudflare/cloudflare
|
|||
|
||||
```bash
|
||||
ssh mana-server
|
||||
cd ~/projects/manacore-monorepo
|
||||
cd ~/projects/mana-monorepo
|
||||
./scripts/mac-mini/status.sh
|
||||
```
|
||||
|
||||
|
|
@ -71,7 +71,7 @@ chat-backend running (healthy)
|
|||
|
||||
```bash
|
||||
ssh mana-server
|
||||
cd ~/projects/manacore-monorepo
|
||||
cd ~/projects/mana-monorepo
|
||||
./scripts/mac-mini/deploy.sh
|
||||
```
|
||||
|
||||
|
|
@ -117,12 +117,12 @@ services:
|
|||
postgres:
|
||||
image: postgres:16-alpine
|
||||
environment:
|
||||
POSTGRES_USER: manacore
|
||||
POSTGRES_USER: mana
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U manacore"]
|
||||
test: ["CMD-SHELL", "pg_isready -U mana"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
|
@ -143,7 +143,7 @@ services:
|
|||
context: .
|
||||
dockerfile: services/mana-core-auth/Dockerfile
|
||||
environment:
|
||||
- DATABASE_URL=postgresql://manacore:${POSTGRES_PASSWORD}@postgres:5432/manacore
|
||||
- DATABASE_URL=postgresql://mana:${POSTGRES_PASSWORD}@postgres:5432/mana_platform
|
||||
- REDIS_URL=redis://:${REDIS_PASSWORD}@redis:6379
|
||||
depends_on:
|
||||
postgres:
|
||||
|
|
@ -161,7 +161,7 @@ services:
|
|||
context: .
|
||||
dockerfile: apps/chat/apps/backend/Dockerfile
|
||||
environment:
|
||||
- DATABASE_URL=postgresql://manacore:${POSTGRES_PASSWORD}@postgres:5432/chat
|
||||
- DATABASE_URL=postgresql://mana:${POSTGRES_PASSWORD}@postgres:5432/chat
|
||||
- MANA_AUTH_URL=http://mana-auth:3001
|
||||
depends_on:
|
||||
- mana-auth
|
||||
|
|
@ -234,7 +234,7 @@ tail -f /var/log/cloudflared.log
|
|||
|
||||
```bash
|
||||
# Manual backup
|
||||
docker exec postgres pg_dump -U manacore manacore > backup_$(date +%Y%m%d).sql
|
||||
docker exec postgres pg_dump -U mana mana_platform > backup_$(date +%Y%m%d).sql
|
||||
|
||||
# Automated daily backups (via cron)
|
||||
0 2 * * * /home/till/scripts/backup-databases.sh
|
||||
|
|
@ -247,7 +247,7 @@ docker exec postgres pg_dump -U manacore manacore > backup_$(date +%Y%m%d).sql
|
|||
docker compose -f docker-compose.macmini.yml stop chat-backend
|
||||
|
||||
# Restore
|
||||
docker exec -i postgres psql -U manacore manacore < backup_20240115.sql
|
||||
docker exec -i postgres psql -U mana mana_platform < backup_20240115.sql
|
||||
|
||||
# Start services
|
||||
docker compose -f docker-compose.macmini.yml start chat-backend
|
||||
|
|
@ -309,7 +309,7 @@ docker image prune -a
|
|||
docker compose -f docker-compose.macmini.yml ps postgres
|
||||
|
||||
# Test connection
|
||||
docker exec -it postgres psql -U manacore -c "SELECT 1"
|
||||
docker exec -it postgres psql -U mana -c "SELECT 1"
|
||||
|
||||
# Check logs
|
||||
docker compose -f docker-compose.macmini.yml logs postgres
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
---
|
||||
title: Deployment Overview
|
||||
description: Deployment strategies and infrastructure for Manacore applications.
|
||||
description: Deployment strategies and infrastructure for Mana applications.
|
||||
---
|
||||
|
||||
import { Card, CardGrid, Aside } from '@astrojs/starlight/components';
|
||||
|
||||
# Deployment Overview
|
||||
|
||||
Manacore uses multiple deployment strategies depending on the application type.
|
||||
Mana uses multiple deployment strategies depending on the application type.
|
||||
|
||||
## Deployment Targets
|
||||
|
||||
|
|
@ -92,7 +92,7 @@ pnpm deploy:docs
|
|||
ssh mana-server
|
||||
|
||||
# Pull latest changes
|
||||
cd ~/projects/manacore-monorepo
|
||||
cd ~/projects/mana-monorepo
|
||||
git pull
|
||||
|
||||
# Restart services
|
||||
|
|
@ -135,7 +135,7 @@ npx wrangler pages deployment tail <deployment-id> --project-name=chat-landing
|
|||
|
||||
```bash
|
||||
ssh mana-server
|
||||
cd ~/projects/manacore-monorepo
|
||||
cd ~/projects/mana-monorepo
|
||||
|
||||
# Revert to previous commit
|
||||
git checkout HEAD~1
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
---
|
||||
title: Self-Hosting
|
||||
description: Host your own Manacore instance with Docker Compose.
|
||||
description: Host your own Mana instance with Docker Compose.
|
||||
---
|
||||
|
||||
import { Steps, Aside, Tabs, TabItem } from '@astrojs/starlight/components';
|
||||
|
||||
# Self-Hosting
|
||||
|
||||
Run your own Manacore instance using Docker Compose.
|
||||
Run your own Mana instance using Docker Compose.
|
||||
|
||||
## Requirements
|
||||
|
||||
|
|
@ -23,8 +23,8 @@ Run your own Manacore instance using Docker Compose.
|
|||
1. **Clone the repository**
|
||||
|
||||
```bash
|
||||
git clone https://github.com/manacore/manacore-monorepo.git
|
||||
cd manacore-monorepo
|
||||
git clone https://github.com/mana/mana-monorepo.git
|
||||
cd mana-monorepo
|
||||
```
|
||||
|
||||
2. **Create environment file**
|
||||
|
|
@ -37,7 +37,7 @@ Run your own Manacore instance using Docker Compose.
|
|||
|
||||
```env
|
||||
# Database
|
||||
POSTGRES_USER=manacore
|
||||
POSTGRES_USER=mana
|
||||
POSTGRES_PASSWORD=your-secure-password
|
||||
|
||||
# Redis
|
||||
|
|
@ -113,9 +113,9 @@ services:
|
|||
|
||||
# Auth Service
|
||||
mana-auth:
|
||||
image: ghcr.io/manacore/mana-core-auth:latest
|
||||
image: ghcr.io/mana/mana-core-auth:latest
|
||||
environment:
|
||||
DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/manacore
|
||||
DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/mana_platformcore
|
||||
REDIS_HOST: redis
|
||||
REDIS_PASSWORD: ${REDIS_PASSWORD}
|
||||
JWT_PRIVATE_KEY: ${JWT_PRIVATE_KEY}
|
||||
|
|
@ -129,7 +129,7 @@ services:
|
|||
|
||||
# Chat Backend
|
||||
chat-backend:
|
||||
image: ghcr.io/manacore/chat-backend:latest
|
||||
image: ghcr.io/mana/chat-backend:latest
|
||||
environment:
|
||||
DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/chat
|
||||
MANA_AUTH_URL: http://mana-auth:3001
|
||||
|
|
@ -146,7 +146,7 @@ volumes:
|
|||
|
||||
## Generate JWT Keys
|
||||
|
||||
Manacore uses EdDSA (Ed25519) for JWT signing:
|
||||
Mana uses EdDSA (Ed25519) for JWT signing:
|
||||
|
||||
```bash
|
||||
# Generate private key
|
||||
|
|
@ -220,18 +220,18 @@ certbot renew --dry-run
|
|||
|
||||
### Daily Database Backup
|
||||
|
||||
Create `/etc/cron.daily/manacore-backup`:
|
||||
Create `/etc/cron.daily/mana-backup`:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
BACKUP_DIR=/var/backups/manacore
|
||||
BACKUP_DIR=/var/backups/mana
|
||||
DATE=$(date +%Y%m%d)
|
||||
|
||||
# Create backup directory
|
||||
mkdir -p $BACKUP_DIR
|
||||
|
||||
# Backup all databases
|
||||
docker exec postgres pg_dumpall -U manacore > $BACKUP_DIR/all_$DATE.sql
|
||||
docker exec postgres pg_dumpall -U ${POSTGRES_USER}core > $BACKUP_DIR/all_$DATE.sql
|
||||
|
||||
# Compress
|
||||
gzip $BACKUP_DIR/all_$DATE.sql
|
||||
|
|
@ -247,7 +247,7 @@ find $BACKUP_DIR -name "*.gz" -mtime +7 -delete
|
|||
docker compose -f docker-compose.production.yml stop
|
||||
|
||||
# Restore
|
||||
gunzip -c /var/backups/manacore/all_20240115.sql.gz | docker exec -i postgres psql -U manacore
|
||||
gunzip -c /var/backups/mana/all_20240115.sql.gz | docker exec -i postgres psql -U ${POSTGRES_USER}core
|
||||
|
||||
# Start services
|
||||
docker compose -f docker-compose.production.yml start
|
||||
|
|
@ -265,7 +265,7 @@ docker compose -f docker-compose.production.yml start
|
|||
2. **Backup database** (always!)
|
||||
|
||||
```bash
|
||||
docker exec postgres pg_dumpall -U manacore > backup_before_update.sql
|
||||
docker exec postgres pg_dumpall -U ${POSTGRES_USER}core > backup_before_update.sql
|
||||
```
|
||||
|
||||
3. **Restart services**
|
||||
|
|
@ -301,7 +301,7 @@ docker compose -f docker-compose.production.yml logs mana-auth
|
|||
docker compose -f docker-compose.production.yml ps postgres
|
||||
|
||||
# Check connection
|
||||
docker exec -it postgres psql -U manacore -c "SELECT 1"
|
||||
docker exec -it postgres psql -U ${POSTGRES_USER}core -c "SELECT 1"
|
||||
```
|
||||
|
||||
### Out of Memory
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
---
|
||||
title: Database Migrations
|
||||
description: Managing database schemas with Drizzle ORM in the Manacore monorepo.
|
||||
description: Managing database schemas with Drizzle ORM in the Mana monorepo.
|
||||
---
|
||||
|
||||
import { Aside, Steps, Tabs, TabItem } from '@astrojs/starlight/components';
|
||||
|
||||
# Database Migrations
|
||||
|
||||
Manacore uses **Drizzle ORM** for database management with PostgreSQL.
|
||||
Mana uses **Drizzle ORM** for database management with PostgreSQL.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -15,7 +15,7 @@ Each backend service has its own database and schema:
|
|||
|
||||
| Service | Database | Port |
|
||||
|---------|----------|------|
|
||||
| mana-core-auth | manacore | 3001 |
|
||||
| mana-core-auth | mana_platform | 3001 |
|
||||
| chat | chat | 3002 |
|
||||
| zitare | zitare | 3007 |
|
||||
| contacts | contacts | 3015 |
|
||||
|
|
@ -188,7 +188,7 @@ export default defineConfig({
|
|||
### NestJS Module
|
||||
|
||||
```typescript
|
||||
import { DrizzleModule } from '@manacore/shared-drizzle';
|
||||
import { DrizzleModule } from '@mana/shared-drizzle';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
|
|
@ -208,7 +208,7 @@ export class AppModule {}
|
|||
|
||||
```typescript
|
||||
import { Inject, Injectable } from '@nestjs/common';
|
||||
import { DRIZZLE } from '@manacore/shared-drizzle';
|
||||
import { DRIZZLE } from '@mana/shared-drizzle';
|
||||
import { eq } from 'drizzle-orm';
|
||||
import { users } from '../drizzle/schema';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
---
|
||||
title: Docker Setup
|
||||
description: Working with Docker for local development and production in Manacore.
|
||||
description: Working with Docker for local development and production in Mana.
|
||||
---
|
||||
|
||||
import { Tabs, TabItem, Aside, Steps } from '@astrojs/starlight/components';
|
||||
|
||||
# Docker Setup
|
||||
|
||||
Manacore uses Docker for local development services and production deployment.
|
||||
Mana uses Docker for local development services and production deployment.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
---
|
||||
title: Environment Variables
|
||||
description: Centralized environment variable management in the Manacore monorepo.
|
||||
description: Centralized environment variable management in the Mana monorepo.
|
||||
---
|
||||
|
||||
import { Tabs, TabItem, Aside, Steps } from '@astrojs/starlight/components';
|
||||
|
||||
# Environment Variables
|
||||
|
||||
Manacore uses a centralized environment variable system. All development variables are managed from a single file.
|
||||
Mana uses a centralized environment variable system. All development variables are managed from a single file.
|
||||
|
||||
## Quick Start
|
||||
|
||||
|
|
@ -75,8 +75,8 @@ The generator reads `.env.development` and creates app-specific `.env` files wit
|
|||
| `MANA_AUTH_DATABASE_URL` | PostgreSQL connection | - |
|
||||
| `JWT_ACCESS_TOKEN_EXPIRY` | Access token TTL | `15m` |
|
||||
| `JWT_REFRESH_TOKEN_EXPIRY` | Refresh token TTL | `7d` |
|
||||
| `JWT_ISSUER` | JWT issuer claim | `manacore` |
|
||||
| `JWT_AUDIENCE` | JWT audience claim | `manacore` |
|
||||
| `JWT_ISSUER` | JWT issuer claim | `mana` |
|
||||
| `JWT_AUDIENCE` | JWT audience claim | `mana` |
|
||||
| `STRIPE_SECRET_KEY` | Stripe secret key | - |
|
||||
| `CREDITS_SIGNUP_BONUS` | Credits on signup | `150` |
|
||||
| `CREDITS_DAILY_FREE` | Daily free credits | `5` |
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: Local Development
|
||||
description: Set up and run Manacore applications locally with automatic database setup.
|
||||
description: Set up and run Mana applications locally with automatic database setup.
|
||||
---
|
||||
|
||||
import { Tabs, TabItem, Steps, Aside } from '@astrojs/starlight/components';
|
||||
|
|
@ -86,7 +86,7 @@ This is useful when setting up a fresh environment or after pulling new schema c
|
|||
|
||||
On first `pnpm docker:up`, the PostgreSQL container runs `docker/init-db/01-create-databases.sql` which creates all databases:
|
||||
|
||||
- manacore, chat, zitare, contacts, calendar, clock, todo, cards
|
||||
- mana_platform, chat, zitare, contacts, calendar, clock, todo, cards
|
||||
- storage, mail, moodlit, finance, inventory, techbase, voxel_lava, figgos
|
||||
|
||||
### Setup Script
|
||||
|
|
@ -104,13 +104,13 @@ Some apps don't have backends or don't use Drizzle:
|
|||
|
||||
| App | Reason |
|
||||
|-----|--------|
|
||||
| manacore | No backend (uses other services) |
|
||||
| mana | No backend (uses other services) |
|
||||
| cards | Backend exists but no db:push |
|
||||
|
||||
For these, use the regular dev commands:
|
||||
|
||||
```bash
|
||||
pnpm dev:manacore:web
|
||||
pnpm dev:mana:web
|
||||
pnpm dev:cards:app
|
||||
```
|
||||
|
||||
|
|
@ -128,7 +128,7 @@ If you see `database "xxx" does not exist`:
|
|||
</TabItem>
|
||||
<TabItem label="Option 2: Manual">
|
||||
```bash
|
||||
PGPASSWORD=devpassword psql -h localhost -U manacore -d postgres -c "CREATE DATABASE chat;"
|
||||
PGPASSWORD=devpassword psql -h localhost -U mana -d postgres -c "CREATE DATABASE chat;"
|
||||
```
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
|
@ -196,12 +196,12 @@ If your backend uses Drizzle ORM:
|
|||
1. **Add database to Docker init** (`docker/init-db/01-create-databases.sql`):
|
||||
```sql
|
||||
CREATE DATABASE IF NOT EXISTS newproject;
|
||||
GRANT ALL PRIVILEGES ON DATABASE newproject TO manacore;
|
||||
GRANT ALL PRIVILEGES ON DATABASE newproject TO mana;
|
||||
```
|
||||
|
||||
2. **Add DATABASE_URL to `.env.development`**:
|
||||
```env
|
||||
NEWPROJECT_DATABASE_URL=postgresql://manacore:devpassword@localhost:5432/newproject
|
||||
NEWPROJECT_DATABASE_URL=postgresql://mana:devpassword@localhost:5432/newproject
|
||||
```
|
||||
|
||||
3. **Update `scripts/generate-env.mjs`** to generate the backend `.env` file.
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
---
|
||||
title: Testing
|
||||
description: Testing patterns and practices in the Manacore monorepo.
|
||||
description: Testing patterns and practices in the Mana monorepo.
|
||||
---
|
||||
|
||||
import { Tabs, TabItem, Aside } from '@astrojs/starlight/components';
|
||||
|
||||
# Testing
|
||||
|
||||
Manacore uses Jest for backend testing and Vitest for frontend testing.
|
||||
Mana uses Jest for backend testing and Vitest for frontend testing.
|
||||
|
||||
## Quick Start
|
||||
|
||||
|
|
@ -47,7 +47,7 @@ src/
|
|||
```typescript
|
||||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { UsersService } from './users.service';
|
||||
import { DRIZZLE } from '@manacore/shared-drizzle';
|
||||
import { DRIZZLE } from '@mana/shared-drizzle';
|
||||
|
||||
describe('UsersService', () => {
|
||||
let service: UsersService;
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
---
|
||||
title: Introduction
|
||||
description: Welcome to the Manacore documentation - learn about our multi-app ecosystem platform.
|
||||
description: Welcome to the Mana documentation - learn about our multi-app ecosystem platform.
|
||||
---
|
||||
|
||||
import { Card, CardGrid } from '@astrojs/starlight/components';
|
||||
|
||||
# Welcome to Manacore
|
||||
# Welcome to Mana
|
||||
|
||||
Manacore is a **multi-app ecosystem platform** built as a pnpm monorepo. It provides shared infrastructure, authentication, and common patterns for building modern web and mobile applications.
|
||||
Mana is a **multi-app ecosystem platform** built as a pnpm monorepo. It provides shared infrastructure, authentication, and common patterns for building modern web and mobile applications.
|
||||
|
||||
## What is Manacore?
|
||||
## What is Mana?
|
||||
|
||||
Manacore is designed to streamline the development of multiple interconnected applications:
|
||||
Mana is designed to streamline the development of multiple interconnected applications:
|
||||
|
||||
- **Shared Authentication** via Mana Core Auth (EdDSA JWT)
|
||||
- **Unified Database Patterns** with Drizzle ORM and PostgreSQL
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
---
|
||||
title: Project Structure
|
||||
description: Understand how the Manacore monorepo is organized.
|
||||
description: Understand how the Mana monorepo is organized.
|
||||
---
|
||||
|
||||
import { FileTree } from '@astrojs/starlight/components';
|
||||
|
||||
# Project Structure
|
||||
|
||||
Manacore uses a pnpm workspace monorepo with Turborepo for build orchestration.
|
||||
Mana uses a pnpm workspace monorepo with Turborepo for build orchestration.
|
||||
|
||||
## Overview
|
||||
|
||||
|
|
@ -84,21 +84,21 @@ The `services/` directory contains standalone microservices:
|
|||
Packages in `packages/` are shared across all applications:
|
||||
|
||||
### Authentication
|
||||
- `@manacore/shared-auth` - Client-side auth utilities
|
||||
- `@manacore/shared-nestjs-auth` - NestJS JWT guards
|
||||
- `@mana/shared-auth` - Client-side auth utilities
|
||||
- `@mana/shared-nestjs-auth` - NestJS JWT guards
|
||||
- `@mana-core/nestjs-integration` - Full NestJS auth + credits module
|
||||
|
||||
### UI & Styling
|
||||
- `@manacore/shared-ui` - React Native components
|
||||
- `@manacore/shared-landing-ui` - Astro landing page components
|
||||
- `@manacore/shared-theme` - Theme configuration
|
||||
- `@manacore/shared-tailwind` - Tailwind presets
|
||||
- `@mana/shared-ui` - React Native components
|
||||
- `@mana/shared-landing-ui` - Astro landing page components
|
||||
- `@mana/shared-theme` - Theme configuration
|
||||
- `@mana/shared-tailwind` - Tailwind presets
|
||||
|
||||
### Data & Utilities
|
||||
- `@manacore/shared-types` - Common TypeScript types
|
||||
- `@manacore/shared-utils` - Utility functions
|
||||
- `@manacore/shared-storage` - S3 storage utilities
|
||||
- `@manacore/shared-i18n` - Internationalization
|
||||
- `@mana/shared-types` - Common TypeScript types
|
||||
- `@mana/shared-utils` - Utility functions
|
||||
- `@mana/shared-storage` - S3 storage utilities
|
||||
- `@mana/shared-i18n` - Internationalization
|
||||
|
||||
## Workspace Configuration
|
||||
|
||||
|
|
@ -125,7 +125,7 @@ Turborepo handles task orchestration with:
|
|||
| Type | Pattern | Example |
|
||||
|------|---------|---------|
|
||||
| App package | `@{project}/{app}` | `@chat/server` |
|
||||
| Shared package | `@manacore/shared-{name}` | `@manacore/shared-auth` |
|
||||
| Shared package | `@mana/shared-{name}` | `@mana/shared-auth` |
|
||||
| Service | `@mana-{name}/service` | `@mana-search/service` |
|
||||
|
||||
## Adding a New Project
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
---
|
||||
title: Quick Start
|
||||
description: Get up and running with Manacore in minutes.
|
||||
description: Get up and running with Mana in minutes.
|
||||
---
|
||||
|
||||
import { Steps, Tabs, TabItem, Code } from '@astrojs/starlight/components';
|
||||
|
||||
# Quick Start
|
||||
|
||||
Get the Manacore monorepo running locally in just a few steps.
|
||||
Get the Mana monorepo running locally in just a few steps.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
|
|
@ -24,8 +24,8 @@ Before you begin, ensure you have:
|
|||
1. **Clone the repository**
|
||||
|
||||
```bash
|
||||
git clone https://github.com/manacore/manacore-monorepo.git
|
||||
cd manacore-monorepo
|
||||
git clone https://github.com/mana/mana-monorepo.git
|
||||
cd mana-monorepo
|
||||
```
|
||||
|
||||
2. **Install dependencies**
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: Code Style
|
||||
description: Coding standards and formatting conventions for Manacore.
|
||||
description: Coding standards and formatting conventions for Mana.
|
||||
---
|
||||
|
||||
import { Aside, Tabs, TabItem } from '@astrojs/starlight/components';
|
||||
|
|
@ -188,7 +188,7 @@ import { Injectable } from '@nestjs/common';
|
|||
import { eq } from 'drizzle-orm';
|
||||
|
||||
// 3. Monorepo packages
|
||||
import { JwtAuthGuard } from '@manacore/shared-nestjs-auth';
|
||||
import { JwtAuthGuard } from '@mana/shared-nestjs-auth';
|
||||
|
||||
// 4. Relative imports - parent directories
|
||||
import { AppModule } from '../app.module';
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
---
|
||||
title: Database Patterns
|
||||
description: Drizzle ORM patterns and database best practices in Manacore.
|
||||
description: Drizzle ORM patterns and database best practices in Mana.
|
||||
---
|
||||
|
||||
import { Aside, Tabs, TabItem } from '@astrojs/starlight/components';
|
||||
|
||||
# Database Patterns
|
||||
|
||||
Manacore uses **Drizzle ORM** with PostgreSQL for type-safe database access.
|
||||
Mana uses **Drizzle ORM** with PostgreSQL for type-safe database access.
|
||||
|
||||
## Schema Design
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
---
|
||||
title: Design & UX
|
||||
description: UI patterns, animations, and accessibility guidelines for Manacore.
|
||||
description: UI patterns, animations, and accessibility guidelines for Mana.
|
||||
---
|
||||
|
||||
import { Aside, Tabs, TabItem } from '@astrojs/starlight/components';
|
||||
|
||||
# Design & UX
|
||||
|
||||
Consistent design patterns across all Manacore applications for a unified user experience.
|
||||
Consistent design patterns across all Mana applications for a unified user experience.
|
||||
|
||||
## Design Principles
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
---
|
||||
title: Error Handling
|
||||
description: Go-style Result types and error handling patterns in Manacore.
|
||||
description: Go-style Result types and error handling patterns in Mana.
|
||||
---
|
||||
|
||||
import { Aside, Tabs, TabItem } from '@astrojs/starlight/components';
|
||||
|
||||
# Error Handling
|
||||
|
||||
Manacore uses **Go-style Result types** for explicit error handling, avoiding unexpected exceptions.
|
||||
Mana uses **Go-style Result types** for explicit error handling, avoiding unexpected exceptions.
|
||||
|
||||
## Result Type Pattern
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: Manacore Documentation
|
||||
description: Documentation for the Manacore ecosystem - a multi-app platform with shared infrastructure.
|
||||
title: Mana Documentation
|
||||
description: Documentation for the Mana ecosystem - a multi-app platform with shared infrastructure.
|
||||
template: splash
|
||||
hero:
|
||||
tagline: Build modern applications with shared infrastructure
|
||||
|
|
@ -12,7 +12,7 @@ hero:
|
|||
icon: right-arrow
|
||||
variant: primary
|
||||
- text: View on GitHub
|
||||
link: https://github.com/manacore/manacore-monorepo
|
||||
link: https://github.com/mana/mana-monorepo
|
||||
icon: external
|
||||
---
|
||||
|
||||
|
|
@ -21,8 +21,8 @@ import { Card, CardGrid } from '@astrojs/starlight/components';
|
|||
## Quick Start
|
||||
|
||||
```bash
|
||||
git clone https://github.com/manacore/manacore-monorepo.git
|
||||
cd manacore-monorepo
|
||||
git clone https://github.com/mana/mana-monorepo.git
|
||||
cd mana-monorepo
|
||||
pnpm install
|
||||
pnpm docker:up
|
||||
pnpm dev:chat:full
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ OLLAMA_URL=http://localhost:11434
|
|||
OLLAMA_TIMEOUT=120000
|
||||
|
||||
# Database
|
||||
DATABASE_URL=postgresql://manacore:devpassword@localhost:5432/chat
|
||||
DATABASE_URL=postgresql://mana:devpassword@localhost:5432/chat
|
||||
|
||||
# Auth
|
||||
MANA_AUTH_URL=http://localhost:3001
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
---
|
||||
title: Projects
|
||||
description: Overview of all projects in the Manacore ecosystem.
|
||||
description: Overview of all projects in the Mana ecosystem.
|
||||
---
|
||||
|
||||
import { Card, CardGrid, Badge } from '@astrojs/starlight/components';
|
||||
|
||||
# Projects
|
||||
|
||||
Manacore contains multiple interconnected applications, each serving a specific purpose.
|
||||
Mana contains multiple interconnected applications, each serving a specific purpose.
|
||||
|
||||
## Active Projects
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue