Docker

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 :

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.

Jérémy Taunay

🪪 Be smarter everyday | 🏮 Less is more | 🐧Tech systèmes et réseaux | 🖥️ Homelaber

6 Comments

  1. 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

    1. 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 !

      1. 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 ?

        1. 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

  2. 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

Leave a Reply

Your email address will not be published. Required fields are marked *