[{"data":1,"prerenderedAt":1374},["ShallowReactive",2],{"\u002Fv5\u002Fadministrer\u002Finstallation\u002Fmanuelle":3,"section:\u002Fv5\u002Fadministrer\u002Finstallation\u002Fmanuelle":1373},{"id":4,"title":5,"body":6,"description":1359,"extension":1360,"meta":1361,"navigation":382,"path":1369,"seo":1370,"stem":1371,"__hash__":1372},"docs\u002F1.v5\u002F5.administrer\u002F02.installation\u002F1.manuelle.md","Installation standard",{"type":7,"value":8,"toc":1340},"minimark",[9,14,36,41,53,58,64,144,148,155,193,201,242,246,249,300,317,321,324,345,352,355,454,457,481,485,494,594,597,615,618,643,659,727,730,746,764,768,772,775,828,835,909,913,1024,1131,1135,1139,1142,1192,1200,1204,1211,1230,1233,1251,1254,1265,1272,1276,1279,1298,1302,1308,1319,1323,1337],[10,11,13],"h1",{"id":12},"installation-de-dokos-v5-sur-ubuntu-2404","Installation de Dokos v5 sur Ubuntu 24.04",[15,16,19],"callout",{"color":17,"icon":18},"teal","i-heroicons-chat-bubble-left-right",[20,21,22,23,30,31,35],"p",{},"Ce guide a été testé sur Ubuntu 24.04. Si une erreur se produit lors de l'installation, n'hésitez pas à poster un message sur le ",[24,25,29],"a",{"href":26,"rel":27},"https:\u002F\u002Fcommunity.dokos.io",[28],"nofollow","forum"," de la communauté. ",[24,32,34],{"href":33},"\u002Fv5\u002Fadministrer\u002Finstallation\u002Fplus\u002Fdokos-v4","Ce guide d'installation existe aussi pour Dokos v4",".",[37,38,40],"h2",{"id":39},"pré-requis","Pré-requis",[20,42,43,44,48,49,35],{},"Le serveur Ubuntu doit posséder au moins 4 Go de RAM, 40 Go d'espace disque, ainsi qu'un utilisateur ",[45,46,47],"strong",{},"non root"," avec accès ",[50,51,52],"code",{},"sudo",[54,55,57],"h3",{"id":56},"création-dun-utilisateur","Création d'un utilisateur",[20,59,60,61,63],{},"Si ça n'est pas déjà le cas, par exemple si votre serveur est nouvellement créé, vous devrez créer un utilisateur non-root et lui donner les droits ",[50,62,52],{},". Ensuite, connectez-vous à votre serveur via SSH avec cet utilisateur.",[65,66,67,71,93,136],"details",{},[68,69,70],"summary",{},"Commandes pour créer un utilisateur",[72,73,78],"pre",{"className":74,"code":75,"language":76,"meta":77,"style":77},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","adduser dokos\n","sh","",[50,79,80],{"__ignoreMap":77},[81,82,85,89],"span",{"class":83,"line":84},"line",1,[81,86,88],{"class":87},"sBMFI","adduser",[81,90,92],{"class":91},"sfazB"," dokos\n",[72,94,96],{"className":74,"code":95,"language":76,"meta":77,"style":77},"usermod -aG sudo dokos\nrsync --archive --chown=dokos:dokos ~\u002F.ssh \u002Fhome\u002Fdokos\nexit\n",[50,97,98,111,129],{"__ignoreMap":77},[81,99,100,103,106,109],{"class":83,"line":84},[81,101,102],{"class":87},"usermod",[81,104,105],{"class":91}," -aG",[81,107,108],{"class":91}," sudo",[81,110,92],{"class":91},[81,112,114,117,120,123,126],{"class":83,"line":113},2,[81,115,116],{"class":87},"rsync",[81,118,119],{"class":91}," --archive",[81,121,122],{"class":91}," --chown=dokos:dokos",[81,124,125],{"class":91}," ~\u002F.ssh",[81,127,128],{"class":91}," \u002Fhome\u002Fdokos\n",[81,130,132],{"class":83,"line":131},3,[81,133,135],{"class":134},"s2Zo4","exit\n",[20,137,138,139,35],{},"Ces étapes sont extraites du ",[24,140,143],{"href":141,"rel":142},"https:\u002F\u002Fwww.digitalocean.com\u002Fcommunity\u002Ftutorials\u002Finitial-server-setup-with-ubuntu",[28],"guide de démarrage Ubuntu par Digital Ocean",[54,145,147],{"id":146},"python-314","Python 3.14",[20,149,150,151,154],{},"Dodock v5 demande Python 3.14 exactement (",[50,152,153],{},">=3.14,\u003C3.15","). Vérifiez que Python 3.14 est installé, puis installez les paquets supplémentaires.",[72,156,158],{"className":74,"code":157,"language":76,"meta":77,"style":77},"python3.14 --version\n# Python 3.14.x\nsudo apt-get install python3.14 python3.14-dev python3.14-venv\n",[50,159,160,168,174],{"__ignoreMap":77},[81,161,162,165],{"class":83,"line":84},[81,163,164],{"class":87},"python3.14",[81,166,167],{"class":91}," --version\n",[81,169,170],{"class":83,"line":113},[81,171,173],{"class":172},"sHwdD","# Python 3.14.x\n",[81,175,176,178,181,184,187,190],{"class":83,"line":131},[81,177,52],{"class":87},[81,179,180],{"class":91}," apt-get",[81,182,183],{"class":91}," install",[81,185,186],{"class":91}," python3.14",[81,188,189],{"class":91}," python3.14-dev",[81,191,192],{"class":91}," python3.14-venv\n",[20,194,195,196,200],{},"Ubuntu 24.04 fournit Python 3.12. Installez Python 3.14 depuis le dépôt ",[197,198,199],"em",{},"deadsnakes"," :",[72,202,204],{"className":74,"code":203,"language":76,"meta":77,"style":77},"sudo add-apt-repository ppa:deadsnakes\u002Fppa\nsudo apt-get update -y\nsudo apt-get install python3.14 python3.14-dev python3.14-venv\n",[50,205,206,216,228],{"__ignoreMap":77},[81,207,208,210,213],{"class":83,"line":84},[81,209,52],{"class":87},[81,211,212],{"class":91}," add-apt-repository",[81,214,215],{"class":91}," ppa:deadsnakes\u002Fppa\n",[81,217,218,220,222,225],{"class":83,"line":113},[81,219,52],{"class":87},[81,221,180],{"class":91},[81,223,224],{"class":91}," update",[81,226,227],{"class":91}," -y\n",[81,229,230,232,234,236,238,240],{"class":83,"line":131},[81,231,52],{"class":87},[81,233,180],{"class":91},[81,235,183],{"class":91},[81,237,186],{"class":91},[81,239,189],{"class":91},[81,241,192],{"class":91},[54,243,245],{"id":244},"git-redis-wkhtmltopdf-etc","Git, Redis, wkhtmltopdf, etc.",[20,247,248],{},"Ensuite, installez les paquets suivants :",[72,250,252],{"className":74,"code":251,"language":76,"meta":77,"style":77},"# Mise à jour des dépôts\nsudo apt-get install -y git redis-server ca-certificates file pkg-config default-libmysqlclient-dev build-essential xvfb libfontconfig wkhtmltopdf\n",[50,253,254,259],{"__ignoreMap":77},[81,255,256],{"class":83,"line":84},[81,257,258],{"class":172},"# Mise à jour des dépôts\n",[81,260,261,263,265,267,270,273,276,279,282,285,288,291,294,297],{"class":83,"line":113},[81,262,52],{"class":87},[81,264,180],{"class":91},[81,266,183],{"class":91},[81,268,269],{"class":91}," -y",[81,271,272],{"class":91}," git",[81,274,275],{"class":91}," redis-server",[81,277,278],{"class":91}," ca-certificates",[81,280,281],{"class":91}," file",[81,283,284],{"class":91}," pkg-config",[81,286,287],{"class":91}," default-libmysqlclient-dev",[81,289,290],{"class":91}," build-essential",[81,292,293],{"class":91}," xvfb",[81,295,296],{"class":91}," libfontconfig",[81,298,299],{"class":91}," wkhtmltopdf\n",[15,301,303],{"color":17,"icon":302},"i-heroicons-light-bulb",[20,304,305,308,309,312,313,316],{},[50,306,307],{},"wkhtmltopdf"," produit les documents PDF de Dokos. Vérifiez sa version avec ",[50,310,311],{},"wkhtmltopdf --version",". La version recommandée est ",[197,314,315],{},"0.12.6 (with patched qt)"," : sans le Qt patché, les en-têtes et pieds de page des PDF peuvent manquer.",[54,318,320],{"id":319},"mariadb-106-à-118","MariaDB (10.6 à 11.8)",[20,322,323],{},"Dodock affiche un avertissement avec une version de MariaDB antérieure à 10.6 ou postérieure à 11.8. Ubuntu 24.04 fournit MariaDB 10.11.",[72,325,327],{"className":74,"code":326,"language":76,"meta":77,"style":77},"sudo apt-get install -y mariadb-server mariadb-client\n",[50,328,329],{"__ignoreMap":77},[81,330,331,333,335,337,339,342],{"class":83,"line":84},[81,332,52],{"class":87},[81,334,180],{"class":91},[81,336,183],{"class":91},[81,338,269],{"class":91},[81,340,341],{"class":91}," mariadb-server",[81,343,344],{"class":91}," mariadb-client\n",[20,346,347,348,351],{},"Pendant l'installation, vous devrez choisir un mot de passe pour l'utilisateur ",[197,349,350],{},"root"," pour votre base de données.\nCe dernier doit être précieusement conservé, il vous sera demandé lors de la création de chaque site et pour certaines opérations de maintenance.",[20,353,354],{},"Pour le configurer ou le modifier, vous pouvez lancer la commande suivante :",[72,356,358],{"className":74,"code":357,"language":76,"meta":77,"style":77},"sudo mariadb-secure-installation\n# > Enter current password for root (enter for none):\n# Laissez vide et appuyez sur Entrée à la première question.\n\n# > Switch to unix_socket authentication [Y\u002Fn] n\n# Répondre non (n) à la question, car nous utiliserons l'authentification par mot de passe.\n\n# > Set root password? [Y\u002Fn] Y\n# Répondre oui (Y), puis entrer un mot de passe sécurisé pour l'utilisateur `root` de la base de données.\n# Ce mot de passe sera demandé à chaque création de site, ainsi que lors ce certaines opérations de maintenance.\n\n# Ensuite, répondre oui (Y) à toutes les questions suivantes.\n# > Remove anonymous users? [Y\u002Fn] Y\n# > Disallow root login remotely? [Y\u002Fn] Y\n# > Remove test database and access to it? [Y\u002Fn] Y\n# > Reload privilege tables now? [Y\u002Fn] Y\n",[50,359,360,367,372,377,384,390,396,401,407,413,419,424,430,436,442,448],{"__ignoreMap":77},[81,361,362,364],{"class":83,"line":84},[81,363,52],{"class":87},[81,365,366],{"class":91}," mariadb-secure-installation\n",[81,368,369],{"class":83,"line":113},[81,370,371],{"class":172},"# > Enter current password for root (enter for none):\n",[81,373,374],{"class":83,"line":131},[81,375,376],{"class":172},"# Laissez vide et appuyez sur Entrée à la première question.\n",[81,378,380],{"class":83,"line":379},4,[81,381,383],{"emptyLinePlaceholder":382},true,"\n",[81,385,387],{"class":83,"line":386},5,[81,388,389],{"class":172},"# > Switch to unix_socket authentication [Y\u002Fn] n\n",[81,391,393],{"class":83,"line":392},6,[81,394,395],{"class":172},"# Répondre non (n) à la question, car nous utiliserons l'authentification par mot de passe.\n",[81,397,399],{"class":83,"line":398},7,[81,400,383],{"emptyLinePlaceholder":382},[81,402,404],{"class":83,"line":403},8,[81,405,406],{"class":172},"# > Set root password? [Y\u002Fn] Y\n",[81,408,410],{"class":83,"line":409},9,[81,411,412],{"class":172},"# Répondre oui (Y), puis entrer un mot de passe sécurisé pour l'utilisateur `root` de la base de données.\n",[81,414,416],{"class":83,"line":415},10,[81,417,418],{"class":172},"# Ce mot de passe sera demandé à chaque création de site, ainsi que lors ce certaines opérations de maintenance.\n",[81,420,422],{"class":83,"line":421},11,[81,423,383],{"emptyLinePlaceholder":382},[81,425,427],{"class":83,"line":426},12,[81,428,429],{"class":172},"# Ensuite, répondre oui (Y) à toutes les questions suivantes.\n",[81,431,433],{"class":83,"line":432},13,[81,434,435],{"class":172},"# > Remove anonymous users? [Y\u002Fn] Y\n",[81,437,439],{"class":83,"line":438},14,[81,440,441],{"class":172},"# > Disallow root login remotely? [Y\u002Fn] Y\n",[81,443,445],{"class":83,"line":444},15,[81,446,447],{"class":172},"# > Remove test database and access to it? [Y\u002Fn] Y\n",[81,449,451],{"class":83,"line":450},16,[81,452,453],{"class":172},"# > Reload privilege tables now? [Y\u002Fn] Y\n",[20,455,456],{},"Vérifiez que vous pouvez vous connecter à la base de données avec le mot de passe que vous avez défini :",[72,458,460],{"className":74,"code":459,"language":76,"meta":77,"style":77},"mysql -u root -p\n# Pour quitter la console, tapez `exit`\n",[50,461,462,476],{"__ignoreMap":77},[81,463,464,467,470,473],{"class":83,"line":84},[81,465,466],{"class":87},"mysql",[81,468,469],{"class":91}," -u",[81,471,472],{"class":91}," root",[81,474,475],{"class":91}," -p\n",[81,477,478],{"class":83,"line":113},[81,479,480],{"class":172},"# Pour quitter la console, tapez `exit`\n",[54,482,484],{"id":483},"nodejs-v24-ou-ultérieur-et-yarn","NodeJS (v24 ou ultérieur) et yarn",[20,486,487,488,493],{},"Vous pouvez installer NodeJS via ",[24,489,492],{"href":490,"rel":491},"https:\u002F\u002Fgithub.com\u002Fnvm-sh\u002Fnvm#installing-and-updating",[28],"nvm"," ou le gestionnaire de paquets de votre distribution.",[72,495,497],{"className":74,"code":496,"language":76,"meta":77,"style":77},"curl -o - https:\u002F\u002Fraw.githubusercontent.com\u002Fnvm-sh\u002Fnvm\u002Fv0.39.7\u002Finstall.sh | bash\n. \"$HOME\u002F.nvm\u002Fnvm.sh\"\nnvm install 24\nnpm install -g yarn\n\n# Créez un lien symbolique pour que NodeJS soit accessible facilement à tous les utilisateurs\nsudo ln -s $(which node) \u002Fusr\u002Fbin\u002F\n",[50,498,499,520,537,547,560,564,569],{"__ignoreMap":77},[81,500,501,504,507,510,513,517],{"class":83,"line":84},[81,502,503],{"class":87},"curl",[81,505,506],{"class":91}," -o",[81,508,509],{"class":91}," -",[81,511,512],{"class":91}," https:\u002F\u002Fraw.githubusercontent.com\u002Fnvm-sh\u002Fnvm\u002Fv0.39.7\u002Finstall.sh",[81,514,516],{"class":515},"sMK4o"," |",[81,518,519],{"class":87}," bash\n",[81,521,522,524,527,531,534],{"class":83,"line":113},[81,523,35],{"class":134},[81,525,526],{"class":515}," \"",[81,528,530],{"class":529},"sTEyZ","$HOME",[81,532,533],{"class":91},"\u002F.nvm\u002Fnvm.sh",[81,535,536],{"class":515},"\"\n",[81,538,539,541,543],{"class":83,"line":131},[81,540,492],{"class":87},[81,542,183],{"class":91},[81,544,546],{"class":545},"sbssI"," 24\n",[81,548,549,552,554,557],{"class":83,"line":379},[81,550,551],{"class":87},"npm",[81,553,183],{"class":91},[81,555,556],{"class":91}," -g",[81,558,559],{"class":91}," yarn\n",[81,561,562],{"class":83,"line":386},[81,563,383],{"emptyLinePlaceholder":382},[81,565,566],{"class":83,"line":392},[81,567,568],{"class":172},"# Créez un lien symbolique pour que NodeJS soit accessible facilement à tous les utilisateurs\n",[81,570,571,573,576,579,582,585,588,591],{"class":83,"line":398},[81,572,52],{"class":87},[81,574,575],{"class":91}," ln",[81,577,578],{"class":91}," -s",[81,580,581],{"class":515}," $(",[81,583,584],{"class":134},"which",[81,586,587],{"class":91}," node",[81,589,590],{"class":515},")",[81,592,593],{"class":91}," \u002Fusr\u002Fbin\u002F\n",[20,595,596],{},"Vérifiez que NodeJS a bien été installé",[72,598,600],{"className":74,"code":599,"language":76,"meta":77,"style":77},"node -v\n# v24.x.y\n",[50,601,602,610],{"__ignoreMap":77},[81,603,604,607],{"class":83,"line":84},[81,605,606],{"class":87},"node",[81,608,609],{"class":91}," -v\n",[81,611,612],{"class":83,"line":113},[81,613,614],{"class":172},"# v24.x.y\n",[54,616,617],{"id":617},"docli",[20,619,620,621,624,625,629,630,635,636,639,640,35],{},"La commande ",[50,622,623],{},"bench"," de Dokos vient de ",[24,626,617],{"href":627,"rel":628},"https:\u002F\u002Fgitlab.com\u002Fdokos\u002Fdocli",[28],", une adaptation de ",[24,631,634],{"href":632,"rel":633},"https:\u002F\u002Fgithub.com\u002Ffrappe\u002Fbench",[28],"Bench",". Elle gère vos sites et applications Dodock. Sur PyPI, le paquet de docli s'appelle ",[50,637,638],{},"dokos-cli"," : installez-le avec ",[50,641,642],{},"pip",[15,644,647],{"color":645,"icon":646},"blue","i-mdi-information",[20,648,649,650,654,655,658],{},"Ne confondez pas docli avec l'outil ",[24,651,653],{"href":652},"\u002Fv5\u002Fadministrer\u002Fdokos-cli","Dokos CLI"," (commande ",[50,656,657],{},"dokos","), qui dialogue avec un site par l'API REST.",[72,660,662],{"className":74,"code":661,"language":76,"meta":77,"style":77},"export PATH=$PATH:$HOME\u002F.local\u002Fbin\nprintf '\\n%s\\n' 'export PATH=$PATH:$HOME\u002F.local\u002Fbin' >> ~\u002F.bashrc\npip install --user --upgrade --quiet --break-system-packages dokos-cli\n",[50,663,664,679,706],{"__ignoreMap":77},[81,665,666,670,673,676],{"class":83,"line":84},[81,667,669],{"class":668},"spNyl","export",[81,671,672],{"class":529}," PATH",[81,674,675],{"class":515},"=",[81,677,678],{"class":529},"$PATH:$HOME\u002F.local\u002Fbin\n",[81,680,681,684,687,690,693,695,698,700,703],{"class":83,"line":113},[81,682,683],{"class":134},"printf",[81,685,686],{"class":515}," '",[81,688,689],{"class":91},"\\n%s\\n",[81,691,692],{"class":515},"'",[81,694,686],{"class":515},[81,696,697],{"class":91},"export PATH=$PATH:$HOME\u002F.local\u002Fbin",[81,699,692],{"class":515},[81,701,702],{"class":515}," >>",[81,704,705],{"class":91}," ~\u002F.bashrc\n",[81,707,708,710,712,715,718,721,724],{"class":83,"line":131},[81,709,642],{"class":87},[81,711,183],{"class":91},[81,713,714],{"class":91}," --user",[81,716,717],{"class":91}," --upgrade",[81,719,720],{"class":91}," --quiet",[81,722,723],{"class":91}," --break-system-packages",[81,725,726],{"class":91}," dokos-cli\n",[20,728,729],{},"Ensuite, vérifiez que docli est bien installé :",[72,731,733],{"className":74,"code":732,"language":76,"meta":77,"style":77},"bench --version\n# 2.9.2\n",[50,734,735,741],{"__ignoreMap":77},[81,736,737,739],{"class":83,"line":84},[81,738,623],{"class":87},[81,740,167],{"class":91},[81,742,743],{"class":83,"line":113},[81,744,745],{"class":172},"# 2.9.2\n",[15,747,748],{"color":17,"icon":302},[20,749,750,751,753,754,757,758,760,761,35],{},"Si la commande ",[50,752,623],{}," n'est pas trouvée, relancez votre terminal pour que les modifications de votre variable d'environnement ",[50,755,756],{},"PATH"," soient prises en compte. En dernier recours, vous pouvez aussi ajouter la ligne ",[50,759,697],{}," à votre fichier ",[50,762,763],{},"~\u002F.bashrc",[37,765,767],{"id":766},"démarrage-du-serveur-et-installation-dun-site","Démarrage du serveur et installation d'un site",[54,769,771],{"id":770},"création-dun-bench","Création d'un bench",[20,773,774],{},"Un bench est un ensemble de sites et d'applications, et se crée avec les commandes suivantes :",[72,776,778],{"className":74,"code":777,"language":76,"meta":77,"style":77},"cd  # Retournez dans votre dossier personnel\nbench init dokos-bench --version v5 --python $(which python3.14) --frappe-path https:\u002F\u002Fgitlab.com\u002Fdokos\u002Fdodock\ncd dokos-bench\n",[50,779,780,788,821],{"__ignoreMap":77},[81,781,782,785],{"class":83,"line":84},[81,783,784],{"class":134},"cd",[81,786,787],{"class":172},"  # Retournez dans votre dossier personnel\n",[81,789,790,792,795,798,801,804,807,809,811,813,815,818],{"class":83,"line":113},[81,791,623],{"class":87},[81,793,794],{"class":91}," init",[81,796,797],{"class":91}," dokos-bench",[81,799,800],{"class":91}," --version",[81,802,803],{"class":91}," v5",[81,805,806],{"class":91}," --python",[81,808,581],{"class":515},[81,810,584],{"class":134},[81,812,186],{"class":91},[81,814,590],{"class":515},[81,816,817],{"class":91}," --frappe-path",[81,819,820],{"class":91}," https:\u002F\u002Fgitlab.com\u002Fdokos\u002Fdodock\n",[81,822,823,825],{"class":83,"line":131},[81,824,784],{"class":134},[81,826,827],{"class":91}," dokos-bench\n",[20,829,830,831,35],{},"Ensuite, téléchargez les applications que vous souhaitez installer sur vos sites.\nNous vous recommandons les applications suivantes pour démarrer, mais ",[24,832,834],{"href":833},"\u002Fv5\u002Fintegrations","beaucoup d'autres applications sont disponibles",[72,836,838],{"className":74,"code":837,"language":76,"meta":77,"style":77},"# Téléchargez les applications de base\nbench get-app --branch v5 https:\u002F\u002Fgitlab.com\u002Fdokos\u002Fpayments\nbench get-app --branch v5 https:\u002F\u002Fgitlab.com\u002Fdokos\u002Fdokos\nbench get-app --branch v5 https:\u002F\u002Fgitlab.com\u002Fdokos\u002Fwebshop\nbench get-app --branch v5 https:\u002F\u002Fgitlab.com\u002Fdokos\u002Fhrms\n# bench get-app --branch v5 https:\u002F\u002Fgithub.com\u002Ffrappe\u002Fblog\n# bench get-app --branch v5 https:\u002F\u002Fgitlab.com\u002Fdokos\u002Fbookings\n",[50,839,840,845,860,873,886,899,904],{"__ignoreMap":77},[81,841,842],{"class":83,"line":84},[81,843,844],{"class":172},"# Téléchargez les applications de base\n",[81,846,847,849,852,855,857],{"class":83,"line":113},[81,848,623],{"class":87},[81,850,851],{"class":91}," get-app",[81,853,854],{"class":91}," --branch",[81,856,803],{"class":91},[81,858,859],{"class":91}," https:\u002F\u002Fgitlab.com\u002Fdokos\u002Fpayments\n",[81,861,862,864,866,868,870],{"class":83,"line":131},[81,863,623],{"class":87},[81,865,851],{"class":91},[81,867,854],{"class":91},[81,869,803],{"class":91},[81,871,872],{"class":91}," https:\u002F\u002Fgitlab.com\u002Fdokos\u002Fdokos\n",[81,874,875,877,879,881,883],{"class":83,"line":379},[81,876,623],{"class":87},[81,878,851],{"class":91},[81,880,854],{"class":91},[81,882,803],{"class":91},[81,884,885],{"class":91}," https:\u002F\u002Fgitlab.com\u002Fdokos\u002Fwebshop\n",[81,887,888,890,892,894,896],{"class":83,"line":386},[81,889,623],{"class":87},[81,891,851],{"class":91},[81,893,854],{"class":91},[81,895,803],{"class":91},[81,897,898],{"class":91}," https:\u002F\u002Fgitlab.com\u002Fdokos\u002Fhrms\n",[81,900,901],{"class":83,"line":392},[81,902,903],{"class":172},"# bench get-app --branch v5 https:\u002F\u002Fgithub.com\u002Ffrappe\u002Fblog\n",[81,905,906],{"class":83,"line":398},[81,907,908],{"class":172},"# bench get-app --branch v5 https:\u002F\u002Fgitlab.com\u002Fdokos\u002Fbookings\n",[54,910,912],{"id":911},"démarrage-du-serveur","Démarrage du serveur",[15,914,917,927],{"color":915,"icon":916},"amber","i-heroicons-exclamation-triangle",[20,918,919,920,923,924,35],{},"Si vous souhaitez installer Dokos en ",[197,921,922],{},"mode développement",", suivez les instructions suivantes. Vous pouvez ignorer les instructions du ",[197,925,926],{},"mode production",[65,928,932,940,951],{"id":929,"className":930},"documentation-installation-manuelle-serveur-developpement",[931],"mt-2",[68,933,934],{},[81,935,939],{"className":936},[937,938],"font-medium","underline","\n  Cliquez ici pour afficher\u002Fmasquer les instructions du mode développement\n",[20,941,942,943,946,947,950],{},"Activer le ",[50,944,945],{},"developer_mode"," et lancer le serveur avec ",[50,948,949],{},"bench start"," vous permet de voir vos modifications de code en temps réel. Vous devrez lancer le serveur manuellement à chaque redémarrage de votre ordinateur.",[72,952,954],{"className":74,"code":953,"language":76,"meta":77,"style":77},"# Dans un NOUVEAU terminal, lancez le serveur de développement manuellement\nbench start\n\n# Vous pouvez masquer la fenêtre\n\n# Retournez dans le terminal précédent, puis créez un site.\nbench new-site monsite.dokos.cloud\n\n# Puis activez le mode développeur\nbench --site monsite.dokos.cloud set-config developer_mode 1\n",[50,955,956,961,968,972,977,981,986,996,1000,1005],{"__ignoreMap":77},[81,957,958],{"class":83,"line":84},[81,959,960],{"class":172},"# Dans un NOUVEAU terminal, lancez le serveur de développement manuellement\n",[81,962,963,965],{"class":83,"line":113},[81,964,623],{"class":87},[81,966,967],{"class":91}," start\n",[81,969,970],{"class":83,"line":131},[81,971,383],{"emptyLinePlaceholder":382},[81,973,974],{"class":83,"line":379},[81,975,976],{"class":172},"# Vous pouvez masquer la fenêtre\n",[81,978,979],{"class":83,"line":386},[81,980,383],{"emptyLinePlaceholder":382},[81,982,983],{"class":83,"line":392},[81,984,985],{"class":172},"# Retournez dans le terminal précédent, puis créez un site.\n",[81,987,988,990,993],{"class":83,"line":398},[81,989,623],{"class":87},[81,991,992],{"class":91}," new-site",[81,994,995],{"class":91}," monsite.dokos.cloud\n",[81,997,998],{"class":83,"line":403},[81,999,383],{"emptyLinePlaceholder":382},[81,1001,1002],{"class":83,"line":409},[81,1003,1004],{"class":172},"# Puis activez le mode développeur\n",[81,1006,1007,1009,1012,1015,1018,1021],{"class":83,"line":415},[81,1008,623],{"class":87},[81,1010,1011],{"class":91}," --site",[81,1013,1014],{"class":91}," monsite.dokos.cloud",[81,1016,1017],{"class":91}," set-config",[81,1019,1020],{"class":91}," developer_mode",[81,1022,1023],{"class":545}," 1\n",[1025,1026,1029,1038,1123],"div",{"className":1027},[1028],"doc-install--production-only",[20,1030,1031,1032,1034,1035,1037],{},"Vérifiez que vous êtes bien dans le ",[197,1033,623],{}," que vous venez de créer puis lancez les commandes suivantes pour activer le ",[197,1036,926],{}," de Dokos.",[72,1039,1041],{"className":74,"code":1040,"language":76,"meta":77,"style":77},"sudo mkdir -p \u002Froot\u002F.config\u002Fpip\nprintf \"[global]\\nbreak-system-packages = true\\n\" | sudo tee -a \u002Froot\u002F.config\u002Fpip\u002Fpip.conf\nsudo python3 -m pip install -U -q dokos-cli\nsudo -H bench setup production $USER\n",[50,1042,1043,1056,1081,1104],{"__ignoreMap":77},[81,1044,1045,1047,1050,1053],{"class":83,"line":84},[81,1046,52],{"class":87},[81,1048,1049],{"class":91}," mkdir",[81,1051,1052],{"class":91}," -p",[81,1054,1055],{"class":91}," \u002Froot\u002F.config\u002Fpip\n",[81,1057,1058,1060,1062,1065,1068,1070,1072,1075,1078],{"class":83,"line":113},[81,1059,683],{"class":134},[81,1061,526],{"class":515},[81,1063,1064],{"class":91},"[global]\\nbreak-system-packages = true\\n",[81,1066,1067],{"class":515},"\"",[81,1069,516],{"class":515},[81,1071,108],{"class":87},[81,1073,1074],{"class":91}," tee",[81,1076,1077],{"class":91}," -a",[81,1079,1080],{"class":91}," \u002Froot\u002F.config\u002Fpip\u002Fpip.conf\n",[81,1082,1083,1085,1088,1091,1094,1096,1099,1102],{"class":83,"line":131},[81,1084,52],{"class":87},[81,1086,1087],{"class":91}," python3",[81,1089,1090],{"class":91}," -m",[81,1092,1093],{"class":91}," pip",[81,1095,183],{"class":91},[81,1097,1098],{"class":91}," -U",[81,1100,1101],{"class":91}," -q",[81,1103,726],{"class":91},[81,1105,1106,1108,1111,1114,1117,1120],{"class":83,"line":379},[81,1107,52],{"class":87},[81,1109,1110],{"class":91}," -H",[81,1112,1113],{"class":91}," bench",[81,1115,1116],{"class":91}," setup",[81,1118,1119],{"class":91}," production",[81,1121,1122],{"class":529}," $USER\n",[15,1124,1125],{"color":17,"icon":18},[20,1126,1127],{},[24,1128,1129],{"href":1129,"rel":1130},"https:\u002F\u002Fdiscuss.frappe.io\u002Ft\u002Fguide-how-to-install-erpnext-v16-on-linux-ubuntu-24-04-step-by-step-instructions\u002F159255#p-491392-seven-setup-production-environment-9",[28],[1132,1133,1134],"style",{},"\n  body:has(#documentation-installation-manuelle-serveur-developpement[open]) .doc-install--production-only,\n  body:has(#documentation-installation-manuelle-serveur-developpement:not([open])) .doc-install--developer-only {\n    position: relative;\n    opacity: 0.3;\n    \u002F* text-decoration: line-through; *\u002F\n  }\n  body:has(#documentation-installation-manuelle-serveur-developpement[open]) .doc-install--production-only:before {\n    content: \"Mode production\";\n    position: absolute;\n    inset: -4px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-size: 1.5rem;\n    font-weight: bold;\n    color: var(--ui-error, red);\n    background-color: rgba(255, 0, 0, 0.1);\n    border: 2px solid var(--ui-error, red);\n    border-radius: 8px;\n    z-index: 10;\n  }\n",[54,1136,1138],{"id":1137},"création-dun-site","Création d'un site",[20,1140,1141],{},"Créez votre site et installez les applications dont vous avez besoin.",[72,1143,1145],{"className":74,"code":1144,"language":76,"meta":77,"style":77},"# Créez un site (remplacez `monsite.dokos.cloud` par le nom de domaine de votre choix)\nbench new-site monsite.dokos.cloud\n\n# Installez les applications dont vous avez besoin\nbench --site monsite.dokos.cloud install-app payments dokos webshop hrms\n",[50,1146,1147,1152,1160,1164,1169],{"__ignoreMap":77},[81,1148,1149],{"class":83,"line":84},[81,1150,1151],{"class":172},"# Créez un site (remplacez `monsite.dokos.cloud` par le nom de domaine de votre choix)\n",[81,1153,1154,1156,1158],{"class":83,"line":113},[81,1155,623],{"class":87},[81,1157,992],{"class":91},[81,1159,995],{"class":91},[81,1161,1162],{"class":83,"line":131},[81,1163,383],{"emptyLinePlaceholder":382},[81,1165,1166],{"class":83,"line":379},[81,1167,1168],{"class":172},"# Installez les applications dont vous avez besoin\n",[81,1170,1171,1173,1175,1177,1180,1183,1186,1189],{"class":83,"line":386},[81,1172,623],{"class":87},[81,1174,1011],{"class":91},[81,1176,1014],{"class":91},[81,1178,1179],{"class":91}," install-app",[81,1181,1182],{"class":91}," payments",[81,1184,1185],{"class":91}," dokos",[81,1187,1188],{"class":91}," webshop",[81,1190,1191],{"class":91}," hrms\n",[15,1193,1194],{"color":17,"icon":18},[20,1195,1196,1197,35],{},"Si une erreur se produit lors de l'installation, n'hésitez pas à poster un message sur le ",[24,1198,29],{"href":26,"rel":1199},[28],[54,1201,1203],{"id":1202},"finaliser-linstallation","Finaliser l'installation",[20,1205,1206,1207,1210],{},"Par défaut, Nginx accède aux fichiers de votre site en tant qu'utilisateur ",[50,1208,1209],{},"www-data"," à l'aide d'un lien symbolique.\nPour que cela fonctionne, vous devez donner à Nginx le droit de traverser votre dossier utilisateur et suivre le lien symbolique.",[72,1212,1214],{"className":74,"code":1213,"language":76,"meta":77,"style":77},"setfacl --modify user:www-data:x ~\n",[50,1215,1216],{"__ignoreMap":77},[81,1217,1218,1221,1224,1227],{"class":83,"line":84},[81,1219,1220],{"class":87},"setfacl",[81,1222,1223],{"class":91}," --modify",[81,1225,1226],{"class":91}," user:www-data:x",[81,1228,1229],{"class":91}," ~\n",[20,1231,1232],{},"Une fois le site créé, vous pouvez vous connecter et accéder à l'interface d'administration avec l'une des adresses suivantes :",[1234,1235,1236,1244],"ul",{},[1237,1238,1239,1240],"li",{},"Si vous avez un enregistrement DNS configuré qui pointe vers votre serveur : ",[24,1241,1242],{"href":1242,"rel":1243},"http:\u002F\u002Fmonsite.dokos.cloud",[28],[1237,1245,1246,1247],{},"Si Dokos est installé sur votre ordinateur directement en mode développement : ",[24,1248,1249],{"href":1249,"rel":1250},"http:\u002F\u002Flocalhost:8000",[28],[20,1252,1253],{},"Utilisez les identifiants suivants :",[1234,1255,1256,1262],{},[1237,1257,1258,1259],{},"Adresse email : ",[50,1260,1261],{},"Administrator",[1237,1263,1264],{},"Mot de passe : le mot de passe que vous avez choisi lors de la création du site.",[20,1266,1267,1268,1271],{},"Suivez les étapes de l'",[45,1269,1270],{},"Assistant de configuration"," pour finaliser l'installation.",[54,1273,1275],{"id":1274},"pour-aller-plus-loin","Pour aller plus loin",[20,1277,1278],{},"Pour le rendre accessible depuis l'extérieur, il faut configurer un enregistrement DNS qui pointe vers votre serveur, et configurer Let's Encrypt pour obtenir un certificat SSL.",[1280,1281,1282,1291],"card-group",{},[1283,1284,1288],"card",{"icon":1285,"title":1286,"to":1287},"i-mdi-lock-outline","DNS multi-tenant","\u002Fv5\u002Fadministrer\u002Fexploitation\u002Fdomaine",[20,1289,1290],{},"Configuration du nom de domaine",[1283,1292,1295],{"icon":1285,"title":1293,"to":1294},"Let's Encrypt","\u002Fv5\u002Fadministrer\u002Fexploitation\u002Fcertificat",[20,1296,1297],{},"Configuration du certificat SSL avec Let's Encrypt",[54,1299,1301],{"id":1300},"questions-fréquentes","Questions Fréquentes",[1303,1304,1305],"blockquote",{},[20,1306,1307],{},"Le site s'affiche sans mise en forme ni couleurs ?",[1234,1309,1310,1313],{},[1237,1311,1312],{},"Vérifiez que votre dossier utilisateur serveur est bien accessible pour Nginx.",[1237,1314,1315,1316,35],{},"Vous pouvez donner le droit de traverser le dossier en lançant ",[50,1317,1318],{},"chmod +x \u002Fhome\u002F\u003Cvotre-utilisateur>",[54,1320,1322],{"id":1321},"références","Références",[1234,1324,1325,1331],{},[1237,1326,1327],{},[24,1328,1329],{"href":1329,"rel":1330},"https:\u002F\u002Fcommunity.dokos.io\u002Ft\u002Finstallation-v5-auto-heberge\u002F1784",[28],[1237,1332,1333],{},[24,1334,1335],{"href":1335,"rel":1336},"https:\u002F\u002Fdiscuss.frappe.io\u002Ft\u002Fguide-how-to-install-erpnext-v16-on-linux-ubuntu-24-04-step-by-step-instructions\u002F159255",[28],[1132,1338,1339],{},"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 .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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":77,"searchDepth":84,"depth":113,"links":1341},[1342,1350],{"id":39,"depth":113,"text":40,"children":1343},[1344,1345,1346,1347,1348,1349],{"id":56,"depth":131,"text":57},{"id":146,"depth":131,"text":147},{"id":244,"depth":131,"text":245},{"id":319,"depth":131,"text":320},{"id":483,"depth":131,"text":484},{"id":617,"depth":131,"text":617},{"id":766,"depth":113,"text":767,"children":1351},[1352,1353,1354,1355,1356,1357,1358],{"id":770,"depth":131,"text":771},{"id":911,"depth":131,"text":912},{"id":1137,"depth":131,"text":1138},{"id":1202,"depth":131,"text":1203},{"id":1274,"depth":131,"text":1275},{"id":1300,"depth":131,"text":1301},{"id":1321,"depth":131,"text":1322},"Installer Dokos v5 sur un serveur Ubuntu 24.04, en mode production ou en mode développement.","md",{"reviewed":382,"last_verified":1362,"sources":1363},"2026-11-04",[1364,1365,1366,1367,1368],"frappe:pyproject.toml","frappe:package.json","frappe:frappe\u002Fdatabase\u002Fmariadb\u002Fsetup_db.py","bench:pyproject.toml","bench:bench\u002Fcommands\u002Fmake.py","\u002Fv5\u002Fadministrer\u002Finstallation\u002Fmanuelle",{"title":5,"description":1359},"1.v5\u002F5.administrer\u002F02.installation\u002F1.manuelle","IXIHjFxywLg8_8QujyJzB1OG6G9SaQUTSavPZoQZCgA",{},1793956986881]