Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
si:codimd [2020/02/06 20:42]
vodkra créée
si:codimd [2020/04/13 16:27] (Version actuelle)
vodkra [Paquets non-standards] correction d'une erreur de commande
Ligne 5: Ligne 5:
 [[https://​github.com/​codimd/​server/​blob/​master/​docs/​setup/​manual-setup.md|Manuel d'​installation]] [[https://​github.com/​codimd/​server/​blob/​master/​docs/​setup/​manual-setup.md|Manuel d'​installation]]
  
 +[[https://​demo.codimd.org|Site de démo]]
  
 +[[https://​social.codimd.org/​mastodon|Compte Mastodon]]
 +
 +[[https://​community.codimd.org/​|Forum communautaire]]
 +
 +===== Connexion au conteneur =====
 +
 +Se connecter au conteneur ''​codimd''​ sur ''​troll3'':​
 +
 +    sudo lxc-attach --name codimd
 +
 +Ou alors directement en SSH après avoir ajouté sa clef SSH dans `/​root/​.ssh/​authorized_keys` du conteneur :
 +
 +    ssh -J root@troll3.parinux.org root@192.168.1.86
 +
 +===== Maintenance =====
 +==== Consulter les logs ====
 +
 +  journalctl | grep yarn
 +
 +==== Arrêter/​Démarrer le service ====
 +
 +Avec SystemD:
 +
 +  su - codimd
 +  systemctl --user start codimd # Démarrer le service
 +  systemctl --user stop codimd # Arrêter le service
 +====== Installation du service CodiMD ======
 ===== Installation des paquets ===== ===== Installation des paquets =====
  
-  ​apt-get install ​nodejs ​sqlite ​yarnpkg npm npm2deb postgresql+==== Paquets standards sous Debian Stretch ==== 
 + 
 +  ​apt-get install sqlite ​curl apt-transport-https git bzip2
   ​   ​
 +==== Paquets non-standards ====
 +
 +=== NPM ===
 +
 + il faut utiliser les backports:
 +
 +  apt-get -t stretch-backport install npm
 +  ​
 +=== NodeJs ===
 +
 +La version ''​8.5''​ ou supérieure étant requise, il passer par une installation manuelle en s’inspirant de [[https://​github.com/​nodesource/​distributions/​blob/​master/​README.md#​debmanual|cette page]]:
 +
 +  curl -sSL https://​deb.nodesource.com/​gpgkey/​nodesource.gpg.key | apt-key add -
 +  VERSION=node_13.x # Désignation de la version de NodeJS, ici la dernière au moment de l'​écriture de ce wiki
 +  DISTRO=stretch
 +  echo "deb https://​deb.nodesource.com/​$VERSION $DISTRO main" >> /​etc/​apt/​sources.list.d/​nodesource.list
 +  echo "​deb-src https://​deb.nodesource.com/​$VERSION $DISTRO main" >> ​ /​etc/​apt/​sources.list.d/​nodesource.list
 +  apt-get update
 +  apt-get install nodejs
 +  ​
 +
 +=== Yarn ===
 +
 +D'​après [[https://​classic.yarnpkg.com/​en/​docs/​install/#​debian-stable|cette procédure du projet yarn]]:
 +
 +  curl -sS https://​dl.yarnpkg.com/​debian/​pubkey.gpg | apt-key add -
 +  echo "deb https://​dl.yarnpkg.com/​debian/​ stable main" >> /​etc/​apt/​sources.list.d/​yarn.list
 +  apt update && apt install yarn
 +
 +
 +===== Création de l'​utilisateur CodiMD =====
 +
 +Lancer la commande de création d'​utilisateur ''​codimd''​ avec son répertoire ''/​opt/​codimd''​
 +
 +  useradd -m -d /​opt/​codimd/​ -s /bin/bash codimd
 +
 +===== Se connecter comme utilisateur codimd ===== 
 +
 +Rester dans la session de l'​utilisateur ''​codimd''​ pour la suite:
 +
 +  su - codimd
 +===== Récupération du dépôt git =====
 +
 +Récupérer le dépôt git sous le répertoire ''/​opt/​codimd/​ ''​
 +
 +
 +  git clone https://​github.com/​codimd/​server.git
 +
 +===== Installation des dépendances par yarn ===== 
 +
 +Aller dans le dossier ''​server''​ pour lancer l'​installation de ces dépendances:​
 +
 +  cd server
 +  bin/setup
 +
 +===== Configuration générale du service =====
 +
 +Modifier le bloc ''​production''​ du fichier ''​config.json''​
 +
 +    "​production":​ {
 +        "​domain":​ "​codimd.parinux.org",​
 +        "​email":​ false,
 +        "​allowEmailRegister":​ false,
 +        "​protocolUseSSL":​ true,
 +        "​loglevel":​ "​info",​
 +        "​sessionSecret":​ "<​sessionSecret>",​
 +        "​allowGravatar":​ false,
 ===== Configuration de l'​accès à la base de donnée ===== ===== Configuration de l'​accès à la base de donnée =====
 +
 +==== Création de l'​utilisateur sur Postgres ====
 +
 +Se connecter au conteneur ''​postgres''​ et faire la création de l'​utilisateur ''​codimd'':​
 +
 +  su - postgres
 +  createuser --pwprompt codimd # Attention à définir son mot de passe ensuite!
 +  createdb -O codimd codimd
 +
 +==== Configuration du service ====
 +
 +Sur le conteneur ''​codimd'',​ modifier le bloc ''​db''​ comme suit:
 +
 +        "​db":​ {
 +            "​password":​ "<​Mot de passe>",​
 +            "​database":​ "​codimd",​
 +            "​host":​ "<​Nom ou IP de la BDD>",​
 +            "​port":​ "​5432",​
 +            "​dialect":​ "​postgres"​
 +            ​
 +===== Mise en place de l'​authentification avec Keyclock =====
 +
 +FIXME Prendre cette [[https://​github.com/​codimd/​server/​blob/​master/​docs/​guides/​auth/​keycloak.md|page]]
 +===== Configuration de authentification SAML =====
 +
 +Prendre [[https://​github.com/​codimd/​server/​blob/​master/​docs/​guides/​auth/​saml.md|cette page]]
  
 FIXME Faire une conf adapté FIXME Faire une conf adapté
 +
 +===== Configuration de authentification LDAP =====
 +
 +D'​après cette page [[https://​github.com/​codimd/​server/​blob/​master/​docs/​guides/​auth/​ldap-AD.md|cette page]]:
 +
 +  "​ldap":​ {                                                                                          ​
 +      "​url":​ "​ldap://<​Adresse IP du serveur LDAP>:​389",​
 +      "​bindDn":​ "​uid=codimd,​ou=applications,​dc=parinux,​dc=org", ​                                     ​
 +      "​bindCredentials":​ "<​Mot de passe de la branche>",​
 +      "​searchBase":​ "​ou=people,​dc=parinux,​dc=org", ​                                                  
 +      "​searchFilter":​ "​(&​(objectClass=inetOrgPerson)(|(uid={{username}})(mail={{username}})))", ​     ​
 +      "​usernameField":​ "​uid", ​                                                                       ​
 +      "​useridField":​ "​uid" ​                                                                          
 +      }
    
-===== Mise en place du lien symbolique ===== 
  
 +===== Compilation du front-end =====
  
-  ​ln -/usr/bin/yarnpkg /​usr/​bin/​yarn+  ​yarn --cwd /opt/codimd/server --prod run build 
 +===== Lancement du serveur en mode manuel =====
  
 +  yarn --cwd /​opt/​codimd/​server --prod run start
  
-===== Lancement du serveur =====+===== Lancement du serveur ​avec SystemD ​===== 
 + 
 +Ce paragraphe s'est inspiré de [[https://​askubuntu.com/​questions/​676007/​how-do-i-make-my-systemd-service-run-via-specific-user-and-start-on-boot|cette page]]. Le wiki de ArchLinux fourni [[https://​wiki.archlinux.org/​index.php/​Systemd/​User|une page détaillée]]. 
 + 
 +Lancer sous root cette commande au préalable pour activer le lancement du service au boot: 
 +  loginctl enable-linger codimd 
 + 
 +Ensuite, se connecter sous l'​utilisateur ''​codimd''​. 
 + 
 + 
 +Créer d'​abord le fichier ''/​opt/​codimd/​.config/​systemd/​user/​codimd.service''​ sous l'​utilisateur ''​codimd''​ : 
 + 
 +  [Unit] 
 +  Description=CodiMD Server 
 +  After=network.target 
 +   
 +  [Service] 
 +  ExecStart=/​usr/​bin/​yarn --cwd /​opt/​codimd/​server --prod run start 
 +   
 +  [Install] 
 +  WantedBy=multi-user.target 
 + 
 +Ensuite, activer le service ''​codimd.service'':​ 
 + 
 +  systemctl --user enable codimd.service 
 + 
 +Il ne reste plus qu'à lancer le service: 
 + 
 +  systemctl --user start codimd.service 
 + 
 + 
 + 
 +====== Instance de dev '​codimd-plus'​ ====== 
 + 
 +===== Particularités ===== 
 + 
 +  * accès web sur [[https://​codimd-plus.parinux.org]] 
 +  * Version expérimentale pour l'​implémentation de fonctions supplémentaires (support des modèles avec auto-complétion) 
 +  * Utilisateur en ''​codimd-plus'',​ avec appel service différent (''​systemctl --user <​opération>​ codimd-plus''​) 
 +  * Pas de connexion au LDAP 
 +  * Une base de donnée séparée ''​codimd-plus''​ 
 + 
 +===== Création et montage initial du volume LVM ===== 
 + 
 +  mkdir /​var/​lib/​lxc/​codimd-plus 
 +  lvcreate -L10G -n lxc_codimd-plus troll3-vg 
 +  mkfs.ext4 /​dev/​mapper/​troll3--vg-lxc_codimd--plus 
 +  mount /​dev/​troll3-vg/​lxc_codimd-plus /​var/​lib/​lxc/​codimd-plus/​ 
 +   
 +===== Déclaration du montage dans '/​etc/​fstab'​ ===== 
 + 
 +Ajout de la ligne correspondante avec ''​vim'':​ 
 + 
 +  /​dev/​troll3-vg/​lxc_codimd-plus /​var/​lib/​lxc/​codimd-plus/​ ext4 defaults 0 2 
 + 
 +===== Clonage de l'​instance de production ===== 
 + 
 + 
 +FIXME: Commande à éviter car elle oblige à arrêter l'​instance de prod: 
 + 
 +  lxc-clone -o codimd -n codimd-plus  
 +==== Création du conteneur de dev ==== 
 + 
 + 
 +  sudo lxc-create -n codimd-plus -t debian -- -r jessie 
 +   
 +==== Choisir l'IP à mettre en listant les IPs déjà pris ==== 
 + 
 + 
 +  lxc-ls -f --fancy-format ipv4 | sort -h 
 + 
 + 
 +==== Modifier le fichier '/​var/​lib/​lxc/​codimd-plus/​config'​ issu de la copie de '/​var/​lib/​lxc/​codimd-plus/​config'​ ==== 
 + 
 + 
 +Modifier les champs suivants: ''​lxc.network.hwaddr''​ et ''​lxc.network.ipv4''​ 
 + 
 +Lance, puis arrêter le conteneur de dev pour générer les fichiers d'​init. 
 + 
 +  lxc-start -d --name codimd-plus 
 +  lxc-stop --name codimd-plus  
 + 
 +==== Copie avec rsync ==== 
 + 
 + 
 +ATTENTION: Mettre bien nice pour ne pas perturber les services déjà déployés. 
 + 
 +  nice -n 15 rsync -av /​var/​lib/​lxc/​codimd/​rootfs/​ /​var/​lib/​lxc/​codimd-plus/​rootfs/​ 
 +   
 +==== Création de la table séparée dans '​postgres'​ ==== 
 + 
 +  createuser --pwprompt codimd-plus 
 +  createdb -O codimd-plus codimd-plus 
 +   
 +==== Modification du hostname ==== 
 + 
 +**TODO** 
 + 
 +==== Ajout zone DNS ==== 
 + 
 + 
 +**TODO** 
 + 
 +==== Ajout proxy ==== 
 +**TODO** 
 +==== Ajouter la variable d'​environnement '​XDG_RUNTIME_DIR'​ pour couvrir un bug ==== 
 + 
 + 
 +Vu sur le forum de [[https://​bbs.archlinux.org/​viewtopic.php?​id=234813|ArchLinux]]:​ ajouter cette ligne dans ''/​opt/​codimd/​.bashrc''​ 
 + 
 +  export XDG_RUNTIME_DIR=/​run/​user/​$UID 
 +   
 +==== Renommage du service ​====
  
-  ​yarn start --production+  ​mv .config/​systemd/​user/​codimd{,​-plus}.service
 
/var/lib/dokuwiki/data/attic/si/codimd.1581018145.txt.gz · Dernière modification: 2020/02/06 20:42 par vodkra
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Debian Driven by DokuWiki