Instalación

Instalar Toutadmin

Dos ediciones del mismo producto: una funciona como servicio en su servidor, la otra se deposita en un alojamiento compartido. Sin base de datos exigida, sin servicio de terceros — pero se maneja un servidor MySQL si usted tiene uno. Cuente una hora.

Alojado en Europa, sin nada que instalar: gratis hasta cinco empleados, y el producto entero desde el primer día.

La descarga está abierta a todo el mundo

La fórmula gratuita no se detiene en el SaaS: hasta cinco empleados puede igualmente instalar el producto en su propia máquina — sus ficheros, su base, sus copias de seguridad — sin pagar nada. Lo que decide la fórmula es la plantilla, no el lugar donde corre la instancia. A partir de cinco empleados hace falta una suscripción, tanto si la instancia corre en nuestra casa como en la suya.

Ver las fórmulas

Cuál instalar

La elección depende de su alojamiento, no de sus necesidades funcionales: ambas ediciones hacen exactamente lo mismo.

Edición Node

Para un servidor que usted administra: una máquina, un servicio permanente, un proxy inverso delante.

Node 22, un compilador de C, un disco local. Una máquina de un núcleo basta para unas decenas de personas. Se maneja un servidor MySQL si dispone de uno; si no, SQLite no pide nada.

Edición PHP

Para un alojamiento compartido: una carpeta que subir, un archivo que rellenar, una tarea programada. No hace falta línea de comandos.

PHP 8.1 y la extensión SQLite. Ninguna dependencia que instalar: ni Composer, ni gestor de paquetes. Y la extensión PDO MySQL si prefiere un servidor de base de datos.

La elección sigue siendo reversible

Ambas ediciones comparten el mismo esquema de base de datos y el mismo formato de contraseña. Pasar de una a otra es copiar un archivo de base y cinco carpetas: no hay conversión, y nadie tiene que cambiar de contraseña.

SQLite o MySQL

Y qué base de datos

La segunda elección, y la única que se cambia con dificultad. No depende de la edición: ambas aceptan los dos motores, y las cuatro combinaciones pasan las mismas pruebas.

SQLite

Un archivo en el disco del servidor. Nada que instalar, nada que administrar, nada que vigilar — y la instancia se muda copiando una carpeta.

Es el valor por defecto, y la respuesta correcta en la mayoría de los casos: un servidor de aplicación y un disco local que sobrevive de un despliegue a otro.

MySQL o MariaDB

Un servidor de base de datos, en la máquina o en otro punto de la red. Los datos viven donde su departamento de informática ya los respalda, replica y vigila.

Tómelo por tres razones: varios servidores de aplicación sobre una misma base, una política interna que lo impone, o un disco de aplicación efímero — un contenedor recreado en cada despliegue.

MySQL no es la elección de la velocidad

Es la creencia más extendida y es falsa: SQLite vive dentro del proceso, MySQL detrás de un socket. Medido aquí sobre dos mil operaciones, SQLite va de dos veces y media a ciento cincuenta veces más rápido según la operación — y aguanta la comparación incluso con ocho escritores simultáneos. MySQL se elige por dónde viven los datos y por quién los administra, no por el tiempo de respuesta.

El detalle, con las cifras

En cinco minutos

La instalación rápida

Lo justo para abrir el asistente. El detalle viene justo después, paso a paso, con lo que hace cada orden y por qué.

Edición Node

Tres órdenes en un servidor que usted administra. La última genera un testigo de instalación y arranca la instancia.

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

Edición PHP

Ninguna línea de órdenes: una carpeta que depositar, un fichero que copiar, un permiso de escritura que abrir.

# 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

Luego el asistente hace el resto

La instancia arranca vacía y se cierra sobre sí misma: mientras no esté instalada, toda dirección lleva al asistente, y una vez instalada el asistente desaparece para siempre.

  1. 1 IdiomaEl de la instancia, entre los dieciséis. Se cambia más tarde, y cada cual conserva el suyo.
  2. 2 RequisitosEl asistente comprueba lo que tiene bajo los pies: versión, permisos de escritura, base, carpetas. Lo que falta se nombra, no se adivina.
  3. 3 Base de datosSQLite en un archivo, que no pide nada, o MySQL / MariaDB si dispone de uno. El asistente prueba la conexión antes de comprometerse con ella.
  4. 4 OrganizaciónEl nombre de la empresa y la cuota anual de vacaciones. Dos respuestas, modificables después.
  5. 5 AdministradorLa primera cuenta. Doce caracteres como mínimo: es la única cuenta que puede crear otras.
  6. 6 InstalaciónEl resumen y luego la instalación en cuatro fases anunciadas en pantalla. El asistente se cierra definitivamente.
https://votre-domaine/install

Ponga el testigo de instalación antes de abrir el puerto

Entre el primer arranque y su paso por el asistente, el primero en llegar crearía la cuenta de administración. INSTALL_TOKEN cierra esa ventana: sin él, el asistente se niega a abrirse.

Asistente de instalación
Asistente de instalación Asistente de instalación
Edición Node

En su servidor, en cuatro pasos

  1. Obtener e instalar

    npm ci en lugar de npm install: instala exactamente lo que describe el archivo de bloqueo. En un servidor, una versión que se desplaza es una avería que nadie entiende.

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

    Todo se ajusta con variables de entorno, y ninguna es obligatoria. Ponga INSTALL_TOKEN antes de abrir el puerto: entre el primer arranque y su paso por el asistente, el primero en llegar crearía la cuenta de administración.

    cp .env.example .env
    # PORT, NODE_ENV=production, INSTALL_TOKEN…
  3. Confiarlo al sistema

    Lanzado a mano, el producto se detiene al cerrar la terminal. El servicio se reinicia solo y solo tiene permiso de escritura en su carpeta de datos.

    sudo systemctl enable --now toutadmin
    journalctl -u toutadmin -f
  4. Cifrar la conexión

    Nunca sirva el puerto de la aplicación directamente en internet. Detrás del proxy, la instancia pone ella misma las cabeceras de seguridad, incluida HSTS, y solo sobre una conexión ya cifrada.

    sudo certbot --nginx -d intranet.exemple.fr
Edición PHP

En alojamiento compartido, en cuatro pasos

  1. Subir los archivos

    Es el paso en el que se falla. Si el servidor sirve la carpeta entera, la base de datos queda descargable por cualquiera: cuentas, huellas de contraseñas y caja fuerte incluidas.

    # déposer le dossier ; la racine web pointe sur public/, pas sur le dossier
  2. Escribir la configuración

    Es el asistente quien escribe la configuración, y lo hace en último lugar: mientras el archivo no exista, una instalación interrumpida no ha dejado nada tras de sí. Pone allí una clave propia de la instancia, que sella las firmas y cifra los secretos en la base: guárdela con lo demás.

    cp config.sample.php config.php
    php -r "echo bin2hex(random_bytes(32));"   # session_secret
  3. Abrir los permisos de escritura

    SQLite escribe archivos vecinos junto a la base: es la carpeta la que debe ser escribible, no solo el archivo. El resto del producto puede quedar en solo lectura.

    chmod 770 data/     # le dossier, pas seulement la base
  4. Programar el barrido

    Un sitio PHP solo vive durante una petición. La tarea programada cierra los contratos vencidos, emite las facturas recurrentes, envía los webhooks y crea las copias de seguridad.

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

Antes de abrirlo a los compañeros

Una copia que sale del edificio

Haga una enseguida, mientras la base es pequeña, y configure el destino remoto. Un archivo que se queda en el servidor que protege no protege nada.

Una cuenta de prueba sin permisos

Entre con ella y dé una vuelta. Es la única forma de ver la herramienta como la verán sus compañeros, y la comprobación que más se salta.

Dos administradores, no uno

Si activa la doble autenticación y pierde a la vez el teléfono y los códigos de recuperación, solo otro administrador puede volver a abrirle la puerta. No hay puerta trasera.

El tutorial completo está en la documentación

Esta página da el esquema. La documentación da todo lo demás: configuración del servidor frontal, permisos exactos, certificados, restauración, actualización, resolución de problemas por síntoma, y los dos tutoriales enteros, uno por edición.

Empiece gratis y cambie de plan cuando crezca

Los cinco primeros empleados son gratuitos, siempre. Por encima, 5 € por empleado y mes. Ninguna tarjeta para probar.