9.4 KiB
Service pad.libre-service.eu
Le service pad.libre-service.eu est un service de traitement de texte collaboratif basé sur le logiciel Etherpad-lite : https://etherpad.org/
Installation
Basée sur :
- https://github.com/ether/etherpad-lite#manual-install
- https://framacloud.org/fr/cultiver-son-jardin/etherpad
Prérequis système
Configuration du hostname :
hostname pad.libre-service.eu
Personnalisation du prompt dans .bashrc :
PS1='${debian_chroot:+($debian_chroot)}\u@\H:\w\$ '
Ouvrir les ports nécessaires :
apt install ufw
ufw allow 'ssh'
ufw enable
Prérequis logiciels
Git
Installation de Git pour cloner le code :
apt install git
Postgresql
Base de données :
apt install postgresql postgresql-contrib
D'après la documentation d'installation de Gitea :
PostgreSQL uses md5 challenge-response encryption scheme for password authentication by default. Nowadays this scheme is not considered secure anymore. Use SCRAM-SHA-256 scheme instead by editing the postgresql.conf configuration file on the database server to:
password_encryption = scram-sha-256
Restart PostgreSQL to apply the setting.
Le conseil semble judicieux donc éditer le fichier /etc/postgresql/13/main/postgresql.conf
:
#password_encryption = md5 # md5 or scram-sha-256
password_encryption = scram-sha-256
Et redémarrer le service :
systemctl restart postgresql.service
Nodejs
Etherpad nécessite Node.js >= 12.17.0. Vérifier que la version de Debian Stable est compatible :
apt-cache show nodejs |grep Version
Installer :
apt install nodejs
Npm
Etherpad nécessite Npm. Installer npm
:
apt install npm
Déploiement
Préparation de la base de données
Créer un utilisateur (« role » en langage Pgsql) :
su -c "psql -c \"CREATE ROLE etherpad WITH LOGIN PASSWORD 'NJPvjmneADaYgdShrU47bL';\"" - postgres
su -c "psql -c \"\du+\"" - postgres
Créer une base de données :
su -c "psql -c \"CREATE DATABASE etherpad WITH OWNER etherpad TEMPLATE template0 ENCODING UTF8 LC_COLLATE 'fr_FR.UTF-8' LC_CTYPE 'fr_FR.UTF-8';\"" - postgres
su -c "psql -c \"\l\"" - postgres
Donner l'accès en éditant le ficher /etc/postgresql/13/main/pg_hba.conf
:
local etherpad etherpad scram-sha-256
Redémarrer le service :
systemctl restart postgresql.service
Création d'un utilisateur système dédié
Créer un compte système dédié :
adduser --disabled-password --system --group --home /srv/etherpad/ --shell /bin/bash etherpad
Déploiement du code
Déployer le code :
cd /var/www
git clone --branch master https://github.com/ether/etherpad-lite.git pad.libre-service.eu
chown -R etherpad:etherpad /var/www/pad.libre-service.eu
Créer le fichier de configuration :
su etherpad -c "cd /var/www/pad.libre-service.eu/ && cp settings.json.template settings.json"
Configurer dans /var/www/pad.libre-service.eu/settings.json
:
- "dbType" : "dirty",
- "dbSettings" : {
- "filename" : "var/dirty.db"
- },
"dbType" : "postgres",
"dbSettings" : {
"user": "etherpad",
"host": "localhost",
"port": 5432,
"password": "password",
"database": "etherpad",
"charset": "utf8mb4"
},
[…]
"trustProxy": true,
[…]
"users": {
"admin": {
"password": "xxxxxxxxxxxxxxxx",
"is_admin": true
},
Premier lancement :
su etherpad -c "cd /var/www/pad.libre-service.eu/ && ./src/bin/run.sh"
Configuration Systemd
Créer le fichier /etc/systemd/system/etherpad.service
:
[Unit]
Description=Etherpad-lite, the collaborative editor.
After=syslog.target network.target postgresql.target
[Service]
Type=simple
User=etherpad
Group=etherpad
WorkingDirectory=/var/www/pad.libre-service.eu/
Environment=NODE_ENV=production
ExecStart=/var/www/pad.libre-service.eu/bin/fastRun.sh
Restart=always
[Install]
WantedBy=multi-user.target
Activer le fichier :
systemctl daemon-reload
Next, start the Etherpad service and enable it to start at system reboot with the following command:
systemctl start etherpad
systemctl status etherpad
Activer le démarrage automatique :
systemctl enable etherpad
Configuration Apache
Documentation officielle : https://github.com/ether/etherpad-lite/wiki/How-to-put-Etherpad-Lite-behind-a-reverse-Proxy#apache
Activer les modules pour le proxy :
a2enmod proxy
a2enmod proxy_http
a2enmod rewrite
apachectl configtest
systemctl restart apache2
Configurer le site web :
ProxyVia On
ProxyRequests Off
ProxyPreserveHost On
<Location />
ProxyPass http://localhost:9001/ retry=0 timeout=30
ProxyPassReverse http://localhost:9001/
</Location>
<Location /socket.io>
# This is needed to handle the websocket transport through the proxy, since
# etherpad does not use a specific sub-folder, such as /ws/ to handle this kind of traffic.
# Taken from https://github.com/ether/etherpad-lite/issues/2318#issuecomment-63548542
# Thanks to beaugunderson for the semantics
RewriteEngine On
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule /(.*) ws://localhost:9001/socket.io/$1 [P,L]
ProxyPass http://localhost:9001/socket.io retry=0 timeout=30
ProxyPassReverse http://localhost:9001/socket.io
</Location>
<Proxy *>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Proxy>
Personnalisation
Nom de l'instance
Modifier le nom de l'instance dans /var/www/pad.libre-service.eu/settings.json
:
- "title": "Etherpad",
+ "title": "pad.libre-service.eu",
Favicon
Modifier le nom de l'instance dans /var/www/pad.libre-service.eu/settings.json
:
- "favicon": null,
+ "favicon": "/var/www/pad.libre-service.eu/custom/pad.libre-service.eu-logo.png",
Texte de pad par défaut
Configurer un texte de pad par défaut dans /var/www/pad.libre-service.eu/settings.json
:
- "defaultPadText" : "Welcome to Etherpad!\n\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!\n\nGet involved with Etherpad at https:\/\/etherpad.org\n",
+ "defaultPadText" : "Bienvenue sur pad.libre-service.eu \o/\n\nLe service pad.libre-service.eu vous permet de faire de l'édition collaborative de texte.\nPour rappel, les pads non accédés depuis 1 an sont susceptibles d'être supprimés.\n\nEn vous souhaitant un agréable usage de nos services libres, éthique et loyaux.\n\nLibrement,\n\nL'équipe de Libre-service.eu. ",
Installation de modules
Installer des modules élémentaires :
su - etherpad
cd /var/www/pad.libre-service.eu/
npm install --no-save --legacy-peer-deps ep_adminpads2 ep_align ep_author_hover ep_delete_empty_pads ep_font_color ep_font_size ep_headings2 ep_spellcheck ep_table_of_contents
Sous réserve de mise àjour : ep_delete_after_delay
Ajout export ODF
La FAQ officielle indique comment faire : https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-with-AbiWord
Installer LibreOffice de façon non grahique :
apt install libreoffice-nogui
Configurer dans /var/www/pad.libre-service.eu/settings.json :
"soffice" : "/usr/bin/soffice"
Augmentation de la taille d'import
Lors de l'import d'un gros pad, les limites de téléversement peuvent bloquer l'import.
Augmenter les limites de téléversement :
TODO
Table des matières cachée par défaut
Sur les téléphones portables, l'affichage de la table des matières peut être inconfortable.
Cacher par défaut la table des matières :
TODO
Rendu visuel de la table des matières
Par défaut, le rendu visuel de la table des matières connait des points améliorables :
- décoration du texte (souligné) ;
- largeur de la table des matières :
- taille de la fonte.
TODO
Mise à jour
Documentation:
To update to the latest released version, execute git pull origin. The next start with src/bin/run.sh will update the dependencies.
So proceed:
systemctl stop etherpad
su etherpad -c "cd /var/www/pad.libre-service.eu/ && git pull"
su etherpad -c "cd /var/www/pad.libre-service.eu/ && ./bin/installDeps.sh"
su etherpad -c "cd /var/www/pad.libre-service.eu/ && npm audit"
su etherpad -c "cd /var/www/pad.libre-service.eu/ && npm audit fix"
su etherpad -c "cd /var/www/pad.libre-service.eu/ && npm audit"
systemctl start etherpad