0 Votes

Code source wiki de Joplin

Modifié par john le 2026/09/18 23:20

Afficher les derniers auteurs
1 Prise de notes : un serveur de synchronisation pour les clients Joplin (ordinateur, mobile), et l'application de bureau Joplin utilisable dans le navigateur. Deux stacks distinctes.
2
3 == Serveur de synchronisation ==
4
5 |=Conteneur|=Rôle
6 |joplin-server|Serveur Joplin
7 |joplin-db|Base PostgreSQL 16
8
9 {{code language="yaml"}}
10 services:
11 joplin-db:
12 image: postgres:16
13 container_name: joplin-db
14 restart: unless-stopped
15 healthcheck:
16 test: ["CMD-SHELL", "pg_isready -d joplin -U joplin"]
17 interval: 10s
18 timeout: 5s
19 retries: 5
20 volumes:
21 - <DOSSIER_BASE>:/var/lib/postgresql/data
22 environment:
23 POSTGRES_PASSWORD: <MOT_DE_PASSE>
24 POSTGRES_USER: joplin
25 POSTGRES_DB: joplin
26 networks:
27 - joplin-net
28
29 joplin:
30 image: joplin/server:latest
31 container_name: joplin-server
32 restart: unless-stopped
33 depends_on:
34 joplin-db:
35 condition: service_healthy
36 ports:
37 - "22300:22300"
38 environment:
39 - APP_BASE_URL=<URL_JOPLIN>
40 - APP_PORT=22300
41 - POSTGRES_PASSWORD=<MOT_DE_PASSE>
42 - POSTGRES_DATABASE=joplin
43 - POSTGRES_USER=joplin
44 - POSTGRES_PORT=5432
45 - POSTGRES_HOST=joplin-db
46 - DB_CLIENT=pg
47 - STORAGE_DRIVER=Type=Filesystem;Path=/data/content_storage
48 volumes:
49 - <DOSSIER_CONTENU>:/data/content_storage
50 networks:
51 - joplin-net
52
53 networks:
54 joplin-net:
55 driver: bridge
56 {{/code}}
57
58 * La base n'a aucun port publié : seul le serveur Joplin y accède, par le réseau interne ##joplin-net##.
59 * ##STORAGE_DRIVER=Type=Filesystem## : le contenu des notes et des pièces jointes est stocké en fichiers dans ##<DOSSIER_CONTENU>##, pas dans la base. Les éléments antérieurs au passage à ce mode sont restés dans la base.
60 * Le serveur est publié sur le port 22300 de l'hôte, que SWAG relaie.
61
62 == Application dans le navigateur ==
63
64 Image LinuxServer.io de l'application de bureau Joplin, affichée dans le navigateur.
65
66 {{code language="yaml"}}
67 name: joplin-desktop
68
69 services:
70 joplin-app:
71 image: lscr.io/linuxserver/joplin:latest
72 container_name: joplin-app
73 environment:
74 - PUID=1000
75 - PGID=1000
76 - TZ=Europe/Paris
77 - LC_ALL=fr_FR.UTF-8
78 volumes:
79 - <APPDATA>/joplin-app:/config
80 security_opt:
81 - seccomp:unconfined
82 shm_size: "1gb"
83 restart: unless-stopped
84 networks:
85 - proxy
86
87 networks:
88 proxy:
89 external: true
90 {{/code}}
91
92 * ##seccomp:unconfined## et ##shm_size## sont requis par l'application Electron dans le conteneur.
93 * L'application peut produire des fichiers ##core.*## volumineux en cas de plantage : ils sont exclus de la sauvegarde.
94
95 {{warning}}
96 Cette application donne un accès complet aux notes sans authentification propre : elle ne doit être publiée que derrière Authelia.
97 {{/warning}}
98
99 == Sauvegarde ==
100
101 * Base : dump SQL de ##joplin-db## par le script de [[Sauvegarde>>Wiki Batcave John.Infrastructure.Sauvegarde.WebHome]].
102 * Contenu des notes : ##<DOSSIER_CONTENU>##, ajouté comme chemin source du script car il est hors du dossier des conteneurs.
103 * Application : ##<APPDATA>/joplin-app##, sans les fichiers ##core.*##.