All checks were successful
Deploy Development / deploy (push) Successful in 34s
Test Suite / pytest-backend (push) Successful in 3s
Test Suite / lint-backend (push) Successful in 2s
Test Suite / compose-smoke (push) Has been skipped
Test Suite / k6 /api/health Baseline (push) Successful in 18s
Test Suite / playwright-smoke (push) Successful in 12s
Co-authored-by: Cursor <cursoragent@cursor.com>
3.0 KiB
3.0 KiB
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
- Actions aktiviert (Repository → Settings → Actions)
- Pi-Runner registriert — derselbe wie Shinkan/Mitai (
ubuntu-latest) - Push
develop→deploy-dev.yml→curl http://localhost:8097/api/health - Merge
main→deploy-prod.yml→curl http://localhost:8004/api/health - Push
main→deploy-prod.yml+test.yml(Prod pytest/k6/Playwright auf localhost 8004/3004)
| 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 develop/main, PR develop |
lint, pytest, k6, Playwright gegen deployte Instanz |
test.yml → compose-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 oder main starten Deploy und Test Suite parallel; pytest wartet auf den Backend-Container (Dev: 8097/3097, Prod: 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)