diff --git a/komodo/media-server/tubearchivist/.env.sample b/komodo/media-server/tubearchivist/.env.sample new file mode 100644 index 0000000..85af106 --- /dev/null +++ b/komodo/media-server/tubearchivist/.env.sample @@ -0,0 +1,25 @@ +# Host port for the Tube Archivist web UI +TA_PORT=8000 + +# Public URL for Tube Archivist, including protocol and port +TA_HOST=http://localhost:8000 + +# Initial Tube Archivist credentials +TA_USERNAME=tubearchivist +TA_PASSWORD=your_secure_tubearchivist_password + +# Elasticsearch password used by both Tube Archivist and archivist-es +ELASTIC_PASSWORD=your_secure_elasticsearch_password + +# Host user/group ownership for downloaded files +HOST_UID=1000 +HOST_GID=1000 + +# Timezone +TZ=UTC + +# Host path for downloaded YouTube media +TA_YOUTUBE_PATH=/mnt/media/youtube + +# Elasticsearch heap sizing; Tube Archivist recommends 1g for the default stack +ES_JAVA_OPTS=-Xms1g -Xmx1g diff --git a/komodo/media-server/tubearchivist/compose.yaml b/komodo/media-server/tubearchivist/compose.yaml new file mode 100644 index 0000000..89dd925 --- /dev/null +++ b/komodo/media-server/tubearchivist/compose.yaml @@ -0,0 +1,64 @@ +services: + tubearchivist: + image: bbilly1/tubearchivist:latest + container_name: tubearchivist + ports: + - "${TA_PORT:-8000}:8000" + volumes: + - ${TA_YOUTUBE_PATH:-/mnt/media/youtube}:/youtube + - tubearchivist_cache:/cache + environment: + - ES_URL=http://archivist-es:9200 + - REDIS_CON=redis://archivist-redis:6379 + - HOST_UID=${HOST_UID:-1000} + - HOST_GID=${HOST_GID:-1000} + - TA_HOST=${TA_HOST} + - TA_USERNAME=${TA_USERNAME} + - TA_PASSWORD=${TA_PASSWORD} + - ELASTIC_PASSWORD=${ELASTIC_PASSWORD} + - TZ=${TZ:-UTC} + restart: unless-stopped + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8000/api/health/"] + interval: 2m + timeout: 10s + retries: 3 + start_period: 30s + depends_on: + - archivist-es + - archivist-redis + + archivist-redis: + image: redis:7-alpine + container_name: archivist-redis + expose: + - "6379" + volumes: + - tubearchivist_redis:/data + restart: unless-stopped + depends_on: + - archivist-es + + archivist-es: + image: bbilly1/tubearchivist-es:latest + container_name: archivist-es + environment: + - ELASTIC_PASSWORD=${ELASTIC_PASSWORD} + - ES_JAVA_OPTS=${ES_JAVA_OPTS} + - xpack.security.enabled=true + - discovery.type=single-node + - path.repo=/usr/share/elasticsearch/data/snapshot + ulimits: + memlock: + soft: -1 + hard: -1 + volumes: + - tubearchivist_es:/usr/share/elasticsearch/data + expose: + - "9200" + restart: unless-stopped + +volumes: + tubearchivist_cache: + tubearchivist_redis: + tubearchivist_es: