Some checks failed
Deploy Development / deploy (push) Successful in 41s
Test Suite / compose-smoke (push) Failing after 3s
Test Suite / pytest-backend (push) Has been skipped
Test Suite / lint-backend (push) Successful in 1s
Test Suite / build-frontend (push) Successful in 1m7s
Test Suite / k6 /api/health Baseline (push) Has been skipped
Test Suite / playwright-smoke (push) Has been skipped
Co-authored-by: Cursor <cursoragent@cursor.com>
92 lines
2.6 KiB
Markdown
92 lines
2.6 KiB
Markdown
# 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 (localhost)** | 5436 | 5437 |
|
||
| **Domain** | kairo.jinkendo.de | dev.kairo.jinkendo.de |
|
||
|
||
---
|
||
|
||
## Einmalige Server-Einrichtung
|
||
|
||
```bash
|
||
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 `develop` → `deploy-dev.yml` → `curl http://localhost:8097/api/health`
|
||
4. Merge `main` → `deploy-prod.yml` → `curl 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
|
||
|
||
```bash
|
||
# 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)
|