--- categories: ['Traduction'] date: 2020-12-22T23:31:21+01:00 description: "Traduction du Tutoriel EN → FR 'Host your Cryptpad web office suite with OpenBSD' décrivant l'installation, la configuration de la suite web office Cryptpad pour l'utiliser sous OpenBSD" draft: false tags: ['Traduction','OpenBSD','Cryptpad'] title: "Héberger votre suite web office Cryptpad sous OpenBSD" --- ## Description Retrouvez ci-dessous la traduction EN → FR de l'article "**[Host your Cryptpad web office suite with OpenBSD][1]**", écrit par Solène Rapenne. --- # Héberger votre suite web office Cryptpad sous OpenBSD Dans cet article, j'expliquerai comment déployer votre propre instance de [Cryptpad][2] sous OpenBSD. Cryptpad est une suite web office permettant de collaborer en temps réel sur des documents. Cryptpad est écrit en JavaScript et le démon agit en tant que serveur web. ## Pré-requis Vous avez besoin d'installer les paquets **git**, **node**, **automake** et **autoconfig** afin d'être capable de récupèrer les sources et d'exécuter le programme. ```ksh # pkg_add node git autoconf--%2.69 automake--%1.16 ``` Un autre logiciel en amont est requis pour assurer les connexions TLS et sécuriser les accès réseaux à l'instance Cryptpad. Cela peut être **relayd**, **haproxy**, **nginx** ou **lighttpd**. Je couvre le paramétrage en utilisant httpd, et relayd. Notez que les développeurs de Cryptpad ne fournissent du support que seulement pour les utilisateurs de Nginx. ## Installation Je recommande réellement l'utilisation d'utilisateur dédié au service. Nous créerons un nouvel utilisateur par la commande : ```ksh # useradd -m _cryptpad ``` Ensuite, nous continuerons l'installation logiciel avec l'utilisateur `_cryptpad`. ```ksh # su -l _cryptpad ``` Nous suivrons principalement le [guide d'installation officiel][3] à certaines exceptions près afin d'adapter à OpenBSD : ```ksh $ git clone https://github.com/xwiki-labs/cryptpad $ cd cryptpad $ env AUTOMAKE_VERSION=1.16 AUTOCONF_VERSION=2.69 CC=clang CXX=clang++ npm install $ env AUTOMAKE_VERSION=1.16 AUTOCONF_VERSION=2.69 CC=clang CXX=clang++ npm install bower $ node_modules/.bin/bower install $ cp config/config.example.js config/config.js ``` ## Configuration Voici les quelques variables importantes à personnaliser : - **httpUnsafeOrigin** devrait être l'adresse publique sur laquelle Cryptpad sera disponible. Cela devrait être certainement un lien HTTPS avec un nom d'hôte. J'utiliserais `https://cryptpad.kongroo.eu`. - **httpSafeOrigin** devrait être une adresse publique différente de la précédente. Cryptpad requiert deux adresses différentes pour fonctionner. J'utiliserais `https://api.cryptpad.kongroo.eu`. - **adminEmail** doit être une adresse de courriel valide utilisé par l'administrateur (certainement vous-même). ## Créer un fichier rc pour démarrer le service Nous avons besoin d'automatiser le démarrage proprement, en même temps que celui du système. Créez le fichier `/etc/rc.d/cryptpad` : ```rc #!/bin/ksh daemon="/usr/local/bin/node" daemon_flags="server" daemon_user="_cryptpad" location="/home/_cryptpad/cryptpad" . /etc/rc.d/rc.subr rc_start() { ${rcexec} "cd ${location}; ${daemon} ${daemon_flags}" } rc_bg=YES rc_cmd $1 ``` Activez et démarrez le service avec le contrôleur `rcctl` : ```ksh # rcctl enable cryptpad # rcctl start cryptpad ``` ## Fonctionnement ### Création d'un compte administrateur Enregistrez-vous sur votre instance Cryptpad puis allez à la page "Settings" de votre profil : copiez votre clé public de signature. Éditez le fichier `config.js` et cherchez `adminKeys` ; décommentez la section en supprimant les `/*` et `*/` autour, puis supprimez la clé d'exemple pour copier la vôtre, tel ce qui suit : ```js adminKeys: [ "[solene@cryptpad.kongroo.eu/YzfbEYwZq6Xhl7ET6AHD01w3QqOE7STYgGglgSTgWfk=]", ], ``` Redémarrez Cryptpad ; l'utilisateur est maintenant administrateur et a accès au nouveau panel d'administration depuis l'application web. ### Sauvegarde Vous avez besoin de sauvegarder les répertoires `data` et `datastore` qui sont dans le répertoire de Cryptpad. ## Configuration supplémentaire Dans cette section, j'expliquerai comment générer votre certificat TLS avec acme-client et comment configurer httpd et relayd pour publier cryptpad. Je considère cela en plus de l'actuel article, car si vous utilisez déjà nginx, et avez une installation pour générer des certificats, vous n'en avez pas besoin. Si vous démarrez de zéro, c'est la manière la plus simple pour obtenir un résultat. À partir de là, je considère que vous utilisez OpenBSD et que vos fichiers de configuration sont vierges. J'utiliserai pour l'exemple le domaine **kongroo.eu**. ### httpd Nous utiliserons httpd d'une manière trés simple. Il écoutera seulement sur le port 80 pour tous les domaines, permettant à acme-client de fonctionner et redirigera aussi automatiquement les requêtes HTTP vers HTTPS. ```ksh # cp /etc/examples/httpd.conf /etc/httpd.conf # rcctl enable httpd # rcctl start httpd ``` ### acme-client Nous utiliserons le fichier exemple par défaut : ```ksh # cp /etc/examples/acme-client.conf /etc/acme-client.conf ``` Éditez le fichier `/etc/acme-client.conf` et changez le dernier bloc `domain` ; remplacez `example.com` et `secure.example.com` par votre domaine, tels que `cryptpad.kongroo.eu` et `api.cryptpad.kongroo.eu` en tant que nom alternatif. Pour des raisons pratiques, nous allons remplacer le chemin du certificat full chain pour avoir `hostname.crt` au lieu de `hostname.fullchain.pem` pour correspondre aux attentes de relayd. Voici à quoi ressemble ce paragraphe sur mon paramétrage : ```nginx domain kongroo.eu { alternative names { api.cryptpad.kongroo.eu cryptpad.kongroo.eu } domain key "/etc/ssl/private/kongroo.eu.key" domain full chain certificate "/etc/ssl/kongroo.eu.crt" sign with buypass } ``` Notez qu'avec le fichier [acme-client.conf][4] par défaut, vous pouvez utiliser *letsencrypt* ou *buypass* en tant qu'autorité de certification. Vous devriez maintenant être capable de créer vos certificats. ```ksh # acme-client kongroo.eu ``` C'est fait ! Vous souhaitez que le certificat soit renouvellé automatiquement et que relayd redémarre après le changement de certificat ? Comme l'indique la page de manuel d'acme-client.conf, ajoutez ce qui suit à la crontab de root en utilisant la commande `crontab -e` : ```cron ~ * * * * acme-client kongroo.eu && rcctl reload relayd ``` ### relayd Cette configuration est assez simple : remplacez `kongroo.eu` par votre domaine. Créez un fichier [/etc/relayd.conf][5] avec le contenu suivant : ```nginx tcp protocol "https" { tls keypair kongroo.eu } relay "https" { listen on egress port 443 tls protocol https forward to 127.0.0.1 port 3000 } ``` Activez et démarrez relayd en utilisant rcctl : ```ksh # rcctl enable relayd # rcctl start relayd ``` ## Conclusion Vous devriez être capable d'atteindre votre instance Cryptpad en utilisant maintenant votre URL publique. Félicitations ! --- [1]: https://dataswamp.org/~solene/2020-12-14-cryptpad-openbsd.html [2]: https://cryptpad.fr/ [3]: https://github.com/xwiki-labs/cryptpad/wiki/Installation-guide [4]: https://man.openbsd.org/acme-client.conf [5]: https://man.openbsd.org/relayd.conf