5.3 KiB
5.3 KiB
Server
Netcup-Server erreichbar per SSH-Key:
- IP: 185.162.249.159
- Hostname: v2202605360184461552.supersrv.de
- User: root
- Befehl:
ssh root@185.162.249.159 - Key: ~/.ssh/id_ed25519
Laufende Dienste
| Dienst | URL | Installationspfad |
|---|---|---|
| Gitea | http://185.162.249.159:3000/ | /opt/gitea (binary, systemd user: git) |
| Chatwoot | http://185.162.249.159:3001/ | /opt/chatwoot (docker compose) |
| Open WebUI | http://185.162.249.159:3002/ | /opt/openwebui (docker compose) |
| Ollama | localhost:11434 | systemd service, user: ollama |
| SearchTool | https://search.datenhimmel.work | /opt/search-tool (docker compose) |
OpenCode API-Zugang
- Base URL:
http://185.162.249.159:3002/ollama/v1(OpenWebUI Ollama-Proxy) - API Key: sk-ce343adf68855a8df4c991dde4d4e2b27c61d883915fb6db
- Direkter Ollama-Zugriff (Port 11434) per iptables nur für localhost + Docker
OpenWebUI-Fix (v0.9.5)
Bug: externe API-Calls crashen mit 'NoneType' object has no attribute 'startswith'.
Gepatchte Dateien (in docker-compose.yml als Volume gemountet):
/opt/openwebui/middleware.py— None-Checks vormetadata['chat_id'].startswith()/opt/openwebui/socket_main.py—(request_info.get('chat_id') or '').startswith()
SearchTool (Eigene Web-Suche)
Selbst gehostete Such-API mit SearXNG (5 Engine: Google, Brave, DDG, Bing, Wikipedia) + Playwright-Fallback für JS-Seiten + Redis-Cache + Tor-Proxy (optional).
- URL: https://search.datenhimmel.work
- API Key: 375f7a6d3fa09c45a76df8d497ca14c9aafc60ee931fc17fdb7e602d5074589b
- Pfad: /opt/search-tool (docker compose)
- Repo: git@185.162.249.159:danielkrause/search-tool.git
- Endpoints: POST /search (Web-Suche), POST /extract (Content-Extraction), GET /health
- Hermes-Integration: Plugin in /home/hermes/hermes-agent/plugins/web/searchtool/ — web.search_backend: searchtool
# Suche
curl -X POST https://search.datenhimmel.work/search \
-H "Authorization: Bearer 375f7a6d3fa09..." \
-H "Content-Type: application/json" \
-d '{"q": "Suchbegriff", "include_content": true}'
# Steuern
ssh root@185.162.249.159 'cd /opt/search-tool && docker compose up -d'
Docker
Alle Docker-Dienste in /opt// mit docker compose steuern:
docker compose pull && docker compose up -dzum Updaten- Volumes bleiben bei Updates erhalten
Hermes Agent (Server)
Läuft als systemd-Service auf dem hermes User. Vollständig isoliert, kein sudo.
- Pfad: /home/hermes/hermes-agent (git clone)
- Config: /home/hermes/.hermes/config.yaml + .env
- Service:
systemctl start/stop/restart hermes-gateway - Gateway-Log: journalctl -u hermes-gateway -f
- Agent-Log: /home/hermes/.hermes/logs/agent.log
Hermes warten
# Service steuern
ssh root@185.162.249.159 systemctl stop hermes-gateway # Stoppen
ssh root@185.162.249.159 systemctl start hermes-gateway # Starten
ssh root@185.162.249.159 systemctl status hermes-gateway # Status
# Update via pip
ssh root@185.162.249.159 'su - hermes -c "/home/hermes/venv/bin/pip install --upgrade -e /home/hermes/hermes-agent"'
# Config editieren
ssh hermes@185.162.249.159 'nano /home/hermes/.hermes/.env'
ssh hermes@185.162.249.159 '/home/hermes/venv/bin/hermes config edit'
Sicherheitskonzept
- Hermes hat nur einen SSH-Key (dein Laptop-Key)
- Kein sudo-Zugriff (via sudoers blockiert)
- Keine outbound-Ports zu anderen Diensten (systemd hardening)
- PrivateTemp, ProtectSystem=strict, keine Capabilities
- Keine Messaging-Plattformen (Telegram/Discord/Slack deaktiviert)
- API-Key geschützt in .env (chmod 600)
- Ollama Cloud Auth via SSH-Key (~hermes/.ollama/id_ed25519, Kopie von ollama user)
Ollama Cloud-Modelle
Authentifiziert via SSH-Key (~ollama/.ollama/id_ed25519).
Modelle werden per ollama pull <name>:cloud bezogen.
Hermes Agent (Server)
Läuft als systemd-Service auf dem hermes User. Vollständig isoliert, kein sudo.
- Pfad: /home/hermes/hermes-agent (git clone)
- Config: /home/hermes/.hermes/config.yaml + .env
- Service:
systemctl start/stop/restart hermes-gateway - Gateway-Log: journalctl -u hermes-gateway -f
- Agent-Log: /home/hermes/.hermes/logs/agent.log
Hermes warten
# Service steuern
ssh root@185.162.249.159 systemctl stop hermes-gateway # Stoppen
ssh root@185.162.249.159 systemctl start hermes-gateway # Starten
ssh root@185.162.249.159 systemctl status hermes-gateway # Status
# Update via pip
ssh root@185.162.249.159 'su - hermes -c "/home/hermes/venv/bin/pip install --upgrade -e /home/hermes/hermes-agent"'
# Config editieren
ssh hermes@185.162.249.159 'nano /home/hermes/.hermes/.env'
ssh hermes@185.162.249.159 '/home/hermes/venv/bin/hermes config edit'
Sicherheitskonzept
- Hermes hat nur einen SSH-Key (dein Laptop-Key)
- Kein sudo-Zugriff (via sudoers blockiert)
- Keine outbound-Ports zu anderen Diensten (systemd hardening)
- PrivateTemp, ProtectSystem=strict, keine Capabilities
- Keine Messaging-Plattformen (Telegram/Discord/Slack deaktiviert)
- API-Key geschützt in .env (chmod 600)
- Ollama Cloud Auth via SSH-Key (~hermes/.ollama/id_ed25519, Kopie von ollama user)
Server-User
- stephan, steffen (Passwort-Login)
- git (Gitea system user)
- ollama (Ollama system user)
- hermes (Hermes Agent SSH sandbox, Workspace: /home/hermes/workspace)