Docker/compose/wallabag/docker-compose.yml

56 lines
1.9 KiB
YAML

# run after running compose file: $ docker exec -t NAME_OR_ID_OF_YOUR_WALLABAG_CONTAINER /var/www/wallabag/bin/console wallabag:install --env=prod --no-interaction
networks:
backend:
external: true
frontend:
external: true
services:
wallabag:
image: wallabag/wallabag
security_opt:
- apparmor:unconfined
container_name: Wallabag
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql
- SYMFONY__ENV__DATABASE_HOST=mariadb
- SYMFONY__ENV__DATABASE_PORT=3306
- SYMFONY__ENV__DATABASE_NAME=${SYMFONY__ENV__DATABASE_NAME}
- SYMFONY__ENV__DATABASE_USER=${SYMFONY__ENV__DATABASE_USER}
- SYMFONY__ENV__DATABASE_PASSWORD=${SYMFONY__ENV__DATABASE_PASSWORD}
- SYMFONY__ENV__DATABASE_CHARSET=utf8mb4
- SYMFONY__ENV__DOMAIN_NAME=${SYMFONY__ENV__DOMAIN_NAME}
- SYMFONY__ENV__SERVER_NAME=${SYMFONY__ENV__SERVER_NAME}
- SYMFONY__ENV__FOSUSER_CONFIRMATION=false
- SYMFONY__ENV__TWOFACTOR_AUTH=true
labels:
- traefik.enable=true
- traefik.http.routers.wallabag.entrypoints=websecure
- traefik.http.routers.wallabag.rule=Host(`example.domain.com`) #change hostname
- traefik.http.routers.wallabag.tls=true
- traefik.http.routers.wallabag.tls.certresolver=production
- traefik.http.routers.wallabag.middlewares=authentik@file
- traefik.http.routers.wallabag.service=wallabag
- traefik.http.services.wallabag.loadBalancer.server.port=80
ports:
- 6749:80
networks:
- backend
- frontend
volumes:
- /docker/appdata/wallabag/images:/var/www/wallabag/web/assets/images:rw
- /docker/appdata/wallabag/data:/var/www/wallabag/data:rw
depends_on:
- redis
redis:
image: redis:alpine
security_opt:
- apparmor:unconfined
container_name: Wallabag-REDIS
networks:
- backend
restart: unless-stopped