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
Prendre cette page
Configuration de authentification SAML
Prendre cette page
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; }"