mitai-jinkendo/SETUP.md
Lars Stommer 89b6c0b072
Some checks are pending
Deploy to Raspberry Pi / deploy (push) Waiting to run
Build Test / build-frontend (push) Waiting to run
Build Test / lint-backend (push) Waiting to run
feat: initial commit – Mitai Jinkendo v9a
2026-03-16 13:35:11 +01:00

4.7 KiB
Raw Permalink Blame History

Mitai Jinkendo Entwicklungs-Setup

1. Gitea Repository anlegen

Auf dem Pi (Gitea):

# Im Gitea Web-UI:
# → New Repository: "mitai-jinkendo"
# → Visibility: Private
# → Initialize: Nein (wir pushen bestehenden Code)

Auf deinem Entwicklungsrechner:

# Einmalig: SSH-Key für Gitea hinterlegen
ssh-keygen -t ed25519 -C "lars-dev"
# Public Key in Gitea: Settings → SSH Keys → Add Key

# Repo klonen / initialisieren
cd /pfad/zum/projekt
git init
git remote add origin git@raspberrypi5:lars/mitai-jinkendo.git

# Ersten Commit
git add .
git commit -m "feat: initial commit v8  Mitai Jinkendo"
git push -u origin main

2. Gitea Actions einrichten

Runner auf dem Pi installieren:

# Gitea Runner installieren (führt die Workflows aus)
wget https://gitea.com/gitea/act_runner/releases/latest/download/act_runner-linux-arm64
chmod +x act_runner-linux-arm64
sudo mv act_runner-linux-arm64 /usr/local/bin/act_runner

# Runner registrieren
# Token findest du in Gitea: Site Admin → Runners → New Runner
act_runner register \
  --instance http://localhost:3000 \
  --token DEIN_TOKEN \
  --name "pi-runner" \
  --labels ubuntu-latest

# Als Service einrichten
sudo nano /etc/systemd/system/gitea-runner.service

/etc/systemd/system/gitea-runner.service:

[Unit]
Description=Gitea Act Runner
After=network.target

[Service]
User=lars
WorkingDirectory=/home/lars/gitea-runner
ExecStart=/usr/local/bin/act_runner daemon
Restart=always

[Install]
WantedBy=multi-user.target
sudo systemctl enable --now gitea-runner

Deploy Secrets in Gitea hinterlegen:

Gitea → Repository → Settings → Secrets:

DEPLOY_HOST     = 127.0.0.1  (oder raspberrypi5.local)
DEPLOY_USER     = lars
DEPLOY_SSH_KEY  = (privater SSH-Key, der Zugriff auf den Pi hat)

3. Deployment-Verzeichnis auf dem Pi vorbereiten

# Einmalig auf dem Pi:
cd /home/lars/docker
git clone git@localhost:lars/mitai-jinkendo.git bodytrack
cd bodytrack

# .env anlegen (NICHT committen!)
cp .env.example .env
nano .env  # Werte ausfüllen

# Ersten Start
docker compose up -d

4. Claude Code einrichten

VS Code Extension:

1. VS Code öffnen
2. Extensions → "Claude Code" suchen und installieren
3. Oder direkt: code --install-extension anthropic.claude-code

Projekt öffnen:

cd /pfad/zu/mitai-jinkendo
code .

Claude Code liest automatisch CLAUDE.md und kennt damit:

  • Den gesamten Tech-Stack
  • Was schon implementiert ist
  • Was als nächstes kommt (v9)
  • Wichtige Hinweise (Ports, bekannte Fallstricke)

Typischer Workflow:

1. Feature im Chat mit Claude besprechen
2. Claude Code schreibt/ändert Dateien direkt
3. git diff prüfen
4. git commit + push
5. Gitea Action deployed automatisch auf den Pi

5. DynDNS + Let's Encrypt Setup

Fritz!Box MyFRITZ! einrichten:

1. Fritz!Box UI → Internet → MyFRITZ!-Konto
2. MyFRITZ!-Adresse notieren: z.B. "xxxx.myfritz.net"
3. Portfreigabe einrichten:
   - Port 80 → Raspberry Pi (für HTTP/Let's Encrypt)
   - Port 443 → Raspberry Pi (für HTTPS)

Strato DNS einrichten:

Strato Kundenbereich → Domains → mitai.jinkendo.de → DNS

CNAME body → xxxx.myfritz.net

Alternativ: A-Record + DynDNS-Update-Script

nginx auf dem Pi installieren:

sudo apt install nginx
sudo cp nginx/nginx.conf /etc/nginx/sites-available/jinkendo
sudo ln -s /etc/nginx/sites-available/jinkendo /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Let's Encrypt Zertifikat holen:

# Sicherstellen dass Port 80 von außen erreichbar ist!
# Dann:
sudo bash nginx/certbot-setup.sh

6. Entwicklungs-Workflow (täglich)

# Feature entwickeln
git checkout -b feature/v9-auth
# ... Code schreiben ...
git add .
git commit -m "feat(auth): add bcrypt password hashing"

# Lokal testen
docker compose -f docker-compose.yml \
               -f docker-compose.dev.yml up

# Nach Test: merge + deploy
git checkout main
git merge feature/v9-auth
git push  # → Gitea Action startet automatisch → Pi wird updated

7. Nächste Schritte (v9 Roadmap)

v9a Security (Prio: 🔴 Kritisch):

  • bcrypt für Passwörter
  • Auth-Middleware auf alle Endpoints
  • CORS einschränken
  • Rate Limiting
  • Login via E-Mail statt Profil-Liste

v9a Infrastruktur:

  • PostgreSQL Migration
  • nginx + Let's Encrypt live
  • Gitea Actions deployed

v9b Freemium:

  • Tier-System (free/basic/premium)
  • Selbst-Registrierung + E-Mail-Bestätigung
  • Trial (14 Tage)
  • Einladungslinks für Beta
  • Admin-Panel: User + Tiers verwalten

v9c Connectoren (Vorbereitung):

  • OAuth2-Grundgerüst
  • Strava Connector
  • Withings Connector (Waage)