docs: vollständige README mit Features, Installation, Konfiguration, Deployment + Screenshot

This commit is contained in:
Meleki committed 2026-03-06 23:02:32 +01:00
1 parent 23c2bde8d4
commit 28fd685136
2 files changed
+160 -3

No files matched your search

+160 -3
View File
@@ -1,6 +1,163 @@
![](Screenshot.png)
# // gott # // gott
Self-hosted AI-Coding-Agent auf Basis der Anthropic API. Stellt eine Web-UI bereit, über die man in Sessions mit konfigurierbaren Agenten chatten kann. Die Agenten haben Tool-Zugriff (Dateien lesen/schreiben/bearbeiten, Shell-Befehle ausführen) auf ein definiertes Workspace-Verzeichnis. Self-hosted AI-Coding-Agent auf Basis der Anthropic Claude API. Stellt eine Web-UI bereit, über die man in Sessions mit konfigurierbaren Agenten chatten kann. Die Agenten haben Tool-Zugriff (Dateien lesen/schreiben/bearbeiten, Shell-Befehle ausführen, Suchen, Todos, Memory) auf ein definiertes Workspace-Verzeichnis.
- **Stack:** .NET 10, SQLite, Vanilla-Frontend ---
- **Port:** 19000 (konfigurierbar via `appsettings.json`)
## Features
- **Multi-Agent-System** – Mehrere Agenten mit eigenen Identitäten, Persönlichkeiten und Tool-Konfigurationen
- **Multi-Agent Review** – Optionaler Review-Agent pro Session, der die Arbeit des Worker-Agents prüft und Feedback gibt
- **12 Tools** – `read_file`, `write_file`, `edit_file`, `list_files`, `delete_file`, `execute`, `glob`, `grep`, `todo_write`, `memory_read`, `memory_write`, `memory_list`
- **Streaming** – Echtzeit-Antworten via Server-Sent Events (SSE)
- **Stop-Button** – Laufende Requests zuverlässig abbrechen (inkl. laufender Shell-Befehle)
- **Skill-System** – Wiederverwendbare Prompt-Bausteine, zuordenbar pro Agent
- **Memory** – Persistentes Gedächtnis pro Agent (Dateisystem-basiert)
- **Workspace-Browser** – Integrierter Datei-Explorer mit Editor
- **Telegram-Integration** – Agents über Telegram ansprechen
- **Cronjobs** – Zeitgesteuerte Prompts mit Cron-Expressions
- **Bildgenerierung** – Krea AI Integration für Bildgenerierung
- **Nachrichten teilen** – Einzelne Nachrichten per öffentlichem Link teilen
- **Archivierung** – Chat-Verläufe archivieren und durchsuchen
- **Benutzerverwaltung** – Multi-User mit Admin-Rollen, Impersonate, Login-Links
- **Servereinstellungen** – Admin-UI für `appsettings.Production.json`
- **Desktop-Client** – WPF + WebView2 Windows-App
- **Dark Theme** – CSS-Variables basiertes Theming
## Tech-Stack
| Bereich | Technologie |
|---------|-------------|
| **Backend** | .NET 10 Minimal API, C# |
| **Datenbank** | SQLite + Dapper |
| **AI** | Anthropic Claude API (SSE Streaming) |
| **Frontend** | Vanilla JS SPA (kein Framework), CSS Variables |
| **Mathe** | KaTeX (LaTeX-Rendering) |
| **Bilder** | SixLabors.ImageSharp |
| **Cron** | Cronos |
| **Desktop** | WPF + WebView2 (optional) |
---
## Voraussetzungen
- [.NET 10 SDK](https://dotnet.microsoft.com/download/dotnet/10.0)
- Anthropic API Key ([console.anthropic.com](https://console.anthropic.com/))
- Linux/macOS/Windows (Produktiv: Linux empfohlen)
## Installation
```bash
git clone <repo-url> /app/gott
cd /app/gott
dotnet publish -c Release -o publish
```
## Konfiguration
Beim ersten Start wird `appsettings.json` mit Standardwerten verwendet. Für eigene Einstellungen eine `appsettings.Production.json` im `publish/`-Verzeichnis anlegen (oder über die Admin-UI verwalten):
```json
{
"Port": 19000,
"AnthropicToken": "sk-ant-...",
"MaxIterations": 100,
"PayloadLogging": false,
"PayloadLoggingGzip": false,
"KreaToken": "",
"KreaApiKey": ""
}
```
| Setting | Beschreibung | Default |
|---------|-------------|---------|
| `Port` | Server-Port (erfordert Neustart) | `19000` |
| `AnthropicToken` | Anthropic API Key (**erforderlich**) | – |
| `MaxIterations` | Max Tool-Loop Iterationen pro Chat | `100` |
| `PayloadLogging` | API-Payloads in Konsole loggen | `false` |
| `PayloadLoggingGzip` | Payload-Logs als .gz komprimieren | `false` |
| `KreaToken` | Krea AI API Token (optional) | – |
| `KreaApiKey` | API-Key für Krea-Endpoints ohne User-Auth (optional) | – |
> **Hinweis:** Die `appsettings.Production.json` wird **nicht** beim `dotnet publish` mitkopiert. Sie lebt ausschließlich im `publish/`-Verzeichnis und kann über die Admin-UI (`#/server-settings`) verwaltet werden.
## Starten
```bash
cd publish
dotnet gott.dll
```
Die Web-UI ist dann unter `http://localhost:19000` erreichbar.
Beim ersten Start wird automatisch ein Admin-Account erstellt – die Zugangsdaten werden in der Konsole ausgegeben.
## Deployment (Linux)
Empfohlen als systemd-Service hinter einem Reverse Proxy (Nginx, Caddy):
```bash
# deploy.sh (Beispiel)
#!/bin/bash
set -e
cd /app/gott
systemctl stop gott
dotnet publish -c Release -o publish
systemctl start gott
```
Beispiel systemd-Unit (`/etc/systemd/system/gott.service`):
```ini
[Unit]
Description=gott AI Agent
After=network.target
[Service]
WorkingDirectory=/app/gott/publish
ExecStart=/usr/bin/dotnet /app/gott/publish/gott.dll
Restart=always
RestartSec=5
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
```
---
## Projektstruktur
```
gott/
├── Program.cs # Startup, DI, Middleware, Routing
├── appsettings.json # Standard-Konfiguration
├── Models/ # Records (reine Daten)
├── Services/ # Business-Logic (Singletons)
├── Endpoints/ # HTTP API (Minimal API)
├── Middleware/ # Auth-Middleware
├── Templates/ # Vorlagen (IDENTITY.md, SOUL.md, USER.md)
├── wwwroot/ # Frontend (Vanilla JS SPA)
│ ├── js/ # App, Router, API, Chat, UI-Helpers, Pages
│ └── css/ # Styles (theme.css = CSS Variables)
├── WindowsApp/ # WPF + WebView2 Desktop Client
└── publish/ # Build-Output + Laufzeit-Daten
└── data/
├── gott.db # SQLite Datenbank
├── agents/{id}/ # Memory-Dateien pro Agent
├── skills/{slug}/ # Skill-Dateien
└── images/ # Krea-generierte Bilder
```
> ⚠️ Quelldateien in `wwwroot/` editieren – **niemals** in `publish/wwwroot/`!
Ausführliche Dokumentation: [ARCHITECTURE.md](ARCHITECTURE.md) · Kurzreferenz: [ARCHITECTURE_QUICK.md](ARCHITECTURE_QUICK.md)
---
## Lizenz
Proprietär – Alle Rechte vorbehalten.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 458 KiB