All apps · 0 apps
ralph-agy
Docker app from Zeyso's Repository
Overview
Readme
View on GitHubRalph + agy Docker Setup
Ralph ist ein autonomer AI-Agent-Loop, der die Google Antigravity CLI (agy) nutzt, um User Stories aus einer prd.json automatisch zu implementieren.
Verzeichnisstruktur
ralph-agy/
├── Dockerfile
├── docker-compose.yml
├── entrypoint.sh
├── .env.example
├── .gitignore
├── unraid-template.xml
└── scripts/
└── ralph/
├── ralph.sh ← angepasstes Script (unterstützt agy)
├── agy-prompt.md ← Prompt-Template für agy
├── CLAUDE.md ← Prompt-Template für Claude Code (Fallback)
└── prompt.md ← Prompt-Template für Amp (Fallback)
Docker & Docker Compose Setup (empfohlen)
Dieses Setup funktioniert auf jedem System (macOS, Linux, Windows), auf dem Docker installiert ist.
1. Verzeichnisse anlegen
Erstelle im Projektordner die Verzeichnisse, die für die persistente Speicherung benötigt werden:
mkdir -p project agy-config logs
2. Umgebungsvariablen konfigurieren
Kopiere die .env.example Datei in eine .env Datei:
cp .env.example .env
Öffne die .env Datei und trage deinen GOOGLE_API_KEY ein.
3. Container starten
Du kannst das Image lokal bauen und starten:
docker compose up -d --build
Dies baut das Docker-Image und startet den Container im Hintergrund. Die Ordner project, agy-config und logs werden automatisch per relativem Pfad in den Container gemountet.
Unraid Setup (Alternativ)
Für die Installation auf einem Unraid-Server:
1. Verzeichnisse auf Unraid anlegen
Im Unraid-Terminal:
mkdir -p /mnt/user/appdata/ralph-agy/agy-config
mkdir -p /mnt/user/appdata/ralph-agy/project
mkdir -p /mnt/user/appdata/ralph-agy/logs
2. Image bauen
# Diesen Ordner auf den Unraid-Server kopieren (z.B. nach /mnt/user/docker-builds/ralph-agy)
cd /mnt/user/docker-builds/ralph-agy
docker build -t ralph-agy .
3. Container in Unraid anlegen
Option A – über Community Applications / Unraid Template:
- Kopiere die
unraid-template.xmlin/boot/config/plugins/dockerMan/templates-user/ - Im Unraid Docker-Tab → "Add Container" → Template "ralph-agy" wählen
Option B – manuell im Docker-Tab:
- Repository:
ralph-agy(lokal gebautes Image) - Restart Policy:
unless-stopped - Volumes (siehe unten)
- Environment Variables (siehe unten)
4. Volumes auf Unraid konfigurieren
| Container-Pfad | Host-Pfad (Unraid) | Beschreibung |
|---|---|---|
/workspace/project |
/mnt/user/appdata/ralph-agy/project |
Dein Git-Repo mit prd.json |
/root/.config/agy |
/mnt/user/appdata/ralph-agy/agy-config |
agy-Konfiguration & Auth-Token |
/workspace/logs |
/mnt/user/appdata/ralph-agy/logs |
Persistente Logs |
agy authentifizieren
Nach dem ersten Start des Containers:
# In den Container einsteigen
docker exec -it ralph-agy bash
# agy einmalig authentifizieren (OAuth / API Key)
agy auth login
# ODER falls du den API Key via Umgebungsvariable nutzt, prüfst du die Verbindung mit:
agy --version
Die Auth-Daten werden in /root/.config/agy/ gespeichert (persistent durch das gemountete Volume).
Ralph starten
# In den Container einsteigen
docker exec -it ralph-agy bash
# Ins Projekt-Verzeichnis wechseln
cd /workspace/project
# prd.json erstellen (falls noch nicht vorhanden)
# Beispiel in /workspace/project/prd.json.example (oder scripts/ralph/prd.json.example)
# Ralph mit agy starten (Standard: 10 Iterationen)
ralph.sh --tool agy 10
# Oder mit mehr Iterationen
ralph.sh --tool agy 25
# Andere Tools (Fallback)
ralph.sh --tool claude 10
ralph.sh --tool amp 10
prd.json Beispiel
{
"branchName": "feature/mein-feature",
"userStories": [
{
"id": "1",
"title": "Login-Button hinzufügen",
"description": "Einen Login-Button auf der Startseite implementieren",
"acceptanceCriteria": [
"Button ist sichtbar auf der Startseite",
"Klick öffnet Login-Modal",
"Tests sind grün"
],
"passes": false
}
]
}
Debugging
# Status prüfen
docker ps | grep ralph-agy
# Logs ansehen
docker logs ralph-agy
# Interaktive Shell
docker exec -it ralph-agy bash
# agy direkt testen
docker exec -it ralph-agy agy --version
# Ralph-Status im Projekt prüfen
cat ./project/progress.txt
cat ./project/prd.json | jq '.userStories[] | {id, title, passes}'
Hinweise
- Das Projekt-Verzeichnis muss ein Git-Repository sein (
git initfalls nötig) prd.jsonmuss im Wurzelverzeichnis des Projekts liegen- Der Container bleibt dauerhaft laufen – Ralph wird manuell per exec gestartet
- agy läuft im
--dangerously-skip-permissionsModus (YOLO-Mode) für autonomen Betrieb
Install ralph-agy on Unraid in a few clicks.
Find ralph-agy in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/zeyso/ralph-agy:mainRuntime arguments
- Network
bridge- Shell
bash- Privileged
- false
- Extra Params
--restart=unless-stopped
Template configuration
Your Google / Antigravity API Key for agy CLI authentication
- Target
- GOOGLE_API_KEY
Antigravity API Key (leave empty if using GOOGLE_API_KEY)
- Target
- ANTIGRAVITY_API_KEY
Container timezone
- Target
- TZ
- Default
- Europe/Berlin
- Value
- Europe/Berlin
Path to your project/git repo (must contain prd.json)
- Target
- /workspace/project
- Default
- /mnt/user/appdata/ralph-agy/project
- Value
- /mnt/user/appdata/ralph-agy/project
agy configuration directory (settings.json, auth tokens)
- Target
- /root/.config/agy
- Default
- /mnt/user/appdata/ralph-agy/agy-config
- Value
- /mnt/user/appdata/ralph-agy/agy-config
Persistent log storage
- Target
- /workspace/logs
- Default
- /mnt/user/appdata/ralph-agy/logs
- Value
- /mnt/user/appdata/ralph-agy/logs