Files
mailadler/docs/PI_RUNNER_SETUP.md
2026-02-04 04:44:35 +01:00

102 lines
2.1 KiB
Markdown

# Raspberry Pi 5 als GitHub Actions Self-Hosted Runner
## Voraussetzungen
- Raspberry Pi 5 (8GB) mit Raspberry Pi OS (64-bit)
- Internetverbindung
- GitHub Repository Admin-Zugang
## 1. Dependencies installieren (einmalig)
```bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y \
build-essential cmake ninja-build git curl \
qt6-base-dev qt6-websockets-dev \
libgl1-mesa-dev libxkbcommon-dev \
libxcb-xinerama0-dev libxcb-cursor0 \
libsqlite3-dev libssl-dev
```
## 2. GitHub Runner installieren
```bash
# Verzeichnis erstellen
mkdir -p ~/actions-runner && cd ~/actions-runner
# Runner herunterladen (ARM64 Version)
curl -o actions-runner-linux-arm64-2.321.0.tar.gz -L \
https://github.com/actions/runner/releases/download/v2.321.0/actions-runner-linux-arm64-2.321.0.tar.gz
# Entpacken
tar xzf ./actions-runner-linux-arm64-2.321.0.tar.gz
```
## 3. Runner registrieren
1. Gehe zu: https://github.com/georg0480/mailadler/settings/actions/runners/new
2. Wähle "Linux" und "ARM64"
3. Kopiere den Token aus der Anleitung
4. Führe aus:
```bash
./config.sh --url https://github.com/georg0480/mailadler --token DEIN_TOKEN
```
Bei der Konfiguration:
- **Runner group**: Enter (default)
- **Runner name**: `pi5-dns` (oder anderer Name)
- **Labels**: `self-hosted,linux,ARM64` (wichtig!)
- **Work folder**: Enter (default: `_work`)
## 4. Als Systemd-Service einrichten (läuft automatisch)
```bash
sudo ./svc.sh install
sudo ./svc.sh start
# Status prüfen
sudo ./svc.sh status
```
## 5. Testen
Gehe zu: https://github.com/georg0480/mailadler/actions
Klicke auf "build-mailadler-linux-arm64" → "Run workflow"
Der Build sollte auf deinem Pi laufen!
## Ressourcen-Tipps für DNS-Server + Runner
Da der Pi auch DNS-Server ist:
```bash
# Runner-Priority senken (nice)
sudo nano /etc/systemd/system/actions.runner.*.service
```
Füge hinzu unter `[Service]`:
```ini
Nice=10
CPUQuota=75%
MemoryMax=6G
```
```bash
sudo systemctl daemon-reload
sudo systemctl restart actions.runner.*.service
```
## Logs anschauen
```bash
journalctl -u actions.runner.* -f
```
## Runner stoppen/deaktivieren
```bash
sudo ./svc.sh stop
sudo ./svc.sh uninstall
```