Features documented: - Quick start guide with Docker - Complete feature list with emojis - Step-by-step usage instructions - Command reference table - Environment variables configuration - Remove.bg API setup - Docker management commands - Troubleshooting section - System requirements - Security notes - CI/CD information - Project structure overview - Support information
🎨 Telegram Sticker Bot Manager
Ein Telegram Bot zum Verwalten und Organisieren von Sticker-Paketen. Erstellt mit Python und der python-telegram-bot Bibliothek.
✨ Features
- 🆕 Neue Stickerpakete erstellen - Einfacher 4-Schritte-Assistent
- 📥 Existierende Pakete importieren - Bereits vorhandene Pakete hinzufügen
- ➕ Sticker hinzufügen - Unterstützt Bilder (PNG, JPG, WebP) und GIFs
- 🎨 Automatische Bildoptimierung - Konvertiert zu 512px WebP mit Transparenz
- 🎬 GIF zu Video-Sticker - Automatische Konvertierung zu WebM (VP9)
- ✨ Hintergrundentfernung - Optional mit lokalen oder API-basierten Tools
- 🏷 Emoji verwalten - Emojis von Stickern ändern
- ✏️ Pakete umbenennen - Titel einfach ändern
- 🗑 Sticker/Pakete löschen - Mit Bestätigungsdialog
- 💎 Premium-Status - Erkennt Telegram Premium Nutzer
🚀 Schnellstart
Voraussetzungen
- Docker und Docker Compose
- Einen Telegram Bot Token (von @BotFather)
- Deine Telegram User ID
Installation
- Repository klonen:
git clone http://192.168.88.201:3000/sarah/stickerbot.git
cd stickerbot
- Umgebungsvariablen konfigurieren:
cp .env.example .env
.envDatei bearbeiten:
# Required
BOT_TOKEN=dein_bot_token_hier
OWNER_ID=deine_telegram_user_id
# Optional: Für Hintergrundentfernung über API (50 Aufrufe/Monat kostenlos)
REMOVE_BG_API_KEY=dein_remove_bg_api_key
- Docker Container starten:
sudo docker-compose up -d --build
- Überprüfen, ob der Bot läuft:
sudo docker-compose logs -f
📖 Verwendung
Bot starten
Schreibe dem Bot in Telegram:
/start
Das Hauptmenü erscheint mit folgenden Optionen:
- ➕ Neues Stickerpaket - Erstellt ein neues Paket
- 📥 Existierendes hinzufügen - Fügt bereits existierende Pakete hinzu
- 📦 Meine Stickerpakete - Zeigt alle deine Pakete an
- ❓ Hilfe - Zeigt Hilfeinformationen
Stickerpaket erstellen
- Auf "➕ Neues Stickerpaket" klicken
- Kurzen Namen eingeben (z.B.
meine_sticker) - Titel eingeben (z.B. "Meine coolen Sticker")
- Emoji eingeben (z.B. 😎)
- Bild senden (PNG, JPG oder GIF)
- Optional: Hintergrund entfernen auswählen
Existierendes Paket hinzufügen
- Auf "📥 Existierendes hinzufügen" klicken
- Den Namen des Pakets eingeben (z.B.
meine_alten_sticker) - Der Bot fügt es automatisch zu deiner Liste hinzu
Sticker zu Paket hinzufügen
- Auf "📦 Meine Stickerpakete" klicken
- Das gewünschte Paket auswählen
- Auf "➕ Sticker hinzufügen" klicken
- Bild oder GIF senden
- Emoji eingeben
Bilder: Werden automatisch zu 512px WebP konvertiert
GIFs: Werden zu animierten Video-Stickern (max. 3 Sekunden)
Hintergrundentfernung
Wenn du ein Bild sendest, fragt der Bot:
- 🤖 Lokal entfernen - Kostenlos, läuft auf dem Server (etwas langsamer)
- ☁️ Remove.bg API - Schneller, 50 Aufrufe/Monat kostenlos (falls API-Key gesetzt)
- ⏭️ Ohne Entfernung - Bild wird so verwendet
Sticker löschen
- Den Sticker an den Bot weiterleiten
- Bot zeigt Optionen zum Löschen
Paket löschen
- "📦 Meine Stickerpakete" wählen
- Paket auswählen
- "🗑 Paket löschen" wählen
- Bestätigen
⚠️ Achtung: Das Löschen kann nicht rückgängig gemacht werden!
🛠️ Befehle
| Befehl | Beschreibung |
|---|---|
/start |
Bot starten und Hauptmenü anzeigen |
/hilfe |
Detaillierte Hilfe anzeigen |
/cancel |
Aktuelle Aktion abbrechen |
⚙️ Konfiguration
Umgebungsvariablen
| Variable | Beschreibung | Optional |
|---|---|---|
BOT_TOKEN |
Telegram Bot Token von @BotFather | Nein |
OWNER_ID |
Deine Telegram User ID | Nein |
REMOVE_BG_API_KEY |
API Key für remove.bg | Ja |
DATABASE_PATH |
Pfad zur SQLite DB (Standard: sticker_bot.db) |
Ja |
PREMIUM_CHECK_INTERVAL |
Interval für Premium-Check in Stunden (Standard: 24) | Ja |
Remove.bg API Key (Optional)
Um die Hintergrundentfernung über API zu nutzen:
- Bei remove.bg registrieren
- API Key generieren
- In
.envDatei eintragen:REMOVE_BG_API_KEY=dein_key
Hinweis: 50 Aufrufe pro Monat sind kostenlos.
🐳 Docker Verwaltung
Container starten
sudo docker-compose up -d
Container stoppen
sudo docker-compose down
Logs anzeigen
sudo docker-compose logs -f
Neu bauen (nach Änderungen)
sudo docker-compose up -d --build --force-recreate
Container-Status prüfen
sudo docker ps | grep stickerbot
📁 Projektstruktur
stickerbot/
├── bot.py # Hauptbot mit allen Handlern
├── sticker_manager.py # Sticker-Verwaltungsfunktionen
├── image_processor.py # Bildverarbeitung (WebP, Resize)
├── gif_processor.py # GIF zu WebM Konvertierung
├── background_remover.py # Hintergrundentfernung
├── database.py # SQLite Datenbank
├── config.py # Konfigurationsmanagement
├── Dockerfile # Docker Konfiguration
├── docker-compose.yml # Docker Compose Setup
├── requirements.txt # Python Dependencies
├── .env.example # Beispiel-Umgebungsvariablen
└── data/ # Persistente Daten
🔄 Automatische Builds (CI/CD)
Das Projekt enthält Gitea Actions Workflows für automatische Docker-Builds:
Auto-Build (bei jedem Push)
- Trigger: Push auf
mainodermasterBranch - Ergebnis: Docker Image wird gebaut und in die Registry gepusht
- Tags:
latestundv{nummer}-autobuild
Manueller Build
- Trigger: Manuell über Gitea Web-Interface
- Optionen:
- Benutzerdefinierte Version (z.B.
1.0.0) - Zusätzliche Tags (z.B.
stable,production) latestTag optional
- Benutzerdefinierte Version (z.B.
Registry
Standardmäßig wird das Image zu 192.168.88.201:5000 gepusht.
🐛 Fehlerbehebung
Bot reagiert nicht
# Prüfen ob Container läuft
sudo docker ps | grep stickerbot
# Logs anzeigen
sudo docker-compose logs -f
Build fehlschlägt
# Mit force-recreate neu bauen
sudo docker-compose up -d --build --force-recreate
Datenbank zurücksetzen
# ACHTUNG: Löscht alle Daten!
rm data/sticker_bot.db
sudo docker-compose restart
Hintergrundentfernung langsam
Beim ersten Start lädt rembg das ML-Modell (~180MB). Dies dauert einmalig etwas länger.
📋 Systemanforderungen
- RAM: Mindestens 512MB (für rembg Modell empfohlen: 1GB+)
- Speicherplatz: ~500MB für Container + Datenbank
- Netzwerk: Internetverbindung für Telegram API
- Betriebssystem: Linux mit Docker Unterstützung
📝 Technische Details
- Python: 3.11
- Basis-Image: python:3.11-slim (Debian)
- Bot API: python-telegram-bot 22.7
- Datenbank: SQLite
- Bildverarbeitung: Pillow, rembg, FFmpeg
🔒 Sicherheit
- Der Bot ist nur für den
OWNER_IDzugänglich - Keine Gruppen-Unterstützung (nur private Chats)
- API-Keys werden in Umgebungsvariablen gespeichert
- Docker Container läuft als non-root User
📄 Lizenz
Dieses Projekt ist für private Nutzung bestimmt.
🤝 Support
Bei Fragen oder Problemen:
/hilfein Telegram eingeben- Die
OPENCODE.mdkonsultieren (technische Dokumentation) - Logs überprüfen:
sudo docker-compose logs -f
Viel Spaß mit deinem Sticker Bot! 🎨✨