Installation

Installer Toutadmin

Deux éditions du même produit : l'une tourne comme un service sur votre serveur, l'autre se dépose sur un hébergement mutualisé. Aucune base de données exigée, aucun service tiers — mais un serveur MySQL est mené si vous en avez un. Comptez une heure.

Hébergé en Europe, rien à installer : gratuit jusqu'à cinq salariés, et le produit entier dès le premier jour.

Le téléchargement est ouvert à tout le monde

La formule gratuite ne s'arrête pas au SaaS : jusqu'à cinq salariés, vous pouvez tout aussi bien installer le produit chez vous — vos fichiers, votre base, vos sauvegardes — sans rien payer. Ce qui décide de la formule, c'est l'effectif, pas l'endroit où tourne l'instance. Au-delà de cinq salariés, il faut un abonnement, que l'instance tourne chez nous ou chez vous.

Voir les formules

Laquelle installer

Le choix dépend de votre hébergement, pas de vos besoins fonctionnels : les deux éditions font exactement la même chose.

Édition Node

Pour un serveur que vous administrez : une machine, un service permanent, un proxy inverse devant.

Node 22, un compilateur C, un disque local. Une machine à un cœur suffit pour quelques dizaines de personnes. Un serveur MySQL est mené si vous en avez un ; sinon SQLite ne demande rien.

Édition PHP

Pour un hébergement mutualisé : un dossier à déposer, un fichier à remplir, une tâche planifiée. Pas de ligne de commande nécessaire.

PHP 8.1, l'extension SQLite. Aucune dépendance à installer : ni Composer, ni gestionnaire de paquets. L'extension PDO MySQL en plus si vous préférez un serveur de base.

Le choix reste réversible

Les deux éditions partagent le même schéma de base et le même format de mot de passe. Passer de l'une à l'autre, c'est copier un fichier de base et cinq dossiers : il n'y a pas de conversion, et personne n'a à changer de mot de passe.

SQLite ou MySQL

Et quelle base de données

Le second choix, et le seul qui se change difficilement. Il ne dépend pas de l'édition : les deux acceptent les deux moteurs, et les quatre combinaisons passent les mêmes tests.

SQLite

Un fichier sur le disque du serveur. Rien à installer, rien à administrer, rien à surveiller — et l'instance se déplace en copiant un dossier.

C'est le défaut, et la réponse juste dans la plupart des cas : un serveur applicatif, un disque local qui reste d'un déploiement à l'autre.

MySQL ou MariaDB

Un serveur de base, sur la machine ou ailleurs sur le réseau. Les données vivent là où votre service informatique les sauvegarde, les réplique et les surveille déjà.

À prendre pour trois raisons : plusieurs serveurs applicatifs sur la même base, une politique interne qui l'impose, ou un disque applicatif éphémère — un conteneur recréé à chaque déploiement.

MySQL n'est pas le choix de la vitesse

C'est la croyance la plus répandue, et elle est fausse : SQLite vit dans le processus, MySQL derrière une socket. Mesuré chez nous sur deux mille opérations, SQLite va de deux fois et demie à cent cinquante fois plus vite selon l'opération — et tient la comparaison même à huit écrivains simultanés. On choisit MySQL pour l'endroit où vivent les données et pour qui les administre, pas pour le temps de réponse.

Le détail, chiffres à l'appui

En cinq minutes

L'installation rapide

De quoi ouvrir l'assistant. Le détail vient juste après, étape par étape, avec ce que chaque commande fait et pourquoi.

Édition Node

Trois commandes sur un serveur que vous administrez. La dernière engendre un jeton d'installation et démarre l'instance.

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

Édition PHP

Aucune ligne de commande : un dossier à déposer, un fichier à copier, un droit d'écriture à ouvrir.

# 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

Puis l'assistant fait le reste

L'instance démarre vide et se referme sur elle-même : tant qu'elle n'est pas installée, toute adresse mène à l'assistant, et une fois installée l'assistant disparaît pour de bon.

  1. 1 LangueCelle de l'instance, parmi les seize. Elle se change plus tard, et chacun garde la sienne.
  2. 2 PrérequisL'assistant vérifie ce qu'il a sous les pieds : version, droits d'écriture, base, dossiers. Ce qui manque est nommé, pas deviné.
  3. 3 Base de donnéesSQLite dans un fichier, qui ne demande rien, ou MySQL / MariaDB si vous en avez un. L'assistant essaie la connexion avant de s'y engager.
  4. 4 OrganisationLe nom de l'entreprise et le quota annuel de congés. Deux réponses, modifiables ensuite.
  5. 5 AdministrateurLe premier compte. Douze caractères au minimum : c'est le seul compte qui peut en créer d'autres.
  6. 6 InstallationLe récapitulatif, puis la pose en quatre paliers annoncés à l'écran. L'assistant se referme définitivement.
https://votre-domaine/install

Posez le jeton d'installation avant d'ouvrir le port

Entre le premier démarrage et votre passage dans l'assistant, le premier arrivé créerait le compte d'administration. INSTALL_TOKEN ferme cette fenêtre : sans lui, l'assistant refuse de s'ouvrir.

Assistant d'installation
Assistant d'installation Assistant d'installation
Édition Node

Sur votre serveur, en quatre étapes

  1. Récupérer et installer

    npm ci plutôt que npm install : il installe exactement ce que le fichier de verrouillage décrit. Sur un serveur, une version qui glisse est une panne qu'on ne comprend pas.

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

    Tout se règle par variables d'environnement, et aucune n'est obligatoire. Posez INSTALL_TOKEN avant d'ouvrir le port : entre le premier démarrage et votre passage dans l'assistant, le premier arrivé créerait le compte d'administration.

    cp .env.example .env
    # PORT, NODE_ENV=production, INSTALL_TOKEN…
  3. Confier au système

    Lancé à la main, le produit s'arrête quand vous fermez le terminal. Le service redémarre tout seul, et n'a le droit d'écrire que dans son dossier de données.

    sudo systemctl enable --now toutadmin
    journalctl -u toutadmin -f
  4. Chiffrer la liaison

    Ne servez jamais le port applicatif directement sur Internet. Derrière le proxy, l'instance pose elle-même les en-têtes de sécurité — dont HSTS, uniquement sur une connexion déjà chiffrée.

    sudo certbot --nginx -d intranet.exemple.fr
Édition PHP

Sur un hébergement mutualisé, en quatre étapes

  1. Déposer les fichiers

    C'est l'étape où l'on se trompe. Si le serveur sert le dossier entier, la base devient téléchargeable par n'importe qui : comptes, empreintes de mots de passe et coffre-fort compris.

    # déposer le dossier ; la racine web pointe sur public/, pas sur le dossier
  2. Écrire la configuration

    C'est l'assistant qui écrit la configuration, et en dernier : tant que le fichier n'existe pas, une installation interrompue n'a rien laissé derrière elle. Il y pose une clé propre à l'instance, qui scelle les signatures du parapheur et chiffre les secrets en base — sauvegardez-la avec le reste.

    cp config.sample.php config.php
    php -r "echo bin2hex(random_bytes(32));"   # session_secret
  3. Ouvrir les droits d'écriture

    SQLite écrit des fichiers voisins de la base : c'est le dossier qui doit être inscriptible, pas seulement le fichier. Le reste du produit peut rester en lecture seule.

    chmod 770 data/     # le dossier, pas seulement la base
  4. Planifier le balayage

    Un site PHP ne vit qu'au moment d'une requête. La tâche planifiée ferme les contrats échus, émet les factures récurrentes, envoie les webhooks et crée les sauvegardes.

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

Avant d'ouvrir aux collègues

Une sauvegarde qui part ailleurs

Faites-en une tout de suite, pendant que la base est petite, et configurez la destination distante. Une archive restée sur le serveur qu'elle protège ne protège de rien.

Un compte d'essai sans droits

Connectez-vous avec et promenez-vous. C'est la seule façon de voir l'outil comme vos collègues le verront — et la vérification la plus souvent sautée.

Deux administrateurs, pas un

Si vous activez la double authentification et perdez à la fois le téléphone et les codes de secours, seul un autre administrateur peut vous rouvrir la porte. Il n'y a pas de porte dérobée.

Le tutoriel complet est dans la documentation

Cette page donne la trame. La documentation donne tout le reste : configuration du serveur frontal, permissions exactes, certificats, restauration, mise à jour, dépannage par symptôme — et les deux tutoriels en entier, pour chaque édition.

Commencez gratuitement, changez de formule quand vous grandirez

Les cinq premiers salariés sont gratuits, toujours. Au-delà, 5 € par salarié et par mois. Aucune carte bancaire pour essayer.