d4rkbot: API v1 mit Key-System, Env-Diät, Rebranding

- API-Keys (SHA-256-Hash, Scopes, last_used) — Verwaltung auf der Setup-Seite,
  Klartext-Key wird genau einmal angezeigt
- /api/v1: message, dm, roles (add/remove), member/:id, stats — Bearer-Auth
  mit Scope-Prüfung, Embed-Sanitizing, README-Doku mit Python-Beispiel
- Env-Diät: PUBLIC_URL + GITEA_URL jetzt Settings (Env nur Fallback),
  OAuth-Redirect dynamisch; Env enthält nur noch Secrets/Bootstrap
- Rebranding ecobot → d4rkbot (Packages, Container, Cookies, README);
  Volume-Name bleibt ecobot_data (Datenerhalt), Portainer-Stack-Name bleibt

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-23 11:56:48 +02:00
co-authored by Claude Opus 4.8
parent eb51be4ebc
commit 143288affa
19 changed files with 468 additions and 37 deletions
+8 -5
View File
@@ -1,9 +1,11 @@
# EcoBot Stack — deploybar über Portainer (Stacks → Add stack)
# d4rkbot Stack — deploybar über Portainer (Stacks → Add stack)
# WICHTIG: Portainer-Stack-Name "ecobot" NICHT ändern — er ist Teil des
# Volume-Namens (ecobot_ecobot_data); ein neuer Stack-Name = leeres Volume!
services:
ecobot:
d4rkbot:
build: .
image: ecobot:latest
container_name: ecobot
image: d4rkbot:latest
container_name: d4rkbot
restart: unless-stopped
# Werte kommen per Interpolation: lokal aus der .env im Projektordner (liest
# docker compose automatisch), in Portainer aus den Stack-Environment-Variables
@@ -29,7 +31,8 @@ services:
ports:
- "3080:3080"
volumes:
# SQLite & Co. überleben Container-Neustarts
# SQLite & Devlog-Bilder überleben Container-Neustarts.
# Volume-Name bleibt aus historischen Gründen "ecobot_data" (Daten!)
- ecobot_data:/app/data
volumes: