Outils pour utilisateurs

Outils du site


tech:notes_etherpad

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
tech:notes_etherpad [2025/04/30 14:45] Jean-Baptistetech:notes_etherpad [2026/06/07 19:12] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +<!DOCTYPE markdown>
 +{{tag>Brouillon App Nodejs Docker Redis}}
 +
 +# Notes Etherpad
 +
 +## Installation
 +
 +Voir
 +* http://docs.docker.com/articles/using_supervisord/ 
 +* https://help.ubuntu.com/community/Etherpad-liteInstallation
 +
 +Voir aussi :
 +* https://linuxfr.org/news/wopix-un-serveur-wopi-libre-independant-simple-et-leger
 +
 +Notes : Redis a remplacer par Valkey
 +
 +~~~bash
 +apt-get install --no-install-recommends supervisor
 +apt-get install --no-install-recommends npm
 +apt-get install --no-install-recommends git
 +apt-get install --no-install-recommends pigz git curl python libssl-dev pkg-config build-essential
 +
 +mkdir -p /opt/etherpad
 +
 +useradd -s /usr/sbin/nologin -r -M -d /opt/etherpad etherpad
 +# useradd is a low level utility for adding users. On Debian, administrators should usually use adduser(8) instead.
 +
 +cd /opt/etherpad
 +su -s /bin/bash -l etherpad -c 'git clone https://github.com/ether/etherpad-lite'
 +
 +ln -s $(which nodejs) /usr/local/bin/node
 +~~~
 +
 +
 +`settings.json`
 +~~~javascript
 +  /*when you use NginX or another proxy/ load-balancer set this to true*/
 +  "trustProxy" : false,
 +
 +  /* This is the path to the Abiword executable. Setting it to null, disables abiword.
 +     Abiword is needed to advanced import/export features of pads*/
 +  "abiword" : null,
 +
 +  /* Users for basic authentication. is_admin = true gives access to /admin.
 +     If you do not uncomment this, /admin will not be available! */
 +
 +  "users": {
 +    "admin": {
 +      "password": "P@ssw0rd",
 +      "is_admin": true
 +    },
 +    "user": {
 +      "password": "P@ssw0rd",
 +      "is_admin": false
 +    }
 +  },
 +
 +  /* Default Pad behavior, users can override by changing */
 +  "padOptions": {
 +    "noColors": false,
 +    "showControls": true,
 +    "showChat": true,
 +    "showLineNumbers": true,
 +    "useMonospaceFont": false,
 +    "userName": false,
 +    "userColor": false,
 +    "rtl": false,
 +    "alwaysShowChat": false,
 +    "chatAndUsers": false,
 +    "lang": "fr-fr"
 +  },
 +
 +~~~
 +
 +A changer aussi
 +
 +
 +~~~
 +$ ~/etherpad-lite/bin/run.sh
 +[2015-09-12 17:31:58.565] [WARN] console - DirtyDB is used. This is fine for testing but not recommended for production.
 +~~~
 +
 +~~~bash
 +apt-get install --no-install-recommends redis-server
 +service redis-server start
 +~~~
 +
 +''settings.json''
 +~~~javascript
 +  "dbType" : "redis",
 + 
 + //the database specific settings
 +  "dbSettings" : {
 +      "host"        : "localhost",
 +      "port"        : 6379,
 +      "database"    : 0
 +  },
 +~~~
 +
 +~~~bash
 +apt-get install --no-install-recommends abiword
 +~~~
 +
 +''settings.json''
 +~~~javascript
 +  /* This is the path to the Abiword executable. Setting it to null, disables abiword.
 +     Abiword is needed to advanced import/export features of pads*/
 +  "abiword" : "/usr/bin/abiword",
 +~~~
 +
 +
 +
 +## Docker
 +
 +plugin 
 +~~~
 +WORKDIR /src/etherpad
 +# Install dependencies RUN bin/installDeps.sh
 +RUN npm install sqlite3
 +# Add the settings ADD config/ /src/etherpad/
 +# Install plugins RUN npm install \
 +    ep_headings \
 +    ep_monospace_default \
 +    ep_print
 +~~~
 +
 +https://github.com/ether/etherpad-docker
 +
 +''/etc/supervisor/supervisord.conf''
 +~~~ini
 +[supervisord]
 +nodaemon=true
 +
 +[unix_http_server]
 +file=/var/run//supervisor.sock
 +chmod=0700
 +
 +[rpcinterface:supervisor]
 +supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
 +
 +[supervisorctl]
 +serverurl=unix:///var/run//supervisor.sock
 +
 +[program:redis]
 +user=root
 +command=service redis-server start
 +autostart=true
 +autorestart=true
 +
 +
 +[program:etherpad]
 +directory=/opt/etherpad/etherpad-lite
 +command=node node_modules/ep_etherpad-lite/node/server.js
 +user=etherpad
 +autostart=true
 +autorestart=true
 +~~~
 +
 +~~~bash
 +docker run -d -p 9001:9001 -v /srv/docker/etherpad/redis:/var/lib/redis etherpad bash -c "service redis-server start ; su -s /bin/bash -l etherpad -c /opt/etherpad/etherpad-lite/bin/run.sh"
 +~~~
 +
 +~~~bash
 +docker ps -a
 +docker commit 6417ee8095da etherpad
 +docker run -ti -p 9001:9001 etherpad
 +service redis start
 +su -s /bin/bash -l etherpad
 +~/etherpad-lite/bin/run.sh
 +~~~
 +
 +~~~bash
 +update-rc.d redis-server defaults
 +service redis-server start
 +~~~
 +
 +
 +## Pb conversion en ODT
 +
 +~~~
 +[2015-09-12 18:19:45.935] [ERROR] console - Abiword File failed to convert [Error: Abiword died with exit code null]
 +Error: Abiword died with exit code null
 +    at module.exports (/opt/etherpad/etherpad-lite/src/node_modules/async-stacktrace/ERR.js:46:13)
 +    at /opt/etherpad/etherpad-lite/src/node/handler/ExportHandler.js:224:36
 +    at /opt/etherpad/etherpad-lite/src/node_modules/async/lib/async.js:254:17
 +    at /opt/etherpad/etherpad-lite/src/node_modules/async/lib/async.js:151:21
 +    at /opt/etherpad/etherpad-lite/src/node_modules/async/lib/async.js:251:21
 +    at Object.callback (/opt/etherpad/etherpad-lite/src/node_modules/async/lib/async.js:615:34)
 +    at stdoutCallback (/opt/etherpad/etherpad-lite/src/node/utils/Abiword.js:135:14)
 +    at ChildProcess.<anonymous> (/opt/etherpad/etherpad-lite/src/node/utils/Abiword.js:94:7)
 +    at ChildProcess.emit (events.js:98:17)
 +    at Process.ChildProcess._handle.onexit (child_process.js:809:12)
 +~~~
 +
 +
 +## Démarrage automatique avec systemd
 +
 +''/etc/systemd/system/etherpad.service''
 +~~~ini
 +[Unit]
 +Description=Etherpad container
 +After=docker.service
 +Requires=docker.service
 +
 +[Service]
 +TimeoutStartSec=0
 +ExecStartPre=-/usr/bin/docker stop -t 2 etherpad1
 +ExecStartPre=-/usr/bin/docker rm -f etherpad1
 +ExecStart=/usr/bin/docker run -d -p 9001:9001 -v /srv/docker/etherpad/ep_fileupload/upload:/opt/etherpad/etherpad-lite/node_modules/ep_fileupload/upload -v /srv/docker/etherpad/redis:/var/lib/redis --name etherpad1 etherpad supervisord -c /etc/supervisor/supervisord.conf -n
 +RestartSec=20s
 +Type=notify
 +NotifyAccess=all
 +TimeoutStartSec=120
 +TimeoutStopSec=25
 +KillMode=process
 +
 +[Install]
 +WantedBy=multi-user.target
 +~~~
 +
 +~~~bash
 +systemctl daemon-reload
 +systemctl enable etherpad.service
 +systemctl start etherpad
 +~~~
 +
 +
 +## Plugin
 +
 +~~~
 +# Ajout un menu dans /admin contenant la liste des pads, date dernière modification, nombre d'utilisateur connecté au pad
 +ep_adminpad
 +
 +# Affiche le nom de l'auteur au survol du pointeur sur le texte
 +ep_authornames
 +
 +# Plus d'avertissement pour effacer les couleurs identifiant les auteurs
 +ep_clear_authorship_no_prompt
 +
 +## DEPEND DE ep_page_view
 +# Permet de laisser des commentaires en marge de la page
 +ep_comments_page
 +
 +# Afficher les images (passées en URL)
 +# MARCHE AVEC ep_fileupload
 +ep_previewimages
 +
 +# Copier-coller des images
 +ep_copy_paste_images
 +
 +# De pas garder les pads jamais edités
 +ep_delete_empty_pads
 +
 +# Ajoute titre 1er niveau, 2em niveau etc...
 +ep_headings
 +
 +# Pour faire des lignes horizontales
 +ep_horizontal_line
 +
 +# Créer /list contenant la liste des pads
 +ep_padlist
 +
 +# Ajoute un mode page
 +ep_page_view
 +
 +# Insertion caractère spéciaux
 +ep_special_characters
 +
 +# Diff
 +ep_timesliderdiff
 +
 +# Ajout option pour désactiver le retour à la ligne automatique
 +ep_wrap
 +
 +~~~
 +
 +''settings.json''
 +~~~javascript
 +// Display comments as icons, not boxes
 +"ep_comments_page": {
 +  "displayCommentAsIcon": true
 +},
 +~~~
 +
 +FIXME /opt/etherpad/etherpad-lite/node_modules/ep_fileupload/upload
 +
 +
 +## Script déploiement Etherpad via Docker
 +
 +~~~bash
 +#! /bin/bash
 +
 +mkdir -p /srv/docker/etherpad/ep_fileupload/upload
 +mkdir -p /srv/docker/etherpad/redis
 +chmod 777 -R /srv/docker
 +
 +zcat etherpad.tar.gz | docker load
 +
 +cat <<EOF >/etc/systemd/system/etherpad.service
 +[Unit]
 +Description=Etherpad container
 +After=docker.service
 +Requires=docker.service
 +
 +[Service]
 +TimeoutStartSec=0
 +ExecStartPre=-/usr/bin/docker stop -t 2 etherpad1
 +ExecStartPre=-/usr/bin/docker rm -f etherpad1
 +ExecStart=/usr/bin/docker run -d -p 9001:9001 -v /srv/docker/etherpad/ep_fileupload/upload:/opt/etherpad/etherpad-lite/node_modules/ep_fileupload/upload -v /srv/docker/etherpad/redis:/var/lib/redis --name etherpad1 etherpad supervisord -c /etc/supervisor/supervisord.conf -n
 +RestartSec=20s
 +Type=notify
 +NotifyAccess=all
 +TimeoutStartSec=120
 +TimeoutStopSec=25
 +KillMode=process
 +
 +[Install]
 +WantedBy=multi-user.target
 +EOF
 +
 +systemctl daemon-reload
 +systemctl enable etherpad.service
 +systemctl start etherpad
 +~~~
 +
 +----------------
 +
 +Liste des pad (requette en base Redis)
 +~~~bash
 +redis-cli keys 'pad:*' | grep -Eo '^pad:[^:]+' | sed -e 's/pad://' | sort | uniq -c | sort -rn | awk '{if ($1!="2") {print $2 }}'
 +~~~
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki