Kairo-Jinkendo/docs/DEPLOYMENT.md
Lars b1e00bb347
All checks were successful
Deploy Development / deploy (push) Successful in 45s
Test Suite / compose-smoke (push) Has been skipped
Test Suite / pytest-backend (push) Has been skipped
Test Suite / lint-backend (push) Successful in 2s
Test Suite / build-frontend (push) Successful in 44s
Test Suite / k6 /api/health Baseline (push) Has been skipped
Test Suite / playwright-smoke (push) Has been skipped
CI-Fix: compose-smoke nicht bei Push (Port-Konflikt mit Deploy), DB ohne Host-Port.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 19:35:09 +02:00

2.6 KiB
Raw Blame History

Deployment Kairo Jinkendo

Stand: 2026-07-04 (AP0.1)
Server: Raspberry Pi 5 (192.168.2.49) — gleicher Host wie Shinkan/Mitai
Runner: Gitea Actions (/home/lars/gitea-runner/)


Port- und Pfad-Übersicht

Production Development
Git-Branch main develop
Server-Verzeichnis /home/lars/docker/kairo /home/lars/docker/kairo-dev
Frontend-Port 3004 3097
Backend-Port 8004 8097
PostgreSQL nur im Container-Netz (Prod optional localhost:5436) nur im Container-Netz
Domain kairo.jinkendo.de dev.kairo.jinkendo.de

Einmalige Server-Einrichtung

mkdir -p /home/lars/docker/kairo /home/lars/docker/kairo-dev

cd /home/lars/docker/kairo-dev
git clone http://192.168.2.144:3000/Lars/Kairo-Jinkendo.git .
git checkout develop
cp .env.example .env
# DB_PASSWORD setzen

cd /home/lars/docker/kairo
git clone http://192.168.2.144:3000/Lars/Kairo-Jinkendo.git .
git checkout main
cp .env.example .env
# Prod-DB_PASSWORD setzen

Gitea Actions Checkliste

  1. Actions aktiviert (Repository → Settings → Actions)
  2. Pi-Runner registriert — derselbe wie Shinkan/Mitai (ubuntu-latest)
  3. Push developdeploy-dev.ymlcurl http://localhost:8097/api/health
  4. Merge maindeploy-prod.ymlcurl http://localhost:8004/api/health
  5. Nach Deploy: test.yml (workflow_run) — pytest, k6, Playwright smoke gegen localhost
Workflow Trigger
deploy-dev.yml Push develop
deploy-prod.yml Push main
test.yml Push/PR (compose-smoke) + nach Deploy (Integration)

CI auf dem Pi nutzt localhost-Ports. Öffentliche Domains sind für Reverse-Proxy optional.


Medien (optional)

Aktuell keine Medien-Speicherung. Bei Bedarf: NAS-Mount + docker-compose.override.yml (siehe frühere Doku-Version im Git-Verlauf).


Reverse Proxy (optional)

Hostname Ziel (Pi)
kairo.jinkendo.de http://192.168.2.49:3004
dev.kairo.jinkendo.de http://192.168.2.49:3097

Manuelles Deploy

# Development
cd /home/lars/docker/kairo-dev
git fetch origin develop && git reset --hard origin/develop
docker compose -f docker-compose.dev-env.yml build --no-cache
docker compose -f docker-compose.dev-env.yml up -d

# Production
cd /home/lars/docker/kairo
git fetch origin main && git reset --hard origin/main
docker compose build --no-cache
docker compose up -d

Health: curl http://localhost:8097/api/health (Dev) bzw. http://localhost:8004/api/health (Prod)