kaido/src/commands/install/install-youtubedl.sh

70 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
source /opt/kaido/src/libs/bash/lib.sh
# docs https://github.com/Tzahi12345/YoutubeDL-Material
# setup
podName=youtubedl
containerName_web=${podName}_web
containerName_db=${podName}_db
imageName_web=docker.io/tzahi12345/youtubedl-material:4.3.2
imageName_db=docker.io/library/mongo:4.4.22
dstBasePath=$KAIDO_CONTAINER_FOLDER/$podName
dstAppDataPath=$dstBasePath/appdata
dstUsersPath=$dstBasePath/users
dstDBPath=$dstBasePath/db
# envs
max_old_space_size=4096
# TODO: replace with raspberry identification
if [ $(uname -m) == "aarch64" ]; then
imageName_db=docker.io/library/mongo:4.4.18
max_old_space_size=2048
fi
if [ -f "$KAIDO_CONFIG_FOLDER/containers/$podName/envs.sh" ]; then
source "$KAIDO_CONFIG_FOLDER/containers/$podName/envs.sh"
fi
# pre install
create_folder "$dstAppDataPath"
create_folder "$dstUsersPath"
create_folder "$dstDBPath"
stop_and_remove_pod $podName
#install
echo "Creating new $podName pod"
podman pod create \
--name $podName \
-p 10104:17442/tcp \
echo "Creating new $containerName_db container"
podman create \
--pod $podName \
--name $containerName_db \
-v $dstDBPath:/data/db \
$imageName_db
echo "Creating new $containerName_web container"
podman create \
--pod $podName \
--name $containerName_web \
--requires $containerName_db \
-v $dstAppDataPath:/app/appdata \
-v $dstUsersPath:/app/users \
-e ytdl_mongodb_connection_string="mongodb://$containerName_db:27017" \
-e ytdl_use_local_db=false \
-e write_ytdl_config=true \
-e ALLOW_CONFIG_MUTATIONS=true \
-e NODE_OPTIONS=" --max_old_space_size=$max_old_space_size" \
$imageName_web
# systemd
create_systemd_services $podName
systemctl --user enable --now $podName