services: tubearchivist: container_name: tubearchivist restart: unless-stopped image: bbilly1/tubearchivist ports: - 8000:8000 volumes: - /mnt/f/folder/to/destination/youtube:/youtube - /mnt/f/folder/to/destination/cache:/cache environment: - ES_URL=http://archivist-es:9200 # needs protocol e.g. http and port - REDIS_HOST=archivist-redis # don't add protocol - HOST_UID=1000 - HOST_GID=1000 - TA_HOST=tubearchivist.local # set your host name - TA_USERNAME=username # your initial TA credentials - TA_PASSWORD=password # your initial TA credentials - ELASTIC_PASSWORD=verysecret # set password for Elasticsearch - TZ=Europe/Vilnius # set your time zone https://en.wikipedia.org/wiki/List_of_tz_database_time_zones healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 2m timeout: 10s retries: 3 start_period: 30s depends_on: - archivist-es - archivist-redis archivist-redis: image: redis/redis-stack-server container_name: archivist-redis restart: unless-stopped expose: - "6379" volumes: - /mnt/f/folder/to/destination/redis:/data # Also keep this volume to where you keep stuff, its a database with indexes and stuff, without it your reinstall will be hard. depends_on: - archivist-es archivist-es: image: bbilly1/tubearchivist-es # only for amd64, or use official es 8.14.3 container_name: archivist-es restart: unless-stopped environment: - "ELASTIC_PASSWORD=verysecret123" # matching Elasticsearch password. Change this password to the same as above. - "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: - /mnt/f/folder/to/destination/es:/usr/share/elasticsearch/data # It will keep Elasticsearch stuff in that folder, better to have it when you need to reinstall everything, otherwise you will have to reindex everything from youtube and those YT vids may be deleted by that time. expose: - "9200"