Octibiz
Demo

Durchsucht Website und Dokumentation gemeinsam. Enter zeigt alle Treffer, Esc schließt.

Systemvoraussetzungen

Was der Server mitbringen muss, bevor Sie mit der Installation beginnen.

Prüfen Sie diese Liste vorher. Der Assistent prüft das Meiste selbst, aber ein Server ohne die nötigen Erweiterungen kommt nicht über Schritt 1 hinaus — und dann stehen Sie mit einem hochgeladenen Paket da und müssen beim Hoster nachfragen.

Der schnelle Test

Diese drei Befehle beantworten die wichtigsten Fragen:

php -v | head -1
php -m | grep -xE 'ctype|iconv|json|sodium|pdo_mysql|openssl|mbstring|redis|intl' | sort | tr '\n' ' '
php -r 'echo function_exists("proc_open") ? "proc_open ok" : "proc_open GESPERRT";'

Die zweite Zeile muss neun Namen ausgeben. Kommen weniger, fehlt die Differenz.

PHP

Mindestens 8.4. Eine Obergrenze ist nicht festgelegt; getestet wird gegen 8.4.

Erweiterungen — Pflicht

Alle neun werden vom Assistenten geprüft und blockieren die Installation, wenn sie fehlen.

ErweiterungWofür
ctypeZeichentyp-Funktionen
iconvZeichensatz-Umwandlung
jsonJSON
sodiumVerschlüsselung der Zugangsdaten zu angebundenen Systemen
pdo_mysqlDatenbanktreiber
opensslJWT-Schlüssel und Verschlüsselung
mbstringMehrbyte-Zeichenketten
redisZwischenspeicher und Warteschlangen im Echtbetrieb
intlDatums-, Zeit- und Zahlenformate je Sprache

Zwei davon prüft setup.sh nicht: redis und intl. Das Skript läuft grün durch, der Assistent blockt dann rot. Prüfen Sie beide vorher selbst.

intl ist dabei kein Komfort: Jede Geld-, Datums- und Zeitausgabe außerhalb von Deutsch läuft darüber, ohne Rückfall. Fehlt die Erweiterung, installiert der Server sauber und scheitert bei der ersten fremdsprachigen Ausgabe.

Erweiterungen — empfohlen

Diese blockieren nicht, schränken aber ein:

ErweiterungOhne sie
curlKeine Anbindung externer Dienste und keine KI
gdKeine Vorschaubilder und Avatare. Für den Baukasten zusätzlich mit WebP-Unterstützung
zipKein Export und Import über ZIP-Archive

Weitere PHP-Anforderungen

  • proc_open() darf nicht gesperrt sein. Der Assistent führt jeden Einrichtungsschritt als

eigenen Prozess aus. Steht die Funktion in disable_functions, geht gar nichts.

  • Eine auffindbare PHP-Kommandozeile ab 8.4. Der Assistent sucht selbst; findet er nichts,

fragt er nach dem Pfad.

  • post_max_size und upload_max_filesize mindestens 36 MB, passend zur Grenze im Webserver.

Datenbank

MariaDB oder MySQL. PostgreSQL wird nicht unterstützt.

SystemMindestensFreigegebene Linien
MariaDB10.11 (LTS)10.11 · 11.4 · 11.8
MySQL8.08.0 · 8.4

Ältere Stände installieren mit einer Warnung, die Version ist bewusst kein Blocker. Für den Echtbetrieb gilt trotzdem: ein Stand ohne Sicherheitsupdates gehört nicht auf einen Server mit Geschäftsdaten.

Weiter brauchen Sie:

  • Eine leere Datenbank in utf8mb4.
  • Einen Benutzer mit vollen Rechten darauf, inklusive CREATE, ALTER und INDEX. Ohne diese

drei brechen die Migrationen ab.

  • Soll der Assistent die Datenbank selbst anlegen, braucht der Benutzer zusätzlich das Recht dazu.

Webserver

nginx oder Apache. Der Document-Root zeigt auf public/, nicht auf das Projektverzeichnis. Fertige Vorlagen liegen im Paket unter deploy/.

Was die Konfiguration können muss:

  • Eine eigene Regel für /install/ mit Vorrang vor der allgemeinen PHP-Sperre. Fehlt sie,

liefert der Server den Quelltext des Installers aus, statt ihn auszuführen.

  • Hochladegrenze mindestens 36 MB. Dateien werden als Base64 in JSON übertragen, das kostet ein

Drittel Aufschlag auf die 25 MB Nutzlast.

  • Bei Apache: FollowSymLinks sowie mod_rewrite, mod_headers und mod_deflate.
  • HTTPS mit gültigem Zertifikat. Die Anmeldung arbeitet mit sicheren Cookies; über HTTP

funktioniert sie nicht.

Dienste

Pflicht

DienstWozuOhne ihn
Hintergrund-WorkerMail, Benachrichtigungen, WebhooksNichts davon wird zugestellt
Zeitplan-VerbraucherAlle zeitgesteuerten AbläufeKein Termin läuft. Genau eine Instanz je Umgebung, sonst feuert alles doppelt
Cron oder systemdStartet beidesSiehe oben
ChromiumBeleg-PDFsEs entsteht kein Beleg. Das ist die Kern-Engine, kein Nebenweg
MailversandZustellungKeine Benachrichtigung erreicht ihren Empfänger

Chromium wird leicht übersehen. Es steht weder in der Prüfung von setup.sh noch in der Voraussetzungsliste des Assistenten. Wer nur die dortige Liste abarbeitet, richtet ein System ein, das keine einzige Rechnung als PDF erzeugen kann.

Gebraucht wird chromium, chromium-browser, google-chrome oder google-chrome-stable im Suchpfad. Liegt es woanders, tragen Sie den Pfad in die Konfiguration ein. Prüfen mit: php bin/console app:pdf:check

Optional

DienstWenn er fehlt
Redis-ServerDie Datenbank übernimmt Zwischenspeicher und Warteschlangen. Die PHP-Erweiterung redis ist trotzdem Pflicht
MercureKein Zeichen-für-Zeichen-Streaming der KI-Antworten. Antworten kommen am Stück, Voreinstellung ist ohnehin aus
Collab-DienstKein gleichzeitiges Bearbeiten. Das reguläre Speichern läuft weiter. Braucht Node ab 22
OCR-WerkzeugeDie Volltextsuche in Dokumenten findet nur Dateinamen. Das Modul ist voreingestellt aus

Zusätzlich für den Ein-Datei-Weg

Wer über install.php installiert, statt das Paket selbst hochzuladen, braucht drei Dinge mehr. Die Datei prüft sie beim Aufruf und nennt jedes fehlende einzeln.

WasWofürOhne es
phar und zlibDas heruntergeladene Archiv auspackenDie Datei kann nicht entpacken und sagt das
Ausgehende HTTPS-VerbindungDas Paket vom Update-Server holenEs bleibt nur der Weg mit selbst hochgeladenem Paket
Rund 1,1 GB freier PlattenplatzArchiv, entpacktes Archiv und Dateien liegen kurz gleichzeitigDas Auspacken bricht ab

phar und zlib sind bei praktisch jedem Anbieter an. Die ausgehende Verbindung ist der Punkt, der in abgeschotteten Umgebungen scheitert.

Der Ein-Datei-Weg selbst läuft auf jeder PHP-Version. Das ist Absicht: Nur so kann er melden, dass die Version zu alt für Octibiz ist, statt mit einer leeren Fehlerseite zu enden.

Zugang und Werkzeuge

  • SSH-Zugang für setup.sh. Bei reinem Web-Hosting genügen Datei-Upload und ein einmaliger

Skriptaufruf über das Panel.

  • flock für die Überlappungssperre der Worker-Aufrufe im Cron.
  • Composer und Node werden auf dem Zielserver nicht gebraucht — solange Sie das vorgebaute

Paket verwenden und keine Plugins nachinstallieren. Sobald ein Plugin die Oberfläche neu bauen lässt, braucht die Instanz Node und die Frontend-Abhängigkeiten.

Arbeitsspeicher und Plattenplatz

Dafür gibt es keine belastbare Zahl, und wir nennen hier keine, die wir nicht belegen können. Zwei Anhaltspunkte:

  • Jeder Hintergrund-Worker läuft mit einer Grenze von 256 MB und startet bei Überschreitung neu.

Voreingestellt sind zwei Worker.

  • Beim Aktualisieren der Oberfläche liegt sie kurzzeitig doppelt auf der Platte. Halten Sie

entsprechend Platz vor.

Was der Assistent selbst prüft

Damit Sie wissen, worauf Sie sich nicht verlassen können:

Wird geprüftWird nicht geprüft
PHP-Version, alle neun Erweiterungenmemory_limit, max_execution_time, Hochladegrenzen
proc_open(), PHP-KommandozeileFreier Plattenplatz
Schreibrechte auf vier VerzeichnisseHTTPS, Webserver-Typ, Rewrite-Regeln
Datenbank-Verbindung und -VersionDatenbank-Rechte (CREATE, ALTER, INDEX)
Vorhandensein der gebauten OberflächeChromium

Die vier Verzeichnisse mit Schreibrechten sind: das Projektverzeichnis selbst, var, config/jwt und public/uploads.

Weiter

admin.requirements · Gilt ab Version 0.5.7