This is an old revision of the document!
Tube Archivist
Installation
TubeArchivist is available using docker compose, i will show you how to install with rootless podman of course.
Add the usual dedicated user:
useradd -d /data/daemons/tubearchivist -m tubearchivist -g media
Create the needed folders:
mkdir /data/Media/YouTube chown tubearchivist:media /data/Media/YouTube su - tubearchivist mkdir cache es redis
Download the composer file from here, and edit like the following:
- docker-compose.yml
version: '3.5' services: tubearchivist: container_name: tubearchivist image: bbilly1/tubearchivist ports: - 8124:8000 volumes: - /data/Media/YouTube:/youtube - /data/daemons/tubearchivist/cache:/cache environment: - ES_URL=http://archivist-es:9200 - REDIS_CON=redis://archivist-redis:6379 - TA_HOST=https://tube.mydomain.com # Uncommen tthe next two to NOT use SSO: #- TA_USERNAME=not_needed #- TA_PASSWORD=not_needed # Comment the next three to use SSO: - TA_ENABLE_AUTH_PROXY=true - TA_AUTH_PROXY_USERNAME_HEADER=HTTP_REMOTE_USER - TA_AUTH_PROXY_LOGOUT_URL=https://login.mydomain.com/logout - ELASTIC_PASSWORD=<< create a random password >> - TZ=Europe/London # Uncomment to enable extra debug: #- DJANGO_DEBUG=True depends_on: - archivist-es - archivist-redis networks: - tubearchivist-net archivist-redis: image: redis container_name: archivist-redis restart: unless-stopped expose: - "6379" volumes: - /data/daemons/tubearchivist/redis:/data depends_on: - archivist-es networks: - tubearchivist-net archivist-es: image: bbilly1/tubearchivist-es container_name: archivist-es environment: - "ELASTIC_PASSWORD=<< copy same password 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: - /data/daemons/tubearchivist/es:/usr/share/elasticsearch/data expose: - "9200" networks: - tubearchivist-net networks: tubearchivist-net: dns_enabled: true
This example shows how to use Authelia SSO authentication (for more info see here), you will not need to setup an initial password and username.
Pull the images:
su - tubearchivist
podman compose pull
Reverse Proxy
Follow the The Reverse Proxy concept and the Authentication pages.
TubeArchivist requires a subdomain, so i assume you will host as https://tube.yourdomain.com:
- tube.conf
server { server_name tube.mydomain.com; listen 443 ssl; listen 8443 ssl; http2 on; access_log /var/log/nginx/tube.mydomain.com_access_log main; error_log /var/log/nginx/tube.mydomain.com_error_log info; include "org.mydomain/authelia_location.conf"; location ^~ / { include "com.mydomain/authelia_proxy.conf"; include "com.mydomain/authelia_authrequest.conf"; proxy_pass http://127.0.0.1:8124; } include com.mydomain/certbot.conf; }
Autostart
To start it, and set it up on boot, as usual follow my indications Using Containers on Gentoo, so link the user-containers init script:
ln -s /etc/init.d/user-containers /etc/init.d/user-containers.tubearchivist
and create the following config file:
- /etc/conf.d/user-containers.tubearchivist
USER=tubearchivist DESCRIPTION="Download YouTube stuff"
Add the service to the default runlevel and start it now:
rc-update add user-containers.tubearchivist default rc-service user-containers.tubearchivist start