Zum Inhalt springen

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.