Installer Etherpad avec docker – bloc note sur le web
Récemment sous Windows 11, Microsoft à effectué un restylage du bloc note afin de mieux coller avec la charte graphique de l’OS. Cependant le célèbre notepad de Windows n’est pas accessible sur le web, encore moins collaboratif. Etherpad lui, il fait tout ça !
Etherpad est un bloc note collaboratif, accessible sur le web depuis n’importe quel navigateur. C’est un projet open source, qui intègre également un mini chat sur chaque bloc note créée afin de communiquer avec ses collaborateurs.
Il dispose d’un historique de version qui est pratique si un petit malin s’amuse à effacer votre texte, mais vous pouvez aussi exporter la note en .txt ou .html pour les réimporter dans un autre logiciel.
J’ai remarqué un petit défaut toutefois en l’utiliser avec un ami, exemple :
Mon ami écrit une ligne, je souhaite écrire sur la ligne du dessous. Je fais donc un retour à la ligne. Si mon ami écrit, il sera automatiquement redirigé vers la seconde ligne. bug assez pénible qui sera sans doute résolu dans les prochaines versions.
Installer Etherpad avec Docker
Voici quelques prérequis afin d’installer Etherpad via Docker :
- Avoir une IP fixe sur sa machine
- Avoir docker et portainer d’installer
Rendez vous sur l’interface web portainer afin d’y ajouter une nouvelle stack, que vous pouvez nommé “Etherpad”
Et copier la stack ci-dessous
version: '3.3'
services:
etherpad:
container_name: etherpad
ports:
- '9001:9001'
environment:
DB_TYPE: postgres
DB_HOST: db
DB_PORT: 5432
DB_NAME: etherpad
DB_USER: user
DB_PASS: mdp
DEFAULT_PAD_TEXT: Bienvenue sur le notepad officiel du site https://zatoufly.fr ! # texte par défaut à la création d'un bloc-note
TITLE: ZatouPad # Titre de l'instance
ADMIN_PASSWORD: admin # mot de passe de la page d'administration
restart: always
image: etherpad/etherpad
db:
image: postgres:11-alpine
environment:
POSTGRES_DB: etherpad
POSTGRES_PASSWORD: mdp
POSTGRES_USER: user
logging:
driver: "none"
restart: always
volumes:
- /srv/docker/etherpad/db:/var/lib/postgresql/data
Etherpad ne fournit pas (ou j’ai pas trouvé) une stack prête à l’emploi. J’ai donc fabriqué moi même cette stack avec une base de données postgres (parce que c’est notre postgres). Je vous invite à changer les mot de passe et à adapter la stack selon vos besoins.
Une fois déployer, sur votre navigateur sur l’ip de votre serveur avec le bon port : http://votre-ip:9001
D’ici vous pouvez maintenant créer un bloc note, ce qui nous donne ensuite une jolie page :
Maintenant vous avez un bloc note accessible depuis n’importe quel appareil de votre réseau domestique. Si vous souhaitez y avoir accès sur internet pour diverses raison, il faudra passez par un reverse proxy.
Attention le notepad sera accessible pour toute personne ayant la connaissance de l’adresse de votre bloc note.
Page d’administration
Enfin vous avez accès à une page d’administration à l’adresse http://votre-ip:9001/admin. L’utilisateur par défaut est admin avec le mot de passe choisi dans la stack précédemment.
Bonjour,
Merci beaucoup pour le docker-compose (j’avoue ne pas avoir regardé le tuto, utilisant régulièrement Docker déjà, même si je n’en reste pas moins un noob XD) !
Pour info, j’ai dû ajouter un paramètre “links” pour le faire fonctionner, donc voici mon fichier, si ça peut servir à quelqu’un ^^
De plus, utilisant un reverse proxy (pour mettre le pad sur un sous-domaine), j’ai des paramètres “networks” qui trainent : ils doivent être enlevé pour une utilisation classique, mais je les laisse aussi si qqn avait besoin.
Enfin, j’éditerai mon commentaire une fois que j’utiliserais un fichier .env afin d’y mettre un certain nombre de variables, ça sera plus propre je trouve 😉
Bonne journée
version: ‘3’
services:
etherpad:
container_name: etherpad
ports:
– ‘9001:9001’
links: # AJOUT
– db
environment:
DB_TYPE: postgres
DB_HOST: db
DB_PORT: 5432
DB_NAME: etherpad
DB_USER: user
DB_PASS: mdp
DEFAULT_PAD_TEXT: Bienvenue sur ce pad ! # texte par defaut à la création d’un bloc-note
TITLE: pad # Titre de l’instance
ADMIN_PASSWORD: admin # mot de passe de la page d’administration
PAD_OPTIONS_ALWAYS_SHOW_CHAT: true
restart: always
image: etherpad/etherpad
networks: # AJOUT
default:
ipv4_address: 172.19.X.Y
db:
image: postgres:11-alpine
container_name: postgres_pad
environment:
POSTGRES_DB: etherpad
POSTGRES_PASSWORD: mdp
POSTGRES_USER: user
logging:
driver: “none”
restart: always
volumes:
– /srv/docker/etherpad/db:/var/lib/postgresql/data
networks: # AJOUT
default:
name: nginx-docker # bridge pour reverse
external: true
Hello, merci beaucoup du partage, c’est très gentil à toi. Effectivement le fichier .env c’est un poil plus propre. Tout comme l’utilisasion de volume à la place des bind mount !
C’est normal de partager, car j’aime bien trouver des trucs tout fait qui marchent, donc quand il y a un problème qui apparaît et que je sais le résoudre, j’aime partager en pensant que ça peut aider quelqu’un ^^
Du coup, un autre soucis que j’avais était l’installation de greffons. Pour régler ça, j’ai fait :
$ git clone https://github.com/ether/etherpad-lite.git
$ cd ehterpad-lite
$ git checkout tags/1.8.18
$ mv docker-compose.yml etherpad-lite/
puis modifié le docker-compose.yml (j’ai peut être oublié la balise code la dernière fois…)
[...]
#image: etherpad/etherpad:latest
build:
context: .
args:
- ETHERPAD_PLUGINS=ep_custom_header_message ep_list_pads ep_offline_edit ep_table_of_contents # Liste des plugins, séparé par un espace (NB : un plugin doit commencer par eb_)
[...]
$ docker compose build
$ docker compose up -d
En revanche, je n’ai pas réussi à éditer mon message précédent pour faire les modifications avec le fichier d’environnement…Mais peut être est-ce normal ?
Super bonne façon de penser, c’est très agréable d’entendre ça !
Merci encore pour la contribution, pour l’édition de message c’est curieux. Il faut que j’investigue le problème
Merci pour le tuto….
Ma petite contribution : pour l’installer sur une raspberry (64 bit), il faut mettre l’image du container (fonctionne avecarm64) suivante : etherpad/etherpad:develop
Merci du partage !