Dokumentation
Votepit läuft auf klassischem PHP/MySQL-Shared-Hosting, kein Docker nötig — wer lieber einen Container fährt, kann alternativ das Docker-Paket nutzen. So bekommst du es installiert und konfiguriert.
Voraussetzungen
PHP 8.2 oder neuer mit pdo_mysql, mbstring und intl. Eine MySQL- oder MariaDB-Datenbank. FTPES-Zugang (SSH optional). Idealerweise zeigt dein Webroot auf den Ordner public/; bei Hostern, wo das nicht einstellbar ist, schützt die mitgelieferte .htaccess alles außerhalb von public/ — es funktioniert also so oder so.
Installation — lokal bauen, per FTP hochladen
Repo klonen und composer install --no-dev --optimize-autoloader auf deinem eigenen Rechner ausführen (vendor/ ist nicht eingecheckt, das passiert also lokal, nicht auf dem Server). config/config.example.php nach config/config.php kopieren und Datenbank, SMTP, app_url, admin_emails sowie einen generierten app_key eintragen. Den fertigen Ordner per FTPES hochladen und den Webroot auf public/ setzen (sonst schützt die mitgelieferte .htaccess den Rest). Es gibt keinen Web-Installer — die Konfiguration ist eine Datei, die du von Hand bearbeitest.
Datenbankschema
db/schema.sql ist nur eine Ausgangs-Baseline — führe php bin/migrate.php aus (per SSH oder als einmaliger PHP-CLI-Cronjob bei Hostern ohne Shell), um sie plus alle seitherigen Schema-Updates anzuwenden, sowohl bei der Erstinstallation als auch bei jedem späteren Update. Das ist der eine notwendige Schritt, keine optionale Ergänzung für spätere Releases.
Konfiguration
Secrets liegen in config/config.php (Datenbank, SMTP für Magic-Link-Mails, app_key) und werden nie eingecheckt. Du kopierst die Beispieldatei und trägst die Werte von Hand ein — es gibt keinen Wizard, der die Datei für dich schreibt.
Boards & Branding
Eine Installation bedient mehrere Boards, adressiert über einen Slug im Pfad (/{board}/…). Jedes Board hat eigenen Namen, Akzentfarbe und Intro, verwaltet im Admin-Bereich.
Agent-API, MCP & CLI
Eine token-gesicherte REST-API (/api/v1/*) und ein MCP-Server (JSON-RPC über HTTP) ermöglichen es einem KI-Agenten, Ideen auf einem Board zu lesen und anzulegen. @votepit/cli verpackt dieselbe API in ein CLI-Tool ohne Abhängigkeiten — installierbar per npm i -g @votepit/cli, ganz ohne MCP-Umweg.
Webhooks
Pro Board lässt sich ein Ziel-Endpoint eintragen, der bei neuen Ideen oder Statuswechseln eine HMAC-signierte HTTP-Anfrage bekommt — für eigene Slack-, Discord- oder CI-Benachrichtigungen. Die Ziel-URL wird bei jeder Zustellung erneut geprüft (SSRF-Schutz), interne Adressen sind ausgeschlossen.
Docker (Alternative)
Wer lieber einen Container fährt statt per FTPES hochzuladen: git clone, .env aus .env.example befüllen, docker compose up -d. Läuft dieselbe Anwendung wie der Shared-Hosting-Weg, inklusive automatischer Migrationen beim Start — kein Ersatz für den Standardweg, sondern eine gleichwertige zweite Option.
Aktualisieren
Sichere Datenbank und config/config.php, lade das neue Release über die alten Dateien (config/ behalten), und führe php bin/migrate.php aus, falls eine Migration nötig ist.
Komplette Referenz — Architektur, Konfiguration, REST-API, MCP-Server, Betrieb, Troubleshooting.