name: tubearchivist-stack services: tubearchivist: container_name: tubearchivist restart: unless-stopped image: bbilly1/tubearchivist:v0.5.4 ports: - ${MAIN_PORT:-8000}:8000 volumes: - ${MEDIA_PATH:-./Media}:/youtube - ${CONFIG_PATH:-./Config}/cache:/cache environment: - ES_URL=http://archivist-es:9200 # needs protocol e.g. http and port - REDIS_CON=redis://archivist-valkey:6379 # needs protocol e.g. redis and port - HOST_UID=${PUID:-1000} # set your host UID and GID, default 1000 - HOST_GID=${PGID:-1000} # set your host UID and GID, default 1000 - TA_HOST=${TA_HOST:-http://tube-arc.lan} # set your host name with protocol and port - TA_USERNAME=${TA_USERNAME:-tubearchivist} # your initial TA credentials - TA_PASSWORD=${TA_PASSWORD:-verysecret} # your initial TA credentials - ELASTIC_PASSWORD=${ES_PASSWORD:-verysecret} # set password for Elasticsearch - TZ=${TZ:-Europe/Stockholm} # set your time zone depends_on: - archivist-es - archivist-valkey healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 2m timeout: 10s retries: 3 start_period: 30s archivist-valkey: image: valkey/valkey:alpine container_name: archivist-valkey restart: unless-stopped expose: - "6379" volumes: - ${CONFIG_PATH:-./Config/valkey}:/data depends_on: - archivist-es archivist-es: image: bbilly1/tubearchivist-es # only for amd64, or use official es 8.17.2 container_name: archivist-es restart: unless-stopped environment: - "ELASTIC_PASSWORD=${ES_PASSWORD:-verysecret}" # matching Elasticsearch password - "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: - ${CONFIG_PATH:-./Config}/es:/usr/share/elasticsearch/data # check for permission error when using bind mount, see readme expose: - "9200"