[{"data":1,"prerenderedAt":201},["ShallowReactive",2],{"seo-verification":3,"blog-heberger-erpnext-vps-ma-fr":6,"promo-bar-likely":200},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-heberger-erpnext-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":134,"ctaBody":135,"ctaButton":136,"ctaUrl":137,"relatedPosts":138},150,"heberger-erpnext-vps",{"fr":10,"en":12,"ar":13,"es":14},"how-to-host-erpnext-on-a-vps","كيفية-استضافة-erpnext-على-vps","como-alojar-erpnext-en-un-vps","Héberger ERPNext sur un VPS : guide complet","Déployez ERPNext sur votre VPS : modules, post-installation, monitoring, dépannage et comparatif ERPNext vs Odoo Community. Guide complet avec Frappe Docker.",9,2,false,"2026-01-26T00:00:00+00:00","2026-09-07T11:26:10+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-erpnext-vps-poster.svg",{"categorySlug":34,"appSlug":35},"erp","erpnext","ERPNext est un ERP open source complet : comptabilité, ventes, achats, stock, production et RH dans une seule application. Auto-hébergé sur votre VPS, il vous donne un système de gestion intégré sans abonnement par utilisateur et sans que vos données financières ne quittent votre infrastructure. Ce guide couvre le déploiement pas à pas avec la stack officielle Frappe Docker, la configuration post-installation, la supervision, le dépannage des erreurs courantes et une comparaison avec Odoo Community pour choisir le bon outil.",[38,42,52,55,58,83,86,89,92,128,131],{"type":39,"title":40,"body":41},"h2","Pourquoi self-héberger ERPNext sur un VPS","Un ERP centralise les données les plus sensibles de l'entreprise : écritures comptables, marges, fiches clients et fournisseurs, paie. Les offres SaaS facturent souvent par utilisateur et par mois, ce qui devient coûteux à mesure que les équipes grandissent. Sur un VPS dédié, vous payez le serveur une fois, vous ajoutez autant d'utilisateurs que nécessaire, et la base de données reste sous votre contrôle, sauvegardée selon vos propres règles.\n\nERPNext repose sur **Frappe**, un framework Python\u002FJavaScript qui rend le code source lisible et extensible. Une instance auto-hébergée vous ouvre les mises à jour sur votre propre calendrier, le choix des apps complémentaires (HRMS, e-Commerce, Education, Healthcare) et la possibilité de coder vos propres modules sans dépendre d'un éditeur.",{"type":43,"title":44,"items":45},"ul","Les bénéfices concrets d'un ERPNext auto-hébergé",[46,47,48,49,50,51],"Aucun coût par utilisateur : ajoutez vos équipes sans augmenter la facture.","Souveraineté des données comptables et RH, qui restent sur votre serveur.","Tous les modules disponibles (compta, stock, CRM, fabrication, paie) sans palier payant.","Personnalisation libre via le framework Frappe et les apps complémentaires.","Sauvegardes et rétention maîtrisées, adaptées à vos obligations légales.","Évolutivité : montez en RAM\u002FvCPU à mesure que le volume de transactions croît.",{"type":39,"title":53,"body":54},"Les modules clés d'ERPNext","ERPNext couvre l'ensemble du cycle opérationnel d'une entreprise. **Comptabilité** : plan comptable multidevise, grand livre, rapports réglementaires (bilan, compte de résultat), gestion TVA et rapprochement bancaire. **Ventes et achats** : devis, commandes, livraisons, factures et avoirs avec workflow de validation. **Gestion des stocks** : entrepôts multiples, lots et numéros de série, inventaires tournants et valorisation FIFO ou moyenne mobile. **CRM** : leads, opportunités, campagnes et pipeline commercial avec tableau de bord des activités. **Fabrication** : nomenclatures (BOM), ordres de fabrication, suivi des postes de charge et des rebuts. **Ressources humaines** : fiches employés, congés, présences, paie configurable par pays et évaluation de performance.\n\nChaque module s'active depuis le bureau ERPNext ; vous n'installez que ce dont vous avez besoin, et les droits d'accès se définissent par rôle au niveau du document.",{"type":39,"title":56,"body":57},"Prérequis matériels et logiciels","ERPNext est plus exigeant que la moyenne. Comptez au minimum 2 vCPU et 4 Go de RAM pour un usage de test, et 4 vCPU \u002F 8 Go de RAM pour une production avec plusieurs utilisateurs simultanés. Prévoyez 20 Go de disque pour la base MariaDB, Redis et les fichiers téléversés.\n\nCôté logiciel : Docker et Docker Compose v2 (>= 2.20), un nom de domaine (ex. `erp.monsaas.com`) pointant vers l'IP du VPS, et le port 443 ouvert en entrée. ERPNext utilise MariaDB 10.6+ comme base de données principale et Redis pour le cache et les workers temps réel — les deux sont inclus dans la stack `frappe_docker` ; vous n'avez pas à les installer séparément.",{"type":59,"title":60,"steps":61},"steps","Déployer ERPNext avec Frappe Docker et HTTPS",[62,65,68,71,74,77,80],{"title":63,"body":64},"Préparer le VPS et Docker","En SSH, mettez à jour le système (`apt update && apt upgrade -y`) et installez Docker via `curl -fsSL https:\u002F\u002Fget.docker.com | sh`. Ajoutez votre utilisateur au groupe docker : `usermod -aG docker $USER`. Vérifiez avec `docker compose version` (v2 requis).",{"title":66,"body":67},"Récupérer frappe_docker","Clonez le dépôt officiel et choisissez la branche qui correspond à la version cible :\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Ffrappe\u002Ffrappe_docker\ncd frappe_docker\n```\n\nLe dossier `overrides\u002F` contient des compose partials pour Caddy (HTTPS auto), Traefik et l'app HRMS — assemblez-les selon vos besoins.",{"title":69,"body":70},"Configurer l'environnement","Copiez `example.env` en `.env` et ajustez les variables essentielles :\n\n```bash\ncp example.env .env\n```\n\nDans `.env`, définissez `FRAPPE_SITE_NAME_HEADER`, `DB_PASSWORD`, `REDIS_CACHE`, et — si vous utilisez l'override Caddy — `LETSENCRYPT_EMAIL` et le domaine dans `Caddyfile`. Ne déployez jamais avec les mots de passe par défaut.",{"title":72,"body":73},"Lancer la stack","Démarrez tous les services :\n\n```bash\ndocker compose --project-name erpnext \\\n  -f compose.yaml \\\n  -f overrides\u002Fcompose.mariadb.yaml \\\n  -f overrides\u002Fcompose.redis.yaml \\\n  -f overrides\u002Fcompose.https.yaml \\\n  up -d\n```\n\nPuis créez le site ERPNext et installez l'app :\n\n```bash\ndocker compose exec backend bench new-site erp.monsaas.com \\\n  --mariadb-root-password \u003Crootpwd> \\\n  --admin-password \u003Cadminpwd>\ndocker compose exec backend bench --site erp.monsaas.com install-app erpnext\ndocker compose exec backend bench --site erp.monsaas.com migrate\n```\n\nSuivez les logs pour confirmer que tous les services (db, redis, workers, scheduler) sont sains : `docker compose logs -f`.",{"title":75,"body":76},"Configurer le reverse proxy","Si vous n'utilisez pas l'override Caddy inclus, placez Nginx devant ERPNext. Exemple minimal :\n\n```bash\nserver {\n  listen 443 ssl;\n  server_name erp.monsaas.com;\n  ssl_certificate     \u002Fetc\u002Fletsencrypt\u002Flive\u002Ferp.monsaas.com\u002Ffullchain.pem;\n  ssl_certificate_key \u002Fetc\u002Fletsencrypt\u002Flive\u002Ferp.monsaas.com\u002Fprivkey.pem;\n  location \u002F { proxy_pass http:\u002F\u002F127.0.0.1:8080; proxy_set_header Host $host; }\n}\n```\n\nAvec Caddy, un simple `Caddyfile` suffit : `erp.monsaas.com { reverse_proxy backend:8000 }` — le certificat Let's Encrypt est obtenu et renouvelé automatiquement.",{"title":78,"body":79},"Sécuriser et sauvegarder","Restreignez les ports internes (MariaDB 3306, Redis 6379) au loopback ou au réseau Docker interne. Planifiez des sauvegardes régulières avec `bench backup` et stockez-les hors du VPS :\n\n```bash\ndocker compose exec backend bench --site erp.monsaas.com backup --with-files\n```\n\nLes fichiers de backup sont placés dans `sites\u002Ferp.monsaas.com\u002Fprivate\u002Fbackups\u002F` — copiez-les vers un stockage objet externe (S3, Garage) pour la reprise après incident.",{"title":81,"body":82},"Se connecter la première fois","Ouvrez l'adresse de votre application et connectez-vous avec l'identifiant `Administrator` et le mot de passe administrateur défini lors du `bench new-site`. Comptez quelques minutes après l'installation avant que l'adresse réponde — les migrations initiales tournent en arrière-plan. ERPNext enchaîne sur son assistant de configuration : langue, fuseau horaire, devise, exercice comptable et société.",{"type":39,"title":84,"body":85},"Post-installation : société, exercice et utilisateurs","Une fois connecté en Administrator, rendez-vous dans **Paramètres → Paramètres système** pour confirmer le fuseau horaire et le format de date, puis dans **Comptabilité → Plan comptable** pour adapter la structure aux normes locales (ERPNext propose des charts of accounts pour une centaine de pays).\n\nCréez votre société dans **Comptabilité → Société** : renseignez la devise de base, le numéro fiscal et l'exercice comptable de départ. ERPNext crée automatiquement les comptes de clôture et les entrées de bilan d'ouverture.\n\nPour les utilisateurs, allez dans **Paramètres → Utilisateurs et autorisations → Utilisateur** : assignez les rôles métier (Accounts Manager, Stock User, HR Manager…) plutôt que des droits document par document. Les rôles se combinent : un utilisateur peut être à la fois `Sales User` et `Purchase User` sans droits d'administration.",{"type":39,"title":87,"body":88},"Monitoring et maintenance","ERPNext fournit plusieurs points d'entrée pour superviser une instance en production.\n\n**`bench doctor`** est la commande de diagnostic intégrée : elle vérifie l'état des workers Celery, du scheduler et de la connexion Redis. Lancez-la depuis le conteneur :\n\n```bash\ndocker compose exec backend bench doctor\n```\n\nUn worker absent ou une queue bloquée s'affiche immédiatement.\n\n**Logs applicatifs** — les journaux ERPNext sont dans `sites\u002F\u003Csite>\u002Flogs\u002F` à l'intérieur du volume `sites` :\n- `web.log` : erreurs HTTP et traces Python du backend Gunicorn ;\n- `worker.error.log` : exceptions des workers Celery (tâches planifiées, envois d'e-mail) ;\n- `scheduler.log` : cycles du planificateur.\n\n**Sauvegarde automatisée** — créez une tâche cron sur l'hôte pour lancer `bench backup` quotidiennement et copier les archives vers un stockage distant :\n\n```bash\n0 3 * * * docker compose -p erpnext exec -T backend \\\n  bench --site erp.monsaas.com backup --with-files \\\n  && rclone copy \u002Fpath\u002Fto\u002Fbackups remote:erpnext-backups\n```\n\n**Mises à jour** — avant chaque montée de version majeure, faites un backup complet, lisez les release notes, testez sur une copie, puis : `bench update --reset` dans le conteneur. Les migrations de schéma s'appliquent automatiquement, mais certaines versions majeures d'ERPNext exigent une montée préalable vers la version mineure la plus haute (ex. v14 → v14.x latest avant de passer à v15).",{"type":39,"title":90,"body":91},"Dépannage : erreurs courantes","**Worker crash : `RedisBroadcastError` ou `ConnectionRefusedError` vers Redis**\nErreur dans `worker.error.log` : `redis.exceptions.ConnectionRefusedError: [Errno 111] Connection refused`. Cause : le conteneur Redis s'est arrêté ou a redémarré après un OOM. Vérifiez : `docker compose ps redis` — s'il est en `Exited`, relancez avec `docker compose up -d redis` puis redémarrez les workers. Si le crash est répété, augmentez la RAM allouée au VPS ou limitez le nombre de workers dans `common_site_config.json`.\n\n**Migration de schéma bloquée : `frappe.exceptions.SchemaChangedError`**\nErreur lors d'un `bench migrate` : `SchemaChangedError: \u003CDocType> has been manually modified`. Cause : une colonne a été modifiée manuellement en base, ERPNext refuse d'écraser. Remède : `bench --site erp.monsaas.com migrate --skip-failing`, puis inspectez le doctype concerné dans l'interface et relancez `migrate` sans le flag.\n\n**Timeout bench : `Traceback ... requests.exceptions.ReadTimeout`**\nErreur lors d'une action longue (import CSV massif, recalcul de stock) : `ReadTimeout: HTTPConnectionPool`. Augmentez le timeout Gunicorn dans `common_site_config.json` : `\"gunicorn_workers\": 2, \"web_timeout\": 120`. Redémarrez le service web : `docker compose restart backend`.\n\n**MariaDB connexion refusée : `OperationalError: (2003, \"Can't connect to MySQL server on 'db'\")`**\nErreur au démarrage de `bench new-site` ou au lancement des workers. Cause habituelle : le conteneur MariaDB n'est pas encore prêt ou le health check a échoué. Vérifiez : `docker compose logs db | tail -20`. Si MariaDB sort `[ERROR] InnoDB: Page 0 log sequence number`, les fichiers de base sont corrompus — restaurez depuis le dernier backup. Si c'est un simple délai de démarrage, attendez 30 secondes et relancez la commande.\n\n**Site vide après `bench migrate` : `TemplateNotFound`**\nERPNext affiche une page blanche ou une erreur Jinja après une mise à jour. Cause : les assets statiques n'ont pas été reconstruits. Lancez : `docker compose exec backend bench --site erp.monsaas.com clear-cache && bench build --app erpnext`. Un redémarrage du conteneur `frontend` (si séparé) peut également suffire.",{"type":93,"title":94,"headers":95,"rows":99},"comparison","ERPNext vs Odoo Community : quand choisir l'un ou l'autre",[96,97,98],"Critère","ERPNext","Odoo Community",[100,104,108,112,116,120,124],[101,102,103],"Licence","GPL v3 — code et modules libres","LGPL v3 (core) — modules enterprise propriétaires",[105,106,107],"Modules inclus","Comptabilité, stock, CRM, fabrication, RH — tous gratuits","Core fonctionnel ; modules avancés réservés à Odoo Enterprise (payant)",[109,110,111],"Langage \u002F stack","Python + Frappe, JS vanilla côté client","Python + OWL (framework JS maison)",[113,114,115],"Interface","Bureau d'apps, formulaires configurables sans code","Vue par kanban\u002Fliste, studio low-code (Enterprise)",[117,118,119],"Complexité d'installation","Stack Docker officielle bien documentée","Docker disponible, mais moins de recul communautaire",[121,122,123],"Communauté","Active sur GitHub et forum Frappe ; forte en Inde, Afrique","Très large ; écosystème partenaires dense en Europe",[125,126,127],"Idéal pour","PME cherchant un ERP complet gratuit, fabrication, multi-devises","Entreprises voulant CRM avancé ou e-commerce Odoo sans développement custom",{"type":129,"body":130},"tip","ERPNext évolue par versions majeures avec migrations de schéma : avant chaque mise à jour, faites un `bench backup` complet et testez la montée de version sur une copie avant de l'appliquer en production. Les migrations entre versions majeures doivent suivre le chemin officiel (ex. v14 → v15 sans sauter de version).",{"type":129,"title":132,"body":133},"La documentation officielle","Pour la configuration avancée et les options propres à l'outil, référez-vous à la \u003Ca href=\"https:\u002F\u002Fdocs.erpnext.com\">documentation officielle de ERPNext\u003C\u002Fa> et au \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffrappe\u002Ffrappe_docker\">dépôt frappe_docker\u003C\u002Fa>. Ce guide couvre la mise en ligne sur VPS ; la doc éditeur reste la référence pour les réglages fins, les montées de version majeures et les cas d'usage spécifiques.","Déployez votre instance sur un VPS Cloud ServOrbit","Un VPS Cloud ServOrbit avec Docker préconfiguré et des ressources évolutives vous laisse installer cet outil sans friction, et ajuster RAM et vCPU à mesure que l'usage grandit.","Lancer mon VPS Cloud","\u002Fvps-cloud",[139,158,181],{"id":140,"slug":141,"slugs":142,"title":146,"excerpt":147,"readTime":148,"views":149,"isPinned":19,"noindex":19,"publishedAt":150,"updatedAt":151,"category":152,"categories":153,"featuredImage":30,"bgImage":31,"posterImage":155,"relatedSolution":156},143,"heberger-dolibarr-vps",{"fr":141,"en":143,"ar":144,"es":145},"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,0,"2026-02-02T00:00:00+00:00","2026-11-09T20:55:19+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[154],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-dolibarr-vps-poster.svg",{"categorySlug":34,"appSlug":157},"dolibarr",{"id":159,"slug":160,"slugs":161,"title":165,"excerpt":166,"readTime":17,"views":167,"isPinned":19,"noindex":19,"publishedAt":168,"updatedAt":169,"category":170,"categories":176,"featuredImage":30,"bgImage":31,"posterImage":178,"relatedSolution":179},56,"heberger-postgresql-vps",{"fr":160,"en":162,"ar":163,"es":164},"postgresql-on-a-vps-a-reliable-and-controlled-database","postgresql-على-خادم-vps-قاعدة-بيانات-موثوقة-ومتحكم-بها","alojar-postgresql-en-un-vps","PostgreSQL sur VPS : base fiable et contrôlée","Hébergez PostgreSQL sur VPS : configuration prod, sauvegardes pgBackRest, haute disponibilité streaming, comparatif RDS\u002FSupabase\u002FNeon et dépannage OOM.",1,"2026-04-25T00:00:00+00:00","2026-10-21T15:21:37+00:00",{"id":171,"name":172,"slug":173,"color":174,"icon":175},6,"Bases de données","bases-de-donnees","bg-teal-500\u002F10 text-teal-400","database",[177],{"id":171,"name":172,"slug":173,"color":174,"icon":175},"\u002Fblog\u002Fcovers\u002Fheberger-postgresql-vps-poster.svg",{"categorySlug":173,"appSlug":180},"postgresql-stack",{"id":182,"slug":183,"slugs":184,"title":188,"excerpt":189,"readTime":190,"views":191,"isPinned":19,"noindex":19,"publishedAt":192,"updatedAt":193,"category":194,"categories":195,"featuredImage":30,"bgImage":31,"posterImage":197,"relatedSolution":198},134,"self-host-twenty-crm-vps",{"fr":183,"en":185,"ar":186,"es":187},"self-host-twenty-crm-on-vps-open-source-salesforce-alternative","استضف-twenty-crm-بنفسك-على-vps-بديل-salesforce-مفتوح-المصدر","alojar-twenty-crm-en-un-vps","Héberger Twenty CRM sur un VPS : l'alternative à Salesforce","Déployez Twenty CRM sur un VPS ServOrbit : alternative open source à Salesforce, avec objets personnalisés, API GraphQL et automatisations. AGPL-3.0, prêt en production.",4,3,"2026-02-13T00:00:00+00:00","2026-11-04T16:30:26+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[196],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fself-host-twenty-crm-vps-poster.svg",{"categorySlug":34,"appSlug":199},"twenty",true,1794270715065]