[{"data":1,"prerenderedAt":298},["ShallowReactive",2],{"seo-verification":3,"blog-heberger-kimai-vps-ma-fr":6,"promo-bar-likely":297},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-heberger-kimai-vps-ma-fr",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":234,"ctaBody":235,"ctaButton":236,"ctaUrl":237,"relatedPosts":238},341,"heberger-kimai-vps",{"fr":10,"en":12,"ar":13,"es":14},"self-host-kimai-vps-open-source-time-tracking","استضافة-kimai-على-vps-تتبع-الوقت-مفتوح-المصدر","alojar-kimai-en-vps-seguimiento-tiempo-open-source","Héberger Kimai sur un VPS : time tracking open source","Kimai en Docker sur votre VPS : compose, HTTPS, rôles, budgets, facturation, API, sauvegardes et dépannage du time tracker open source.",14,0,false,"2026-01-09T00:00:00+00:00","2026-11-04T16:30:27+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},7,"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-kimai-vps-poster.svg",{"categorySlug":34,"appSlug":35},"erp","kimai","Kimai est un logiciel de suivi du temps open source, sous licence MIT, capable de remplacer Toggl Track, Clockify ou Harvest sur la durée : chronomètre, feuilles de temps, clients, projets, activités, taux horaires, budgets, rapports et facturation. Ce guide va au-delà de l'installation. Il détaille l'architecture de la pile Docker, un `docker-compose.yml` annoté pour qui déploie à la main, la mise en HTTPS derrière un reverse proxy, la création des comptes en ligne de commande, le modèle de données et les rôles, la facturation, l'API REST, les plugins, la sauvegarde, les mises à jour et les erreurs les plus fréquentes. Vous saurez ensuite exploiter Kimai en production pour une équipe, pas seulement le faire démarrer.",[38,42,50,53,62,65,83,86,89,97,115,118,121,130,133,139,142,157,161,164,167,170,178,181,189,229,232],{"type":39,"title":40,"body":41},"h2","Pourquoi self-hoster Kimai ?","Un outil de suivi du temps concentre des données sensibles : qui travaille pour quel client, combien d'heures, à quel taux. Sur un service SaaS, ces informations vivent chez l'éditeur et le coût augmente avec le nombre de comptes. En hébergeant Kimai sur votre propre VPS, vous gardez la base de données sous la main, vous ajoutez des utilisateurs sans frais de licence et vous choisissez vous-même le rythme des mises à jour.",{"type":43,"items":44},"ul",[45,46,47,48,49],"**Licence MIT** — aucun frais de licence, aucune limite d'utilisateurs imposée par l'éditeur.","**Facturation intégrée** — les factures se génèrent directement depuis les feuilles de temps, sans module externe.","**API REST documentée** — branchez vos outils internes (tickets, RH, tableaux de bord) sur vos propres données.","**Souveraineté des données** — heures, taux et fiches clients restent dans votre base MySQL.","**Pile légère** — un conteneur applicatif et une base MySQL, à l'aise sur un VPS d'entrée de gamme.",{"type":39,"title":51,"body":52},"Architecture : ce qui tourne sur le VPS","Kimai est une application **PHP** construite sur le framework **Symfony**. La version 2 s'appuie sur **MySQL ou MariaDB** ; SQLite n'est plus pris en charge. L'image officielle `kimai\u002Fkimai2` existe en deux variantes : `apache` (serveur web intégré, écoute sur le port **8001**) et `fpm` (à placer derrière votre propre Nginx). Le template ServOrbit utilise `kimai\u002Fkimai2:apache-latest` avec MySQL 8.0, ce qui ramène la pile à deux conteneurs.",{"type":43,"title":54,"items":55},"Les briques de la pile",[56,57,58,59,60,61],"**Conteneur `kimai`** — Apache et PHP, l'application Symfony dans `\u002Fopt\u002Fkimai`, port 8001 publié uniquement sur `127.0.0.1`.","**Conteneur `db`** — MySQL 8.0 avec un healthcheck `mysqladmin ping` : Kimai ne démarre qu'une fois la base prête.","**Volume `kimai_db`** — les fichiers de données MySQL, c'est-à-dire toutes vos feuilles de temps.","**Volume `kimai_data`** — `\u002Fopt\u002Fkimai\u002Fvar\u002Fdata`, les fichiers déposés dans l'application (modèles de facture, documents).","**Volume `kimai_public`** — `\u002Fopt\u002Fkimai\u002Fpublic\u002Favatars`, les avatars des utilisateurs.","**Reverse proxy** — Nginx, Caddy ou Traefik termine le HTTPS et transmet les requêtes au port local 8001.",{"type":39,"title":63,"body":64},"Déployer Kimai sur ServOrbit","Le Marketplace ServOrbit provisionne la pile complète sur Ubuntu 24.04 : Docker, MySQL 8.0, le conteneur Kimai, les trois volumes et un mot de passe administrateur généré. Aucun nom de domaine n'est nécessaire pour commencer.",{"type":66,"steps":67},"steps",[68,71,74,77,80],{"title":69,"body":70},"Lancer le déploiement","Dans votre espace client : **Marketplace → ERP & Gestion → Kimai → Déployer**. ServOrbit crée le VPS, installe Docker et lance la pile (MySQL 8 + Apache\u002FPHP) automatiquement.",{"title":72,"body":73},"Récupérer les identifiants","Attendez environ **60 secondes**. La carte de l'app affiche vos identifiants : login `admin@kimai.local`, mot de passe généré.",{"title":75,"body":76},"Se connecter sans domaine","Ouvrez un tunnel SSH : `ssh -L 8080:127.0.0.1:8001 root@\u003Cip>` puis `http:\u002F\u002Flocalhost:8080`. Ajoutez un domaine depuis le tableau de bord quand vous êtes prêt.",{"title":78,"body":79},"Créer client et projet","Créez votre premier **client**, puis un **projet** lié à ce client, et au moins une **activité**. Fixez un taux horaire ou un budget.",{"title":81,"body":82},"Saisir les premières heures","Cliquez **▶** pour lancer le chronomètre, choisissez le projet et l'activité : Kimai enregistre vos heures en temps réel.",{"type":84,"body":85},"tip","Dès la première connexion, ouvrez votre profil pour remplacer l'adresse `admin@kimai.local` par une adresse réelle et changer le mot de passe généré. Conservez ensuite ce compte super-administrateur pour l'administration et créez des comptes nominatifs pour le travail quotidien.",{"type":39,"title":87,"body":88},"Installation manuelle avec Docker Compose","Si vous préférez installer Kimai vous-même sur un VPS existant, voici un `docker-compose.yml` équivalent au template, avec un volume de plus pour les plugins. Placez-le dans un dossier dédié, par exemple `\u002Fopt\u002Fkimai`.\n\n```yaml\nservices:\n  db:\n    image: mysql:8.0\n    restart: unless-stopped\n    environment:\n      MYSQL_DATABASE: kimai\n      MYSQL_USER: kimai\n      MYSQL_PASSWORD: ${DB_PASSWORD}\n      MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}\n    volumes:\n      - kimai_db:\u002Fvar\u002Flib\u002Fmysql\n    healthcheck:\n      test: [\"CMD\", \"mysqladmin\", \"ping\", \"-h\", \"127.0.0.1\", \"--silent\"]\n      interval: 10s\n      retries: 12\n\n  kimai:\n    image: kimai\u002Fkimai2:apache-latest\n    restart: unless-stopped\n    depends_on:\n      db:\n        condition: service_healthy\n    ports:\n      - \"127.0.0.1:8001:8001\"\n    environment:\n      DATABASE_URL: \"mysql:\u002F\u002Fkimai:${DB_PASSWORD}@db\u002Fkimai?charset=utf8mb4&serverVersion=8.0.34\"\n      APP_SECRET: ${APP_SECRET}\n      ADMINMAIL: admin@votre-domaine.com\n      ADMINPASS: ${ADMIN_PASSWORD}\n      TRUSTED_HOSTS: \"localhost,127.0.0.1,kimai.votre-domaine.com\"\n    volumes:\n      - kimai_data:\u002Fopt\u002Fkimai\u002Fvar\u002Fdata\n      - kimai_plugins:\u002Fopt\u002Fkimai\u002Fvar\u002Fplugins\n      - kimai_public:\u002Fopt\u002Fkimai\u002Fpublic\u002Favatars\n\nvolumes:\n  kimai_db:\n  kimai_data:\n  kimai_plugins:\n  kimai_public:\n```\n\nGénérez ensuite les secrets dans un fichier `.env` lu automatiquement par Compose, puis démarrez la pile. Au premier lancement, le conteneur crée le schéma de base et le compte administrateur défini par `ADMINMAIL` et `ADMINPASS`.\n\n```bash\ncat > .env \u003C\u003CEOF\nDB_PASSWORD=$(openssl rand -hex 16)\nDB_ROOT_PASSWORD=$(openssl rand -hex 16)\nAPP_SECRET=$(openssl rand -hex 32)\nADMIN_PASSWORD=$(openssl rand -hex 12)\nEOF\nchmod 600 .env\ndocker compose up -d\ndocker compose logs -f kimai\n```",{"type":43,"title":90,"items":91},"Variables d'environnement à connaître",[92,93,94,95,96],"`DATABASE_URL` — chaîne de connexion Doctrine : utilisateur, mot de passe, hôte `db`, nom de base, `charset=utf8mb4` et `serverVersion`. Le mot de passe étant dans une URL, évitez les caractères `@`, `\u002F` ou `:` ; un secret hexadécimal règle la question.","`APP_SECRET` — clé Symfony utilisée pour signer sessions et jetons. Une valeur aléatoire longue, générée une fois et jamais modifiée sans raison : la changer déconnecte tout le monde.","`ADMINMAIL` et `ADMINPASS` — compte super-administrateur créé au premier démarrage. Une fois l'instance en place, gérez les comptes depuis l'interface ou la console.","`TRUSTED_HOSTS` — liste des noms d'hôte acceptés, séparés par des virgules. Elle doit contenir votre domaine public, sinon Symfony refuse les requêtes.","`MAILER_URL` — transport d'e-mail. Le template ServOrbit le fixe à `null:\u002F\u002Flocalhost` : aucun mail n'est envoyé. Renseignez un serveur SMTP pour activer la réinitialisation de mot de passe et les notifications.",{"type":66,"title":98,"steps":99},"Mettre Kimai derrière un domaine en HTTPS",[100,103,106,109,112],{"title":101,"body":102},"Pointer le DNS","Créez un enregistrement A `kimai.votre-domaine.com` vers l'IP publique du VPS et vérifiez la propagation avec `dig +short kimai.votre-domaine.com`.",{"title":104,"body":105},"Configurer le reverse proxy","Le port 8001 n'écoute que sur `127.0.0.1` : seul le proxy local peut l'atteindre. Exemple de bloc Nginx :\n\n```nginx\nserver {\n    listen 80;\n    server_name kimai.votre-domaine.com;\n\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:8001;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n}\n```",{"title":107,"body":108},"Obtenir le certificat","Avec certbot et son plugin Nginx, le certificat Let's Encrypt est émis et le bloc `server` est complété pour le port 443 :\n\n```bash\napt install -y certbot python3-certbot-nginx\ncertbot --nginx -d kimai.votre-domaine.com\n```",{"title":110,"body":111},"Déclarer le domaine à Kimai","Ajoutez `kimai.votre-domaine.com` à `TRUSTED_HOSTS`, puis `docker compose up -d` pour recréer le conteneur. Si les liens générés restent en `http:\u002F\u002F`, consultez la documentation Kimai sur les reverse proxies : les en-têtes `X-Forwarded-*` ne sont pris en compte que depuis un proxy déclaré de confiance.",{"title":113,"body":114},"Fermer les accès inutiles","Dans le pare-feu, n'ouvrez que 22, 80 et 443. MySQL n'a aucun port publié et ne doit pas en avoir.",{"type":39,"title":116,"body":117},"Créer des utilisateurs en ligne de commande","L'interface suffit pour gérer les comptes au quotidien, mais la console Symfony de Kimai est précieuse pour automatiser un onboarding ou récupérer un accès. La commande `kimai:user:create` prend un identifiant, une adresse e-mail et un rôle, puis demande le mot de passe :\n\n```bash\ndocker compose exec kimai \u002Fopt\u002Fkimai\u002Fbin\u002Fconsole kimai:user:create alice alice@votre-domaine.com ROLE_TEAMLEAD\n```\n\nLa même console expose `kimai:reload` pour reconstruire le cache après un changement de configuration, et `kimai:update` pour appliquer les migrations de base lors d'une installation hors Docker. Tapez `bin\u002Fconsole list kimai` dans le conteneur pour voir les commandes disponibles sur votre version.",{"type":39,"title":119,"body":120},"Le modèle de données : clients, projets, activités","Kimai organise le temps sur trois niveaux. Un **client** porte la devise, le fuseau horaire et les coordonnées de facturation. Un **projet** appartient à un client et peut avoir des dates de début et de fin, un numéro de commande et un budget. Une **activité** décrit la nature du travail (développement, réunion, support) ; elle peut être rattachée à un projet ou être **globale**, donc utilisable partout. Chaque entrée de feuille de temps relie un utilisateur, un projet, une activité, une plage horaire et, si besoin, une description et des étiquettes. Bien concevoir cette hiérarchie au départ évite de longues corrections : un client par entité facturée, un projet par mission ou contrat, des activités globales pour les tâches transverses.",{"type":43,"title":122,"items":123},"Taux et budgets",[124,125,126,127,128,129],"**Taux horaire** — définissable sur le client, le projet, l'activité ou l'utilisateur ; le niveau le plus précis s'applique à l'entrée.","**Taux fixe** — un montant forfaitaire par entrée, utile pour une intervention facturée au forfait quelle que soit sa durée.","**Taux interne** — le coût réel d'une heure pour vous, distinct du prix facturé, pour mesurer la rentabilité d'un projet.","**Budget en temps ou en argent** — sur un client, un projet ou une activité, avec un suivi visuel de la consommation.","**Budget mensuel ou global** — un forfait de maintenance mensuel se suit différemment d'un projet au forfait sur toute sa durée.","**Dépassement** — les tableaux de bord signalent la consommation du budget, et un réglage de configuration permet d'autoriser ou de refuser la saisie au-delà.",{"type":39,"title":131,"body":132},"Rôles, équipes et permissions","Kimai distingue des rôles hiérarchiques, et l'écran **Rôles et permissions** permet d'ajuster finement ce que chacun voit et modifie. Les **équipes** complètent ce dispositif : un client, un projet ou une activité réservé à une équipe n'apparaît qu'à ses membres, et le **chef d'équipe** voit et valide les heures de son équipe sans accéder au reste de l'entreprise. Pour un intervenant externe, créez un compte utilisateur limité à une équipe dédiée.",{"type":43,"items":134},[135,136,137,138],"`ROLE_USER` — saisit et consulte ses propres heures sur les projets qui lui sont accessibles.","`ROLE_TEAMLEAD` — voit et modifie les heures des membres de ses équipes, consulte leurs rapports.","`ROLE_ADMIN` — gère clients, projets, activités, factures et utilisateurs.","`ROLE_SUPER_ADMIN` — accès complet, y compris la configuration système et les permissions.",{"type":39,"title":140,"body":141},"Facturer à partir des feuilles de temps","Le module de facturation transforme une sélection d'heures en document. Depuis le menu **Factures**, vous choisissez un client, une période, éventuellement un projet, puis un **modèle**. Kimai calcule les montants à partir des taux, affiche un aperçu et enregistre la facture avec un statut (en attente, payée, annulée). Les entrées facturées peuvent être marquées comme **exportées**, ce qui évite de les facturer deux fois et les protège contre une modification ultérieure.",{"type":66,"title":143,"steps":144},"Préparer votre premier modèle de facture",[145,148,151,154],{"title":146,"body":147},"Créer le modèle","Dans **Factures → Modèles**, renseignez l'émetteur, l'adresse, les coordonnées bancaires, le délai de paiement et le texte de pied de page.",{"title":149,"body":150},"Choisir le format de rendu","Sélectionnez un rendu PDF ou HTML pour un document prêt à envoyer, ou un format bureautique si vous retravaillez la facture ailleurs.",{"title":152,"body":153},"Définir la numérotation","Configurez le format du numéro de facture (préfixe, année, compteur) pour obtenir une séquence continue conforme à vos habitudes comptables.",{"title":155,"body":156},"Paramétrer la taxe","Indiquez le taux de taxe applicable dans le modèle ; créez un modèle par régime si vous facturez des clients soumis à des taux différents.",{"type":158,"title":159,"body":160},"callout","TVA et mentions obligatoires","Kimai calcule une taxe à partir du taux saisi dans le modèle, mais il ne connaît pas votre situation fiscale. Les mentions légales, le taux applicable et la conservation des factures dépendent de votre pays et de votre statut : faites valider votre modèle par votre comptable. Si vous tenez une comptabilité complète dans un ERP comme Dolibarr, Kimai peut rester l'outil de saisie du temps et l'export servir de base à la facture finale.",{"type":39,"title":162,"body":163},"API REST et intégrations","Kimai expose une **API REST** couvrant clients, projets, activités, feuilles de temps et utilisateurs. Sa documentation interactive est servie par votre propre instance à l'adresse `\u002Fapi\u002Fdoc`, à jour avec la version installée. Pour authentifier un script, créez un **jeton d'API** depuis votre profil utilisateur, puis passez-le en en-tête :\n\n```bash\ncurl -s -H \"Authorization: Bearer VOTRE_JETON\" \\\n  https:\u002F\u002Fkimai.votre-domaine.com\u002Fapi\u002Ftimesheets\n```\n\nUn jeton hérite des permissions de son utilisateur : créez un compte de service avec le rôle minimal nécessaire plutôt que d'utiliser le super-administrateur. L'API permet par exemple de démarrer un chronomètre depuis un raccourci, de remonter les heures dans un tableau de bord ou de synchroniser les projets avec votre outil de tickets.",{"type":39,"title":165,"body":166},"Étendre Kimai avec des plugins","Kimai dispose d'une boutique de plugins sur son site officiel, avec des extensions gratuites et payantes : notes de frais, champs personnalisés, circuits de validation des feuilles de temps, imports depuis d'autres outils. Un plugin est un dossier placé dans `var\u002Fplugins\u002F`. Dans Docker, montez ce dossier sur un volume, sinon il disparaît à la recréation du conteneur — c'est le rôle de `kimai_plugins` dans le compose ci-dessus. Installation type :\n\n```bash\ndocker compose cp NomDuPluginBundle kimai:\u002Fopt\u002Fkimai\u002Fvar\u002Fplugins\u002F\ndocker compose exec kimai \u002Fopt\u002Fkimai\u002Fbin\u002Fconsole kimai:reload --env=prod\n```\n\nCertains plugins ajoutent des tables et fournissent une commande d'installation dédiée ; suivez la fiche du plugin et vérifiez sa compatibilité avec votre version de Kimai avant chaque mise à jour.",{"type":39,"title":168,"body":169},"Sauvegarde et restauration","L'essentiel tient dans la base MySQL ; les volumes `kimai_data` et `kimai_public` complètent la sauvegarde. Un dump logique est plus portable qu'une copie à chaud des fichiers MySQL :\n\n```bash\ndocker compose exec -T db sh -c 'exec mysqldump --single-transaction -u\"$MYSQL_USER\" -p\"$MYSQL_PASSWORD\" \"$MYSQL_DATABASE\"' > kimai-$(date +%F).sql\ndocker run --rm -v kimai_kimai_data:\u002Fdata -v \"$PWD\":\u002Fbackup alpine tar czf \u002Fbackup\u002Fkimai_data-$(date +%F).tgz -C \u002Fdata .\n```\n\nLe nom réel du volume est préfixé par le nom du projet Compose : vérifiez-le avec `docker volume ls`. Pour restaurer, démarrez une pile vide avec le même `.env`, puis réinjectez le dump :\n\n```bash\ndocker compose exec -T db sh -c 'exec mysql -u\"$MYSQL_USER\" -p\"$MYSQL_PASSWORD\" \"$MYSQL_DATABASE\"' \u003C kimai-AAAA-MM-JJ.sql\n```\n\nPlanifiez le dump chaque nuit via cron, copiez-le hors du VPS (Restic, BorgBackup ou stockage objet) et testez une restauration au moins une fois : une sauvegarde jamais restaurée n'est qu'une hypothèse.",{"type":43,"title":171,"items":172},"Mises à jour sans surprise",[173,174,175,176,177],"**Sauvegarder d'abord** — un dump juste avant la mise à jour permet de revenir en arrière si une migration échoue.","**Mettre à jour l'image** — `docker compose pull kimai && docker compose up -d kimai`, puis suivez `docker compose logs -f kimai`. Au démarrage, le conteneur applique les migrations de base automatiquement.","**Épingler une version** — en production, remplacez `apache-latest` par une étiquette versionnée de l'image pour décider du moment de la montée de version.","**Lire les notes de version** — certaines versions majeures changent des prérequis ou des comportements de plugins.","**Exporter régulièrement** — l'export CSV ou XLSX des feuilles de temps reste une copie lisible, utile pour un audit ou une migration.",{"type":39,"title":179,"body":180},"Dépannage courant","La plupart des incidents Kimai en Docker se rattachent à quelques causes connues. Commencez toujours par `docker compose logs kimai` et `docker compose ps`.",{"type":43,"items":182},[183,184,185,186,187,188],"**« Untrusted Host » ou erreur 400 après l'ajout d'un domaine** — le nom d'hôte manque dans `TRUSTED_HOSTS`. Ajoutez-le puis recréez le conteneur.","**Erreur 500 et « Permission denied » sur `var\u002F`** — souvent après une commande console lancée avec un autre utilisateur que celui du serveur web. Rétablissez la propriété avec `docker compose exec kimai chown -R www-data:www-data \u002Fopt\u002Fkimai\u002Fvar`, puis `kimai:reload`.","**Changement de configuration sans effet** — le cache Symfony sert l'ancienne version : `docker compose exec kimai \u002Fopt\u002Fkimai\u002Fbin\u002Fconsole kimai:reload --env=prod`.","**Kimai redémarre en boucle au premier lancement** — la base n'est pas prête ou `DATABASE_URL` est erroné. Vérifiez le healthcheck de `db` et les identifiants du `.env`.","**Liens en `http:\u002F\u002F` derrière le proxy HTTPS** — les en-têtes `X-Forwarded-Proto` ne sont pas transmis ou pas pris en compte ; revoyez la configuration du proxy.","**Mot de passe oublié sans e-mail configuré** — `MAILER_URL` pointe vers `null:\u002F\u002F` : réinitialisez le mot de passe depuis un compte administrateur ou créez un nouvel administrateur en console.",{"type":190,"title":191,"headers":192,"rows":198},"comparison","Kimai face à Toggl Track, Clockify et Harvest",[193,194,195,196,197],"Critère","Kimai (self-hosted)","Toggl Track","Clockify","Harvest",[199,203,207,211,216,221,225],[200,201,202,202,202],"Licence","Open source (MIT)","Propriétaire",[204,205,206,206,206],"Hébergement","Votre VPS","SaaS de l'éditeur",[208,209,210,210,210],"Emplacement des données","Votre base MySQL","Infrastructure de l'éditeur",[212,213,214,215,214],"Modèle de coût","Serveur uniquement, sans frais par utilisateur","Palier gratuit limité, puis abonnement","Palier gratuit, puis abonnement",[217,218,219,219,220],"Facturation","Module intégré (modèles, numérotation, taxe)","Selon l'offre souscrite","Intégrée au produit",[222,223,224,224,224],"API","REST, jetons, documentation embarquée","REST",[226,227,228,228,228],"Personnalisation","Code source, plugins, configuration","Paramètres et intégrations",{"type":39,"title":230,"body":231},"Dimensionner le VPS","Kimai est sobre : la charge vient surtout de MySQL et de la génération de rapports sur de longues périodes. Pour un freelance ou une petite équipe, **1 vCPU et 1 à 2 Go de RAM** suffisent. Au-delà d'une vingtaine d'utilisateurs actifs, ou si vous produisez régulièrement des rapports annuels et des exports volumineux, prévoyez **2 vCPU et 4 Go**, ce qui laisse de la marge au cache InnoDB de MySQL. L'espace disque reste modeste : quelques gigaoctets couvrent des années de feuilles de temps, mais gardez de la place pour les dumps locaux avant leur envoi hors serveur.",{"type":84,"body":233},"Avant d'inviter l'équipe, fixez les règles du jeu dans **Paramètres** : arrondi des durées, saisie dans le futur autorisée ou non, verrouillage des périodes déjà facturées. Ces choix sont plus simples à poser sur une instance vide que sur des mois d'historique.","Déployez Kimai sur votre VPS en 60 secondes","ServOrbit préconfigure la pile complète (Apache\u002FPHP + MySQL 8) et génère vos identifiants admin — prêt à saisir vos premières heures.","Lancer Kimai","\u002Fapplications\u002Ferp\u002Fkimai",[239,257,277],{"id":240,"slug":241,"slugs":242,"title":246,"excerpt":247,"readTime":248,"views":18,"isPinned":19,"noindex":19,"publishedAt":249,"updatedAt":250,"category":251,"categories":252,"featuredImage":30,"bgImage":31,"posterImage":254,"relatedSolution":255},143,"heberger-dolibarr-vps",{"fr":241,"en":243,"ar":244,"es":245},"hosting-dolibarr-on-a-vps-open-source-erp-under-control","استضافة-dolibarr-على-خادم-vps-نظام-erp-حر-تحت-السيطرة","alojar-dolibarr-en-un-vps-erp-libre","Héberger Dolibarr sur VPS : ERP libre sous contrôle","Déployez Dolibarr sur VPS ServOrbit : ERP\u002FCRM libre, base maîtrisée, sauvegardes et accès HTTPS pour votre PME.",11,"2026-02-02T00:00:00+00:00","2026-11-09T20:55:19+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[253],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-dolibarr-vps-poster.svg",{"categorySlug":34,"appSlug":256},"dolibarr",{"id":258,"slug":259,"slugs":260,"title":264,"excerpt":265,"readTime":266,"views":23,"isPinned":19,"noindex":19,"publishedAt":267,"updatedAt":268,"category":269,"categories":274,"featuredImage":30,"bgImage":31,"posterImage":276,"relatedSolution":30},37,"deployer-avec-nginx-proxy-manager",{"fr":259,"en":261,"ar":262,"es":263},"deploy-your-applications-with-nginx-proxy-manager-on-a-vps","انشر-تطبيقاتك-باستخدام-nginx-proxy-manager-على-خادم-vps","desplegar-con-nginx-proxy-manager","Déployer vos applications avec Nginx Proxy Manager sur un VPS","Gérez domaines, SSL et reverse proxy de plusieurs services sur un VPS avec Nginx Proxy Manager : installation, réseaux Docker, dépannage 502 et configuration avancée.",10,"2026-05-14T00:00:00+00:00","2026-11-08T01:13:14+00:00",{"id":270,"name":271,"slug":272,"color":273,"icon":272},3,"Déploiement","deploiement","bg-success\u002F10 text-success",[275],{"id":270,"name":271,"slug":272,"color":273,"icon":272},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-nginx-proxy-manager-poster.svg",{"id":278,"slug":279,"slugs":280,"title":284,"excerpt":285,"readTime":248,"views":18,"isPinned":19,"noindex":19,"publishedAt":286,"updatedAt":287,"category":288,"categories":294,"featuredImage":30,"bgImage":31,"posterImage":296,"relatedSolution":30},113,"sauvegardes-restic-vps",{"fr":279,"en":281,"ar":282,"es":283},"automate-your-vps-backups-with-restic","أتمتة-نسخ-خادمك-vps-الاحتياطية-باستخدام-restic","copias-de-seguridad-vps-con-restic","Automatiser les sauvegardes de votre VPS avec Restic","Automatisez les sauvegardes de votre VPS avec Restic : snapshots chiffrés, déduplication et envoi vers S3 ou tout backend objet.","2026-02-27T00:00:00+00:00","2026-11-08T01:13:12+00:00",{"id":289,"name":290,"slug":291,"color":292,"icon":293},8,"Sécurité & Monitoring","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[295],{"id":289,"name":290,"slug":291,"color":292,"icon":293},"\u002Fblog\u002Fcovers\u002Fsauvegardes-restic-vps-poster.svg",true,1794270722978]