c7cb02cf2dd2213a539934e240520e46c6ae34a0
Facebook Post Tracker
Eine Chrome/Firefox-Extension mit Docker-Backend zum Verwalten und Abhaken von Facebook-Beiträgen über mehrere Browser-Profile hinweg.
Features
- ✅ Browser-Extension: Fügt jedem Facebook-Beitrag Tracking-Funktionalität hinzu
- 📊 Multi-Profile-Support: Verwalte 5 verschiedene Browser-Profile
- 🌐 Web-Interface: Übersicht über alle zu bearbeitenden Beiträge
- 🔄 Auto-Check: Beiträge werden automatisch beim Öffnen abgehakt
- 🐳 Docker-Setup: Einfaches Backend-Deployment
Systemarchitektur
┌─────────────────┐
│ Browser │
│ Extension │◄─────┐
└────────┬────────┘ │
│ │
▼ │
┌─────────────────┐ │
│ Docker Backend │ │
│ (Node.js API) │ │
│ + SQLite DB │ │
└────────┬────────┘ │
│ │
▼ │
┌─────────────────┐ │
│ Web Interface │──────┘
└─────────────────┘
Installation
1. Backend starten (Docker)
# In das Projektverzeichnis wechseln
cd /mnt/c/fb
# Docker Container bauen und starten
docker-compose up -d
# Logs ansehen (optional)
docker-compose logs -f
Das Backend läuft nun auf http://localhost:3000
Das Web-Interface ist erreichbar unter http://localhost:8080
2. Browser-Extension installieren
Chrome:
- Öffne
chrome://extensions/ - Aktiviere "Entwicklermodus" (oben rechts)
- Klicke auf "Entpackte Erweiterung laden"
- Wähle den Ordner
/mnt/c/fb/extension
Firefox:
- Öffne
about:debugging#/runtime/this-firefox - Klicke auf "Temporäres Add-on laden"
- Wähle die Datei
/mnt/c/fb/extension/manifest.json
3. Extension konfigurieren
- Klicke auf das Extension-Icon 📋 in der Browser-Toolbar
- Wähle dein aktuelles Profil (1-5) aus
- Klicke auf "Speichern"
Nutzung
In der Browser-Extension (auf Facebook):
-
Beitrag hinzufügen: Bei jedem Facebook-Beitrag erscheint automatisch ein Tracking-UI
- Gib die Anzahl ein (1-5), wie viele Profile den Beitrag abhaken sollen
- Klicke auf "Hinzufügen"
- Der Beitrag wird automatisch für das aktuelle Profil abgehakt
-
Beitrag abhaken: Bei bereits getrackten Beiträgen
- Siehst du den Status:
X/Y Profile ✓/✗ - Klicke auf "Abhaken", wenn noch nicht für dein Profil erledigt
- Siehst du den Status:
Im Web-Interface:
- Öffne
http://localhost:8080 - Wähle dein aktuelles Profil aus
- Offene Beiträge: Zeigt alle Beiträge, die noch nicht von allen Profilen abgehakt wurden
- Alle Beiträge: Zeigt alle erfassten Beiträge
- Klicke auf "Beitrag öffnen & abhaken", um:
- Den Beitrag in neuem Tab zu öffnen
- Automatisch für dein Profil abzuhaken
API-Endpunkte
Das Backend stellt folgende REST-API bereit:
GET /api/posts- Alle Beiträge abrufenGET /api/posts/by-url?url=...- Beitrag über URL abrufenPOST /api/posts- Neuen Beitrag erstellenPOST /api/posts/:id/check- Beitrag für Profil abhakenPOST /api/check-by-url- Beitrag über URL abhakenDELETE /api/posts/:id- Beitrag löschen
Datenbankstruktur
posts:
- id (TEXT, PRIMARY KEY)
- url (TEXT, UNIQUE)
- title (TEXT)
- target_count (INTEGER)
- created_at (DATETIME)
checks:
- id (INTEGER, PRIMARY KEY)
- post_id (TEXT, FOREIGN KEY)
- profile_number (INTEGER)
- checked_at (DATETIME)
- UNIQUE(post_id, profile_number)
Docker-Befehle
# Container starten
docker-compose up -d
# Container stoppen
docker-compose down
# Logs ansehen
docker-compose logs -f
# Container neu bauen
docker-compose build
# Datenbank zurücksetzen (ACHTUNG: Löscht alle Daten!)
docker-compose down -v
Entwicklung
Backend lokal entwickeln (ohne Docker):
cd backend
npm install
npm run dev
Extension während Entwicklung neu laden:
- Chrome: Gehe zu
chrome://extensions/und klicke auf das Reload-Symbol - Firefox: Gehe zu
about:debuggingund klicke auf "Neu laden"
Troubleshooting
Backend nicht erreichbar
- Prüfe, ob Docker läuft:
docker ps - Prüfe die Logs:
docker-compose logs backend - Stelle sicher, dass Port 3000 nicht bereits belegt ist
Extension funktioniert nicht
- Öffne die Browser-Konsole (F12) und prüfe auf Fehler
- Stelle sicher, dass das Backend läuft
- Lade die Extension neu
- Prüfe, ob du auf Facebook.com bist
CORS-Fehler
- Das Backend hat CORS aktiviert
- Stelle sicher, dass du
http://localhost:3000verwendest (nicht127.0.0.1)
Icons fehlen in Extension
- Die Extension verwendet Emoji-Icons als Fallback
- Für richtige Icons kannst du PNG-Dateien in den Größen 16x16, 48x48, 128x128 erstellen und in
extension/icons/ablegen
Technologie-Stack
- Backend: Node.js, Express, SQLite (better-sqlite3)
- Web-Interface: Vanilla JavaScript, HTML, CSS
- Extension: Manifest V3 (Chrome & Firefox kompatibel)
- Deployment: Docker, docker-compose
Lizenz
MIT
Description
v0.9
Latest
Languages
JavaScript
80.9%
HTML
9.5%
CSS
9.4%
Dockerfile
0.2%