0 Votes

Code source wiki de Wallabag

Version 1.1 par john le 2026/09/19 13:24

Masquer les derniers auteurs
john 1.1 1 Lecture différée : enregistre les articles web pour les lire plus tard, sans publicité, avec extensions de navigateur et applications mobiles.
2
3 == Architecture ==
4
5 |=Conteneur|=Rôle
6 |wallabag|Application
7 |wallabag-db|Base PostgreSQL 16
8 |wallabag-redis|File de tâches (imports, téléchargement des images)
9
10 La base et Redis sont sur le réseau interne ##wallabag_net## ; seule l'application est sur ##proxy##.
11
12 == Stack ==
13
14 {{code language="yaml"}}
15 networks:
16 proxy:
17 external: true
18 wallabag_net:
19 driver: bridge
20
21 volumes:
22 wallabag_images:
23 driver: local
24 wallabag_data:
25 driver: local
26 wallabag_db:
27 driver: local
28
29 services:
30 wallabag:
31 image: wallabag/wallabag:latest
32 container_name: wallabag
33 restart: unless-stopped
34 environment:
35 - SYMFONY__ENV__DOMAIN_NAME=<URL_WALLABAG>
36 - SYMFONY__ENV__DATABASE_DRIVER=pdo_pgsql
37 - SYMFONY__ENV__DATABASE_HOST=wallabag-db
38 - SYMFONY__ENV__DATABASE_PORT=5432
39 - SYMFONY__ENV__DATABASE_NAME=wallabag
40 - SYMFONY__ENV__DATABASE_USER=wallabag
41 - SYMFONY__ENV__DATABASE_PASSWORD=${WALLABAG_DB_PASSWORD}
42 - SYMFONY__ENV__REDIS_HOST=wallabag-redis
43 - SYMFONY__ENV__REDIS_PORT=6379
44 - SYMFONY__ENV__TRUSTED_PROXIES=127.0.0.1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
45 - SYMFONY__ENV__TRUSTED_HEADERS=x-forwarded-for,x-forwarded-proto,x-forwarded-port,x-forwarded-host
46 depends_on:
47 - wallabag-db
48 - wallabag-redis
49 volumes:
50 - wallabag_images:/var/www/wallabag/web/assets/images
51 - wallabag_data:/var/www/wallabag/data
52 networks:
53 - proxy
54 - wallabag_net
55
56 wallabag-db:
57 image: postgres:16-alpine
58 container_name: wallabag-db
59 restart: unless-stopped
60 environment:
61 - POSTGRES_DB=wallabag
62 - POSTGRES_USER=wallabag
63 - POSTGRES_PASSWORD=${WALLABAG_DB_PASSWORD}
64 healthcheck:
65 test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
66 interval: 20s
67 timeout: 5s
68 retries: 5
69 volumes:
70 - wallabag_db:/var/lib/postgresql/data
71 networks:
72 - wallabag_net
73
74 wallabag-redis:
75 image: redis:alpine
76 container_name: wallabag-redis
77 restart: unless-stopped
78 command: ["redis-server","--appendonly","yes"]
79 healthcheck:
80 test: ["CMD", "redis-cli", "ping"]
81 interval: 20s
82 timeout: 5s
83 retries: 5
84 networks:
85 - wallabag_net
86 {{/code}}
87
88 * ##SYMFONY__ENV__DOMAIN_NAME## doit être l'URL publique exacte, en https : elle sert à générer les liens et à valider les applications clientes.
89 * ##TRUSTED_PROXIES## et ##TRUSTED_HEADERS## permettent à Wallabag de savoir qu'il est derrière SWAG en https. Sans eux, il génère des liens en http.
90
91 == Commandes ==
92
93 {{code language="bash"}}
94 # Créer un utilisateur
95 docker exec -it wallabag /var/www/wallabag/bin/console fos:user:create --env=prod
96
97 # Donner les droits d'administration
98 docker exec -it wallabag /var/www/wallabag/bin/console fos:user:promote <UTILISATEUR> ROLE_SUPER_ADMIN --env=prod
99
100 # Appliquer les migrations de base après une mise à jour majeure
101 docker exec -t wallabag /var/www/wallabag/bin/console doctrine:migrations:migrate --env=prod --no-interaction
102 {{/code}}
103
104 == Sauvegarde ==
105
106 * Base : dump SQL de ##wallabag-db## par le script de [[Sauvegarde>>Wiki Batcave John.Infrastructure.Sauvegarde.WebHome]].
107 * Les images des articles sont dans le volume nommé ##wallabag_images##, hors du dossier sauvegardé.