tubearchivist
This commit is contained in:
7
tubearchivist/.env.example
Normal file
7
tubearchivist/.env.example
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
TAILSCALE_OAUTH_KEY=
|
||||||
|
TAILSCALE_TAGS=
|
||||||
|
TA_USERNAME=
|
||||||
|
TA_PASSWORD=
|
||||||
|
TA_ES_PASSWORD=
|
||||||
|
VIDEO_DATA_PATH=
|
||||||
|
TA_HOST=
|
||||||
84
tubearchivist/docker-compose.yml
Normal file
84
tubearchivist/docker-compose.yml
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
---
|
||||||
|
services:
|
||||||
|
ts-tubearchivist:
|
||||||
|
image: tailscale/tailscale:latest
|
||||||
|
container_name: ts-tubearchivist
|
||||||
|
hostname: tubearchivist
|
||||||
|
environment:
|
||||||
|
- TS_AUTHKEY=${TAILSCALE_OAUTH_KEY}
|
||||||
|
- TS_EXTRA_ARGS=--advertise-tags=${TAILSCALE_TAGS}
|
||||||
|
- TS_SERVE_CONFIG=/config/tubearchivist.json
|
||||||
|
- TS_STATE_DIR=/var/lib/tailscale
|
||||||
|
volumes:
|
||||||
|
- ts-tubearchivist-state:/var/lib/tailscale
|
||||||
|
- ${PWD}/ts-tubearchivist/config:/config
|
||||||
|
- /dev/net/tun:/dev/net/tun
|
||||||
|
cap_add:
|
||||||
|
- net_admin
|
||||||
|
- sys_module
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
tubearchivist:
|
||||||
|
container_name: tubearchivist
|
||||||
|
restart: unless-stopped
|
||||||
|
image: bbilly1/tubearchivist
|
||||||
|
# ports:
|
||||||
|
# - 8000:8000
|
||||||
|
volumes:
|
||||||
|
- ${VIDEO_DATA_PATH}:/youtube
|
||||||
|
- tubearchivist-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=$TA_HOST # set your host name
|
||||||
|
- TA_USERNAME=$TA_USERNAME # your initial TA credentials
|
||||||
|
- TA_PASSWORD=$TA_PASSWORD # your initial TA credentials
|
||||||
|
- ELASTIC_PASSWORD=$TA_ES_PASSWORD # set password for Elasticsearch
|
||||||
|
- TZ=Europe/Lisbon # set your time zone
|
||||||
|
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:
|
||||||
|
- tubearchivist-redis:/data
|
||||||
|
depends_on:
|
||||||
|
- archivist-es
|
||||||
|
|
||||||
|
archivist-es:
|
||||||
|
image: bbilly1/tubearchivist-es # only for amd64, or use official es 8.13.2
|
||||||
|
container_name: archivist-es
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- "ELASTIC_PASSWORD=$TA_ES_PASSWORD" # matching Elasticsearch password
|
||||||
|
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
|
||||||
|
- "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 # check for permission error when using bind mount, see readme
|
||||||
|
expose:
|
||||||
|
- "9200"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
tubearchivist-es:
|
||||||
|
tubearchivist-cache:
|
||||||
|
tubearchivist-redis:
|
||||||
|
ts-tubearchivist-state:
|
||||||
20
tubearchivist/ts-tubearchivist/config/tubearchivist.json
Normal file
20
tubearchivist/ts-tubearchivist/config/tubearchivist.json
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"TCP": {
|
||||||
|
"443": {
|
||||||
|
"HTTPS": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Web": {
|
||||||
|
"${TS_CERT_DOMAIN}:443": {
|
||||||
|
"Handlers": {
|
||||||
|
"/": {
|
||||||
|
"Proxy": "http://tubearchivist:8000"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AllowFunnel": {
|
||||||
|
"${TS_CERT_DOMAIN}:443": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user