mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 18:01:09 +02:00
chore: rename repo mana-monorepo → managarten
Some checks are pending
CD Mac Mini / Detect Changes (push) Waiting to run
CD Mac Mini / Deploy (push) Blocked by required conditions
CI / Detect Changes (push) Waiting to run
CI / Validate (push) Waiting to run
CI / Build mana-search (push) Blocked by required conditions
CI / Build mana-sync (push) Blocked by required conditions
CI / Build mana-api-gateway (push) Blocked by required conditions
CI / Build mana-crawler (push) Blocked by required conditions
Docker Validate / Validate Dockerfiles (push) Waiting to run
Docker Validate / Build calendar-web (push) Blocked by required conditions
Docker Validate / Build quotes-web (push) Blocked by required conditions
Docker Validate / Build todo-backend (push) Blocked by required conditions
Docker Validate / Build todo-web (push) Blocked by required conditions
Docker Validate / Build mana-auth (push) Blocked by required conditions
Docker Validate / Build mana-sync (push) Blocked by required conditions
Docker Validate / Build mana-media (push) Blocked by required conditions
Mirror to Forgejo / Push to Forgejo (push) Waiting to run
Some checks are pending
CD Mac Mini / Detect Changes (push) Waiting to run
CD Mac Mini / Deploy (push) Blocked by required conditions
CI / Detect Changes (push) Waiting to run
CI / Validate (push) Waiting to run
CI / Build mana-search (push) Blocked by required conditions
CI / Build mana-sync (push) Blocked by required conditions
CI / Build mana-api-gateway (push) Blocked by required conditions
CI / Build mana-crawler (push) Blocked by required conditions
Docker Validate / Validate Dockerfiles (push) Waiting to run
Docker Validate / Build calendar-web (push) Blocked by required conditions
Docker Validate / Build quotes-web (push) Blocked by required conditions
Docker Validate / Build todo-backend (push) Blocked by required conditions
Docker Validate / Build todo-web (push) Blocked by required conditions
Docker Validate / Build mana-auth (push) Blocked by required conditions
Docker Validate / Build mana-sync (push) Blocked by required conditions
Docker Validate / Build mana-media (push) Blocked by required conditions
Mirror to Forgejo / Push to Forgejo (push) Waiting to run
Phase-3-Rename des ehemaligen Multi-App-Monorepos zum eigenständigen Produkt-Repo. Verein heißt mana e.V., Plattform-Domain bleibt mana.how, apps/mana/ bleibt unverändert — nur der Repo-Container kriegt den neuen Namen "managarten" (Garten der mana-Apps). Geändert: - package.json#name + #description - README.md (Titel + erster Absatz) - TROUBLESHOOTING.md - alle Mac-Mini-Skripte (Pfade ~/projects/mana-monorepo → ~/projects/managarten) - COMPOSE_PROJECT_NAME-default in scripts/mac-mini/status.sh - .github/workflows/cd-macmini.yml + mirror-to-forgejo.yml - apps/docs (astro.config.mjs + content) - .claude/settings.local.json (Bash-Permission-Pfade) - alle docs/*.md Pfad-Referenzen - launchd plists, .env.macmini.example, infrastructure/ Forgejo-Repo + GitHub-Repo bereits via API umbenannt. Lokales Verzeichnis-Rename + Mac-Mini-Cutover folgen separat.
This commit is contained in:
parent
ac15de280b
commit
b1b9bbc269
55 changed files with 90 additions and 90 deletions
|
|
@ -21,7 +21,7 @@
|
||||||
# Compose project name (pinned, do not change)
|
# Compose project name (pinned, do not change)
|
||||||
# ============================================
|
# ============================================
|
||||||
# All Mac Mini containers were originally created under this project
|
# All Mac Mini containers were originally created under this project
|
||||||
# name, which mismatches the current directory name (mana-monorepo).
|
# name, which mismatches the current directory name (managarten).
|
||||||
# Pinning the project name here means anyone running 'docker compose ...'
|
# Pinning the project name here means anyone running 'docker compose ...'
|
||||||
# from the repo root automatically lands in the same project as the
|
# from the repo root automatically lands in the same project as the
|
||||||
# already-running containers, instead of silently spawning a duplicate
|
# already-running containers, instead of silently spawning a duplicate
|
||||||
|
|
|
||||||
2
.github/workflows/cd-macmini.yml
vendored
2
.github/workflows/cd-macmini.yml
vendored
|
|
@ -55,7 +55,7 @@ concurrency:
|
||||||
cancel-in-progress: false # Don't cancel in-progress deploys
|
cancel-in-progress: false # Don't cancel in-progress deploys
|
||||||
|
|
||||||
env:
|
env:
|
||||||
PROJECT_DIR: /Users/mana/projects/mana-monorepo
|
PROJECT_DIR: /Users/mana/projects/managarten
|
||||||
COMPOSE_FILE: docker-compose.macmini.yml
|
COMPOSE_FILE: docker-compose.macmini.yml
|
||||||
ENV_FILE: .env.macmini
|
ENV_FILE: .env.macmini
|
||||||
DOCKER_BUILDKIT: 1
|
DOCKER_BUILDKIT: 1
|
||||||
|
|
|
||||||
4
.github/workflows/mirror-to-forgejo.yml
vendored
4
.github/workflows/mirror-to-forgejo.yml
vendored
|
|
@ -17,7 +17,7 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- name: Mirror to Forgejo via SSH
|
- name: Mirror to Forgejo via SSH
|
||||||
run: |
|
run: |
|
||||||
cd /Users/mana/projects/mana-monorepo
|
cd /Users/mana/projects/managarten
|
||||||
|
|
||||||
# Stash any local changes so pull never fails
|
# Stash any local changes so pull never fails
|
||||||
git stash --quiet 2>/dev/null || true
|
git stash --quiet 2>/dev/null || true
|
||||||
|
|
@ -25,5 +25,5 @@ jobs:
|
||||||
|
|
||||||
# Push to Forgejo via localhost SSH (runner is on the Mac Mini)
|
# Push to Forgejo via localhost SSH (runner is on the Mac Mini)
|
||||||
GIT_SSH_COMMAND='ssh -p 2222 -i ~/.ssh/id_ed25519 -o StrictHostKeyChecking=no' \
|
GIT_SSH_COMMAND='ssh -p 2222 -i ~/.ssh/id_ed25519 -o StrictHostKeyChecking=no' \
|
||||||
git push ssh://git@localhost:2222/till/mana-monorepo.git main 2>&1
|
git push ssh://git@localhost:2222/till/managarten.git main 2>&1
|
||||||
echo "Mirrored to Forgejo"
|
echo "Mirrored to Forgejo"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Mana Monorepo
|
# Managarten
|
||||||
|
|
||||||
Monorepo containing all Mana projects — a self-hosted multi-app ecosystem with shared packages and unified tooling.
|
Der Garten der mana-Apps — ein selbst-gehostetes Multi-App-Ökosystem unter `mana.how` mit geteilten Packages und einheitlichem Tooling. Teil der mana-e.V.-Plattform.
|
||||||
|
|
||||||
## Projects
|
## Projects
|
||||||
|
|
||||||
|
|
@ -62,7 +62,7 @@ See [CLAUDE.md](./CLAUDE.md) for comprehensive development documentation.
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
```
|
```
|
||||||
mana-monorepo/
|
managarten/
|
||||||
├── apps/ # Product applications
|
├── apps/ # Product applications
|
||||||
├── services/ # Microservices (auth, search, LLM, bots)
|
├── services/ # Microservices (auth, search, LLM, bots)
|
||||||
├── packages/ # Shared packages
|
├── packages/ # Shared packages
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Troubleshooting Guide
|
# Troubleshooting Guide
|
||||||
|
|
||||||
Common issues and solutions for the mana-monorepo.
|
Common issues and solutions for the managarten.
|
||||||
|
|
||||||
## Table of Contents
|
## Table of Contents
|
||||||
|
|
||||||
|
|
@ -409,7 +409,7 @@ docker run --rm --entrypoint cat test /app/dist/ai/ai.service.js
|
||||||
|
|
||||||
### Related Issues
|
### Related Issues
|
||||||
|
|
||||||
- [Commit d69cc607](https://github.com/Memo-2023/mana-monorepo/commit/d69cc607) - Fixed type-only ConfigService import in AiService
|
- [Commit d69cc607](https://github.com/Memo-2023/managarten/commit/d69cc607) - Fixed type-only ConfigService import in AiService
|
||||||
- TypeScript `import type` vs `import {}` - both erase at compile time
|
- TypeScript `import type` vs `import {}` - both erase at compile time
|
||||||
- Docker layer caching can hide fixes if source wasn't properly copied
|
- Docker layer caching can hide fixes if source wasn't properly copied
|
||||||
|
|
||||||
|
|
@ -425,7 +425,7 @@ docker run --rm --entrypoint cat test /app/dist/ai/ai.service.js
|
||||||
|
|
||||||
If you encounter an issue not covered here:
|
If you encounter an issue not covered here:
|
||||||
|
|
||||||
1. Check the [GitHub Issues](https://github.com/Memo-2023/mana-monorepo/issues)
|
1. Check the [GitHub Issues](https://github.com/Memo-2023/managarten/issues)
|
||||||
2. Review recent commits that may have introduced the issue
|
2. Review recent commits that may have introduced the issue
|
||||||
3. Run `pnpm clean` and `pnpm install` to reset
|
3. Run `pnpm clean` and `pnpm install` to reset
|
||||||
4. Create a new issue with full error logs
|
4. Create a new issue with full error logs
|
||||||
|
|
|
||||||
|
|
@ -16,10 +16,10 @@ export default defineConfig({
|
||||||
replacesTitle: false,
|
replacesTitle: false,
|
||||||
},
|
},
|
||||||
social: {
|
social: {
|
||||||
github: 'https://github.com/mana/mana-monorepo',
|
github: 'https://github.com/mana/managarten',
|
||||||
},
|
},
|
||||||
editLink: {
|
editLink: {
|
||||||
baseUrl: 'https://github.com/mana/mana-monorepo/edit/main/apps/docs/',
|
baseUrl: 'https://github.com/mana/managarten/edit/main/apps/docs/',
|
||||||
},
|
},
|
||||||
customCss: ['./src/styles/custom.css'],
|
customCss: ['./src/styles/custom.css'],
|
||||||
sidebar: [
|
sidebar: [
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ Mana encrypts user-typed content with **AES-GCM-256** before it touches IndexedD
|
||||||
|
|
||||||
## What's encrypted
|
## What's encrypted
|
||||||
|
|
||||||
**27 tables** ship with at-rest encryption enabled. The full list is in [`DATA_LAYER_AUDIT.md`](https://github.com/mana-how/mana-monorepo/blob/main/apps/mana/apps/web/src/lib/data/DATA_LAYER_AUDIT.md), but the highlights:
|
**27 tables** ship with at-rest encryption enabled. The full list is in [`DATA_LAYER_AUDIT.md`](https://github.com/mana-how/managarten/blob/main/apps/mana/apps/web/src/lib/data/DATA_LAYER_AUDIT.md), but the highlights:
|
||||||
|
|
||||||
| Module | Fields |
|
| Module | Fields |
|
||||||
|--------|--------|
|
|--------|--------|
|
||||||
|
|
@ -238,7 +238,7 @@ the full standard / ZK guarantees.
|
||||||
|
|
||||||
## Implementation references
|
## Implementation references
|
||||||
|
|
||||||
For the architectural deep dive, code locations, and the complete rollout history (Phases 1–9 + the backlog sweep), see [`DATA_LAYER_AUDIT.md`](https://github.com/mana-how/mana-monorepo/blob/main/apps/mana/apps/web/src/lib/data/DATA_LAYER_AUDIT.md).
|
For the architectural deep dive, code locations, and the complete rollout history (Phases 1–9 + the backlog sweep), see [`DATA_LAYER_AUDIT.md`](https://github.com/mana-how/managarten/blob/main/apps/mana/apps/web/src/lib/data/DATA_LAYER_AUDIT.md).
|
||||||
|
|
||||||
Key files:
|
Key files:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ Requires `cloudflared` installed: `brew install cloudflare/cloudflare/cloudflare
|
||||||
## Directory Structure
|
## Directory Structure
|
||||||
|
|
||||||
```
|
```
|
||||||
~/projects/mana-monorepo/
|
~/projects/managarten/
|
||||||
├── docker-compose.macmini.yml # Production compose file
|
├── docker-compose.macmini.yml # Production compose file
|
||||||
├── .env.production # Production environment
|
├── .env.production # Production environment
|
||||||
├── scripts/mac-mini/ # Server management scripts
|
├── scripts/mac-mini/ # Server management scripts
|
||||||
|
|
@ -53,7 +53,7 @@ Requires `cloudflared` installed: `brew install cloudflare/cloudflare/cloudflare
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ssh mana-server
|
ssh mana-server
|
||||||
cd ~/projects/mana-monorepo
|
cd ~/projects/managarten
|
||||||
./scripts/mac-mini/status.sh
|
./scripts/mac-mini/status.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -71,7 +71,7 @@ chat-backend running (healthy)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ssh mana-server
|
ssh mana-server
|
||||||
cd ~/projects/mana-monorepo
|
cd ~/projects/managarten
|
||||||
./scripts/mac-mini/deploy.sh
|
./scripts/mac-mini/deploy.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -92,7 +92,7 @@ pnpm deploy:docs
|
||||||
ssh mana-server
|
ssh mana-server
|
||||||
|
|
||||||
# Pull latest changes
|
# Pull latest changes
|
||||||
cd ~/projects/mana-monorepo
|
cd ~/projects/managarten
|
||||||
git pull
|
git pull
|
||||||
|
|
||||||
# Restart services
|
# Restart services
|
||||||
|
|
@ -135,7 +135,7 @@ npx wrangler pages deployment tail <deployment-id> --project-name=chat-landing
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ssh mana-server
|
ssh mana-server
|
||||||
cd ~/projects/mana-monorepo
|
cd ~/projects/managarten
|
||||||
|
|
||||||
# Revert to previous commit
|
# Revert to previous commit
|
||||||
git checkout HEAD~1
|
git checkout HEAD~1
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,8 @@ Run your own Mana instance using Docker Compose.
|
||||||
1. **Clone the repository**
|
1. **Clone the repository**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/mana/mana-monorepo.git
|
git clone https://github.com/mana/managarten.git
|
||||||
cd mana-monorepo
|
cd managarten
|
||||||
```
|
```
|
||||||
|
|
||||||
2. **Create environment file**
|
2. **Create environment file**
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,8 @@ Before you begin, ensure you have:
|
||||||
1. **Clone the repository**
|
1. **Clone the repository**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/mana/mana-monorepo.git
|
git clone https://github.com/mana/managarten.git
|
||||||
cd mana-monorepo
|
cd managarten
|
||||||
```
|
```
|
||||||
|
|
||||||
2. **Install dependencies**
|
2. **Install dependencies**
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ hero:
|
||||||
icon: right-arrow
|
icon: right-arrow
|
||||||
variant: primary
|
variant: primary
|
||||||
- text: View on GitHub
|
- text: View on GitHub
|
||||||
link: https://github.com/mana/mana-monorepo
|
link: https://github.com/mana/managarten
|
||||||
icon: external
|
icon: external
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -21,8 +21,8 @@ import { Card, CardGrid } from '@astrojs/starlight/components';
|
||||||
## Quick Start
|
## Quick Start
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/mana/mana-monorepo.git
|
git clone https://github.com/mana/managarten.git
|
||||||
cd mana-monorepo
|
cd managarten
|
||||||
pnpm install
|
pnpm install
|
||||||
pnpm docker:up
|
pnpm docker:up
|
||||||
pnpm dev:chat:full
|
pnpm dev:chat:full
|
||||||
|
|
|
||||||
|
|
@ -484,7 +484,7 @@ Nach Analyse aller Optionen ist die Empfehlung:
|
||||||
```bash
|
```bash
|
||||||
# Auf dem Server
|
# Auf dem Server
|
||||||
ssh mana-server
|
ssh mana-server
|
||||||
cd ~/projects/mana-monorepo
|
cd ~/projects/managarten
|
||||||
git pull
|
git pull
|
||||||
./scripts/mac-mini/deploy.sh
|
./scripts/mac-mini/deploy.sh
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -344,7 +344,7 @@ services:
|
||||||
start_period: 15s
|
start_period: 15s
|
||||||
|
|
||||||
# mana-research moved to GPU-Box on 2026-05-07 (Phase 2g). Source-of-truth
|
# mana-research moved to GPU-Box on 2026-05-07 (Phase 2g). Source-of-truth
|
||||||
# is now mana-monorepo/infrastructure/docker-compose.gpu-box.yml. DNS for
|
# is now managarten/infrastructure/docker-compose.gpu-box.yml. DNS for
|
||||||
# research.mana.how points at the mana-gpu-server tunnel; cross-LAN to
|
# research.mana.how points at the mana-gpu-server tunnel; cross-LAN to
|
||||||
# mana-credits + mana-search + postgres + redis on 192.168.178.131.
|
# mana-credits + mana-search + postgres + redis on 192.168.178.131.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -369,7 +369,7 @@ docker run -d \
|
||||||
#### 1.2 Database Package erstellen
|
#### 1.2 Database Package erstellen
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /Users/tillschneider/Documents/__00__Code/mana-monorepo
|
cd /Users/tillschneider/Documents/__00__Code/managarten
|
||||||
mkdir -p packages/cards-database
|
mkdir -p packages/cards-database
|
||||||
cd packages/cards-database
|
cd packages/cards-database
|
||||||
pnpm init
|
pnpm init
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ No manual action needed for regular deployments.
|
||||||
For immediate deployment without waiting for Watchtower:
|
For immediate deployment without waiting for Watchtower:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ssh mana-server "cd ~/projects/mana-monorepo && ./scripts/mac-mini/deploy.sh"
|
ssh mana-server "cd ~/projects/managarten && ./scripts/mac-mini/deploy.sh"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Monitoring
|
## Monitoring
|
||||||
|
|
@ -79,7 +79,7 @@ ssh mana-server "./scripts/mac-mini/health-check.sh"
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ssh mana-server
|
ssh mana-server
|
||||||
cd ~/projects/mana-monorepo
|
cd ~/projects/managarten
|
||||||
|
|
||||||
# Rollback to specific image tag
|
# Rollback to specific image tag
|
||||||
docker compose -f docker-compose.macmini.yml pull <service>:<tag>
|
docker compose -f docker-compose.macmini.yml pull <service>:<tag>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Docker Guide
|
# Docker Guide
|
||||||
|
|
||||||
Comprehensive guide for working with Docker in the mana-monorepo.
|
Comprehensive guide for working with Docker in the managarten.
|
||||||
|
|
||||||
## Table of Contents
|
## Table of Contents
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -141,7 +141,7 @@ key from `MANA_STT_API_KEY`. Keep that key out of the browser bundle.
|
||||||
|
|
||||||
**Where to obtain a key:**
|
**Where to obtain a key:**
|
||||||
|
|
||||||
- **Production (Mac Mini)**: `MANA_STT_API_KEY` is read from `~/projects/mana-monorepo/.env`
|
- **Production (Mac Mini)**: `MANA_STT_API_KEY` is read from `~/projects/managarten/.env`
|
||||||
on the Mac Mini and injected into the `mana-web` container by `docker-compose.macmini.yml`
|
on the Mac Mini and injected into the `mana-web` container by `docker-compose.macmini.yml`
|
||||||
(the `mana-web` service block, alongside `MANA_STT_URL=https://gpu-stt.mana.how`). To rotate,
|
(the `mana-web` service block, alongside `MANA_STT_URL=https://gpu-stt.mana.how`). To rotate,
|
||||||
update the `.env` value and recreate the container with
|
update the `.env` value and recreate the container with
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ PATH=/opt/homebrew/bin:$PATH colima start
|
||||||
### 6. Testen ob File-Mounts funktionieren
|
### 6. Testen ob File-Mounts funktionieren
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run --rm -v ~/projects/mana-monorepo/docker/alertmanager/alertmanager.yml:/test.yml:ro alpine head -3 /test.yml
|
docker run --rm -v ~/projects/managarten/docker/alertmanager/alertmanager.yml:/test.yml:ro alpine head -3 /test.yml
|
||||||
```
|
```
|
||||||
|
|
||||||
Sollte YAML-Inhalt zeigen, NICHT "Is a directory".
|
Sollte YAML-Inhalt zeigen, NICHT "Is a directory".
|
||||||
|
|
@ -58,7 +58,7 @@ Sollte YAML-Inhalt zeigen, NICHT "Is a directory".
|
||||||
### 7. Alle Container starten
|
### 7. Alle Container starten
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ~/projects/mana-monorepo
|
cd ~/projects/managarten
|
||||||
docker compose -f docker-compose.macmini.yml up -d --no-build
|
docker compose -f docker-compose.macmini.yml up -d --no-build
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -121,7 +121,7 @@ into individual app folders after every regeneration.
|
||||||
**One-time setup:**
|
**One-time setup:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Pulls keys from ~/projects/mana-monorepo/.env on the Mac Mini via SSH
|
# Pulls keys from ~/projects/managarten/.env on the Mac Mini via SSH
|
||||||
pnpm setup:secrets
|
pnpm setup:secrets
|
||||||
|
|
||||||
# Then propagate into per-app .env files
|
# Then propagate into per-app .env files
|
||||||
|
|
|
||||||
|
|
@ -120,7 +120,7 @@ Host mana-server-remote
|
||||||
### Projekt-Verzeichnis
|
### Projekt-Verzeichnis
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ~/projects/mana-monorepo
|
cd ~/projects/managarten
|
||||||
```
|
```
|
||||||
|
|
||||||
## CI/CD
|
## CI/CD
|
||||||
|
|
@ -130,7 +130,7 @@ Ein GitHub Actions Self-Hosted Runner läuft nativ auf dem Mac Mini und deployt
|
||||||
- **CD Workflow:** `.github/workflows/cd-macmini.yml`
|
- **CD Workflow:** `.github/workflows/cd-macmini.yml`
|
||||||
- **Mirror Workflow:** `.github/workflows/mirror-to-forgejo.yml` (GitHub → Forgejo Sync)
|
- **Mirror Workflow:** `.github/workflows/mirror-to-forgejo.yml` (GitHub → Forgejo Sync)
|
||||||
- **Runner:** `mac-mini` (self-hosted, macOS, ARM64, LaunchAgent)
|
- **Runner:** `mac-mini` (self-hosted, macOS, ARM64, LaunchAgent)
|
||||||
- **Manuelles Deployment:** https://github.com/Memo-2023/mana-monorepo/actions/workflows/cd-macmini.yml
|
- **Manuelles Deployment:** https://github.com/Memo-2023/managarten/actions/workflows/cd-macmini.yml
|
||||||
|
|
||||||
### Forgejo (Mirror-Only)
|
### Forgejo (Mirror-Only)
|
||||||
|
|
||||||
|
|
@ -276,7 +276,7 @@ Other 502 root causes to check, in order of likelihood:
|
||||||
The unified mana-web container's `/api/v1/voice/transcribe` proxy needs
|
The unified mana-web container's `/api/v1/voice/transcribe` proxy needs
|
||||||
`MANA_STT_API_KEY` to authenticate against `gpu-stt.mana.how`. The key:
|
`MANA_STT_API_KEY` to authenticate against `gpu-stt.mana.how`. The key:
|
||||||
|
|
||||||
- Lives in **Mac Mini `~/projects/mana-monorepo/.env`** (gitignored)
|
- Lives in **Mac Mini `~/projects/managarten/.env`** (gitignored)
|
||||||
- Is referenced from `docker-compose.macmini.yml` as `${MANA_STT_API_KEY:-}`
|
- Is referenced from `docker-compose.macmini.yml` as `${MANA_STT_API_KEY:-}`
|
||||||
- The source-of-truth is `services/mana-stt/.env` on the Windows GPU box (`API_KEYS=<key>:<name>`)
|
- The source-of-truth is `services/mana-stt/.env` on the Windows GPU box (`API_KEYS=<key>:<name>`)
|
||||||
|
|
||||||
|
|
@ -540,7 +540,7 @@ Bei SSH-Zugriff ist Docker nicht im Standard-PATH. Für Remote-Befehle:
|
||||||
PATH=/Applications/Docker.app/Contents/Resources/bin:$PATH
|
PATH=/Applications/Docker.app/Contents/Resources/bin:$PATH
|
||||||
|
|
||||||
# Beispiel: Remote docker compose
|
# Beispiel: Remote docker compose
|
||||||
ssh mana-server "PATH=/Applications/Docker.app/Contents/Resources/bin:\$PATH && docker compose -f ~/projects/mana-monorepo/docker-compose.macmini.yml restart grafana"
|
ssh mana-server "PATH=/Applications/Docker.app/Contents/Resources/bin:\$PATH && docker compose -f ~/projects/managarten/docker-compose.macmini.yml restart grafana"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Container existiert nicht (wurde nie erstellt)
|
### Container existiert nicht (wurde nie erstellt)
|
||||||
|
|
|
||||||
|
|
@ -208,7 +208,7 @@ curl "https://auth.mana.how/api/v1/analytics/growth?days=30"
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# On Mac Mini server
|
# On Mac Mini server
|
||||||
cd ~/projects/mana-monorepo
|
cd ~/projects/managarten
|
||||||
|
|
||||||
# Start all monitoring services
|
# Start all monitoring services
|
||||||
docker compose -f docker-compose.macmini.yml up -d victoriametrics grafana mana-auth
|
docker compose -f docker-compose.macmini.yml up -d victoriametrics grafana mana-auth
|
||||||
|
|
@ -263,7 +263,7 @@ Add to crontab for daily backups:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Daily backup at 2 AM
|
# Daily backup at 2 AM
|
||||||
0 2 * * * /path/to/mana-monorepo/scripts/backup-monitoring.sh
|
0 2 * * * /path/to/managarten/scripts/backup-monitoring.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ const defaultSettings: Settings = {
|
||||||
pnpm --filter @mana/llm-playground build
|
pnpm --filter @mana/llm-playground build
|
||||||
|
|
||||||
# Auf Mac Mini deployen
|
# Auf Mac Mini deployen
|
||||||
ssh mana-server "cd ~/projects/mana-monorepo && docker compose -f docker-compose.macmini.yml up -d --build llm-playground"
|
ssh mana-server "cd ~/projects/managarten && docker compose -f docker-compose.macmini.yml up -d --build llm-playground"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Modality-Typen
|
## Modality-Typen
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ Production-Hot-Path bleibt unverändert auf dem Mini.
|
||||||
| Phase 2c — VM + Loki + Alerts | ✅ | Komplett auf GPU-Box. 11 Container neu (VM, Loki, Pushgateway, Blackbox, Vmalert, Alertmanager, Alert-notifier, GPU-eigenes Node-Exporter+Cadvisor+Promtail). VM scrapt 76 Targets, **69 UP / 7 DOWN** (DOWN sind alle pre-existing wrong /metrics endpoints auf Mana-Services, nicht durch Migration). Konfig-Pfade: `monitoring/{prometheus,loki,blackbox,alertmanager,alert-notifier}/`. Bekannte Limits siehe unten. |
|
| Phase 2c — VM + Loki + Alerts | ✅ | Komplett auf GPU-Box. 11 Container neu (VM, Loki, Pushgateway, Blackbox, Vmalert, Alertmanager, Alert-notifier, GPU-eigenes Node-Exporter+Cadvisor+Promtail). VM scrapt 76 Targets, **69 UP / 7 DOWN** (DOWN sind alle pre-existing wrong /metrics endpoints auf Mana-Services, nicht durch Migration). Konfig-Pfade: `monitoring/{prometheus,loki,blackbox,alertmanager,alert-notifier}/`. Bekannte Limits siehe unten. |
|
||||||
| Phase 2d — Glitchtip mit dediziertem DB-Stack | ✅ | 4 Container neu (mana-mon-glitchtip + worker + dedizierte glitchtip-postgres + glitchtip-redis). Mini-Postgres scheiterte bei `logs.0001_initial`-Partition-Creation mit OS-level "Permission denied" (macOS-Docker-Storage-Quirk auf externer SSD). Auf der GPU-Box mit Linux-ext4 saubere 333-Tabellen-Migration. Worker enqueuet UND finished Tasks → DB-Writes funktional (vorher hingen sie ewig). Public-Hostname `glitchtip.mana.how` → mana-gpu-server-Tunnel (config v23). |
|
| Phase 2d — Glitchtip mit dediziertem DB-Stack | ✅ | 4 Container neu (mana-mon-glitchtip + worker + dedizierte glitchtip-postgres + glitchtip-redis). Mini-Postgres scheiterte bei `logs.0001_initial`-Partition-Creation mit OS-level "Permission denied" (macOS-Docker-Storage-Quirk auf externer SSD). Auf der GPU-Box mit Linux-ext4 saubere 333-Tabellen-Migration. Worker enqueuet UND finished Tasks → DB-Writes funktional (vorher hingen sie ewig). Public-Hostname `glitchtip.mana.how` → mana-gpu-server-Tunnel (config v23). |
|
||||||
| Phase 2e — Status-Page auf GPU-Box | ✅ | 2 Container neu (`mana-mon-status-gen` + `mana-mon-status-nginx`). Sparse `/srv/mana/source` mit `mana-source-pull.timer` (stündlich) hostet das `generate-status-page.sh` und `mana-apps.ts`. status-gen schreibt in das Docker-Volume `status-output`, das status-nginx auf `:8090` ausliefert. Public-Hostname `status.mana.how` → mana-gpu-server-Tunnel (config v25). Bonus: behebt den Inode-Stale-Bind-Mount-Bug, der auf dem Mini bei jedem CD-`git checkout -f` die Status-Page kaputt machte. `vm.mana.how` (Phase-2c-Workaround für Mini→GPU-VM-Routing) wurde wieder aus dem Tunnel entfernt — VM ist nicht mehr public. |
|
| Phase 2e — Status-Page auf GPU-Box | ✅ | 2 Container neu (`mana-mon-status-gen` + `mana-mon-status-nginx`). Sparse `/srv/mana/source` mit `mana-source-pull.timer` (stündlich) hostet das `generate-status-page.sh` und `mana-apps.ts`. status-gen schreibt in das Docker-Volume `status-output`, das status-nginx auf `:8090` ausliefert. Public-Hostname `status.mana.how` → mana-gpu-server-Tunnel (config v25). Bonus: behebt den Inode-Stale-Bind-Mount-Bug, der auf dem Mini bei jedem CD-`git checkout -f` die Status-Page kaputt machte. `vm.mana.how` (Phase-2c-Workaround für Mini→GPU-VM-Routing) wurde wieder aus dem Tunnel entfernt — VM ist nicht mehr public. |
|
||||||
| Phase 2f — drei weitere Hilfsdienste verlagert | ⚠️ teilweise zurückgerollt | (1) ~~**verdaccio** (npm.mana.how, was im mana-platform-Repo): Volume tar-stream + Config-bundle in mana-monorepo (`infrastructure/verdaccio/config.yaml`)~~ — am 2026-05-07 zurückgerollt: das Storage-Volume kam nie auf der GPU-Box an, der dortige Container war leer. DNS+Tunnel zurück auf Mini, Mini-Standalone-Compose-Project unter `~/projects/verdaccio/` bleibt Single-Source. (2) **news-ingester** (Bun-Background-Tick): Cross-LAN-DB zur Mini-Postgres. Cross-arch-Limit aufgedeckt — `docker save\|load` zwischen Mini (arm64) und GPU-Box (x86_64) wirft `exec format error`, daher nativer Build mit GPU-Box-eigenem Dockerfile in `infrastructure/news-ingester/` der `@mana/shared-rss` als `file:`-ref vendored. (3) **mana-ai** (AI Mission Runner): Cross-LAN für mana-api/mana-llm/mana-research, RSA-Key-Sync (`MANA_AI_PRIVATE_KEY_PEM`), `mana-ai.mana.how` zum GPU-Tunnel (config v28). Bonus: AI Mission Runner sitzt jetzt im selben docker-network wie gpu-llm/gpu-ollama — künftige direct-LLM-Pfade ohne Cloudflare-Round-Trip. Mini Container 44 → 43 (verdaccio bleibt Mini-side). |
|
| Phase 2f — drei weitere Hilfsdienste verlagert | ⚠️ teilweise zurückgerollt | (1) ~~**verdaccio** (npm.mana.how, was im mana-platform-Repo): Volume tar-stream + Config-bundle in managarten (`infrastructure/verdaccio/config.yaml`)~~ — am 2026-05-07 zurückgerollt: das Storage-Volume kam nie auf der GPU-Box an, der dortige Container war leer. DNS+Tunnel zurück auf Mini, Mini-Standalone-Compose-Project unter `~/projects/verdaccio/` bleibt Single-Source. (2) **news-ingester** (Bun-Background-Tick): Cross-LAN-DB zur Mini-Postgres. Cross-arch-Limit aufgedeckt — `docker save\|load` zwischen Mini (arm64) und GPU-Box (x86_64) wirft `exec format error`, daher nativer Build mit GPU-Box-eigenem Dockerfile in `infrastructure/news-ingester/` der `@mana/shared-rss` als `file:`-ref vendored. (3) **mana-ai** (AI Mission Runner): Cross-LAN für mana-api/mana-llm/mana-research, RSA-Key-Sync (`MANA_AI_PRIVATE_KEY_PEM`), `mana-ai.mana.how` zum GPU-Tunnel (config v28). Bonus: AI Mission Runner sitzt jetzt im selben docker-network wie gpu-llm/gpu-ollama — künftige direct-LLM-Pfade ohne Cloudflare-Round-Trip. Mini Container 44 → 43 (verdaccio bleibt Mini-side). |
|
||||||
| Phase 2g — mana-research auslagern | ✅ | Web-Research-Orchestrator mit 16+ Search-/LLM-Providern. Nativer Build via workspace-Dockerfile (sparse-checkout `services/mana-research` + `packages/{shared-research,shared-types,shared-hono,shared-logger}`). Cross-LAN zu mana-auth/mana-credits/mana-llm/mana-search/postgres/redis (alle auf 192.168.178.131); Redis-Auth via `REDIS_PASSWORD` aus Mini's `.env.macmini` übernommen. `research.mana.how` zum GPU-Tunnel umgebogen via Cloudflare-API (config v29). Beide `PUBLIC_MANA_RESEARCH_URL`-Vars in mana-app-web auf https-URL umgestellt — gleicher Cross-LAN-Bridge-Pattern wie mana-ai (Mini-Container können 192.168.178.11 nicht direkt erreichen, daher Tunnel-Roundtrip). Mini Container 42 → 41. |
|
| Phase 2g — mana-research auslagern | ✅ | Web-Research-Orchestrator mit 16+ Search-/LLM-Providern. Nativer Build via workspace-Dockerfile (sparse-checkout `services/mana-research` + `packages/{shared-research,shared-types,shared-hono,shared-logger}`). Cross-LAN zu mana-auth/mana-credits/mana-llm/mana-search/postgres/redis (alle auf 192.168.178.131); Redis-Auth via `REDIS_PASSWORD` aus Mini's `.env.macmini` übernommen. `research.mana.how` zum GPU-Tunnel umgebogen via Cloudflare-API (config v29). Beide `PUBLIC_MANA_RESEARCH_URL`-Vars in mana-app-web auf https-URL umgestellt — gleicher Cross-LAN-Bridge-Pattern wie mana-ai (Mini-Container können 192.168.178.11 nicht direkt erreichen, daher Tunnel-Roundtrip). Mini Container 42 → 41. |
|
||||||
| Phase 3 — Daten-Migration | n/a | Alle migrierten Apps lesen Mini-Postgres direkt — keine separate Datenmigration |
|
| Phase 3 — Daten-Migration | n/a | Alle migrierten Apps lesen Mini-Postgres direkt — keine separate Datenmigration |
|
||||||
| Phase 4 — Cloudflare-Cutover | ✅ | API-Approach via `cert.pem` apiToken: PUT `/accounts/.../cfd_tunnel/.../configurations` für GPU-Tunnel, dann `cloudflared tunnel route dns --overwrite-dns`. Kein Dashboard-Klick nötig. 3 Hostnames live (grafana/git/stats) |
|
| Phase 4 — Cloudflare-Cutover | ✅ | API-Approach via `cert.pem` apiToken: PUT `/accounts/.../cfd_tunnel/.../configurations` für GPU-Tunnel, dann `cloudflared tunnel route dns --overwrite-dns`. Kein Dashboard-Klick nötig. 3 Hostnames live (grafana/git/stats) |
|
||||||
|
|
@ -66,7 +66,7 @@ WSL2 (Ubuntu 24.04, 24 GB RAM-Limit, 12 vCPU, vmIdleTimeout=-1)
|
||||||
│ ├── mana-mon-status-gen (alpine:3.20) — Generator-Loop, queryt VM lokal
|
│ ├── mana-mon-status-gen (alpine:3.20) — Generator-Loop, queryt VM lokal
|
||||||
│ ├── mana-mon-status-nginx (nginx:alpine, :8090) — serviert HTML+JSON
|
│ ├── mana-mon-status-nginx (nginx:alpine, :8090) — serviert HTML+JSON
|
||||||
│ └── volume: status-output (geteilt zwischen den beiden)
|
│ └── volume: status-output (geteilt zwischen den beiden)
|
||||||
└── /srv/mana/source/ — Sparse mana-monorepo-clone (scripts/ + packages/shared-branding/src/)
|
└── /srv/mana/source/ — Sparse managarten-clone (scripts/ + packages/shared-branding/src/)
|
||||||
└── systemd-timer: mana-source-pull.timer (stündlich `git pull --ff-only`)
|
└── systemd-timer: mana-source-pull.timer (stündlich `git pull --ff-only`)
|
||||||
└── Phase 2c — Metrics-Stack
|
└── Phase 2c — Metrics-Stack
|
||||||
├── mana-mon-victoria (VM v1.99.0, :9090) — scrapt Mini-Services via 192.168.178.131:<port>
|
├── mana-mon-victoria (VM v1.99.0, :9090) — scrapt Mini-Services via 192.168.178.131:<port>
|
||||||
|
|
@ -128,7 +128,7 @@ als langlebigen Windows-Prozess offen → WSL-VM idled nicht aus, Container
|
||||||
| Mac Mini SSH | `ssh mana-server` (192.168.178.131, User `mana`) — **OK** |
|
| Mac Mini SSH | `ssh mana-server` (192.168.178.131, User `mana`) — **OK** |
|
||||||
| GPU-Box SSH | `ssh mana-gpu` (192.168.178.11, User `tills`) — **derzeit offline** |
|
| GPU-Box SSH | `ssh mana-gpu` (192.168.178.11, User `tills`) — **derzeit offline** |
|
||||||
| GPU-Box muss vor Phase 1 erreichbar sein | Box einschalten, Network-Profile auf "Privat" setzen (Doku §1 in `WINDOWS_GPU_SERVER_SETUP.md`) |
|
| GPU-Box muss vor Phase 1 erreichbar sein | Box einschalten, Network-Profile auf "Privat" setzen (Doku §1 in `WINDOWS_GPU_SERVER_SETUP.md`) |
|
||||||
| Live-Tunnel-Config Mac Mini | `/Users/mana/projects/mana-monorepo/cloudflared-config.yml` (geladen via LaunchAgent) |
|
| Live-Tunnel-Config Mac Mini | `/Users/mana/projects/managarten/cloudflared-config.yml` (geladen via LaunchAgent) |
|
||||||
| Mac-Mini-Tunnel-UUID | `1435166a-0e3f-4222-8de6-744f32cea5c9` |
|
| Mac-Mini-Tunnel-UUID | `1435166a-0e3f-4222-8de6-744f32cea5c9` |
|
||||||
| GPU-Box-Tunnel-UUID | `83454e8e-d7f5-4954-b2cb-0307c2dba7a6` (Token-managed im Cloudflare-Dashboard) |
|
| GPU-Box-Tunnel-UUID | `83454e8e-d7f5-4954-b2cb-0307c2dba7a6` (Token-managed im Cloudflare-Dashboard) |
|
||||||
|
|
||||||
|
|
@ -176,7 +176,7 @@ zurückgerollt — Storage-Volume kam dort nie an).
|
||||||
### Native Prozesse Mini (kein Docker, bleiben unverändert)
|
### Native Prozesse Mini (kein Docker, bleiben unverändert)
|
||||||
|
|
||||||
`who-server` (PM2), `who-web` (LaunchAgent), `cloudflared` (Mini-Tunnel),
|
`who-server` (PM2), `who-web` (LaunchAgent), `cloudflared` (Mini-Tunnel),
|
||||||
`colima`, GitHub-Runner, `actions.runner.Memo-2023-mana-monorepo.mac-mini`.
|
`colima`, GitHub-Runner, `actions.runner.Memo-2023-managarten.mac-mini`.
|
||||||
|
|
||||||
## 2. Cloudflare-Routing — Vorher / Nachher
|
## 2. Cloudflare-Routing — Vorher / Nachher
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -597,7 +597,7 @@ in one batch.
|
||||||
3. **`COMPOSE_PROJECT_NAME=manacore-monorepo` pinned.** The Mac Mini's
|
3. **`COMPOSE_PROJECT_NAME=manacore-monorepo` pinned.** The Mac Mini's
|
||||||
existing containers were created under the old project name
|
existing containers were created under the old project name
|
||||||
(`manacore-monorepo`) but the working tree directory is
|
(`manacore-monorepo`) but the working tree directory is
|
||||||
`mana-monorepo`. Without a pin, every `docker compose up` from the
|
`managarten`. Without a pin, every `docker compose up` from the
|
||||||
repo root spawns a *second* project, creating duplicate
|
repo root spawns a *second* project, creating duplicate
|
||||||
container/volume conflicts (the 2026-04-07 recovery had to pass
|
container/volume conflicts (the 2026-04-07 recovery had to pass
|
||||||
`-p manacore-monorepo` manually). The pin now lives in:
|
`-p manacore-monorepo` manually). The pin now lives in:
|
||||||
|
|
|
||||||
|
|
@ -786,7 +786,7 @@ services:
|
||||||
image: myoung34/github-runner:latest
|
image: myoung34/github-runner:latest
|
||||||
container_name: mana-github-runner
|
container_name: mana-github-runner
|
||||||
environment:
|
environment:
|
||||||
REPO_URL: https://github.com/your-org/mana-monorepo
|
REPO_URL: https://github.com/your-org/managarten
|
||||||
RUNNER_TOKEN: ${GITHUB_RUNNER_TOKEN}
|
RUNNER_TOKEN: ${GITHUB_RUNNER_TOKEN}
|
||||||
RUNNER_NAME: macmini-runner
|
RUNNER_NAME: macmini-runner
|
||||||
volumes:
|
volumes:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Refactoring Audit — April 2026
|
# Refactoring Audit — April 2026
|
||||||
|
|
||||||
Pre-Launch Audit der gesamten mana-monorepo. Erstellt 2026-04-08, vor dem
|
Pre-Launch Audit der gesamten managarten. Erstellt 2026-04-08, vor dem
|
||||||
öffentlichen Launch. Während die App noch nicht live ist, sind größere
|
öffentlichen Launch. Während die App noch nicht live ist, sind größere
|
||||||
strukturelle Änderungen weiterhin möglich, ohne User-Daten zu gefährden.
|
strukturelle Änderungen weiterhin möglich, ohne User-Daten zu gefährden.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ SEPA Direct Debit wurde im Code aktiviert. Diese Checkliste dokumentiert die ver
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ssh mana-server
|
ssh mana-server
|
||||||
cd ~/projects/mana-monorepo
|
cd ~/projects/managarten
|
||||||
git pull
|
git pull
|
||||||
./scripts/mac-mini/deploy.sh
|
./scripts/mac-mini/deploy.sh
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ Each entry carries:
|
||||||
### MCP gateway + Persona-runner — end-to-end live smoke
|
### MCP gateway + Persona-runner — end-to-end live smoke
|
||||||
|
|
||||||
- **Priority:** 🟠 important
|
- **Priority:** 🟠 important
|
||||||
- **Shipped:** `16c881833` (M1+M1.5 MCP gateway), `493db0c3b` (M2.a-c persona schemas + seed), `f07eae3c0` (M3.b-d tick loop), `eb8fac23e` (tool_use_id pairing + audit), `5a5e24f58` (docker searxng fix). Plan at [`docs/plans/mana-mcp-and-personas.md`](../plans/mana-mcp-and-personas.md). Memory: [`project_mana_mcp_personas.md`](.claude/projects/-Users-till-Documents-Code-mana-monorepo/memory/project_mana_mcp_personas.md).
|
- **Shipped:** `16c881833` (M1+M1.5 MCP gateway), `493db0c3b` (M2.a-c persona schemas + seed), `f07eae3c0` (M3.b-d tick loop), `eb8fac23e` (tool_use_id pairing + audit), `5a5e24f58` (docker searxng fix). Plan at [`docs/plans/mana-mcp-and-personas.md`](../plans/mana-mcp-and-personas.md). Memory: [`project_mana_mcp_personas.md`](.claude/projects/-Users-till-Documents-Code-managarten/memory/project_mana_mcp_personas.md).
|
||||||
- **Why it's here:** ~2600 lines of service code, 14 automated tests passed (type-check × 4, svelte-check, AES round-trip, HMAC 3-way parity, tool-registry integrity, seed dry-run, boot smokes × 2, Playwright config parse, drizzle SQL generate, vitest 21/21), but **none of it has run against a live Postgres + mana-auth + Anthropic**. Unit tests are blind to: real JWT issuance + SSO cookie flow, mana-sync wire-format mismatches, Dexie-table-name case drift, Better-Auth org-list response shape, Claude Agent SDK streaming edge-cases, encryption MK unwrap through the real vault endpoint, ZK-user rejection path.
|
- **Why it's here:** ~2600 lines of service code, 14 automated tests passed (type-check × 4, svelte-check, AES round-trip, HMAC 3-way parity, tool-registry integrity, seed dry-run, boot smokes × 2, Playwright config parse, drizzle SQL generate, vitest 21/21), but **none of it has run against a live Postgres + mana-auth + Anthropic**. Unit tests are blind to: real JWT issuance + SSO cookie flow, mana-sync wire-format mismatches, Dexie-table-name case drift, Better-Auth org-list response shape, Claude Agent SDK streaming edge-cases, encryption MK unwrap through the real vault endpoint, ZK-user rejection path.
|
||||||
- **Steps:**
|
- **Steps:**
|
||||||
1. `pnpm dev:mana:all` — brings up Postgres + Redis + MinIO + searxng + all dev servers.
|
1. `pnpm dev:mana:all` — brings up Postgres + Redis + MinIO + searxng + all dev servers.
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@
|
||||||
11. [Memory & Todos](#11-memory--todos)
|
11. [Memory & Todos](#11-memory--todos)
|
||||||
12. [Model-Routing](#12-model-routing)
|
12. [Model-Routing](#12-model-routing)
|
||||||
13. [Bemerkenswerte Clever Tricks](#13-bemerkenswerte-clever-tricks)
|
13. [Bemerkenswerte Clever Tricks](#13-bemerkenswerte-clever-tricks)
|
||||||
14. [Relevanz für das Mana-Monorepo](#14-relevanz-für-das-mana-monorepo)
|
14. [Relevanz für das Mana-Monorepo](#14-relevanz-für-das-managarten)
|
||||||
15. [Quellen](#15-quellen)
|
15. [Quellen](#15-quellen)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -422,7 +422,7 @@ Erst-Deploy von Schritt 1 + 2 auf dem Produktions-Mac-Mini. Alles, was von der S
|
||||||
docker exec mana-research bun run db:push
|
docker exec mana-research bun run db:push
|
||||||
```
|
```
|
||||||
Ergebnis: 5 Tabellen (`async_jobs`, `eval_results`, `eval_runs`, `provider_configs`, `provider_stats`).
|
Ergebnis: 5 Tabellen (`async_jobs`, `eval_results`, `eval_runs`, `provider_configs`, `provider_stats`).
|
||||||
- **`GOOGLE_GENAI_API_KEY` fehlte in `.env`** — lokalen Key aus `.env.secrets` nach `/Users/mana/projects/mana-monorepo/.env` übertragen. Backup: `.env.bak.pre-gemini-deep-research`.
|
- **`GOOGLE_GENAI_API_KEY` fehlte in `.env`** — lokalen Key aus `.env.secrets` nach `/Users/mana/projects/managarten/.env` übertragen. Backup: `.env.bak.pre-gemini-deep-research`.
|
||||||
- **Redis-NOAUTH-Spam**: mana-research hatte `REDIS_URL: redis://redis:6379` ohne Passwort-Credentials, Redis läuft aber mit `--requirepass`. Cache degradierte graceful, aber Log-Noise. Fix: commit `4867300d0` — `REDIS_URL: redis://:${REDIS_PASSWORD:-redis123}@redis:6379`.
|
- **Redis-NOAUTH-Spam**: mana-research hatte `REDIS_URL: redis://redis:6379` ohne Passwort-Credentials, Redis läuft aber mit `--requirepass`. Cache degradierte graceful, aber Log-Noise. Fix: commit `4867300d0` — `REDIS_URL: redis://:${REDIS_PASSWORD:-redis123}@redis:6379`.
|
||||||
- **Smoke-Test**: Submit über `POST /api/v1/internal/research/async` (Standard-Tier, 300 credits, Test-User ohne Wallet-Eintrag) → HTTP 500 in mana-credits (`credits.reserve failed: 404 Not Found`). **Erwartetes Ergebnis** — beweist den Chain `X-Service-Key → dispatch → googleGenai apiKey → credits.reserve` bis zum mana-credits-HTTP-Call. Kein Fehler in unserem neuen Code.
|
- **Smoke-Test**: Submit über `POST /api/v1/internal/research/async` (Standard-Tier, 300 credits, Test-User ohne Wallet-Eintrag) → HTTP 500 in mana-credits (`credits.reserve failed: 404 Not Found`). **Erwartetes Ergebnis** — beweist den Chain `X-Service-Key → dispatch → googleGenai apiKey → credits.reserve` bis zum mana-credits-HTTP-Call. Kein Fehler in unserem neuen Code.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -182,7 +182,7 @@ The wrapper code already supports a `photon-self` provider — we just need to s
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ssh mana-server
|
ssh mana-server
|
||||||
nano ~/projects/mana-monorepo/.env.macmini
|
nano ~/projects/managarten/.env.macmini
|
||||||
```
|
```
|
||||||
|
|
||||||
Add at the bottom:
|
Add at the bottom:
|
||||||
|
|
@ -202,7 +202,7 @@ GEOCODING_PROVIDERS=photon-self,photon
|
||||||
### 3.2 Recreate mana-geocoding container
|
### 3.2 Recreate mana-geocoding container
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ~/projects/mana-monorepo
|
cd ~/projects/managarten
|
||||||
docker compose -f docker-compose.macmini.yml --env-file .env.macmini up -d mana-geocoding
|
docker compose -f docker-compose.macmini.yml --env-file .env.macmini up -d mana-geocoding
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -241,7 +241,7 @@ Watch for:
|
||||||
### 4.1 Remove the Pelias stack from the Mac mini
|
### 4.1 Remove the Pelias stack from the Mac mini
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ~/projects/mana-monorepo/services/mana-geocoding/pelias
|
cd ~/projects/managarten/services/mana-geocoding/pelias
|
||||||
docker compose down -v
|
docker compose down -v
|
||||||
# `-v` deletes the volumes too — frees ~5 GB disk
|
# `-v` deletes the volumes too — frees ~5 GB disk
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ MANA_SERVICE_KEY=
|
||||||
MANA_AI_PRIVATE_KEY_PEM=
|
MANA_AI_PRIVATE_KEY_PEM=
|
||||||
|
|
||||||
# ─── Redis-Mini Auth (für Cross-LAN-Cache von mana-research, Phase 2g) ───
|
# ─── Redis-Mini Auth (für Cross-LAN-Cache von mana-research, Phase 2g) ───
|
||||||
# Identisch mit mana-monorepo/.env.macmini REDIS_PASSWORD.
|
# Identisch mit managarten/.env.macmini REDIS_PASSWORD.
|
||||||
REDIS_PASSWORD=
|
REDIS_PASSWORD=
|
||||||
|
|
||||||
# ─── mana-research (Web-Research-Orchestrator, Phase 2g) ─────
|
# ─── mana-research (Web-Research-Orchestrator, Phase 2g) ─────
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ auf der Box existierte und unangetastet blieb.
|
||||||
│ ├── grafana/ ← provisioning + dashboards
|
│ ├── grafana/ ← provisioning + dashboards
|
||||||
│ ├── loki/, blackbox/, alertmanager/, alert-notifier/, promtail-gpu/
|
│ ├── loki/, blackbox/, alertmanager/, alert-notifier/, promtail-gpu/
|
||||||
├── forgejo-data/ ← Forgejo /data bind-mount (rsync von Mini bei Phase 2b)
|
├── forgejo-data/ ← Forgejo /data bind-mount (rsync von Mini bei Phase 2b)
|
||||||
└── source/ ← Sparse mana-monorepo-clone
|
└── source/ ← Sparse managarten-clone
|
||||||
für status-page-gen + zukünftige Scripts
|
für status-page-gen + zukünftige Scripts
|
||||||
git pull stündlich via systemd timer mana-source-pull.timer
|
git pull stündlich via systemd timer mana-source-pull.timer
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
{
|
{
|
||||||
"name": "mana-monorepo",
|
"name": "managarten",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"description": "Mana Monorepo containing mana, cards, picture, chat, quotes, and presi",
|
"description": "Managarten — der Garten der mana-Apps. Enthält mana, cards, picture, chat, quotes und presi.",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "turbo run dev",
|
"dev": "turbo run dev",
|
||||||
"build": "turbo run build",
|
"build": "turbo run build",
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ Scripts for managing the Mana production environment on Mac Mini.
|
||||||
ssh mac-mini
|
ssh mac-mini
|
||||||
|
|
||||||
# 2. Navigate to project
|
# 2. Navigate to project
|
||||||
cd ~/projects/mana-monorepo
|
cd ~/projects/managarten
|
||||||
|
|
||||||
# 3. Setup auto-start (only needed once)
|
# 3. Setup auto-start (only needed once)
|
||||||
./scripts/mac-mini/setup-autostart.sh
|
./scripts/mac-mini/setup-autostart.sh
|
||||||
|
|
@ -50,8 +50,8 @@ brew install cloudflared git docker
|
||||||
```bash
|
```bash
|
||||||
mkdir -p ~/projects
|
mkdir -p ~/projects
|
||||||
cd ~/projects
|
cd ~/projects
|
||||||
git clone https://github.com/Memo-2023/mana-monorepo.git
|
git clone https://github.com/Memo-2023/managarten.git
|
||||||
cd mana-monorepo
|
cd managarten
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. Configure Cloudflare Tunnel
|
### 3. Configure Cloudflare Tunnel
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,8 @@ cd ~/projects
|
||||||
|
|
||||||
# 4. Repository klonen
|
# 4. Repository klonen
|
||||||
echo "📥 Klone Repository..."
|
echo "📥 Klone Repository..."
|
||||||
git clone https://github.com/Memo-2023/mana-monorepo.git
|
git clone https://github.com/Memo-2023/managarten.git
|
||||||
cd mana-monorepo
|
cd managarten
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "✅ Basis-Setup abgeschlossen!"
|
echo "✅ Basis-Setup abgeschlossen!"
|
||||||
|
|
|
||||||
|
|
@ -128,7 +128,7 @@ ${failed_services}
|
||||||
|
|
||||||
To investigate:
|
To investigate:
|
||||||
ssh mac-mini
|
ssh mac-mini
|
||||||
cd ~/projects/mana-monorepo
|
cd ~/projects/managarten
|
||||||
./scripts/mac-mini/status.sh
|
./scripts/mac-mini/status.sh
|
||||||
docker logs <container-name>"
|
docker logs <container-name>"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
<key>ProgramArguments</key>
|
<key>ProgramArguments</key>
|
||||||
<array>
|
<array>
|
||||||
<string>/bin/bash</string>
|
<string>/bin/bash</string>
|
||||||
<string>/Users/mana/projects/mana-monorepo/scripts/mac-mini/backup-databases.sh</string>
|
<string>/Users/mana/projects/managarten/scripts/mac-mini/backup-databases.sh</string>
|
||||||
</array>
|
</array>
|
||||||
|
|
||||||
<!-- Run daily at 3:00 AM -->
|
<!-- Run daily at 3:00 AM -->
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
<key>ProgramArguments</key>
|
<key>ProgramArguments</key>
|
||||||
<array>
|
<array>
|
||||||
<string>/bin/bash</string>
|
<string>/bin/bash</string>
|
||||||
<string>/Users/mana/projects/mana-monorepo/scripts/mac-mini/check-disk-space.sh</string>
|
<string>/Users/mana/projects/managarten/scripts/mac-mini/check-disk-space.sh</string>
|
||||||
</array>
|
</array>
|
||||||
|
|
||||||
<!-- Run every 15 minutes — frequent enough to catch disk issues early -->
|
<!-- Run every 15 minutes — frequent enough to catch disk issues early -->
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
<key>ProgramArguments</key>
|
<key>ProgramArguments</key>
|
||||||
<array>
|
<array>
|
||||||
<string>/bin/bash</string>
|
<string>/bin/bash</string>
|
||||||
<string>/Users/mana/projects/mana-monorepo/scripts/mac-mini/startup.sh</string>
|
<string>/Users/mana/projects/managarten/scripts/mac-mini/startup.sh</string>
|
||||||
</array>
|
</array>
|
||||||
<key>RunAtLoad</key>
|
<key>RunAtLoad</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
<key>ProgramArguments</key>
|
<key>ProgramArguments</key>
|
||||||
<array>
|
<array>
|
||||||
<string>/bin/bash</string>
|
<string>/bin/bash</string>
|
||||||
<string>/Users/mana/projects/mana-monorepo/scripts/mac-mini/ensure-containers-running.sh</string>
|
<string>/Users/mana/projects/managarten/scripts/mac-mini/ensure-containers-running.sh</string>
|
||||||
</array>
|
</array>
|
||||||
|
|
||||||
<key>StartInterval</key>
|
<key>StartInterval</key>
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
<key>ProgramArguments</key>
|
<key>ProgramArguments</key>
|
||||||
<array>
|
<array>
|
||||||
<string>/bin/bash</string>
|
<string>/bin/bash</string>
|
||||||
<string>/Users/mana/projects/mana-monorepo/scripts/mac-mini/health-check.sh</string>
|
<string>/Users/mana/projects/managarten/scripts/mac-mini/health-check.sh</string>
|
||||||
</array>
|
</array>
|
||||||
<key>StartInterval</key>
|
<key>StartInterval</key>
|
||||||
<integer>300</integer>
|
<integer>300</integer>
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,10 @@
|
||||||
<key>ProgramArguments</key>
|
<key>ProgramArguments</key>
|
||||||
<array>
|
<array>
|
||||||
<string>/opt/homebrew/bin/node</string>
|
<string>/opt/homebrew/bin/node</string>
|
||||||
<string>/Users/mana/projects/mana-monorepo/services/telegram-ollama-bot/dist/main.js</string>
|
<string>/Users/mana/projects/managarten/services/telegram-ollama-bot/dist/main.js</string>
|
||||||
</array>
|
</array>
|
||||||
<key>WorkingDirectory</key>
|
<key>WorkingDirectory</key>
|
||||||
<string>/Users/mana/projects/mana-monorepo/services/telegram-ollama-bot</string>
|
<string>/Users/mana/projects/managarten/services/telegram-ollama-bot</string>
|
||||||
<key>EnvironmentVariables</key>
|
<key>EnvironmentVariables</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>PATH</key>
|
<key>PATH</key>
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
<key>ProgramArguments</key>
|
<key>ProgramArguments</key>
|
||||||
<array>
|
<array>
|
||||||
<string>/bin/bash</string>
|
<string>/bin/bash</string>
|
||||||
<string>/Users/mana/projects/mana-monorepo/scripts/mac-mini/weekly-report.sh</string>
|
<string>/Users/mana/projects/managarten/scripts/mac-mini/weekly-report.sh</string>
|
||||||
</array>
|
</array>
|
||||||
|
|
||||||
<!-- Run every Sunday at 10:00 AM -->
|
<!-- Run every Sunday at 10:00 AM -->
|
||||||
|
|
|
||||||
|
|
@ -87,7 +87,7 @@ for i in $(seq 1 12); do
|
||||||
sleep 5
|
sleep 5
|
||||||
done
|
done
|
||||||
|
|
||||||
cd ~/projects/mana-monorepo
|
cd ~/projects/managarten
|
||||||
docker compose -f docker-compose.macmini.yml up -d 2>&1 | tail -5 | tee -a "$LOG"
|
docker compose -f docker-compose.macmini.yml up -d 2>&1 | tail -5 | tee -a "$LOG"
|
||||||
log "Containers started."
|
log "Containers started."
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ push_schema() {
|
||||||
echo "Core Services:"
|
echo "Core Services:"
|
||||||
# Plattform-Services bauen ab dem 2026-05-08-Cutover aus dem
|
# Plattform-Services bauen ab dem 2026-05-08-Cutover aus dem
|
||||||
# Schwester-Repo `../mana/`. Auf dem Mac Mini liegt das als
|
# Schwester-Repo `../mana/`. Auf dem Mac Mini liegt das als
|
||||||
# `/Users/mana/projects/mana/`, parallel zu `mana-monorepo`.
|
# `/Users/mana/projects/mana/`, parallel zu `managarten`.
|
||||||
push_schema "mana-auth" "../mana/services/mana-auth"
|
push_schema "mana-auth" "../mana/services/mana-auth"
|
||||||
push_schema "mana-credits" "../mana/services/mana-credits"
|
push_schema "mana-credits" "../mana/services/mana-credits"
|
||||||
push_schema "mana-user" "services/mana-user"
|
push_schema "mana-user" "services/mana-user"
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
# 4. Create a new tunnel with the same name `mana-server`. Cloudflare
|
# 4. Create a new tunnel with the same name `mana-server`. Cloudflare
|
||||||
# generates a new UUID and writes a new credentials .json
|
# generates a new UUID and writes a new credentials .json
|
||||||
# 5. Patch the new tunnel ID + credentials path into both
|
# 5. Patch the new tunnel ID + credentials path into both
|
||||||
# ~/projects/mana-monorepo/cloudflared-config.yml AND
|
# ~/projects/managarten/cloudflared-config.yml AND
|
||||||
# ~/.cloudflared/config.yml
|
# ~/.cloudflared/config.yml
|
||||||
# 6. For each hostname in the config file, run
|
# 6. For each hostname in the config file, run
|
||||||
# `cloudflared tunnel route dns -f mana-server <hostname>` so the
|
# `cloudflared tunnel route dns -f mana-server <hostname>` so the
|
||||||
|
|
@ -52,7 +52,7 @@ set -euo pipefail
|
||||||
|
|
||||||
CLOUDFLARED=/opt/homebrew/bin/cloudflared
|
CLOUDFLARED=/opt/homebrew/bin/cloudflared
|
||||||
TUNNEL_NAME="mana-server"
|
TUNNEL_NAME="mana-server"
|
||||||
REPO_CONFIG="$HOME/projects/mana-monorepo/cloudflared-config.yml"
|
REPO_CONFIG="$HOME/projects/managarten/cloudflared-config.yml"
|
||||||
CLOUDFLARED_DIR="$HOME/.cloudflared"
|
CLOUDFLARED_DIR="$HOME/.cloudflared"
|
||||||
LOCAL_CONFIG="$CLOUDFLARED_DIR/config.yml"
|
LOCAL_CONFIG="$CLOUDFLARED_DIR/config.yml"
|
||||||
PLIST_FILE="$HOME/Library/LaunchAgents/com.cloudflare.cloudflared.plist"
|
PLIST_FILE="$HOME/Library/LaunchAgents/com.cloudflare.cloudflared.plist"
|
||||||
|
|
@ -357,6 +357,6 @@ else
|
||||||
fi
|
fi
|
||||||
echo ""
|
echo ""
|
||||||
log "Next steps:"
|
log "Next steps:"
|
||||||
log " 1. From your dev box: cd ~/projects/mana-monorepo && git diff cloudflared-config.yml"
|
log " 1. From your dev box: cd ~/projects/managarten && git diff cloudflared-config.yml"
|
||||||
log " -> review the tunnel-id change, then commit + push"
|
log " -> review the tunnel-id change, then commit + push"
|
||||||
log " 2. Smoke-test the apps in your browser"
|
log " 2. Smoke-test the apps in your browser"
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
TUNNEL_ID="bb0ea86d-8253-4a54-838b-107bb7945be9"
|
TUNNEL_ID="bb0ea86d-8253-4a54-838b-107bb7945be9"
|
||||||
CONFIG_FILE="$HOME/projects/mana-monorepo/cloudflared-config.yml"
|
CONFIG_FILE="$HOME/projects/managarten/cloudflared-config.yml"
|
||||||
CREDENTIALS_FILE="$HOME/.cloudflared/${TUNNEL_ID}.json"
|
CREDENTIALS_FILE="$HOME/.cloudflared/${TUNNEL_ID}.json"
|
||||||
PLIST_FILE="$HOME/Library/LaunchAgents/com.cloudflare.cloudflared.plist"
|
PLIST_FILE="$HOME/Library/LaunchAgents/com.cloudflare.cloudflared.plist"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,9 +51,9 @@ echo ""
|
||||||
echo "=== 7. Mirror GitHub repo ==="
|
echo "=== 7. Mirror GitHub repo ==="
|
||||||
echo "After login, create a new migration at:"
|
echo "After login, create a new migration at:"
|
||||||
echo " https://git.mana.how/repo/migrate"
|
echo " https://git.mana.how/repo/migrate"
|
||||||
echo " - Clone Address: https://github.com/Memo-2023/mana-monorepo.git"
|
echo " - Clone Address: https://github.com/Memo-2023/managarten.git"
|
||||||
echo " - Mirror: Yes"
|
echo " - Mirror: Yes"
|
||||||
echo " - Repository Name: mana-monorepo"
|
echo " - Repository Name: managarten"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
echo "=== Setup complete ==="
|
echo "=== Setup complete ==="
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ if docker info >/dev/null 2>&1; then
|
||||||
# every running container, and report any compose service whose
|
# every running container, and report any compose service whose
|
||||||
# container_name is not currently up.
|
# container_name is not currently up.
|
||||||
if [ -f "$COMPOSE_FILE" ]; then
|
if [ -f "$COMPOSE_FILE" ]; then
|
||||||
DEFINED=$(docker compose -p "${COMPOSE_PROJECT_NAME:-mana-monorepo}" \
|
DEFINED=$(docker compose -p "${COMPOSE_PROJECT_NAME:-managarten}" \
|
||||||
-f "$COMPOSE_FILE" config --format json 2>/dev/null \
|
-f "$COMPOSE_FILE" config --format json 2>/dev/null \
|
||||||
| python3 -c '
|
| python3 -c '
|
||||||
import sys, json
|
import sys, json
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ set -e
|
||||||
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||||
CONFIG_FILE="$REPO_ROOT/cloudflared-config.yml"
|
CONFIG_FILE="$REPO_ROOT/cloudflared-config.yml"
|
||||||
REMOTE_HOST="mana-server"
|
REMOTE_HOST="mana-server"
|
||||||
REMOTE_PATH='~/projects/mana-monorepo/cloudflared-config.yml'
|
REMOTE_PATH='~/projects/managarten/cloudflared-config.yml'
|
||||||
|
|
||||||
GREEN='\033[0;32m'
|
GREEN='\033[0;32m'
|
||||||
YELLOW='\033[1;33m'
|
YELLOW='\033[1;33m'
|
||||||
|
|
@ -50,7 +50,7 @@ echo -e "${YELLOW}1. Pulling latest from origin (in case the local file is stale
|
||||||
echo -e "${YELLOW} warning: local cloudflared-config.yml differs from origin/main${NC}"
|
echo -e "${YELLOW} warning: local cloudflared-config.yml differs from origin/main${NC}"
|
||||||
|
|
||||||
echo -e "${YELLOW}2. Ensuring repo on the server is up to date...${NC}"
|
echo -e "${YELLOW}2. Ensuring repo on the server is up to date...${NC}"
|
||||||
ssh "$REMOTE_HOST" 'cd ~/projects/mana-monorepo && git pull --quiet'
|
ssh "$REMOTE_HOST" 'cd ~/projects/managarten && git pull --quiet'
|
||||||
|
|
||||||
echo -e "${YELLOW}3. Validating the config on the server...${NC}"
|
echo -e "${YELLOW}3. Validating the config on the server...${NC}"
|
||||||
if ! ssh "$REMOTE_HOST" "/opt/homebrew/bin/cloudflared tunnel --config $REMOTE_PATH ingress validate"; then
|
if ! ssh "$REMOTE_HOST" "/opt/homebrew/bin/cloudflared tunnel --config $REMOTE_PATH ingress validate"; then
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
/**
|
/**
|
||||||
* setup-secrets.mjs — Pull dev secrets from the Mac Mini into .env.secrets
|
* setup-secrets.mjs — Pull dev secrets from the Mac Mini into .env.secrets
|
||||||
*
|
*
|
||||||
* SSHes to mana-server, reads ~/projects/mana-monorepo/.env, and writes
|
* SSHes to mana-server, reads ~/projects/managarten/.env, and writes
|
||||||
* the secret-shaped keys into a local .env.secrets file. Skips keys that
|
* the secret-shaped keys into a local .env.secrets file. Skips keys that
|
||||||
* are already populated locally so re-running is safe.
|
* are already populated locally so re-running is safe.
|
||||||
*
|
*
|
||||||
|
|
@ -28,7 +28,7 @@ const ROOT_DIR = join(__dirname, '..');
|
||||||
const TEMPLATE_FILE = join(ROOT_DIR, '.env.secrets.example');
|
const TEMPLATE_FILE = join(ROOT_DIR, '.env.secrets.example');
|
||||||
const TARGET_FILE = join(ROOT_DIR, '.env.secrets');
|
const TARGET_FILE = join(ROOT_DIR, '.env.secrets');
|
||||||
const REMOTE_HOST = 'mana-server';
|
const REMOTE_HOST = 'mana-server';
|
||||||
const REMOTE_ENV_PATH = '~/projects/mana-monorepo/.env';
|
const REMOTE_ENV_PATH = '~/projects/managarten/.env';
|
||||||
|
|
||||||
const FORCE = process.argv.includes('--force');
|
const FORCE = process.argv.includes('--force');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
* batch. All gated by `X-Service-Key` (not a user JWT).
|
* batch. All gated by `X-Service-Key` (not a user JWT).
|
||||||
*
|
*
|
||||||
* After the platform/product split, personas live in apps/api
|
* After the platform/product split, personas live in apps/api
|
||||||
* (`mana-monorepo/apps/api`), not in mana-auth. The constructor takes
|
* (`managarten/apps/api`), not in mana-auth. The constructor takes
|
||||||
* the apps/api URL — the file name stays the same to keep the
|
* the apps/api URL — the file name stays the same to keep the
|
||||||
* callsite diff small (one import path), but the destination changed.
|
* callsite diff small (one import path), but the destination changed.
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -301,7 +301,7 @@ ScrapingBee hat nur **Abo-Pläne ab $49/Monat** — passt nicht zur Pay-per-use-
|
||||||
Kopiere `.env.secrets.example` nach `.env.secrets` (ist gitignored):
|
Kopiere `.env.secrets.example` nach `.env.secrets` (ist gitignored):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /Users/till/Documents/Code/mana-monorepo
|
cd /Users/till/Documents/Code/managarten
|
||||||
cp .env.secrets.example .env.secrets
|
cp .env.secrets.example .env.secrets
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue