Masquer les derniers auteurs
| author | version | line-number | content |
|---|---|---|---|
![]() |
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]]. | ||
![]() |
2.1 | 107 | * Images des articles : non téléchargées (option désactivée), le volume ##wallabag_images## est vide. Si l'option est activée, ajouter ce volume aux chemins sources du script. |
