Prérequis
Avant d'installer TimePick, assurez-vous de disposer des éléments ci-dessous. Cette fiche ne couvre pas l'installation elle-même : elle liste seulement ce qu'il faut avoir en place au préalable, pour un poste de développement comme pour une instance de production.
Prérequis communs
- git — nécessaire pour cloner le dépôt du projet.
- Accès réseau — pour cloner le dépôt (GitHub) et télécharger les dépendances npm.
Installation locale (développement)
Node.js
- Version ≥ 20.19 ou ≥ 22.12.
- La version 22.x LTS est recommandée : c'est celle utilisée en production.
PostgreSQL
- Version 16 minimum.
- La version 17 est recommandée : c'est celle utilisée en production.
INFO
Pourquoi PostgreSQL 16 au minimum ? C'est la version minimale testée et supportée par le projet ; les versions plus anciennes ne sont pas validées. PostgreSQL 17 est recommandé.
Droits PostgreSQL requis
L'initialisation de la base de données crée l'extension uuid-ossp (utilisée pour générer les identifiants uniques de l'application).
WARNING
Selon votre installation PostgreSQL, la création de l'extension uuid-ossp peut nécessiter des droits superuser. Si l'initialisation échoue avec une erreur du type « permission denied to create extension », accordez le droit SUPERUSER à l'utilisateur PostgreSQL utilisé, ou faites pré-installer l'extension par un administrateur de la base.
Un privilège supplémentaire, CREATEDB, est nécessaire uniquement pour exécuter la suite de tests automatisés du projet. Il s'agit d'un besoin réservé aux personnes qui développent ou contribuent au code — pas aux opérateurs qui installent ou exploitent une instance TimePick.
Intercepteur SMTP local (optionnel, développement uniquement)
Un intercepteur SMTP local — par exemple Mailpit, l'outil exercé sur l'instance de référence — capture les emails envoyés par l'application sans les délivrer réellement à leurs destinataires. Il permet de consulter le contenu des emails (liens de connexion, notifications…) depuis une interface web, pratique en développement quand aucun serveur SMTP réel n'est configuré.
TimePick fournit aussi ce service Mailpit dans un fichier compose.dev.yaml activable à la demande (npm run mail), pour éviter toute installation manuelle. Cette option requiert Docker et Docker Compose v2 : npm run mail s'appuie sur les profils Compose (fonctionnalité v2) et sur le drapeau up --wait, disponible depuis Compose v2.1.1 ; toute version v2 raisonnablement récente convient. Vérifiez la vôtre avec docker compose version. L'installation manuelle (Homebrew, docker run) reste possible sans cette contrainte de version.
Un intercepteur n'a aucune utilité en production : voir la fiche Fournisseurs SMTP pour la configuration d'un vrai serveur d'envoi.
Installation en production
Pour un déploiement en production, TimePick fournit une image Docker officielle — publiée sur GHCR (paquet public, multi-architecture) et construite en plusieurs étapes (« multi-stage build »), qui embarque la compilation du frontend et du backend. Il n'est pas nécessaire d'installer Node.js sur le serveur de production. Avec le chemin recommandé — le kit Docker Compose (app + PostgreSQL), où la base tourne elle aussi en conteneur — Docker et Docker Compose v2 suffisent ; avec docker run seul, il faut en plus une base PostgreSQL (≥ 16) accessible.
Voir les fiches Installation en production (Docker) et Déploiement sur Coolify / VPS pour le détail.
Étape suivante
Une fois ces prérequis réunis, passez à la fiche Installation locale.