Serveur Joplin

Serveur Joplin

Joplin est une application libre bien connue de prise de notes qui permet d’organiser vos notes et de les synchroniser avec tous vos appareils. Dans cet article, je vais détailler l’installation d’un serveur Joplin sous Docker.

Application

L’application Joplin propose toutes les fonctionnalités qu’on est en droit d’attendre d’une solution de prise de notes moderne :

  • client multi-plateformes deskop et mobile (Windows, OSX, Linux, Android et iOS)
  • prise de notes, listes todo
  • éditeur markdown
  • gestion des versions
  • support multimédia (images, vidéos, audio, PDF)
  • publication web (clic droit sur une note -> Publier la note)
  • web clipper (extension navigateur pour importer des pages web)
  • partage de notes entre amis, famille ou collègues
  • chiffrement bout en bout (E2EE)
  • import Evernote
  • plugin VScode

Application Joplin

Joplin Server

Joplin est compatible avec de nombreux services de nuage (Nextcloud, OneDrive, Dropbox) mais aussi des solutions plus simple comme WebDAV et surtout la solution maison : Joplin Server.

Notez que l’éditeur propose aussi une solution hébergée avec Joplin Cloud.

Installation

Avant de commencer, je précise que le serveur Joplin est toujours en version bêta (2.9.7-beta) au moment où j’écris cet article.

Si vous démarrez avec Docker, je vous propose de jeter un coup d’œil à mon précédent article..

Pour les autres, on va directement entrer dans le vif du sujet en déclarant le frontal applicatif et la base de données (PostgreSQL) dans un traditionnel docker-compose.yaml:

1$ sudo mkdir /opt/joplin
2$ sudo touch /opt/joplin/docker-compose.yaml

Avec le contenu suivant en veillant à :

  • personnaliser les mots de passe, la configuration mail et les URL
  • utiliser la dernière version du server joplin
 1version: '3'
 2services:
 3  db:
 4    image: postgres:15
 5    container_name: joplin_db
 6    restart: unless-stopped
 7    volumes:
 8      - db:/var/lib/postgresql/data
 9    expose:
10      - 5432
11    networks:
12      - lan    
13    restart: unless-stopped
14    environment:
15      - POSTGRES_PASSWORD=V3ryS3cr3t
16      - POSTGRES_USER=joplin
17      - POSTGRES_DB=joplin
18  app:
19    image: joplin/server:2.9.7-beta
20    container_name: joplin_app
21    depends_on:
22      - db
23    expose:
24      - 22300
25    restart: unless-stopped
26    environment:
27      - APP_PORT=22300
28      - APP_BASE_URL=https://joplin.domain.tld  
29      - DB_CLIENT=pg
30      - POSTGRES_PASSWORD=V3ryS3cr3t
31      - POSTGRES_DATABASE=joplin
32      - POSTGRES_USER=joplin
33      - POSTGRES_PORT=5432
34      - POSTGRES_HOST=db
35      - MAILER_ENABLED=1
36      - MAILER_HOST=smtp.domain.tld
37      - MAILER_PORT=25
38      - MAILER_SECURITY=none
39      - MAILER_NOREPLY_NAME=joplin-server
40      - MAILER_NOREPLY_EMAIL=joplin-noreply@domain.tld
41    networks:
42      - traefik_lan
43      - lan
44    labels:
45      - "traefik.enable=true"
46      - "traefik.docker.network=traefik_lan"
47      - "traefik.http.routers.joplin.rule=Host(`joplin.domain.tld`)"
48      - "traefik.http.routers.joplin.entrypoints=websecure"
49      - "traefik.http.routers.joplin.tls=true"
50networks:
51  traefik_lan:
52    external: true
53  lan:
54volumes:
55  db:
56    driver: local

Dans ce déploiement, j’utilise toujours Traefik en reverse proxy et pour la terminaison TLS. La persistance des données est assurée avec un volume nommé pour la base de données (pensez à mettre en place une sauvegarde).

Il ne reste plus qu’à lancer l’application:

1$ docker-compose -f /opt/joplin/docker-compose.yaml up -d

et consulter les logs pour s’assurer que tout est correct :

1$ docker-compose -f /opt/joplin/docker-compose.yaml logs app

Si tout va bien vous devez pouvoir utiliser l’interface web de l’application à l’adresse: https://[fqdn] (en fonction du nom de domaine que vous avez déclaré dans votre docker-compose).

les identifiants par défaut sont :

  • email : admin@localhost
  • password: admin

Joplin login

Après avoir changé le mot de passe du compte admin et validé le compte avec le lien fourni dans le courriel reçu, il faut créer les comptes pour les utilisateurs qui souhaitent utiliser votre serveur (il existe une variable pour permettre aux utilisateurs de s’enregistrer: SIGNUP_ENABLED=1)

Joplin add user

Le quota maximum et la taille max des fichiers téléchargés sont exprimés en octets (ici respectivement 5GB et 2MB).

Configuration du client

Je vous recommande de commencer par activer le chiffrement E2EE (Préférences -> Chiffrement) et ensuite de configurer la synchronisation :

Joplin sync

Partager un carnet

Le partage se situe au niveau carnet (notebook): clic droit sur le carnet -> partager le carnet

Joplin share notebooks

Conclusion

Joplin Server est une alternative crédible à Evernote tout en gardant la maitrise de ses données. Elle est particulièrement légère (empreinte mémoire de 350MB) et facile à prendre en main. Dernier point, L’application gère maintenant des profils avec des réglages indépendants pratique pour séparer des univers personnel et professionnel.