CodiMD

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 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 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 page

Configuration de authentification SAML

Prendre cette page

FIXME Faire une conf adapté

Configuration de authentification LDAP

D'après cette page 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 cette page. Le wiki de ArchLinux fourni 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; }"
 
/var/lib/dokuwiki/data/pages/si/codimd.txt · Dernière modification: 2021/01/12 00:13 par vodkra
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Debian Driven by DokuWiki