====== 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": "", "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": "", "database": "codimd", "host": "", "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://:389", "bindDn": "uid=codimd,ou=applications,dc=parinux,dc=org", "bindCredentials": "", "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; }"