Skip to content
OpenTickly

Auto-hébergement

Déployez OpenTickly sur votre propre machine — un seul fichier Docker Compose démarre Web + API + Postgres + Redis, en ligne en 5 minutes. 100 % compatible avec l'API Toggl, les clients officiels s'y connectent directement.

Faire tourner OpenTickly sur votre propre machine ne demande qu'un docker-compose.yml. Voici le parcours complet, de zéro jusqu'à une instance opérationnelle.

Prérequis système

  • N'importe quelle machine Linux, macOS ou Windows avec Docker Engine 20.10+ et Docker Compose v2 installés
  • Environ 1 Go de mémoire et 1 Go d'espace disque
  • Un port TCP libre (par défaut 8080)

Si Docker n'est pas installé, suivez d'abord le guide officiel puis revenez ici.


Déployer le serveur

Étape 1 — Télécharger docker-compose.yml

Créez un nouveau répertoire et récupérez le fichier compose officiel :

mkdir -p opentickly && cd opentickly

wget -O docker-compose.yml \
  https://raw.githubusercontent.com/CorrectRoadH/OpenTickly/main/docker-compose.yml

Ce fichier compose définit trois conteneurs :

  • OpenTickly — Web UI + API REST (expose le port 8080 vers l'extérieur)
  • postgres — base de données (uniquement sur le réseau interne, non exposée)
  • redis — cache et file d'arrière-plan (uniquement sur le réseau interne, non exposée)

Étape 2 — (Optionnel) Configurer .env

Les valeurs par défaut fonctionnent immédiatement. Si vous souhaitez changer le port ou les mots de passe, créez un fichier .env dans le même répertoire :

# Port exposé pour la Web UI et l'API
OPENTOGGL_PORT=8080

# Fortement recommandé de remplacer par un mot de passe fort avant toute mise en production
OPENTOGGL_POSTGRES_PASSWORD=postgres
OPENTOGGL_REDIS_PASSWORD=opentoggl

Ces trois variables sont les seules configurations surchargeables de tout le fichier compose — tout le reste (noms de base de données, utilisateurs, images, chaînes de connexion internes) est codé en dur pour éviter la dérive de configuration. Pour une personnalisation plus poussée, modifiez directement docker-compose.yml.

En production, remplacez impérativement les deux mots de passe. Les valeurs par défaut ne conviennent qu'aux essais locaux. Même si les ports Postgres/Redis ne sont pas exposés à l'hôte, définir un mot de passe reste une protection de base contre toute intrusion sur le réseau interne.

Étape 3 — Démarrer les conteneurs

docker compose up -d

Accéder à l'application Web

Ouvrez http://<votre-ip>:8080 dans votre navigateur, créez le premier compte et commencez à enregistrer votre temps.

Sur mobile

Il n'existe pas encore d'application mobile officielle, mais vous pouvez ajouter la Web UI à l'écran d'accueil de votre téléphone (PWA). Des clients Toggl tiers comme Timery sont en cours de discussion avec leurs développeurs pour ajouter la prise en charge d'OpenTickly.


Connecter les agents IA

OpenTickly n'applique pas la limite de 30 appels API par heure — autrement dit, des agents comme Claude ou Cursor peuvent en profiter sans retenue. Associez-le à toggl-cli et installez le pack de compétences dans l'environnement de votre agent : en quelques minutes, l'IA peut démarrer et arrêter vos minuteurs et ranger vos projets à votre place.

Mise à jour

docker compose pull
docker compose up -d

Déployer sur NAS / Homelab

OpenTickly fonctionne sur n'importe quelle plateforme prenant en charge Docker Compose. Les sections ci-dessous se contentent d'habiller la procédure précédente dans l'interface de chaque système — les commandes sous-jacentes sont strictement identiques.

CasaOS

  1. Ouvrez le tableau de bord CasaOS
  2. Allez dans App StoreInstallation personnaliséeImporter docker-compose
  3. Collez le contenu de docker-compose.yml
  4. Réglez le port Web UI sur 8080 puis enregistrez
  5. Lancez l'app depuis le tableau de bord

Accédez-y via http://<votre-ip-casaos>:8080.

ZimaOS

ZimaOS (le système officiel des Zimablade / Zimacube) partage le même App Store que CasaOS, la procédure est donc strictement identique : App StoreInstallation personnaliséeImporter docker-compose, puis collez le fichier compose.

Synology

Synology DSM 7.2+ prend en charge Docker Compose via Container Manager :

  1. Ouvrez Container ManagerProjetCréer
  2. Donnez un nom au projet, par exemple opentickly
  3. Choisissez Utiliser docker-compose.yml et collez le fichier compose
  4. Suivez l'assistant jusqu'au bout

Si le port 8080 entre en conflit avec DSM, ajoutez OPENTOGGL_PORT=9090 (ou tout autre port libre) dans les paramètres d'environnement avant de créer le projet.

fnOS

fnOS embarque un panneau Docker intégré :

  1. Ouvrez l'application Docker depuis le bureau fnOS
  2. Dans la barre latérale gauche, sélectionnez ComposeNouveau projet
  3. Nom du projet : opentickly, laissez le chemin de stockage par défaut
  4. Dans Contenu Compose, collez le fichier compose
  5. Cliquez sur Déployer et attendez que les trois conteneurs passent au vert

Autres plateformes

Les plateformes suivantes suivent la même procédure Docker Compose :

  • Unraid — via Community Applications ou le plugin Compose Manager
  • TrueNAS SCALE — via une app personnalisée avec Docker Compose
  • Proxmox LXC — installez Docker dans un conteneur LXC, puis suivez les étapes de la section Déployer le serveur

Référence de configuration

L'ensemble du fichier compose ne comporte que trois variables surchargeables :

VariablePar défautDescription
OPENTOGGL_PORT8080Port exposé pour la Web UI et l'API
OPENTOGGL_POSTGRES_PASSWORDpostgresMot de passe Postgres (à changer en production)
OPENTOGGL_REDIS_PASSWORDopentogglMot de passe Redis (à changer en production)

Toutes les autres configurations (nom de la base, utilisateur, tag d'image, chaînes de connexion internes, noms de volumes) sont codées en dur dans docker-compose.yml. Pour les ajuster, éditez directement le fichier.

Endpoints de health check

CheminUsage
/readyzReadiness (dépend de la DB + Redis)
/healthzLiveness (le processus tourne-t-il ?)

Étapes suivantes

  • Intégration IA — connectez Claude, Cursor et consorts à votre propre instance
  • Dépôt GitHub — code source, Issues, Discussions
  • Un souci au déploiement ? N'hésitez pas à le signaler sur les Issues

On this page