Naposledy aktivní 1784668442

Tube Archivist - Self hosted YouTube media server - https://www.tubearchivist.com/

Revize ef90a815181598eb057dab2d97ecf5a1b502ce88

tube-archivist-install.sh Raw
1# tube.archivist.install:
2alias ta.install="tube.archivist.install"
3tube.archivist.install(){
4
5# Config #
6app_name="ta" # App Name
7app_repo_url="https://github.com/tubearchivist/tubearchivist" # App Codebase
8app_version="latest"
9
10app_domain="${1:-"$app_name.$org_domain"}" # Unique app domain
11app_port="${2:-"7788"}" # App Port
12container_name="$app_name-$app_port"
13app_name_domain="$(echo $app_domain | tr "." "-")"
14app_path="/data/${app_name_domain}"
15code_path="$app_path/$(basename $app_repo_url)"
16data_path="$app_path/${app_name}_data"
17app_container_config="$code_path/docker-compose.yml"
18
19# Setup paths #
20mkdir -p "$app_path"
21
22echo cd "$app_path"
23cd "$app_path"
24if [ ! $? == "0" ];then
25 err "Failed to cd \"$app_path\""
26 return 1
27fi
28
29# Create and Store Passwords in .vault/
30db_password="$(cron.run vault.app.base64 $app_name_domain db_password 32)"
31#db_password="$(openssl rand -base64 32 | tr -cd "[:alnum:]")"
32
33# Install App #
34echo git clone "$app_repo_url"
35git clone "$app_repo_url"
36cd "$code_path"
37if [ ! $? == "0" ];then
38 err "Failed to cd \"$code_path\""
39 return 1
40fi
41
42# Create folder $data_path
43echo sudo mkdir -p "$data_path"
44sudo mkdir -p "$data_path/cache"
45sudo mkdir -p "$data_path/es"
46sudo mkdir -p "$data_path/media"
47sudo mkdir -p "$data_path/redis"
48
49# Write docker-compose config
50tee "$app_container_config" > /dev/null <<EOF
51services:
52 tubearchivist:
53 container_name: tubearchivist
54 restart: unless-stopped
55 image: bbilly1/tubearchivist:$app_version
56 ports:
57 - $app_port:8000
58 volumes:
59 - $data_path/media:/youtube
60 - $data_path/cache:/cache
61 environment:
62 - ES_URL=http://archivist-es:9200 # needs protocol e.g. http and port
63 - REDIS_CON=redis://archivist-redis:6379
64 - HOST_UID=1000
65 - HOST_GID=1000
66 - TA_HOST=https://$app_domain # set your host name with protocol and port
67 - TA_USERNAME=tubearchivist # your initial TA credentials
68 - TA_PASSWORD=tubearchivist # your initial TA credentials
69 - ELASTIC_PASSWORD=$db_password # set password for Elasticsearch
70 - TZ=America/Chicago # set your time zone
71 healthcheck:
72 test: ["CMD", "curl", "-f", "http://localhost:8000/api/health/"]
73 interval: 2m
74 timeout: 10s
75 retries: 3
76 start_period: 30s
77 depends_on:
78 - archivist-es
79 - archivist-redis
80 archivist-redis:
81 image: redis
82 container_name: archivist-redis
83 restart: unless-stopped
84 expose:
85 - "6379"
86 volumes:
87 - $data_path/redis:/data
88 depends_on:
89 - archivist-es
90 archivist-es:
91 image: bbilly1/tubearchivist-es # only for amd64, or use official es 8.19.0
92 container_name: archivist-es
93 restart: unless-stopped
94 environment:
95 - "ELASTIC_PASSWORD=$db_password" # matching Elasticsearch password
96 - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
97 - "xpack.security.enabled=true"
98 - "discovery.type=single-node"
99 - "path.repo=/usr/share/elasticsearch/data/snapshot"
100 ulimits:
101 memlock:
102 soft: -1
103 hard: -1
104 volumes:
105 - $data_path/es:/usr/share/elasticsearch/data # check for permission error when using bind mount, see readme
106 expose:
107 - "9200"
108#volumes:
109 #media:
110 #cache:
111 #redis:
112 #es:
113EOF
114
115echo cat ./docker-compose.yml
116cat ./docker-compose.yml
117
118# Run App. LIVE!
119echo Running $app_name container in the background.
120
121echo sudo docker-compose pull
122sudo docker-compose pull
123
124echo sudo docker-compose down
125sudo docker-compose down
126
127echo sudo docker-compose up -d
128sudo docker-compose up -d
129
130}
131# ---
vault-jwt.sh Raw
1# vault.app.base64: $app_name $app_keyname $key_length
2alias vault.jwt="vault.app.jwt"
3alias vault.app.jwt="vault.app.base64"
4vault.app.base64(){
5
6app_name="$1"
7app_keyname="$2"
8key_length="${3:-"32"}"
9vault="/opt/.vault"
10app_vault="$vault/$app_name"
11
12mkdir -p "$app_vault"
13
14if [[ ! -e "$app_vault/$app_keyname" ]];then
15 # not exists
16 echo "$(openssl rand -base64 $key_length)" > "$app_vault/$app_keyname"
17fi
18
19if [[ -e "$app_vault/$app_keyname" ]];then
20 # exists
21 cat "$app_vault/$app_keyname"
22else
23 # error 500: Could not create password
24 return 500
25fi
26
27}
28
29# ---