[{"data":1,"prerenderedAt":159},["ShallowReactive",2],{"seo-verification":3,"blog-self-host-reactive-resume-vps-ma-fr":6,"promo-bar-likely":158},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-self-host-reactive-resume-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":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":32,"intro":35,"sections":36,"ctaTitle":94,"ctaBody":95,"ctaButton":96,"ctaUrl":97,"relatedPosts":98},233,"self-host-reactive-resume-vps",{"fr":10,"en":12,"ar":13,"es":14},"self-host-reactive-resume-on-a-vps-build-and-share-your-cvs","استضافة-reactive-resume-على-vps-أنشئ-سيرك-الذاتية-وشاركها","autoalojar-reactive-resume-en-un-vps","Héberger Reactive Resume sur un VPS : vos CV en ligne, chez vous","Déployez Reactive Resume sur votre VPS — le créateur de CV open-source avec export PDF côté navigateur, sans Chrome ni Browserless. MIT, 42 k+ étoiles, v5.3.0.",7,1,false,"2026-08-07T00:00:00+00:00","2026-11-04T16:30:26+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[28],{"id":17,"name":23,"slug":24,"color":25,"icon":26},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fself-host-reactive-resume-vps-poster.svg",{"categorySlug":33,"appSlug":34},"collaboration","reactive-resume","Reactive Resume est un créateur de CV open-source (MIT) qui compte plus de 42 000 étoiles sur GitHub. Depuis la v5.1.0, il génère les PDF entièrement côté navigateur, sans aucun service d'impression côté serveur. Résultat : deux conteneurs légers suffisent pour une instance complète, et un VPS de 1 Go RAM peut héberger votre outil de CV sans compromis.",[37,41,53,56,78,81,85,88,91],{"type":38,"title":39,"body":40},"h2","Pourquoi auto-héberger un créateur de CV","Les services SaaS de CV monétisent votre historique professionnel, limitent les modèles ou facturent le téléchargement PDF. Auto-héberger Reactive Resume inverse le modèle : vos CV, vos photos et vos exports restent dans un volume Docker sur votre VPS, exportables à tout moment via l'interface ou l'API REST, et partageables sous votre propre domaine. Aucune limite de modèles, aucun filigrane, aucune dépendance à un abonnement.\n\nL'auto-hébergement offre aussi un contrôle total sur les données sensibles que contient un CV — coordonnées personnelles, historique d'emploi, compétences. Ces données ne transitent ni ne sont stockées chez un tiers.",{"type":42,"title":43,"items":44},"ul","Ce que vous obtenez avec un Reactive Resume auto-hébergé",[45,46,47,48,49,50,51,52],"Éditeur visuel par glisser-déposer dans le navigateur — pas d'application à installer, fonctionne sur n'importe quel appareil.","Bibliothèque de modèles professionnels compatibles ATS — plusieurs mises en page pour différents secteurs et niveaux d'expérience.","Export PDF entièrement côté navigateur depuis v5.1.0 — plus de Chrome, Puppeteer ou Browserless côté serveur.","URL publique du CV — partagez votre profil sur un lien lisible mis à jour en temps réel.","Plusieurs CV par compte — déclinez des versions par poste ou par langue sans dupliquer le travail.","REST API — créez et exportez des CV par programme pour l'intégration avec des outils RH.","Stockage local — les téléversements (photos, images de portfolio) sont écrits dans un volume Docker, aucun bucket S3 nécessaire.","Authentification OAuth optionnelle — connectez un compte GitHub ou Google si vous ajoutez les clés d'API correspondantes dans la configuration.",{"type":38,"title":54,"body":55},"Prérequis","Un VPS ServOrbit avec Ubuntu 24.04 et au moins 1 Go de RAM. L'application Node.js consomme environ 300 Mo au repos et PostgreSQL 16 en utilise 100 à 200 Mo supplémentaires — un VPS de 1 Go suffit pour un usage personnel ou une petite équipe.\n\nDocker et Docker Compose sont provisionnés automatiquement par AWX lors du déploiement. Un nom de domaine est requis : Reactive Resume ancre son URL d'authentification (`APP_URL`) dès le premier démarrage et ne peut pas fonctionner derrière une simple adresse IP.\n\nSi vous prévoyez d'activer l'authentification par e-mail avec vérification de compte, un serveur SMTP sortant est recommandé. Sans SMTP, le lien de vérification s'affiche dans les journaux Docker — pratique en solo, moins adapté si vous ouvrez l'accès à d'autres utilisateurs.",{"type":57,"title":58,"steps":59},"steps","Déployer Reactive Resume sur votre VPS",[60,63,66,69,72,75],{"title":61,"body":62},"Choisir le domaine définitif avant de déployer","Reactive Resume inscrit `APP_URL` dans les jetons d'authentification et les callbacks OAuth dès le premier démarrage : changer le domaine après coup casse toutes les sessions et nécessite de supprimer le volume PostgreSQL. Créez l'enregistrement DNS de type A — par exemple `cv.votre-domaine.com` — et attendez la propagation avant de lancer le déploiement.",{"title":64,"body":65},"Déploiement en un clic depuis la marketplace ServOrbit","Ouvrez votre panneau de contrôle ServOrbit, allez dans Marketplace → Collaboration et productivité → Reactive Resume, saisissez votre domaine et cliquez sur Déployer. AWX installe Docker, génère un secret d'authentification aléatoire, configure nginx avec TLS Let's Encrypt et démarre les deux conteneurs (app + PostgreSQL) en moins de deux minutes.",{"title":67,"body":68},"Créer votre compte et vérifier votre adresse","Naviguez vers `https:\u002F\u002Fcv.votre-domaine.com` et cliquez sur Sign Up pour créer votre compte avec e-mail et mot de passe. Si vous n'avez pas configuré de serveur SMTP, le lien de vérification s'affiche dans les journaux Docker : `docker compose logs reactive-resume | grep verify`. Cliquez sur ce lien pour activer votre compte.",{"title":70,"body":71},"Créer votre premier CV","Cliquez sur le bouton + pour créer un nouveau CV. Choisissez un modèle dans la bibliothèque, renseignez vos sections (Résumé, Expérience, Formation, Compétences) dans le panneau de gauche et visualisez le résultat en temps réel à droite. Cliquez sur Télécharger pour exporter un PDF — la génération est entièrement côté navigateur, sans attente.",{"title":73,"body":74},"Partager votre CV publiquement","Dans les paramètres du CV, activez CV public. Reactive Resume génère une URL partageable — `https:\u002F\u002Fcv.votre-domaine.com\u002Fr\u002Fvotre-nom` — qui sert toujours la dernière version de votre document. Partagez ce lien dans vos candidatures plutôt que d'attacher un PDF statique que vous devrez renvoyer à chaque mise à jour.",{"title":76,"body":77},"Configurer l'authentification OAuth (optionnel)","Pour permettre la connexion via GitHub ou Google, ajoutez les variables d'environnement correspondantes dans le fichier de configuration de votre déploiement : `GITHUB_CLIENT_ID`, `GITHUB_CLIENT_SECRET`, `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET`. Redémarrez ensuite les conteneurs avec `docker compose restart`. Les boutons de connexion sociale apparaissent automatiquement sur la page de connexion dès que les variables sont présentes.",{"type":38,"title":79,"body":80},"Le changement majeur de la v5.1.0 : PDF sans serveur d'impression","Jusqu'à la version 5.0, Reactive Resume dépendait de Browserless ou d'un Chromium headless pour générer les PDF côté serveur. Cela représentait 700 Mo à 1 Go de RAM supplémentaires et une dépendance à maintenir. Depuis la v5.1.0, la génération de PDF est réalisée par `@react-pdf\u002Frenderer`, une bibliothèque JavaScript qui s'exécute directement dans le navigateur de l'utilisateur. Le serveur ne voit qu'une requête de sauvegarde du document — aucun Chrome, aucun Puppeteer, aucun service d'impression n'est requis côté infrastructure. C'est ce qui ramène la pile minimale à deux conteneurs légers.",{"type":82,"title":83,"body":84},"tip","Garder le secret d'authentification en sécurité","Le déploiement ServOrbit génère automatiquement une valeur aléatoire pour `SECRET_KEY`. Ne réutilisez jamais une valeur prévisible ou partagée entre plusieurs instances. Si vous suspectez une compromission, régénérez cette clé et redémarrez les conteneurs : toutes les sessions actives seront invalidées, ce qui force les utilisateurs à se reconnecter — c'est l'effet attendu.",{"type":38,"title":86,"body":87},"Utiliser l'API REST pour automatiser vos exports","Reactive Resume expose une API REST complète, accessible sous `\u002Fapi\u002Fv3`. Vous pouvez créer des CV, les mettre à jour et déclencher des exports PDF par programme — utile pour intégrer la génération de CV dans un workflow RH ou un pipeline de candidature automatisé.\n\nPour vous authentifier, récupérez un jeton JWT via `POST \u002Fapi\u002Fv3\u002Fauth\u002Flogin` avec vos identifiants. Passez ensuite ce jeton dans le header `Authorization: Bearer \u003Ctoken>` de chaque requête.\n\nExemple — récupérer la liste de vos CV :\n\n```bash\ncurl -s -H \"Authorization: Bearer \u003Cvotre-token>\" \\\n  https:\u002F\u002Fcv.votre-domaine.com\u002Fapi\u002Fv3\u002Fresume | jq '.[].title'\n```\n\nLa documentation complète de l'API est disponible dans le dépôt officiel.",{"type":38,"title":89,"body":90},"Sauvegarde et portabilité des données","Deux volumes Docker portent l'intégralité de l'instance : `reactive_resume_db` pour la base PostgreSQL (comptes, CV, paramètres) et `reactive_resume_data` pour les fichiers téléversés (photos de profil, images de portfolio). Une sauvegarde minimale consiste à copier ces deux volumes :\n\n```bash\ndocker run --rm \\\n  -v reactive_resume_db:\u002Fdata \\\n  -v $(pwd):\u002Fbackup \\\n  alpine tar czf \u002Fbackup\u002Fdb.tar.gz \u002Fdata\n```\n\nPour une exportation SQL directe : `docker exec db pg_dump -U postgres postgres > backup.sql`\n\nRestaurez en montant le volume sur un conteneur PostgreSQL vierge configuré avec la même URL publique. Planifiez ces sauvegardes avec un cron quotidien ou utilisez le service de snapshot de volume de votre VPS pour une couverture automatique.",{"type":38,"title":92,"body":93},"Dépannage des erreurs courantes","**`APP_URL` incorrect après changement de domaine.** Symptôme : les callbacks OAuth échouent ou le lien de vérification pointe vers l'ancien domaine. Solution : modifiez `APP_URL` dans la configuration, puis supprimez le volume PostgreSQL (`docker volume rm reactive_resume_db`) et redémarrez. Toutes les données sont perdues — planifiez ce geste avant de créer des comptes en production.\n\n**Conteneur app qui redémarre en boucle.** Vérifiez les journaux avec `docker compose logs reactive-resume`. L'erreur la plus fréquente est une connexion PostgreSQL refusée (`Connection refused to db:5432`) : le conteneur app démarre avant que PostgreSQL soit prêt. Attendez 30 secondes et relancez `docker compose up -d`.\n\n**PDF généré avec une mise en page incorrecte.** Le rendu PDF est réalisé côté navigateur par `@react-pdf\u002Frenderer` : il dépend du moteur de rendu de votre navigateur. Si le résultat est décalé, essayez avec un navigateur différent (Chrome ou Firefox récent). Les navigateurs anciens ou les extensions qui modifient les polices peuvent affecter le rendu.\n\n**Erreur `secretOrPrivateKey must have a value` au démarrage.** La variable `SECRET_KEY` est manquante dans la configuration. Ajoutez-la avec une valeur aléatoire d'au moins 32 caractères : `openssl rand -hex 32` génère une valeur convenable.\n\n**URL publique du CV inaccessible (404).** Vérifiez que le CV est bien marqué comme public dans ses paramètres. Si c'est le cas, vérifiez la configuration nginx : le bloc `location \u002Fr\u002F` doit rediriger vers le frontend Next.js, pas vers l'API.","Déployez Reactive Resume sur votre propre serveur","Auto-hébergez Reactive Resume sur un VPS ServOrbit — open source, sans abonnement, vos CV sur votre infrastructure.","Déployer Reactive Resume","\u002Fapplications\u002Fcollaboration\u002Freactive-resume",[99,121,140],{"id":100,"slug":101,"slugs":102,"title":106,"excerpt":107,"readTime":108,"views":18,"isPinned":19,"noindex":19,"publishedAt":109,"updatedAt":21,"category":110,"categories":116,"featuredImage":29,"bgImage":30,"posterImage":118,"relatedSolution":119},193,"self-host-penpot-vps",{"fr":101,"en":103,"ar":104,"es":105},"self-host-penpot-open-source-figma-alternative-on-your-vps","استضافة-penpot-على-vps-بديل-figma-مفتوح-المصدر","alojar-penpot-en-un-vps","Héberger Penpot sur un VPS : alternative Figma open-source","Déployez Penpot sur un VPS ServOrbit : design collaboratif — prototypage vectoriel, composants, handoff développeur — sans abonnement Figma ni données chez un tiers.",12,"2026-07-27T00:00:00+00:00",{"id":111,"name":112,"slug":113,"color":114,"icon":115},4,"Développement","developpement","bg-warning\u002F10 text-warning","dev",[117],{"id":111,"name":112,"slug":113,"color":114,"icon":115},"\u002Fblog\u002Fcovers\u002Fself-host-penpot-vps-poster.svg",{"categorySlug":33,"appSlug":120},"penpot",{"id":122,"slug":123,"slugs":124,"title":128,"excerpt":129,"readTime":130,"views":131,"isPinned":19,"noindex":19,"publishedAt":132,"updatedAt":133,"category":134,"categories":135,"featuredImage":29,"bgImage":30,"posterImage":137,"relatedSolution":138},181,"self-host-docuseal-vps",{"fr":123,"en":125,"ar":126,"es":127},"self-host-docuseal-on-a-vps-open-source-e-signature-for-teams","استضافة-docuseal-على-vps-توقيع-إلكتروني-مفتوح-المصدر-للفرق","alojar-docuseal-en-un-vps","Héberger DocuSeal sur un VPS : signature électronique open source","Déployez DocuSeal sur votre VPS : signature électronique open source, modèles PDF en glisser-déposer, signature multipartite et piste d’audit. Sans frais par document.",6,2,"2026-07-16T00:00:00+00:00","2026-10-20T23:18:06+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},[136],{"id":17,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fself-host-docuseal-vps-poster.svg",{"categorySlug":33,"appSlug":139},"docuseal",{"id":141,"slug":142,"slugs":143,"title":147,"excerpt":148,"readTime":149,"views":18,"isPinned":19,"noindex":19,"publishedAt":150,"updatedAt":151,"category":152,"categories":153,"featuredImage":29,"bgImage":30,"posterImage":155,"relatedSolution":156},46,"deployer-nextjs-vps",{"fr":142,"en":144,"ar":145,"es":146},"deploy-a-nextjs-application-on-a-vps","نشر-تطبيق-nextjs-على-vps","desplegar-nextjs-en-un-vps","Déployer une application Next.js sur un VPS","Déployez Next.js sur un VPS : Node.js, PM2, Nginx, SSL et SSR. Guide complet pour développeurs et agences qui veulent self-héberger.",13,"2026-05-05T00:00:00+00:00","2026-11-04T16:30:25+00:00",{"id":111,"name":112,"slug":113,"color":114,"icon":115},[154],{"id":111,"name":112,"slug":113,"color":114,"icon":115},"\u002Fblog\u002Fcovers\u002Fdeployer-nextjs-vps-poster.svg",{"categorySlug":113,"appSlug":157},"nextjs-stack",true,1794270796905]