diff --git a/Docker/Docker-Compose/TubeArchivist/.env.sample b/Docker/Docker-Compose/TubeArchivist/.env.sample new file mode 100644 index 0000000..1899d39 --- /dev/null +++ b/Docker/Docker-Compose/TubeArchivist/.env.sample @@ -0,0 +1,16 @@ +MAIN_PORT= # The Main port of the service, default 8000 + +PUID= # The host UID, default 1000 +PGID= # The host GID, default 1000 + +TZ= # The timezone of the service, e.g. America/Los_Angeles, default Europe/Stockholm + +MEDIA_PATH= # The path to your media files, default ./Media +CONFIG_PATH= # The path to your config files, default ./Config + +TA_HOST= # Set your host name with protocol and port, e.g. http://192.168.1.40, default http://tube-arc.lan + +TA_USERNAME= # Your initial TA credentials, default tubearchivist +TA_PASSWORD= # Your initial TA credentials, default verysecret + +ES_PASSWORD= # The password for Elasticsearch, default verysecret diff --git a/Docker/Docker-Compose/TubeArchivist/README.md b/Docker/Docker-Compose/TubeArchivist/README.md new file mode 100644 index 0000000..03f2570 --- /dev/null +++ b/Docker/Docker-Compose/TubeArchivist/README.md @@ -0,0 +1,5 @@ +# Tube Archivist + +Your self hosted YouTube media server + +**Project URL:** [TubeArchivist](https://github.com/bbilly1/TubeArchivist) diff --git a/Docker/Docker-Compose/TubeArchivist/docker-compose.yml b/Docker/Docker-Compose/TubeArchivist/docker-compose.yml new file mode 100644 index 0000000..625353f --- /dev/null +++ b/Docker/Docker-Compose/TubeArchivist/docker-compose.yml @@ -0,0 +1,62 @@ +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" +