Octibiz
Demo

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

Installation

Es gibt zwei Wege. Beide enden am selben Assistenten.

Der einfache Weg braucht nur einen FTP-Zugang und keine Kommandozeile. Er steht direkt hier unten. Wer SSH hat und lieber selbst entpackt, findet den zweiten Weg weiter unten.

Rechnen Sie mit 20 bis 30 Minuten, wenn der Server die Voraussetzungen erfüllt.

Die vollständige Liste der Voraussetzungen steht auf einer eigenen Seite: Systemvoraussetzungen. Prüfen Sie sie vorher — beide Wege prüfen zwar selbst, aber ein Server ohne die nötigen Erweiterungen kommt nicht weit.


Der einfache Weg: eine Datei

install.php hochladen  →  im Browser öffnen  →  fünf Fragen  →  fertig

1. Datei holen

<https://updates.octibiz.com/install.php>

Der Browser lädt sie herunter, statt sie anzuzeigen. Es ist eine einzelne Datei, etwa 27 KB groß.

2. Per FTP hochladen

Legen Sie sie in das Verzeichnis, in dem Octibiz laufen soll. Bei den meisten Anbietern ist das httpdocs, html oder public_html.

3. Im Browser öffnen

https://ihre-domain.de/install.php

Die Seite prüft den Server und nennt jede fehlende Voraussetzung einzeln.

Der Bootstrap-Installer nach dem Aufruf: alle Voraussetzungen erfüllt

Fehlt etwas, steht es rot da — mit dem, was im Hosting-Panel zu tun ist. Das häufigste Bild:

Der Installer meldet eine zu alte PHP-Version

4. Auf „Installation starten" klicken

Ab hier läuft alles von selbst: Version ermitteln, Paket herunterladen, Prüfsumme kontrollieren, entpacken, Dateien einsetzen, Assistenten vorbereiten.

Der Bootstrap lädt das Paket in Häppchen

Das Paket ist rund 90 MB groß und wird in Häppchen geladen. Bricht die Verbindung ab, setzt der nächste Versuch dort fort, statt von vorne zu beginnen.

Am Ende leitet die Seite auf den Assistenten weiter — ohne dass Sie einen Schlüssel eingeben müssen. Die Datei erzeugt ihn selbst und hängt ihn an die Adresse. Danach löscht sie sich.

Weiter unten bei Der Assistent.

Zeigt Ihre Domain auf das Projektverzeichnis statt auf public/? Dann legt install.php eine Weiterleitung an, damit es trotzdem läuft. Sauberer ist es, die Domain im Hosting-Panel auf den Unterordner public/ zeigen zu lassen — die Weiterleitung ist nur der Rückfall.


Der Weg mit SSH

Wenn Sie ohnehin eine Shell haben, ist das der direktere Weg.

Was Sie vorbereitet haben sollten

  • Eine leere Datenbank und einen Datenbank-Benutzer mit vollen Rechten darauf, inklusive

CREATE, ALTER und INDEX. Alternativ ein Benutzer, der die Datenbank selbst anlegen darf.

  • Die öffentliche Adresse, unter der das System erreichbar sein wird, inklusive https://.
  • Den Webserver so eingerichtet, dass die Domain auf den Unterordner public/ zeigt.
  • SSH-Zugang für setup.sh. Bei reinem Web-Hosting genügen Datei-Upload und ein einmaliger

Skriptaufruf.


Paket hochladen und entpacken

Octibiz wird als vorgebautes Paket ausgeliefert. PHP-Bibliotheken und die fertige Oberfläche sind enthalten.

tar -xzf octibiz-1.0.0.tar.gz
cd octibiz

Der Document-Root der Domain zeigt auf public/, nicht auf das Projektverzeichnis. Fertige Vorlagen liegen bei: deploy/nginx.vhost.conf und deploy/apache.vhost.conf.

Für nginx wichtig: Der Installer liegt unter public/install/ und braucht eine eigene Location mit Vorrang vor der allgemeinen PHP-Sperre. Fehlt sie, liefert der Server den Quelltext der Datei aus, statt sie auszuführen. Die mitgelieferte Vorlage hat den Block bereits.

setup.sh ausführen

./setup.sh

Das Skript prüft die Voraussetzungen, setzt die Schreibrechte und gibt am Ende einen Link mit Sicherheits-Token aus:

https://os.example.de/install/?token=ab12cd34…

Auf einem eigenen Server können Sie die Hintergrunddienste gleich mit einrichten lassen:

sudo ./setup.sh --root

Achtung, bekannte Lücke: setup.sh prüft derzeit sieben PHP-Erweiterungen, der Assistent verlangt aber neun. Fehlen redis oder intl, läuft setup.sh grün durch und Sie werden erst im Browser rot geblockt. Prüfen Sie beide Erweiterungen vorher selbst: php -m | grep -E '^(redis|intl)$'

Der Token ist Pflicht

Ohne gültiges Token antwortet der Installer mit 403. Das ist Absicht: Ein offener Installer auf einem erreichbaren Server ist eine Übernahme-Möglichkeit.

Beim einfachen Weg oben bekommen Sie davon nichts mit — install.php erzeugt den Token selbst.

Der Installer verweigert den Zugriff ohne Token

Haben Sie den Link verloren, lesen Sie das Token auf dem Server aus und hängen es selbst an:

cat var/install.token

Der Assistent

Hier treffen sich beide Wege. Fünf Schritte, oben ist immer sichtbar, welcher gerade dran ist.

1 — Systemvoraussetzungen

Der Assistent prüft die Umgebung und nennt jede fehlende Voraussetzung einzeln, statt allgemein zu scheitern. Rote Punkte müssen behoben werden, gelbe sind Empfehlungen.

Schritt 1 des Assistenten: die Systemprüfung mit allen geprüften Punkten

Geprüft werden PHP ab 8.4, neun Pflicht-Erweiterungen, drei empfohlene, die Verfügbarkeit von proc_open(), eine auffindbare PHP-Kommandozeile ab 8.4 sowie Schreibrechte auf Projektverzeichnis, var, config/jwt und public/uploads.

Beheben Sie Fehlendes und klicken Sie Erneut prüfen — die Prüfung läuft neu, ohne dass Sie von vorne anfangen müssen.

2 — Datenbank und Adresse

Schritt 2: Datenbank-Zugang und öffentliche Adresse

FeldWas hinein gehört
Öffentliche Adresse (URL)Inklusive https://. Aus diesem Wert leiten sich später alle erzeugten Links ab
Datenbank-Host, PortBei den meisten Hostern 127.0.0.1 bzw. localhost und 3306
DatenbanknameDie leere Datenbank
Datenbank-Benutzer, PasswortDer Benutzer mit vollen Rechten auf dieser Datenbank
Datenbank anlegenAnkreuzen, wenn die Datenbank noch nicht existiert und der Benutzer sie anlegen darf

Verbindung testen & weiter prüft den Zugang sofort. Erst wenn er steht, geht es weiter.

Die Zeile PHP-CLI erkannt zeigt, welche Kommandozeile gefunden wurde. Findet der Assistent keine, erscheint stattdessen ein Eingabefeld — tragen Sie dort den vollen Pfad ein, etwa /usr/bin/php8.4.

3 — Dienste

Schritt 3: Redis und Mailversand

Redis und Mailversand. Die Vorgaben können Sie übernehmen; ohne Redis übernimmt die Datenbank die Warteschlangen.

Diese Werte werden nicht geprüft. Sie landen unverändert in der Konfiguration. Ein Tippfehler im Mail-Zugang fällt erst auf, wenn die erste Mail nicht ankommt.

Hier erscheint auch eine Warnung, wenn Ihre Datenbank-Version unterhalb der freigegebenen Linien liegt — wie im Bild. Die Installation läuft trotzdem weiter, die Version ist bewusst kein Blocker. Aber ein Stand ohne Sicherheitsupdates gehört nicht in den Echtbetrieb.

4 — Administrator

Schritt 4: das erste Benutzerkonto

Ihr erstes Konto. Das Passwort muss mindestens 12 Zeichen haben und zweimal übereinstimmen.

Das Konto bekommt die Systemrollen für Anmeldung, Verwaltung und API und, sofern vorhanden, die Rolle GF/Admin.

Beispieldaten sind optional. Sie sind für eine Vorführung gedacht, nicht für den Echtbetrieb.

5 — Überprüfen und installieren

Schritt 5: die Übersicht vor dem Start

Alle Angaben noch einmal im Überblick. Das Passwort steht hier bewusst nicht.

Der Lauf

Nach Installation starten arbeitet der Assistent die Schritte ab und zeigt jeden einzeln an.

Der Installationslauf mit Fortschrittsanzeige

Der Reihe nach passiert:

SchrittWas er tut
Konfiguration schreibenErzeugt alle Sicherheitsschlüssel und legt .env.local mit Dateirechten 600 an
Anwendungscache vorbereitenLeert den Zwischenspeicher
Datenbank anlegenNur, wenn Sie es angekreuzt haben
JWT-Schlüsselpaar erzeugenFür die Anmeldung
Datenbank-Schema einrichtenAlle Migrationen
Rechte und Rollen einrichtenDer Berechtigungskatalog
Standard-Daten einlesenStatus, Einstellungen, Nachschlagewerte
Plugin-Eigentum erfassenGrundlage dafür, dass sich Module später sauber entfernen lassen
Administrator-Konto anlegenIhr Zugang
Anwendungscache aufwärmenDer erste Aufruf wird dadurch schnell

Bricht ein Schritt ab, nennt der Assistent den Schritt und die Ausgabe und bietet Erneut versuchen an. Beheben Sie die Ursache und starten Sie neu — die Schritte vertragen einen zweiten Durchlauf.

Fertig

Die Installation ist abgeschlossen

Der Assistent sperrt sich jetzt selbst über die Datei var/install.lock und löscht das Token.


Ohne Browser

Derselbe Ablauf läuft auch auf der Kommandozeile:

php bin/console app:install

Interaktiv fragt der Befehl dieselben Werte ab. Für eine unbeaufsichtigte Installation lassen sich alle Angaben mitgeben:

php bin/console app:install --no-interaction \
  --app-url=https://os.example.de \
  --db-host=127.0.0.1 --db-name=octibiz --db-user=octibiz --db-password=… \
  --create-database \
  --admin-name="Vorname Nachname" --admin-email=admin@example.de --admin-password=… \
  --mailer-from="Octibiz <noreply@example.de>"

Weitere Optionen: --db-port, --redis-url, --mailer-dsn, --google-allowed-domains, --php-cli, --with-demo, --force.

Kürzer geht es mit ./setup.sh --cli.


Nach der Installation

Diese fünf Punkte gehören unmittelbar dazu. Ohne sie ist das System eingerichtet, aber nicht betriebsbereit.

1. Installer entfernen. Die Sperrdatei deaktiviert ihn zwar, aber das Verzeichnis gehört weg:

rm -rf public/install

2. Hintergrund-Verarbeitung einrichten. Ohne laufende Worker verschickt das System keine Mail und führt keinen Termin aus. Auf einem eigenen Server hat ./setup.sh --root das bereits erledigt; auf Managed-Hosting tragen Sie die fertigen Skripte aus deploy/cronjobs/ ein. Details in Hintergrund-Verarbeitung.

Der Zeitplan-Verbraucher darf je Umgebung genau EINMAL laufen. Läuft er doppelt, feuern alle zeitgesteuerten Abläufe doppelt — wiederkehrende Rechnungen, Mahnläufe, Fristen.

3. Sicherung einrichten. deploy/backup.sh täglich per Cron. Siehe Sicherung und Wiederherstellung.

4. .env.local sichern. Das ist die einzige Datei mit Geheimnissen. Sie gehört ins Backup und niemals in die Versionsverwaltung. Geht APP_CREDENTIAL_KEY verloren, sind alle gespeicherten Zugangsdaten zu angebundenen Systemen unlesbar — dauerhaft.

5. Mailversand und Anmeldung prüfen. Melden Sie sich mit dem Administrator-Konto an und lösen Sie eine Testmail aus.

Zusätzlich empfohlen: HTTPS mit gültigem Zertifikat, SPF, DKIM und DMARC je Absender-Domain, und der Update-Feed für System-Updates.


Wenn etwas nicht klappt

Was Sie sehenWas zu tun ist
install.php meldet eine zu alte PHP-VersionIm Hosting-Panel PHP 8.4 für diese Domain aktivieren. Bei vielen Anbietern gilt die Einstellung je Domain, nicht für den ganzen Vertrag
install.php meldet „Ausgehende HTTPS-Verbindung nicht möglich"Der Server darf nicht ins Internet. Dann bleibt der Weg mit SSH und selbst hochgeladenem Paket
Der Download bleibt stehenSeite neu laden und erneut starten — er setzt dort fort, wo er war
„Beim Auspacken ging der Platz aus"Es werden vorübergehend rund 1,1 GB gebraucht. Archiv, entpacktes Archiv und Dateien liegen kurz gleichzeitig
Der Browser zeigt PHP-Quelltext statt des AssistentenDem Webserver fehlt die /install/-Regel. Vorlage aus deploy/ übernehmen
„🔒 Zugriffstoken erforderlich"Token aus var/install.token lesen und an die Adresse hängen
„Setup kann nicht starten … var/ ist nicht beschreibbar"Schreibrechte auf var/ setzen
„Abhängigkeiten fehlen / vendor/ nicht gefunden"Kein vollständiges Paket entpackt
„PHP-CLI nicht gefunden"Vollen Pfad angeben, etwa /usr/bin/php8.4, oder PHP_BIN=… ./setup.sh
„Zugriff verweigert" beim VerbindungstestBenutzername oder Passwort falsch
„Datenbankserver nicht erreichbar"Host oder Port falsch
„Datenbank existiert nicht"Namen prüfen oder „Datenbank anlegen" ankreuzen. Kann auch bedeuten, dass dem Benutzer das Recht fehlt, die Datenbank überhaupt zu sehen
„proc_open deaktiviert"In der php.ini aus disable_functions entfernen
„Sicherheits-Token ungültig. Seite neu laden."Sitzung abgelaufen oder zweiter Browser-Tab. Seite neu laden
Migrationen schlagen fehlDem Datenbank-Benutzer fehlen CREATE, ALTER oder INDEX
Nach der Installation erscheint weiter der Assistentpublic/install/ entfernen und Seite neu laden
Die Oberfläche bleibt leerDer gebaute Oberflächen-Ordner fehlt. Im Paket ist er enthalten; bei Installation aus dem Quellcode muss er gebaut werden

Noch einmal von vorne

Auf der Kommandozeile:

php bin/console app:install --force

Über den Browser: var/install.lock löschen und ./setup.sh erneut ausführen. Die bestehende Datenbank bleibt dabei stehen.

Auf einem Server mit Deploy-Automatik muss var/install.lock die Releases überleben. Verschwindet die Datei, hält sich das System für nicht installiert und leitet alle Aufrufe auf den Assistenten.

Weiter

admin.installation · Gilt ab Version 0.5.7