si:logiciels:codimd

Différences

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

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
si:logiciels:codimd [2025/04/24 21:07] – supprimée - modification externe (Unknown date) 127.0.0.1si:logiciels:codimd [2025/04/24 21:07] (Version actuelle) – ↷ Page déplacée de si:codimd à si:logiciels:codimd vcalame
Ligne 1: Ligne 1:
 +====== CodiMD ======
  
 +[[https://github.com/codimd/server|Dépôt github]]
 +
 +[[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 =====
 +
 +==== 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 =====
 +
 +==== 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é
 +
 +===== 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"                                                                           
 +      }
 + 
 +
 +===== Compilation du front-end =====
 +
 +  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 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
 +
 +===== Voir les logs du service =====
 +
 +Pour avoir l'ensemble des logs du service:
 +
 +  journalctl | grep yarn
 +  
 +Pour des lignes sur une date particulière, avec l'exemple du 24 décembre 2020:
 +
 +  journalctl | sed -n -e '/yarn/{/2020-12-24T/p; }'
 +  
 +  # Même chose, mais avec une variable pour éviter d'éditer directement l'expression régulière
 +  date=2020-12-24; journalctl | sed -n -e "/yarn/{/${date}T/p; }"