Kairo-Jinkendo/docs/DEPLOYMENT.md
Lars a979d0e5f9
Some checks failed
Test Suite / pytest-backend (push) Waiting to run
Test Suite / lint-backend (push) Waiting to run
Test Suite / compose-smoke (push) Waiting to run
Test Suite / k6 /api/health Baseline (push) Waiting to run
Test Suite / playwright-smoke (push) Waiting to run
Deploy Development / deploy (push) Has been cancelled
Frontend-Build aus test.yml entfernt — laeuft im Deploy via docker compose build.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 19:45:43 +02:00

3.1 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 Zweck
deploy-dev.yml Push develop Deploy nach /home/lars/docker/kairo-dev
deploy-prod.yml Push main Deploy nach /home/lars/docker/kairo
test.yml Push/PR develop, nach Deploy lint, pytest, k6, Playwright (Frontend-Build läuft im Deploy via Docker)
test.ymlcompose-smoke Pull Request Eigener Stack auf CI-Ports 18197/13197

Struktur wie Shinkan: Deploy und Test Suite sind getrennte Workflows in Gitea.

Bei Push auf develop starten Deploy und Test Suite parallel; pytest wartet auf den Backend-Container der deployten Instanz (Ports 8097/3097). Nach Deploy Production feuert workflow_run die Prod-Tests (Ports 8004/3004).


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)