diff --git a/apps/tubearchivist/config.json b/apps/tubearchivist/config.json new file mode 100644 index 00000000..9c21a876 --- /dev/null +++ b/apps/tubearchivist/config.json @@ -0,0 +1,41 @@ +{ + "$schema": "../schema.json", + "name": "Tube Archivist", + "available": true, + "exposable": true, + "port": 8112, + "id": "tubearchivist", + "tipi_version": 1, + "version": "latest", + "categories": ["media"], + "description": "Once your YouTube video collection grows, it becomes hard to search and find a specific video. That's where Tube Archivist comes in: By indexing your video collection with metadata from YouTube, you can organize, search and enjoy your archived YouTube videos without hassle offline through a convenient web interface.", + "short_desc": "Your self-hosted YouTube media server", + "author": "bbilly1", + "source": "https://github.com/tubearchivist/tubearchivist", + "form_fields": [ + { + "type": "text", + "label": "Tube Archivist Username", + "max": 50, + "min": 3, + "required": true, + "env_variable": "TA_USER" + }, + { + "type": "password", + "label": "Tube Archivist Password", + "max": 50, + "min": 3, + "required": true, + "env_variable": "TA_PASSWORD" + }, + { + "type": "random", + "label": "Elasticsearch Password", + "max": 50, + "min": 3, + "required": true, + "env_variable": "ELASTIC_PASSWORD" + } + ] +} diff --git a/apps/tubearchivist/docker-compose.yml b/apps/tubearchivist/docker-compose.yml new file mode 100644 index 00000000..84771fa2 --- /dev/null +++ b/apps/tubearchivist/docker-compose.yml @@ -0,0 +1,66 @@ +version: "3.7" + +services: + tubearchivist: + container_name: tubearchivist + restart: unless-stopped + image: bbilly1/tubearchivist:latest + volumes: + - ${APP_DATA_DIR}/data/media:/youtube + - ${APP_DATA_DIR}/data/cache:/cache + environment: + - ES_URL=http://tubearchivist-es:9200 + - REDIS_HOST=tubearchivist-redis + - HOST_UID=${UID} + - HOST_GID=${GID} + - TA_USERNAME=${TA_USER} + - TA_PASSWORD=${TA_PASSWORD} + - TA_HOST=${APP_DOMAIN} + - ELASTIC_PASSWORD=${ELASTIC_PASSWORD} + depends_on: + - tubearchivist-es + - tubearchivist-redis + networks: + - tipi_main_network + dns: + - ${DNS_IP} + ports: + - ${APP_PORT}:8000 + labels: + traefik.enable: ${APP_EXPOSED} + traefik.http.routers.tubearchivist.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.tubearchivist.entrypoints: websecure + traefik.http.routers.tubearchivist.service: tubearchivist + traefik.http.routers.tubearchivist.tls.certresolver: myresolver + traefik.http.services.tubearchivist.loadbalancer.server.port: 8000 + + tubearchivist-redis: + image: redislabs/rejson:latest + container_name: tubearchivist-redis + restart: always + networks: + - tipi_main_network + volumes: + - ${APP_DATA_DIR}/data/redis-data:/data + depends_on: + - tubearchivist-es + + tubearchivist-es: + image: bbilly1/tubearchivist-es:latest + container_name: tubearchivist-es + restart: always + environment: + - "xpack.security.enabled=true" + - "ELASTIC_PASSWORD=${ELASTIC_PASSWORD}" + - "discovery.type=single-node" + - "ES_JAVA_OPTS=-Xms512m -Xmx512m" + networks: + - tipi_main_network + ulimits: + memlock: + soft: -1 + hard: -1 + volumes: + - ${APP_DATA_DIR}/data/es:/usr/share/elasticsearch/data + expose: + - "9200" diff --git a/apps/tubearchivist/metadata/description.md b/apps/tubearchivist/metadata/description.md new file mode 100644 index 00000000..77974fd6 --- /dev/null +++ b/apps/tubearchivist/metadata/description.md @@ -0,0 +1,21 @@ +# Your self-hosted YouTube media server + +![Tube Archivist](https://github.com/tubearchivist/tubearchivist/blob/master/assets/tube-archivist-banner.jpg?raw=true "Tube Archivist Banner") + +## Core functionality + +* Subscribe to your favorite YouTube channels +* Download Videos using **yt-dlp** +* Index and make videos searchable +* Play videos +* Keep track of viewed and unviewed videos + +## If you have issues running Tube Archivist + +Please visit the following URL and ensure neither of the tips resolve the issue: + +https://github.com/tubearchivist/tubearchivist#potential-pitfalls + +If they do not, please open an app here and tag @sethforprivacy: + +https://github.com/meienberger/runtipi-appstore/issues diff --git a/apps/tubearchivist/metadata/logo.jpg b/apps/tubearchivist/metadata/logo.jpg new file mode 100644 index 00000000..c167a36b Binary files /dev/null and b/apps/tubearchivist/metadata/logo.jpg differ