# 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