Masquer les derniers auteurs
| author | version | line-number | content |
|---|---|---|---|
![]() |
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. |
