Installation

Toutadmin installieren

Zwei Editionen desselben Produkts: die eine läuft als Dienst auf Ihrem Server, die andere wird auf ein Shared Hosting gelegt. Keine Datenbank verlangt, kein Fremddienst — ein MySQL-Server wird aber angesteuert, wenn Sie einen haben. Rechnen Sie mit einer Stunde.

In Europa gehostet, nichts zu installieren: kostenlos bis fünf Mitarbeitende, und vom ersten Tag an das ganze Produkt.

Der Download steht allen offen

Der kostenlose Tarif endet nicht beim SaaS: bis fünf Mitarbeitende dürfen Sie das Produkt ebenso gut bei sich installieren — Ihre Dateien, Ihre Datenbank, Ihre Sicherungen — ohne etwas zu zahlen. Über den Tarif entscheidet die Zahl der Mitarbeitenden, nicht der Ort, an dem die Instanz läuft. Ab fünf Mitarbeitenden braucht es ein Abonnement, ob die Instanz bei uns läuft oder bei Ihnen.

Tarife ansehen

Welche installieren

Die Wahl hängt von Ihrem Hosting ab, nicht von Ihren fachlichen Anforderungen: beide Editionen können genau dasselbe.

Node-Edition

Für einen Server, den Sie selbst verwalten: eine Maschine, ein dauerhaft laufender Dienst, ein vorgeschalteter Reverse-Proxy.

Node 22, ein C-Compiler, eine lokale Platte. Eine Maschine mit einem Kern genügt für einige Dutzend Personen. Ein MySQL-Server wird angesteuert, wenn Sie einen haben; sonst verlangt SQLite nichts.

PHP-Edition

Für Shared Hosting: ein Ordner zum Hochladen, eine Datei zum Ausfüllen, eine geplante Aufgabe. Keine Kommandozeile nötig.

PHP 8.1 und die SQLite-Erweiterung. Keine Abhängigkeit zu installieren: kein Composer, kein Paketmanager. Dazu die Erweiterung PDO MySQL, wenn Sie einen Datenbankserver vorziehen.

Die Wahl bleibt umkehrbar

Beide Editionen teilen dasselbe Datenbankschema und dasselbe Passwortformat. Der Wechsel bedeutet, eine Datenbankdatei und fünf Ordner zu kopieren: es gibt keine Umwandlung, und niemand muss sein Passwort ändern.

SQLite oder MySQL

Und welche Datenbank

Die zweite Wahl, und die einzige, die sich schwer ändern lässt. Sie hängt nicht von der Edition ab: beide nehmen beide Engines, und alle vier Kombinationen bestehen dieselben Tests.

SQLite

Eine Datei auf der Platte des Servers. Nichts zu installieren, nichts zu verwalten, nichts zu überwachen — und die Instanz zieht um, indem man einen Ordner kopiert.

Es ist die Vorgabe und in den meisten Fällen die richtige Antwort: ein Anwendungsserver, eine lokale Platte, die von einer Auslieferung zur nächsten bleibt.

MySQL oder MariaDB

Ein Datenbankserver, auf der Maschine oder anderswo im Netz. Die Daten leben dort, wo Ihre IT sie schon sichert, repliziert und überwacht.

Aus drei Gründen zu nehmen: mehrere Anwendungsserver auf einer Datenbank, eine interne Vorgabe, die es verlangt, oder eine flüchtige Anwendungsplatte — ein Container, der bei jeder Auslieferung neu gebaut wird.

MySQL ist nicht die Wahl der Geschwindigkeit

Das ist der verbreitetste Glaube, und er ist falsch: SQLite lebt im Prozess, MySQL hinter einem Socket. Hier über zweitausend Vorgänge gemessen, ist SQLite je nach Vorgang zweieinhalb- bis hundertfünfzigmal schneller — und es hält den Vergleich sogar bei acht gleichzeitigen Schreibern. MySQL wählt man dafür, wo die Daten leben und wer sie verwaltet, nicht für die Antwortzeit.

Die Einzelheiten, mit Zahlen

In fünf Minuten

Die schnelle Installation

Gerade genug, um den Assistenten zu öffnen. Das Ausführliche folgt gleich danach, Schritt für Schritt, mit dem, was jeder Befehl tut und warum.

Node-Edition

Drei Befehle auf einem Server, den Sie verwalten. Der letzte erzeugt ein Installationstoken und startet die Instanz.

git clone <votre-dépôt> toutadmin
cd toutadmin && npm ci --omit=dev
INSTALL_TOKEN=$(openssl rand -hex 16) \
NODE_ENV=production node src/server.js

PHP-Edition

Gar keine Kommandozeile: ein Ordner zum Ablegen, eine Datei zum Kopieren, ein Schreibrecht zum Öffnen.

# 1. déposer le dossier (racine web → public/)
# 2. cp config.sample.php config.php
# 3. chmod 770 data/
# 4. ouvrir https://votre-domaine/install

Den Rest erledigt der Assistent

Die Instanz startet leer und schließt sich um sich selbst: solange sie nicht installiert ist, führt jede Adresse zum Assistenten, und nach der Installation ist der Assistent endgültig fort.

  1. 1 SpracheDie der Instanz, unter den sechzehn. Sie lässt sich später ändern, und jede und jeder behält die eigene.
  2. 2 VoraussetzungenDer Assistent prüft, worauf er steht: Version, Schreibrechte, Datenbank, Ordner. Was fehlt, wird benannt und nicht erraten.
  3. 3 DatenbankSQLite in einer Datei, die nichts verlangt, oder MySQL / MariaDB, wenn Sie eines haben. Der Assistent versucht die Verbindung, bevor er sich auf sie festlegt.
  4. 4 OrganisationDer Name des Unternehmens und der Jahresurlaubsanspruch. Zwei Antworten, später änderbar.
  5. 5 AdministratorDas erste Konto. Mindestens zwölf Zeichen: es ist das einzige Konto, das weitere anlegen kann.
  6. 6 InstallationDie Zusammenfassung, dann das Anlegen in vier Stufen, die auf der Maske angesagt werden. Der Assistent schließt sich endgültig.
https://votre-domaine/install

Setzen Sie das Installationstoken, bevor Sie den Port öffnen

Zwischen dem ersten Start und Ihrem Besuch im Assistenten würde das Verwaltungskonto anlegen, wer zuerst kommt. INSTALL_TOKEN schließt dieses Fenster: ohne es öffnet sich der Assistent nicht.

Installationsassistent
Installationsassistent Installationsassistent
Node-Edition

Auf Ihrem Server, in vier Schritten

  1. Holen und installieren

    npm ci statt npm install: es installiert genau das, was die Sperrdatei beschreibt. Auf einem Server ist eine verrutschte Version eine Störung, die niemand versteht.

    git clone <votre-dépôt> /var/www/toutadmin
    cd /var/www/toutadmin
    npm ci --omit=dev
  2. Konfigurieren

    Alles wird über Umgebungsvariablen eingestellt, und keine ist Pflicht. Setzen Sie INSTALL_TOKEN, bevor Sie den Port öffnen: zwischen dem ersten Start und Ihrem Besuch im Assistenten würde der Erstbeste das Administrationskonto anlegen.

    cp .env.example .env
    # PORT, NODE_ENV=production, INSTALL_TOKEN…
  3. Dem System übergeben

    Von Hand gestartet, endet das Produkt, sobald Sie das Terminal schließen. Der Dienst startet von selbst neu und darf nur in seinen Datenordner schreiben.

    sudo systemctl enable --now toutadmin
    journalctl -u toutadmin -f
  4. Die Verbindung verschlüsseln

    Stellen Sie den Anwendungsport nie direkt ins Internet. Hinter dem Proxy setzt die Instanz ihre Sicherheits-Header selbst — darunter HSTS, und nur über eine bereits verschlüsselte Verbindung.

    sudo certbot --nginx -d intranet.exemple.fr
PHP-Edition

Auf Shared Hosting, in vier Schritten

  1. Die Dateien hochladen

    Hier wird der Fehler gemacht. Bedient der Server den gesamten Ordner, wird die Datenbank für jeden herunterladbar: Konten, Passwort-Hashes und Tresor inklusive.

    # déposer le dossier ; la racine web pointe sur public/, pas sur le dossier
  2. Die Konfiguration schreiben

    Der Assistent schreibt die Konfiguration, und zwar zuletzt: Solange die Datei nicht besteht, hat eine abgebrochene Installation nichts hinterlassen. Er legt einen instanzeigenen Schlüssel hinein, der die Signaturen versiegelt und die Geheimnisse in der Datenbank verschlüsselt – sichern Sie ihn mit dem Rest.

    cp config.sample.php config.php
    php -r "echo bin2hex(random_bytes(32));"   # session_secret
  3. Schreibrechte öffnen

    SQLite legt Begleitdateien neben der Datenbank an: beschreibbar sein muss der Ordner, nicht nur die Datei. Der Rest des Produkts darf schreibgeschützt bleiben.

    chmod 770 data/     # le dossier, pas seulement la base
  4. Den Durchlauf planen

    Eine PHP-Seite lebt nur während einer Anfrage. Die geplante Aufgabe schließt abgelaufene Verträge, stellt wiederkehrende Rechnungen aus, versendet Webhooks und erzeugt Sicherungen.

    * * * * * /usr/bin/php /var/www/toutadmin/tools/cron.php

Bevor Sie für Kolleginnen und Kollegen öffnen

Eine Sicherung, die das Haus verlässt

Machen Sie sofort eine, solange die Datenbank klein ist, und richten Sie das entfernte Ziel ein. Ein Archiv, das auf dem Server bleibt, den es schützt, schützt nichts.

Ein Testkonto ohne Rechte

Melden Sie sich damit an und schauen Sie sich um. Nur so sehen Sie das Werkzeug, wie Ihre Kolleginnen und Kollegen es sehen werden — und das ist die am häufigsten übersprungene Prüfung.

Zwei Administratoren, nicht einer

Wenn Sie die Zweifaktor-Anmeldung einschalten und sowohl das Telefon als auch die Wiederherstellungscodes verlieren, kann Sie nur ein anderer Administrator wieder hereinlassen. Eine Hintertür gibt es nicht.

Die vollständige Anleitung steht in der Dokumentation

Diese Seite gibt den Rahmen. Die Dokumentation gibt alles Weitere: Konfiguration des vorgeschalteten Servers, genaue Berechtigungen, Zertifikate, Wiederherstellung, Aktualisierung, Fehlersuche nach Symptom — und beide Anleitungen vollständig, eine je Edition.

Kostenlos starten, den Tarif wechseln, wenn Sie wachsen

Die ersten fünf Beschäftigten sind immer kostenlos. Darüber 5 € je Beschäftigtem und Monat. Zum Ausprobieren keine Kreditkarte.