[{"data":1,"prerenderedAt":583},["ShallowReactive",2],{"navigation_docs_fr":3,"-fr-self-hosting-manual-install":123,"-fr-self-hosting-manual-install-surround":578},[4,36,107],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":35},"Démarrage","i-lucide-rocket","\u002Ffr\u002Fgetting-started","fr\u002F1.getting-started",[10,15,20,25,30],{"title":11,"path":12,"stem":13,"icon":14},"Qu'est-ce que Chronicler","\u002Ffr\u002Fgetting-started\u002Fwhat-is-chronicler","fr\u002F1.getting-started\u002F1.what-is-chronicler","i-lucide-help-circle",{"title":16,"path":17,"stem":18,"icon":19},"Installer l'application","\u002Ffr\u002Fgetting-started\u002Finstall-the-app","fr\u002F1.getting-started\u002F2.install-the-app","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Démarrage rapide Cloud","\u002Ffr\u002Fgetting-started\u002Fcloud-quickstart","fr\u002F1.getting-started\u002F3.cloud-quickstart","i-lucide-cloud",{"title":26,"path":27,"stem":28,"icon":29},"Votre première conversation","\u002Ffr\u002Fgetting-started\u002Fyour-first-chat","fr\u002F1.getting-started\u002F4.your-first-chat","i-lucide-messages-square",{"title":31,"path":32,"stem":33,"icon":34},"Gérer les utilisateurs","\u002Ffr\u002Fgetting-started\u002Fmanaging-users","fr\u002F1.getting-started\u002F5.managing-users","i-lucide-users",false,{"title":37,"icon":38,"path":39,"stem":40,"children":41,"page":35},"Auto-hébergement","i-lucide-server","\u002Ffr\u002Fself-hosting","fr\u002F2.self-hosting",[42,47,52,57,62,67,72,77,82,87,92,97,102],{"title":43,"path":44,"stem":45,"icon":46},"Vue d'ensemble","\u002Ffr\u002Fself-hosting\u002Foverview","fr\u002F2.self-hosting\u002F1.overview","i-lucide-layout-dashboard",{"title":48,"path":49,"stem":50,"icon":51},"Sauvegardes et restauration","\u002Ffr\u002Fself-hosting\u002Fbackups","fr\u002F2.self-hosting\u002F10.backups","i-lucide-database-backup",{"title":53,"path":54,"stem":55,"icon":56},"Mises à jour","\u002Ffr\u002Fself-hosting\u002Fupdating","fr\u002F2.self-hosting\u002F11.updating","i-lucide-refresh-cw",{"title":58,"path":59,"stem":60,"icon":61},"Sécurité et réseau","\u002Ffr\u002Fself-hosting\u002Fsecurity-and-networking","fr\u002F2.self-hosting\u002F12.security-and-networking","i-lucide-shield",{"title":63,"path":64,"stem":65,"icon":66},"Dépannage","\u002Ffr\u002Fself-hosting\u002Ftroubleshooting","fr\u002F2.self-hosting\u002F13.troubleshooting","i-lucide-life-buoy",{"title":68,"path":69,"stem":70,"icon":71},"Prérequis","\u002Ffr\u002Fself-hosting\u002Frequirements","fr\u002F2.self-hosting\u002F2.requirements","i-lucide-cpu",{"title":73,"path":74,"stem":75,"icon":76},"Démarrage rapide (guidé)","\u002Ffr\u002Fself-hosting\u002Fquick-start","fr\u002F2.self-hosting\u002F3.quick-start","i-lucide-wand-2",{"title":78,"path":79,"stem":80,"icon":81},"Installation manuelle","\u002Ffr\u002Fself-hosting\u002Fmanual-install","fr\u002F2.self-hosting\u002F4.manual-install","i-lucide-terminal",{"title":83,"path":84,"stem":85,"icon":86},"Accélération GPU","\u002Ffr\u002Fself-hosting\u002Fgpu-acceleration","fr\u002F2.self-hosting\u002F5.gpu-acceleration","i-lucide-zap",{"title":88,"path":89,"stem":90,"icon":91},"Performances et mémoire","\u002Ffr\u002Fself-hosting\u002Fperformance-and-memory","fr\u002F2.self-hosting\u002F6.performance-and-memory","i-lucide-gauge",{"title":93,"path":94,"stem":95,"icon":96},"Référence de configuration","\u002Ffr\u002Fself-hosting\u002Fconfiguration-reference","fr\u002F2.self-hosting\u002F7.configuration-reference","i-lucide-sliders-horizontal",{"title":98,"path":99,"stem":100,"icon":101},"Modèles","\u002Ffr\u002Fself-hosting\u002Fmodels","fr\u002F2.self-hosting\u002F8.models","i-lucide-brain",{"title":103,"path":104,"stem":105,"icon":106},"Licence et activation","\u002Ffr\u002Fself-hosting\u002Flicensing","fr\u002F2.self-hosting\u002F9.licensing","i-lucide-key-round",{"title":108,"icon":109,"path":110,"stem":111,"children":112,"page":35},"Référence","i-lucide-book-open","\u002Ffr\u002Freference","fr\u002F3.reference",[113,118],{"title":114,"path":115,"stem":116,"icon":117},"Comment ça marche","\u002Ffr\u002Freference\u002Fhow-it-works","fr\u002F3.reference\u002F1.how-it-works","i-lucide-workflow",{"title":119,"path":120,"stem":121,"icon":122},"Données et confidentialité","\u002Ffr\u002Freference\u002Fdata-and-privacy","fr\u002F3.reference\u002F2.data-and-privacy","i-lucide-lock",{"id":124,"title":78,"body":125,"description":569,"extension":570,"links":571,"meta":572,"navigation":573,"path":79,"seo":574,"stem":80,"__hash__":577},"docs_fr\u002Ffr\u002F2.self-hosting\u002F4.manual-install.md",{"type":126,"value":127,"toc":559},"minimark",[128,132,519,524,527,531,555],[129,130,131],"p",{},"À utiliser quand le serveur n'a pas de bureau — un VPS, un NAS, une machine en\nbaie — ou simplement quand vous préférez voir ce que vous exécutez.",[133,134,135,140,148,185,189,241,245,248,314,323,327,348,389,402,417,421,452,467,470,491,495,505,516],"steps",{},[136,137,139],"h3",{"id":138},"créer-un-dossier-pour-linstallation","Créer un dossier pour l'installation",[129,141,142,143,147],{},"Tout y vit : le fichier compose, le ",[144,145,146],"code",{},".env",", et par extension votre base de\ndonnées. Choisissez un emplacement durable.",[149,150,156],"pre",{"className":151,"code":152,"filename":153,"language":154,"meta":155,"style":155},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","mkdir -p \u002Fopt\u002Fchronicler && cd \u002Fopt\u002Fchronicler\n","Terminal","bash","",[144,157,158],{"__ignoreMap":155},[159,160,163,167,171,174,178,182],"span",{"class":161,"line":162},"line",1,[159,164,166],{"class":165},"sBMFI","mkdir",[159,168,170],{"class":169},"sfazB"," -p",[159,172,173],{"class":169}," \u002Fopt\u002Fchronicler",[159,175,177],{"class":176},"sMK4o"," &&",[159,179,181],{"class":180},"s2Zo4"," cd",[159,183,184],{"class":169}," \u002Fopt\u002Fchronicler\n",[136,186,188],{"id":187},"télécharger-le-fichier-compose","Télécharger le fichier compose",[190,191,192,225],"tabs",{},[193,194,196],"tabs-item",{"icon":81,"label":195},"Linux \u002F macOS",[149,197,199],{"className":151,"code":198,"filename":153,"language":154,"meta":155,"style":155},"curl -L -o docker-compose.yml \\\n  https:\u002F\u002Fgithub.com\u002FChroniclerLM\u002FReleases\u002Freleases\u002Flatest\u002Fdownload\u002Fdocker-compose.yml\n",[144,200,201,219],{"__ignoreMap":155},[159,202,203,206,209,212,215],{"class":161,"line":162},[159,204,205],{"class":165},"curl",[159,207,208],{"class":169}," -L",[159,210,211],{"class":169}," -o",[159,213,214],{"class":169}," docker-compose.yml",[159,216,218],{"class":217},"sTEyZ"," \\\n",[159,220,222],{"class":161,"line":221},2,[159,223,224],{"class":169},"  https:\u002F\u002Fgithub.com\u002FChroniclerLM\u002FReleases\u002Freleases\u002Flatest\u002Fdownload\u002Fdocker-compose.yml\n",[193,226,229],{"icon":227,"label":228},"i-lucide-monitor","Windows (PowerShell)",[149,230,235],{"className":231,"code":232,"filename":233,"language":234,"meta":155,"style":155},"language-powershell shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","Invoke-WebRequest -Uri \"https:\u002F\u002Fgithub.com\u002FChroniclerLM\u002FReleases\u002Freleases\u002Flatest\u002Fdownload\u002Fdocker-compose.yml\" -OutFile \"docker-compose.yml\"\n","PowerShell","powershell",[144,236,237],{"__ignoreMap":155},[159,238,239],{"class":161,"line":162},[159,240,232],{},[136,242,244],{"id":243},"écrire-le-env","Écrire le .env",[129,246,247],{},"Deux valeurs sont obligatoires : un mot de passe de base de données, et le\nruntime à utiliser pour le modèle.",[190,249,250,293],{},[193,251,252],{"icon":81,"label":195},[149,253,255],{"className":151,"code":254,"filename":153,"language":154,"meta":155,"style":155},"printf 'POSTGRES_PASSWORD=%s\\nCOMPOSE_PROFILES=cpu\\n' \"$(openssl rand -hex 24)\" > .env\n",[144,256,257],{"__ignoreMap":155},[159,258,259,262,265,268,271,274,277,280,284,287,290],{"class":161,"line":162},[159,260,261],{"class":180},"printf",[159,263,264],{"class":176}," '",[159,266,267],{"class":169},"POSTGRES_PASSWORD=%s\\nCOMPOSE_PROFILES=cpu\\n",[159,269,270],{"class":176},"'",[159,272,273],{"class":176}," \"$(",[159,275,276],{"class":165},"openssl",[159,278,279],{"class":169}," rand -hex ",[159,281,283],{"class":282},"sbssI","24",[159,285,286],{"class":176},")\"",[159,288,289],{"class":176}," >",[159,291,292],{"class":169}," .env\n",[193,294,295,304],{"icon":227,"label":228},[149,296,298],{"className":231,"code":297,"filename":233,"language":234,"meta":155,"style":155},"\"POSTGRES_PASSWORD=$([guid]::NewGuid().ToString('N'))`nCOMPOSE_PROFILES=cpu\" | Out-File -Encoding ascii .env\n",[144,299,300],{"__ignoreMap":155},[159,301,302],{"class":161,"line":162},[159,303,297],{},[129,305,306,309,310,313],{},[144,307,308],{},"-Encoding ascii"," est important : Docker Compose ne sait pas lire l'UTF-16 que\n",[144,311,312],{},"Out-File"," écrit par défaut.",[315,316,317,318,322],"warning",{},"Aucun mot de passe par défaut n'est livré, volontairement : il rendrait toutes\nles installations de la planète devinables à l'identique. Compose refuse de\ndémarrer sans, et ",[319,320,321],"strong",{},"le changer après le premier démarrage vous coupe l'accès à\nvotre propre base",". Sauvegardez ce fichier avec vos autres secrets.",[136,324,326],{"id":325},"choisir-le-bon-runtime","Choisir le bon runtime",[129,328,329,332,333,336,337,340,341,344,345,347],{},[144,330,331],{},"COMPOSE_PROFILES"," décide quel conteneur Ollama démarre : ",[144,334,335],{},"cpu",", ",[144,338,339],{},"nvidia"," ou\n",[144,342,343],{},"amd",". ",[144,346,335],{}," fonctionne toujours. Si la machine a une carte graphique, laissez le\nscript de détection choisir :",[149,349,351],{"className":151,"code":350,"filename":153,"language":154,"meta":155,"style":155},"curl -L -o detect-hardware.sh \\\n  https:\u002F\u002Fgithub.com\u002FChroniclerLM\u002FReleases\u002Freleases\u002Flatest\u002Fdownload\u002Fdetect-hardware.sh\nchmod +x detect-hardware.sh\n.\u002Fdetect-hardware.sh\n",[144,352,353,366,371,383],{"__ignoreMap":155},[159,354,355,357,359,361,364],{"class":161,"line":162},[159,356,205],{"class":165},[159,358,208],{"class":169},[159,360,211],{"class":169},[159,362,363],{"class":169}," detect-hardware.sh",[159,365,218],{"class":217},[159,367,368],{"class":161,"line":221},[159,369,370],{"class":169},"  https:\u002F\u002Fgithub.com\u002FChroniclerLM\u002FReleases\u002Freleases\u002Flatest\u002Fdownload\u002Fdetect-hardware.sh\n",[159,372,374,377,380],{"class":161,"line":373},3,[159,375,376],{"class":165},"chmod",[159,378,379],{"class":169}," +x",[159,381,382],{"class":169}," detect-hardware.sh\n",[159,384,386],{"class":161,"line":385},4,[159,387,388],{"class":165},".\u002Fdetect-hardware.sh\n",[129,390,391,392,394,395,397,398,401],{},"Il teste la machine, écrit le bon ",[144,393,331],{}," dans le ",[144,396,146],{}," et suggère un\nmodèle adapté. Détails et solutions manuelles :\n",[399,400,83],"a",{"href":84},".",[403,404,405,406,408,409,412,413,416],"caution",{},"Si ",[144,407,331],{}," est totalement absent, ",[319,410,411],{},"aucun"," runtime de modèle ne\ndémarre. La pile monte mais ne peut répondre à rien, et\n",[144,414,415],{},"docker compose logs ollama-pull"," le dira au bout de deux minutes.",[136,418,420],{"id":419},"démarrer","Démarrer",[149,422,424],{"className":151,"code":423,"filename":153,"language":154,"meta":155,"style":155},"docker compose up -d\ndocker compose logs -f\n",[144,425,426,440],{"__ignoreMap":155},[159,427,428,431,434,437],{"class":161,"line":162},[159,429,430],{"class":165},"docker",[159,432,433],{"class":169}," compose",[159,435,436],{"class":169}," up",[159,438,439],{"class":169}," -d\n",[159,441,442,444,446,449],{"class":161,"line":221},[159,443,430],{"class":165},[159,445,433],{"class":169},[159,447,448],{"class":169}," logs",[159,450,451],{"class":169}," -f\n",[129,453,454,455,458,459,462,463,466],{},"Le premier démarrage télécharge plusieurs gigaoctets. Quand\n",[144,456,457],{},"chronicler-backend"," annonce écouter sur ",[144,460,461],{},"8410",", c'est prêt. L'arrêt de\n",[144,464,465],{},"chronicler-ollama-pull"," est normal : il télécharge le modèle puis se termine.",[129,468,469],{},"Vérifiez avec :",[149,471,473],{"className":151,"code":472,"filename":153,"language":154,"meta":155,"style":155},"docker compose ps\ncurl http:\u002F\u002Flocalhost:8410\u002Fhealth\n",[144,474,475,484],{"__ignoreMap":155},[159,476,477,479,481],{"class":161,"line":162},[159,478,430],{"class":165},[159,480,433],{"class":169},[159,482,483],{"class":169}," ps\n",[159,485,486,488],{"class":161,"line":221},[159,487,205],{"class":165},[159,489,490],{"class":169}," http:\u002F\u002Flocalhost:8410\u002Fhealth\n",[136,492,494],{"id":493},"connecter-lapplication-et-sapproprier-le-serveur","Connecter l'application et s'approprier le serveur",[129,496,497,498,501,502,401],{},"Depuis n'importe quel poste du réseau, ouvrez Chronicler → ",[319,499,500],{},"Paramètres →\nConnexion → Local",", et saisissez ",[144,503,504],{},"http:\u002F\u002F\u003Cip-du-serveur>:8410",[129,506,507,508,511,512,515],{},"L'écran de connexion propose ",[319,509,510],{},"Créer votre compte administrateur"," tant que le\nserveur n'a aucun utilisateur. Créez-le, acceptez les conditions et activez votre\nclé (",[399,513,514],{"href":104},"Licence",").",[403,517,518],{},"Faites-le immédiatement après le premier démarrage, depuis un poste de confiance.\nUn serveur vide est appropriable par le premier arrivé.",[520,521,523],"h2",{"id":522},"ce-qui-vient-de-démarrer","Ce qui vient de démarrer",[129,525,526],{},"Le schéma de la base est créé automatiquement au premier démarrage, et à chaque\nmise à jour : vous ne lancez jamais de migration à la main. Avant un changement\nde schéma, le backend sauvegarde la base et refuse de continuer si cette\nsauvegarde échoue.",[520,528,530],{"id":529},"étapes-facultatives","Étapes facultatives",[532,533,534,540,545,550],"ul",{},[535,536,537,538],"li",{},"Régler la mémoire :\n",[399,539,88],{"href":89},[535,541,542,543],{},"Tous les réglages disponibles :\n",[399,544,93],{"href":94},[535,546,547,548],{},"Mettre HTTPS devant :\n",[399,549,58],{"href":59},[535,551,552,553],{},"Sauvegardes automatiques :\n",[399,554,48],{"href":49},[556,557,558],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":155,"searchDepth":221,"depth":221,"links":560},[561,562,563,564,565,566,567,568],{"id":138,"depth":373,"text":139},{"id":187,"depth":373,"text":188},{"id":243,"depth":373,"text":244},{"id":325,"depth":373,"text":326},{"id":419,"depth":373,"text":420},{"id":493,"depth":373,"text":494},{"id":522,"depth":221,"text":523},{"id":529,"depth":221,"text":530},"Installer la pile depuis un terminal — la voie des serveurs sans interface graphique.","md",null,{},{"icon":81},{"title":575,"description":576},"Installer la pile Chronicler manuellement","Télécharger le fichier compose, écrire le .env et démarrer la pile Chronicler auto-hébergée depuis un terminal.","tKkzXrBrs3doPJyJpLME2biPy8UTj2bpkGZKqCQtGDY",[579,581],{"title":73,"path":74,"stem":75,"description":580,"icon":76,"children":-1},"Laisser l'application configurer la pile Docker, puis créer le premier administrateur.",{"title":83,"path":84,"stem":85,"description":582,"icon":86,"children":-1},"Utiliser la carte graphique que vous avez déjà — la différence entre une minute et quelques secondes.",1785092112184]