Installatie

Toutadmin installeren

Twee edities van hetzelfde product: de ene draait als dienst op uw server, de andere zet u neer op gedeelde hosting. Geen database vereist, geen dienst van derden — maar een MySQL-server wordt aangestuurd als u er een hebt. Reken op een uur.

In Europa gehost, niets te installeren: gratis tot vijf medewerkers, en het hele product vanaf de eerste dag.

De download staat voor iedereen open

De gratis formule houdt niet op bij SaaS: tot vijf medewerkers mag u het product net zo goed bij uzelf zetten — uw bestanden, uw databank, uw reservekopieën — zonder iets te betalen. Wat de formule bepaalt is het aantal medewerkers, niet de plek waar het exemplaar draait. Boven de vijf medewerkers is een abonnement nodig, of het exemplaar nu bij ons draait of bij u.

De formules bekijken

Welke installeren

De keuze hangt af van uw hosting, niet van wat u functioneel nodig hebt: beide edities doen precies hetzelfde.

Node-editie

Voor een server die u zelf beheert: één machine, een blijvend draaiende dienst, een omgekeerde proxy ervoor.

Node 22, een C-compiler, een lokale schijf. Eén core volstaat voor enkele tientallen mensen. Een MySQL-server wordt aangestuurd als u er een hebt; anders vraagt SQLite niets.

PHP-editie

Voor gedeelde hosting: een map om te uploaden, een bestand om in te vullen, een geplande taak. Geen opdrachtregel nodig.

PHP 8.1 en de SQLite-extensie. Geen afhankelijkheid te installeren: geen Composer, geen pakketbeheerder. Daarbij de extensie PDO MySQL als u een databaseserver verkiest.

De keuze blijft omkeerbaar

Beide edities delen hetzelfde databaseschema en hetzelfde wachtwoordformaat. Overstappen betekent één databasebestand en vijf mappen kopiëren: er is geen conversie, en niemand hoeft zijn wachtwoord te wijzigen.

SQLite of MySQL

En welke database

De tweede keuze, en de enige die moeilijk te herzien is. Zij hangt niet van de editie af: beide aanvaarden beide engines, en alle vier de combinaties doorstaan dezelfde tests.

SQLite

Eén bestand op de schijf van de server. Niets te installeren, niets te beheren, niets te bewaken — en de instantie verhuist door een map te kopiëren.

Het is de standaard, en in de meeste gevallen het juiste antwoord: één applicatieserver, een lokale schijf die van de ene uitrol tot de volgende blijft.

MySQL of MariaDB

Een databaseserver, op de machine of elders in het netwerk. De gegevens wonen waar uw IT-afdeling ze al back-upt, repliceert en bewaakt.

Te nemen om drie redenen: meerdere applicatieservers op één database, een intern voorschrift dat het oplegt, of een vluchtige applicatieschijf — een container die bij elke uitrol opnieuw wordt gebouwd.

MySQL is niet de keuze voor snelheid

Dat is het meest verbreide geloof, en het is onjuist: SQLite leeft in het proces, MySQL achter een socket. Hier gemeten over tweeduizend bewerkingen is SQLite twee en een half tot honderdvijftig maal sneller, afhankelijk van de bewerking — en het houdt de vergelijking zelfs met acht gelijktijdige schrijvers. MySQL kiest men om waar de gegevens wonen en wie ze beheert, niet om de responstijd.

De details, met cijfers

In vijf minuten

De snelle installatie

Net genoeg om de assistent te openen. Het uitvoerige volgt er meteen op, stap voor stap, met wat elk bevel doet en waarom.

Node-editie

Drie bevelen op een server die u zelf beheert. Het laatste maakt een installatiepenning aan en start het exemplaar.

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-editie

Geen enkele opdrachtregel: een map om neer te zetten, een bestand om te kopiëren, een schrijfrecht om te openen.

# 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

De assistent doet daarna de rest

Het exemplaar start leeg en sluit zich om zichzelf: zolang het niet geïnstalleerd is leidt elk adres naar de assistent, en eenmaal geïnstalleerd is de assistent voorgoed weg.

  1. 1 TaalDie van het exemplaar, uit de zestien. Ze verandert later, en ieder houdt de zijne.
  2. 2 VereistenDe assistent kijkt waarop hij staat: versie, schrijfrechten, databank, mappen. Wat ontbreekt wordt benoemd, niet geraden.
  3. 3 DatabaseSQLite in een bestand, dat niets vraagt, of MySQL / MariaDB als u er een hebt. De assistent probeert de verbinding voordat hij zich eraan bindt.
  4. 4 OrganisatieDe naam van het bedrijf en het jaarlijkse verlofrecht. Twee antwoorden, achteraf te wijzigen.
  5. 5 BeheerderHet eerste account. Minstens twaalf tekens: het is het enige account dat andere kan aanmaken.
  6. 6 InstallatieDe samenvatting, daarna het aanleggen in vier op het scherm aangekondigde etappes. De assistent sluit zich definitief.
https://votre-domaine/install

Zet de installatiepenning vóór u de poort opent

Tussen de eerste start en uw eigen gang door de assistent zou wie het eerst komt het beheerdersaccount aanmaken. INSTALL_TOKEN sluit dat venster: zonder de penning weigert de assistent open te gaan.

Installatieassistent
Installatieassistent Installatieassistent
Node-editie

Op uw eigen server, in vier stappen

  1. Ophalen en installeren

    npm ci in plaats van npm install: het installeert precies wat het vergrendelingsbestand beschrijft. Op een server is een versie die wegglijdt een storing die niemand begrijpt.

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

    Alles wordt met omgevingsvariabelen geregeld, en geen ervan is verplicht. Zet INSTALL_TOKEN voordat u de poort opent: tussen de eerste start en uw bezoek aan de assistent zou de eerste de beste het beheerdersaccount aanmaken.

    cp .env.example .env
    # PORT, NODE_ENV=production, INSTALL_TOKEN…
  3. Aan het systeem overdragen

    Met de hand gestart stopt het product zodra u de terminal sluit. De dienst herstart vanzelf en mag alleen in zijn gegevensmap schrijven.

    sudo systemctl enable --now toutadmin
    journalctl -u toutadmin -f
  4. De verbinding versleutelen

    Zet de toepassingspoort nooit rechtstreeks op het internet. Achter de proxy zet de instantie zelf haar beveiligingsheaders — waaronder HSTS, en alleen over een al versleutelde verbinding.

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

Op gedeelde hosting, in vier stappen

  1. De bestanden uploaden

    Dit is de stap waar het misgaat. Bedient de server de hele map, dan wordt de database voor iedereen te downloaden: accounts, wachtwoordhashes en de kluis inbegrepen.

    # déposer le dossier ; la racine web pointe sur public/, pas sur le dossier
  2. De configuratie schrijven

    De wizard schrijft de configuratie, en doet dat als laatste: zolang het bestand niet bestaat, heeft een afgebroken installatie niets achtergelaten. Hij zet er een instantie-eigen sleutel in, die de handtekeningen verzegelt en de geheimen in de database versleutelt — bewaar hem met de rest.

    cp config.sample.php config.php
    php -r "echo bin2hex(random_bytes(32));"   # session_secret
  3. Schrijfrechten openzetten

    SQLite schrijft buurbestanden naast de database: de map moet beschrijfbaar zijn, niet alleen het bestand. De rest van het product mag alleen-lezen blijven.

    chmod 770 data/     # le dossier, pas seulement la base
  4. De ronde inplannen

    Een PHP-site leeft alleen tijdens een aanvraag. De geplande taak sluit verlopen contracten, stuurt terugkerende facturen, verzendt webhooks en maakt back-ups.

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

Voordat u opent voor collega’s

Een back-up die het gebouw verlaat

Maak er meteen een, nu de database nog klein is, en stel de externe bestemming in. Een archief dat blijft staan op de server die het beschermt, beschermt niets.

Een testaccount zonder rechten

Log ermee in en loop rond. Alleen zo ziet u het product zoals uw collega’s het zullen zien — en dit is de controle die het vaakst wordt overgeslagen.

Twee beheerders, niet één

Zet u tweestapsverificatie aan en raakt u zowel de telefoon als de herstelcodes kwijt, dan kan alleen een andere beheerder u weer binnenlaten. Er is geen achterdeur.

De volledige handleiding staat in de documentatie

Deze pagina geeft de hoofdlijn. De documentatie geeft al het overige: instelling van de voorliggende server, exacte rechten, certificaten, herstel, bijwerken, probleemoplossing per verschijnsel — en beide handleidingen volledig, één per editie.

Begin gratis, verander van formule wanneer u groeit

De eerste vijf medewerkers zijn altijd gratis. Daarboven 5 € per medewerker per maand. Geen creditcard om te proberen.