services: tubearchivist: container_name: tubearchivist restart: unless-stopped image: bbilly1/tubearchivist:v0.5.3 ports: - "8000" networks: - default - proxy volumes: - media:/youtube - cache:/cache env_file: - .env environment: - ES_URL=http://archivist-es:9200 - REDIS_HOST=archivist-redis - HOST_UID=1000 - HOST_GID=1000 - TA_HOST=tubearchivist.local - TZ=Europe/Paris healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 2m timeout: 10s retries: 3 start_period: 30s depends_on: - archivist-es - archivist-redis labels: - "traefik.enable=true" - "traefik.http.routers.tubearchivist.rule=Host(`tubearchivist.local`)" - "traefik.http.routers.tubearchivist.middlewares=tubearchivist-headers" - "traefik.http.middlewares.tubearchivist-headers.headers.accesscontrolalloworiginlist=*" - "traefik.http.middlewares.tubearchivist-headers.headers.accesscontrolallowmethods=GET,OPTIONS,PUT" - "traefik.http.middlewares.tubearchivist-headers.headers.accesscontrolallowheaders=Authorization,*" archivist-redis: image: redis/redis-stack-server container_name: archivist-redis restart: unless-stopped expose: - "6379" volumes: - redis:/data depends_on: - archivist-es archivist-es: image: bbilly1/tubearchivist-es:8.18.0 # only for amd64, or use official es 8.16.0 container_name: archivist-es restart: unless-stopped env_file: - .env environment: - "ES_JAVA_OPTS=-Xms1g -Xmx1g" - "xpack.security.enabled=true" - "discovery.type=single-node" - "path.repo=/usr/share/elasticsearch/data/snapshot" ulimits: memlock: soft: -1 hard: -1 volumes: - es:/usr/share/elasticsearch/data expose: - "9200" volumes: media: driver_opts: type: 'nfs' o: 'addr=truenas.local' device: ':/mnt/media/youtube' cache: redis: driver: local driver_opts: type: 'none' o: 'bind' device: '/app/tubearchivist/redis' es: driver: local driver_opts: type: 'none' o: 'bind' device: '/app/tubearchivist/es' networks: proxy: external: true name: proxy