services:
  rsshub:
    image: diygod/rsshub:2024-04-17
    container_name: rsshub
    restart: unless-stopped
    ports:
      - ${APP_PORT}:1200
    environment:
      TZ: ${TZ}
    env_file:
      - ${APP_DATA_DIR}/data/app.env
    networks:
      - tipi_main_network
    depends_on:
      - redis
      - browserless
    labels:
      # Main
      traefik.enable: true
      traefik.http.middlewares.rsshub-web-redirect.redirectscheme.scheme: https
      traefik.http.services.rsshub.loadbalancer.server.port: 1200
      # Web
      traefik.http.routers.rsshub-insecure.rule: Host(`${APP_DOMAIN}`)
      traefik.http.routers.rsshub-insecure.entrypoints: web
      traefik.http.routers.rsshub-insecure.service: rsshub
      traefik.http.routers.rsshub-insecure.middlewares: rsshub-web-redirect
      # Websecure
      traefik.http.routers.rsshub.rule: Host(`${APP_DOMAIN}`)
      traefik.http.routers.rsshub.entrypoints: websecure
      traefik.http.routers.rsshub.service: rsshub
      traefik.http.routers.rsshub.tls.certresolver: myresolver
      # Local domain
      traefik.http.routers.rsshub-local-insecure.rule: Host(`rsshub.${LOCAL_DOMAIN}`)
      traefik.http.routers.rsshub-local-insecure.entrypoints: web
      traefik.http.routers.rsshub-local-insecure.service: rsshub
      traefik.http.routers.rsshub-local-insecure.middlewares: rsshub-web-redirect
      # Local domain secure
      traefik.http.routers.rsshub-local.rule: Host(`rsshub.${LOCAL_DOMAIN}`)
      traefik.http.routers.rsshub-local.entrypoints: websecure
      traefik.http.routers.rsshub-local.service: rsshub
      traefik.http.routers.rsshub-local.tls: true

  browserless:
    image: browserless/chrome
    container_name: rsshub_browserless
    restart: unless-stopped
    ulimits:
      core:
        hard: 0
        soft: 0
    networks:
      - tipi_main_network

  redis:
    image: redis:alpine
    container_name: rsshub_redis
    restart: unless-stopped
    volumes:
      - ${APP_DATA_DIR}/data/redis:/data
    networks:
      - tipi_main_network