0 Votes

Code source wiki de Flus

Modifié par john le 2026/09/19 13:35

Masquer les derniers auteurs
john 1.1 1 Outil de veille collaboratif. Il permet de suivre des flux RSS et des sites, de garder des articles à lire plus tard et de les annoter, et surtout de les organiser en collections thématiques que l'on peut partager avec d'autres personnes ou rendre publiques. On peut aussi suivre les collections des autres utilisateurs.
2
3 == Déploiement ==
4
5 Stack lancée en ligne de commande avec ##docker compose##, depuis ##<APPDATA>/flus## : Portainer l'affiche mais ne peut pas la modifier. Toutes les opérations se font dans ce dossier.
6
7 |=Conteneur|=Rôle
8 |flus-nginx|Serveur web, seul exposé sur ##proxy##
9 |flus-php|Application PHP (image construite localement)
10 |flus-worker|Tâches de fond : récupération des flux, envoi des courriels
11 |flus-db|Base PostgreSQL 16
12
13 == Stack ==
14
15 {{code language="yaml"}}
16 services:
17 flus-db:
18 image: postgres:16-alpine
19 container_name: flus-db
20 restart: unless-stopped
21 environment:
22 POSTGRES_DB: flus
23 POSTGRES_USER: flus
24 POSTGRES_PASSWORD: <MOT_DE_PASSE>
25 volumes:
26 - ./storage/postgres:/var/lib/postgresql/data
27 healthcheck:
28 test: ["CMD-SHELL", "pg_isready -U flus -d flus"]
29 interval: 10s
30 timeout: 5s
31 retries: 10
32 networks:
33 - flus
34
35 flus-php:
36 build:
37 context: ./docker/php
38 image: flus-php-local
39 container_name: flus-php
40 restart: unless-stopped
41 working_dir: /var/www/html
42 environment:
43 LANG: en_GB.UTF-8
44 LC_ALL: en_GB.UTF-8
45 volumes:
46 - ./app:/var/www/html
47 - ./storage/data:/var/www/html/data
48 - ./storage/cache:/var/www/html/cache
49 - ./storage/media:/var/www/html/public/media
50 depends_on:
51 flus-db:
52 condition: service_healthy
53 networks:
54 - flus
55
56 flus-worker:
57 build:
58 context: ./docker/php
59 image: flus-php-local
60 container_name: flus-worker
61 restart: unless-stopped
62 working_dir: /var/www/html
63 user: "33:33"
64 command: php cli jobs watch
65 environment:
66 LANG: en_GB.UTF-8
67 LC_ALL: en_GB.UTF-8
68 volumes:
69 - ./app:/var/www/html
70 - ./storage/data:/var/www/html/data
71 - ./storage/cache:/var/www/html/cache
72 - ./storage/media:/var/www/html/public/media
73 depends_on:
74 flus-db:
75 condition: service_healthy
76 networks:
77 - flus
78
79 flus-nginx:
80 image: nginx:1.27-alpine
81 container_name: flus-nginx
82 restart: unless-stopped
83 depends_on:
84 - flus-php
85 volumes:
86 - ./app:/var/www/html:ro
87 - ./storage/media:/var/www/html/public/media
88 - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
89 networks:
90 - flus
91 - proxy
92
93 networks:
94 flus:
95 proxy:
96 external: true
97 {{/code}}
98
99 == Arborescence ==
100
101 |=Dossier|=Contenu
102 |##app/##|Code de Flus (dépôt git), avec sa configuration ##.env##
103 |##docker/php/##|Dockerfile de l'image PHP
104 |##docker/nginx/default.conf##|Configuration nginx
105 |##storage/##|Données : base, fichiers, cache, médias
106
107 == Mise à jour ==
108
109 L'image PHP est locale : Watchtower ne la met pas à jour. Depuis ##<APPDATA>/flus## :
110
111 {{code language="bash"}}
112 # Mettre à jour l'image PHP (correctifs de sécurité)
113 docker compose build --pull
114 docker compose up -d
115
116 # Mettre à jour Flus
117 cd app && git pull && cd ..
118 docker exec -u 33:33 flus-php php cli migrations setup --seed
119 {{/code}}
120
121 == Sauvegarde ==
122
123 * Base : dump SQL de ##flus-db## par le script de [[Sauvegarde>>Wiki Batcave John.Infrastructure.Sauvegarde.WebHome]].
124 * Code, configuration et médias : ##<DOSSIER_FLUS>##, sauvegardé tel quel.