services: traefik: image: traefik:v3.3 container_name: traefik restart: always command: - --api.insecure=false - --providers.docker=true - --providers.docker.exposedbydefault=false - --entrypoints.web.address=:80 - --entrypoints.web.http.redirections.entrypoint.to=websecure - --entrypoints.web.http.redirections.entrypoint.scheme=https - --entrypoints.websecure.address=:443 - --certificatesresolvers.myresolver.acme.httpchallenge=true - --certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web - --certificatesresolvers.myresolver.acme.email=norbert@tretkowski.de - --certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json ports: - 80:80 - 443:443 volumes: - ./traefik/letsencrypt:/letsencrypt - /var/run/docker.sock:/var/run/docker.sock:ro # see FAQ entry below if upgrading from a different PostgreSQL major version (e.g. 12 to 15): # https://tt-rss.org/wiki/InstallationNotes/#i-got-the-updated-compose-file-above-and-now-my-database-keeps-restarting db: image: postgres:15-alpine restart: unless-stopped env_file: - .env environment: - POSTGRES_USER=${TTRSS_DB_USER} - POSTGRES_PASSWORD=${TTRSS_DB_PASS} - POSTGRES_DB=${TTRSS_DB_NAME} volumes: - ./db:/var/lib/postgresql/data app: image: cthulhoo/ttrss-fpm-pgsql-static:latest restart: unless-stopped env_file: - .env volumes: - ./app:/var/www/html - ./config.d:/opt/tt-rss/config.d:ro depends_on: - db optional, makes weekly backups of your install backups: image: cthulhoo/ttrss-fpm-pgsql-static:latest restart: unless-stopped env_file: - .env volumes: - ./backups:/backups - ./app:/var/www/html depends_on: - db command: /opt/tt-rss/dcron.sh -f updater: image: cthulhoo/ttrss-fpm-pgsql-static:latest restart: unless-stopped env_file: - .env volumes: - ./app:/var/www/html - ./config.d:/opt/tt-rss/config.d:ro depends_on: - app command: /opt/tt-rss/updater.sh web-nginx: image: cthulhoo/ttrss-web-nginx:latest restart: unless-stopped env_file: - .env ports: - ${HTTP_PORT}:80 labels: - traefik.enable=true - traefik.http.routers.web-nginx.rule=Host(`news.tretkowski.de`) - traefik.http.routers.web-nginx.entrypoints=websecure - traefik.http.routers.web-nginx.tls.certresolver=myresolver volumes: - ./app:/var/www/html:ro depends_on: - app