forked from forkanization/Proxmox-arm64
Merge remote-tracking branch 'upstream/main'
This commit is contained in:
@@ -13,17 +13,7 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y \
|
||||
jq
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Setup Argus"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/release-argus/Argus/releases/latest | jq -r .tag_name | sed 's/^v//')
|
||||
mkdir -p /opt/argus
|
||||
curl -fsSL "https://github.com/release-argus/Argus/releases/download/${RELEASE}/Argus-${RELEASE}.linux-arm64" -o /opt/argus/Argus
|
||||
chmod +x /opt/argus/Argus
|
||||
msg_ok "Setup Argus"
|
||||
fetch_and_deploy_gh_release "Argus" "release-argus/Argus" "singlefile" "latest" "/opt/argus" "Argus*linux-arm64"
|
||||
|
||||
msg_info "Setup Argus Config"
|
||||
cat <<EOF >/opt/argus/config.yml
|
||||
@@ -71,7 +61,6 @@ service:
|
||||
icon_link_to: https://helper-scripts.com/
|
||||
web_url: https://github.com/community-scripts/ProxmoxVE/releases
|
||||
EOF
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
msg_ok "Setup Config"
|
||||
|
||||
msg_info "Creating Service"
|
||||
|
||||
@@ -13,10 +13,9 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Autobrr"
|
||||
curl -fsSL "$(curl -fsSL https://api.github.com/repos/autobrr/autobrr/releases/latest | grep download | grep linux_arm64 | cut -d\" -f4)" -o $(basename "$(curl -fsSL https://api.github.com/repos/autobrr/autobrr/releases/latest | grep download | grep linux_x86_64 | cut -d\" -f4)")
|
||||
tar -C /usr/local/bin -xzf autobrr*.tar.gz
|
||||
rm -rf autobrr*.tar.gz
|
||||
fetch_and_deploy_gh_release "autobrr" "autobrr/autobrr" "prebuild" "latest" "/usr/local/bin" "autobrr_*_linux_arm64.tar.gz"
|
||||
|
||||
msg_info "Configuring Autobrr"
|
||||
mkdir -p /root/.config/autobrr
|
||||
cat <<EOF >>/root/.config/autobrr/config.toml
|
||||
# https://autobrr.com/configuration/autobrr
|
||||
@@ -25,21 +24,24 @@ port = 7474
|
||||
logLevel = "DEBUG"
|
||||
sessionSecret = "$(openssl rand -base64 24)"
|
||||
EOF
|
||||
msg_ok "Installed Autobrr"
|
||||
msg_ok "Configured Autobrr"
|
||||
|
||||
msg_info "Creating Service"
|
||||
service_path="/etc/systemd/system/autobrr.service"
|
||||
echo "[Unit]
|
||||
cat <<EOF >/etc/systemd/system/autobrr.service
|
||||
[Unit]
|
||||
Description=autobrr service
|
||||
After=syslog.target network-online.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
Group=root
|
||||
ExecStart=/usr/local/bin/autobrr --config=/root/.config/autobrr/
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target" >$service_path
|
||||
systemctl enable --now -q autobrr.service
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable --now -q autobrr
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
|
||||
# Source: https://github.com/adityachandelgit/BookLore
|
||||
# Source: https://github.com/booklore-app/BookLore
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
@@ -17,7 +17,7 @@ msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y nginx
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
fetch_and_deploy_gh_release "booklore" "adityachandelgit/BookLore"
|
||||
fetch_and_deploy_gh_release "booklore" "booklore-app/BookLore"
|
||||
JAVA_VERSION="21" setup_java
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
setup_mariadb
|
||||
@@ -59,7 +59,7 @@ msg_ok "Created Environment"
|
||||
|
||||
msg_info "Building Backend"
|
||||
cd /opt/booklore/booklore-api
|
||||
APP_VERSION=$(curl -fsSL https://api.github.com/repos/adityachandelgit/BookLore/releases/latest | yq '.tag_name' | sed 's/^v//')
|
||||
APP_VERSION=$(curl -fsSL https://api.github.com/repos/booklore-app/BookLore/releases/latest | yq '.tag_name' | sed 's/^v//')
|
||||
yq eval ".app.version = \"${APP_VERSION}\"" -i src/main/resources/application.yaml
|
||||
$STD ./gradlew clean build --no-daemon
|
||||
mkdir -p /opt/booklore/dist
|
||||
|
||||
@@ -24,10 +24,7 @@ $STD apt-get install -y \
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Setting up TemurinJDK"
|
||||
mkdir -p /etc/apt/keyrings
|
||||
curl -fsSL "https://packages.adoptium.net/artifactory/api/gpg/key/public" | tee /etc/apt/keyrings/adoptium.asc
|
||||
echo "deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | tee /etc/apt/sources.list.d/adoptium.list
|
||||
$STD apt-get update
|
||||
setup_java
|
||||
$STD apt-get install -y temurin-{8,11,17,21}-jre
|
||||
sudo update-alternatives --set java /usr/lib/jvm/temurin-21-jre-arm64/bin/java
|
||||
msg_ok "Installed TemurinJDK"
|
||||
@@ -41,7 +38,7 @@ $STD apt-get install -y \
|
||||
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
|
||||
msg_ok "Setup Python3"
|
||||
|
||||
msg_info "Installing Craty-Controller (Patience)"
|
||||
msg_info "Installing Crafty-Controller (Patience)"
|
||||
useradd crafty -m -s /bin/bash
|
||||
cd /opt
|
||||
mkdir -p /opt/crafty-controller/crafty /opt/crafty-controller/server
|
||||
|
||||
@@ -14,13 +14,11 @@ network_check
|
||||
update_os
|
||||
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
fetch_and_deploy_gh_release "cronicle" "jhuckaby/Cronicle"
|
||||
|
||||
msg_info "Installing Cronicle Primary Server"
|
||||
LATEST=$(curl -fsSL https://api.github.com/repos/jhuckaby/Cronicle/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
||||
msg_info "Configuring Cronicle Primary Server"
|
||||
IP=$(hostname -I | awk '{print $1}')
|
||||
mkdir -p /opt/cronicle
|
||||
cd /opt/cronicle
|
||||
$STD tar zxvf <(curl -fsSL https://github.com/jhuckaby/Cronicle/archive/${LATEST}.tar.gz) --strip-components 1
|
||||
$STD npm install
|
||||
$STD node bin/build.js dist
|
||||
sed -i "s/localhost:3012/${IP}:3012/g" /opt/cronicle/conf/config.json
|
||||
@@ -29,7 +27,7 @@ $STD /opt/cronicle/bin/control.sh start
|
||||
$STD cp /opt/cronicle/bin/cronicled.init /etc/init.d/cronicled
|
||||
chmod 775 /etc/init.d/cronicled
|
||||
$STD update-rc.d cronicled defaults
|
||||
msg_ok "Installed Cronicle Primary Server"
|
||||
msg_ok "Configured Cronicle Primary Server"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
@@ -51,6 +51,7 @@ sed -i -e "s|APP_SECRET=.*|APP_SECRET=$(openssl rand -base64 32 | tr -dc 'a-zA-Z
|
||||
/opt/docmost/.env
|
||||
export NODE_OPTIONS="--max-old-space-size=2048"
|
||||
$STD pnpm install
|
||||
$STD pnpm nx run server:build # Dirty fix https://github.com/community-scripts/ProxmoxVE/issues/6377
|
||||
$STD pnpm build
|
||||
msg_ok "Configured Docmost"
|
||||
|
||||
|
||||
@@ -14,7 +14,8 @@ update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y \
|
||||
ca-certificates
|
||||
ca-certificates \
|
||||
git
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs
|
||||
|
||||
@@ -13,16 +13,8 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Gotify"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/gotify/server/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
mkdir -p /opt/gotify
|
||||
cd /opt/gotify
|
||||
curl -fsSL "https://github.com/gotify/server/releases/download/v${RELEASE}/gotify-linux-arm64.zip" -o "gotify-linux-arm64.zip"
|
||||
$STD unzip gotify-linux-arm64.zip
|
||||
rm -rf gotify-linux-arm64.zip
|
||||
chmod +x gotify-linux-arm64
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
msg_ok "Installed Gotify"
|
||||
fetch_and_deploy_gh_release "gotify" "gotify/server" "prebuild" "latest" "/opt/gotify" "gotify-linux-arm64.zip"
|
||||
chmod +x /opt/gotify/gotify-linux-arm64
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/gotify.service
|
||||
|
||||
@@ -14,20 +14,20 @@ network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y apt-transport-https
|
||||
$STD apt-get install -y software-properties-common
|
||||
$STD apt-get install -y \
|
||||
apt-transport-https \
|
||||
software-properties-common
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Setting up Grafana Repository"
|
||||
curl -fsSL "https://apt.grafana.com/gpg.key" -o "/usr/share/keyrings/grafana.key"
|
||||
sh -c 'echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" > /etc/apt/sources.list.d/grafana.list'
|
||||
echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" >/etc/apt/sources.list.d/grafana.list
|
||||
msg_ok "Set up Grafana Repository"
|
||||
|
||||
msg_info "Installing Grafana"
|
||||
$STD apt-get update
|
||||
$STD apt-get install -y grafana
|
||||
systemctl start grafana-server
|
||||
systemctl enable --now -q grafana-server.service
|
||||
systemctl enable -q --now grafana-server
|
||||
msg_ok "Installed Grafana"
|
||||
|
||||
motd_ssh
|
||||
|
||||
@@ -17,23 +17,10 @@ msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y apt-transport-https
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing PHP8.2"
|
||||
VERSION="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)"
|
||||
curl -fsSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
|
||||
echo -e "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $VERSION main" >/etc/apt/sources.list.d/php.list
|
||||
$STD apt-get update
|
||||
$STD apt-get install -y php8.2
|
||||
$STD apt-get install -y libapache2-mod-php8.2
|
||||
$STD apt-get install -y php8.2-sqlite3
|
||||
$STD apt-get install -y php8.2-gd
|
||||
$STD apt-get install -y php8.2-intl
|
||||
$STD apt-get install -y php8.2-mbstring
|
||||
msg_ok "Installed PHP8.2"
|
||||
PHP_VERSION="8.3" PHP_MODULE="sqlite3,bz2" PHP_APACHE="yes" setup_php
|
||||
fetch_and_deploy_gh_release "grocy" "grocy/grocy" "prebuild" "latest" "/var/www/html" "grocy*.zip"
|
||||
|
||||
msg_info "Installing grocy"
|
||||
latest=$(curl -fsSL https://api.github.com/repos/grocy/grocy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
curl -fsSL "https://github.com/grocy/grocy/releases/download/v${latest}/grocy_${latest}.zip" -o "grocy_${latest}.zip"
|
||||
$STD unzip grocy_${latest}.zip -d /var/www/html
|
||||
msg_info "Configuring grocy"
|
||||
chown -R www-data:www-data /var/www/html
|
||||
cp /var/www/html/config-dist.php /var/www/html/data/config.php
|
||||
chmod +x /var/www/html/update.sh
|
||||
@@ -64,5 +51,4 @@ customize
|
||||
msg_info "Cleaning up"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
rm -rf /root/grocy_${latest}.zip
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -26,10 +26,12 @@ NODE_VERSION="20" NODE_MODULE="gulp-cli,mocha,npm@10" setup_nodejs
|
||||
fetch_and_deploy_gh_release "habitica" "HabitRPG/habitica" "tarball" "latest" "/opt/habitica"
|
||||
|
||||
msg_info "Setup ${APPLICATION}"
|
||||
IPADDRESS=$(hostname -I | awk '{print $1}')
|
||||
cd /opt/habitica
|
||||
$STD npm i
|
||||
$STD npm run postinstall
|
||||
cp config.json.example config.json
|
||||
sed -i "s/\"TRUSTED_DOMAINS\": \"/&http:\/\/$IPADDRESS:3000,/" config.json
|
||||
$STD npm run client:build
|
||||
$STD gulp build:prod
|
||||
|
||||
|
||||
@@ -13,34 +13,26 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing OpenJDK"
|
||||
curl -fsSL "https://packages.adoptium.net/artifactory/api/gpg/key/public" | gpg --dearmor >/etc/apt/trusted.gpg.d/adoptium.gpg
|
||||
echo 'deb [arch=arm64 signed-by=/etc/apt/trusted.gpg.d/adoptium.gpg] https://packages.adoptium.net/artifactory/deb bookworm main' >/etc/apt/sources.list.d/adoptium.list
|
||||
$STD apt-get update
|
||||
$STD apt-get install -y temurin-17-jre
|
||||
msg_ok "Installed OpenJDK"
|
||||
JAVA_VERSION="21" setup_java
|
||||
fetch_and_deploy_gh_release "hivemq" "hivemq/hivemq-community-edition" "prebuild" "latest" "/opt/hivemq" "hivemq-ce-*.zip"
|
||||
|
||||
msg_info "Installing HiveMQ CE"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/hivemq/hivemq-community-edition/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
curl -fsSL "https://github.com/hivemq/hivemq-community-edition/releases/download/${RELEASE}/hivemq-ce-${RELEASE}.zip" -o "hivemq-ce-${RELEASE}.zip"
|
||||
$STD unzip hivemq-ce-${RELEASE}.zip
|
||||
mkdir -p /opt/hivemq
|
||||
mv hivemq-ce-${RELEASE}/* /opt/hivemq
|
||||
msg_info "Configuring HiveMQ CE"
|
||||
useradd -d /opt/hivemq hivemq
|
||||
chown -R hivemq:hivemq /opt/hivemq
|
||||
chmod +x /opt/hivemq/bin/run.sh
|
||||
cp /opt/hivemq/bin/init-script/hivemq.service /etc/systemd/system/hivemq.service
|
||||
rm /opt/hivemq/conf/config.xml
|
||||
mv /opt/hivemq/conf/examples/configuration/config-sample-tcp-and-websockets.xml /opt/hivemq/conf/config.xml
|
||||
msg_ok "Configured HiveMQ CE"
|
||||
|
||||
msg_info "Starting service"
|
||||
systemctl enable -q --now hivemq
|
||||
msg_ok "Installed HiveMQ CE"
|
||||
msg_ok "Service started"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf hivemq-ce-${RELEASE}.zip
|
||||
rm -rf ../hivemq-ce-${RELEASE}
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -14,18 +14,17 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Homebox"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/sysadminsmedia/homebox/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
curl -fsSL "https://github.com/sysadminsmedia/homebox/releases/download/${RELEASE}/homebox_Linux_arm64.tar.gz" | tar -xzf - -C /opt
|
||||
chmod +x /opt/homebox
|
||||
cat <<EOF >/opt/.env
|
||||
fetch_and_deploy_gh_release "homebox" "sysadminsmedia/homebox" "prebuild" "latest" "/opt/homebox" "homebox_Linux_arm64.tar.gz"
|
||||
|
||||
msg_info "Configuring Homebox"
|
||||
chmod +x /opt/homebox/homebox
|
||||
cat <<EOF >/opt/homebox/.env
|
||||
# For possible environment variables check here: https://homebox.software/en/configure-homebox
|
||||
HBOX_MODE=production
|
||||
HBOX_WEB_PORT=7745
|
||||
HBOX_WEB_HOST=0.0.0.0
|
||||
EOF
|
||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
||||
msg_ok "Installed Homebox"
|
||||
msg_ok "Configured Homebox"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/homebox.service
|
||||
@@ -34,9 +33,9 @@ Description=Start Homebox Service
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/opt
|
||||
ExecStart=/opt/homebox
|
||||
EnvironmentFile=/opt/.env
|
||||
WorkingDirectory=/opt/homebox
|
||||
ExecStart=/opt/homebox/homebox
|
||||
EnvironmentFile=/opt/homebox/.env
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
|
||||
@@ -266,7 +266,7 @@ GEO_DIR="${INSTALL_DIR}/geodata"
|
||||
mkdir -p "$INSTALL_DIR"
|
||||
mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${ML_DIR}","${INSTALL_DIR}"/cache}
|
||||
|
||||
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v1.136.0" "$SRC_DIR"
|
||||
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v1.137.3" "$SRC_DIR"
|
||||
|
||||
msg_info "Installing ${APPLICATION} (more patience please)"
|
||||
|
||||
@@ -275,6 +275,9 @@ $STD npm install -g node-gyp node-pre-gyp
|
||||
$STD npm ci
|
||||
$STD npm run build
|
||||
$STD npm prune --omit=dev --omit=optional
|
||||
cp -a {bin,dist,node_modules,resources,package*.json} "$APP_DIR"/
|
||||
cp package.json "$APP_DIR"/bin
|
||||
sed -i 's|^start|./start|' "$APP_DIR"/bin/immich-admin
|
||||
cd "$SRC_DIR"/open-api/typescript-sdk
|
||||
$STD npm ci
|
||||
$STD npm run build
|
||||
@@ -282,14 +285,13 @@ cd "$SRC_DIR"/web
|
||||
$STD npm ci
|
||||
$STD npm run build
|
||||
cd "$SRC_DIR"
|
||||
cp -a server/{node_modules,dist,bin,resources,package.json,package-lock.json,bin/start.sh} "$APP_DIR"/
|
||||
cp -a web/build "$APP_DIR"/www
|
||||
cp LICENSE "$APP_DIR"
|
||||
cd "$APP_DIR"
|
||||
export SHARP_FORCE_GLOBAL_LIBVIPS=true
|
||||
$STD npm install sharp
|
||||
rm -rf "$APP_DIR"/node_modules/@img/sharp-{libvips*,linuxmusl-x64}
|
||||
msg_ok "Installed Immich Web Components"
|
||||
msg_ok "Installed Immich Server and Web Components"
|
||||
|
||||
cd "$SRC_DIR"/machine-learning
|
||||
export VIRTUAL_ENV="${ML_DIR}/ml-venv"
|
||||
@@ -305,8 +307,8 @@ fi
|
||||
ln -sf "$APP_DIR"/resources "$INSTALL_DIR"
|
||||
|
||||
cd "$APP_DIR"
|
||||
grep -Rl /usr/src | xargs -n1 sed -i "s|\/usr/src|$INSTALL_DIR|g"
|
||||
grep -RlE "'/build'" | xargs -n1 sed -i "s|'/build'|'$APP_DIR'|g"
|
||||
grep -rl /usr/src | xargs -n1 sed -i "s|\/usr/src|$INSTALL_DIR|g"
|
||||
grep -rlE "'/build'" | xargs -n1 sed -i "s|'/build'|'$APP_DIR'|g"
|
||||
sed -i "s@\"/cache\"@\"$INSTALL_DIR/cache\"@g" "$ML_DIR"/immich_ml/config.py
|
||||
ln -s "$UPLOAD_DIR" "$APP_DIR"/upload
|
||||
ln -s "$UPLOAD_DIR" "$ML_DIR"/upload
|
||||
@@ -370,7 +372,16 @@ set +a
|
||||
|
||||
python3 -m immich_ml
|
||||
EOF
|
||||
chmod +x "$ML_DIR"/ml_start.sh
|
||||
cat <<EOF >"$APP_DIR"/bin/start.sh
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -a
|
||||
. "$INSTALL_DIR"/.env
|
||||
set +a
|
||||
|
||||
/usr/bin/node "$APP_DIR"/dist/main.js "\$@"
|
||||
EOF
|
||||
chmod +x "$ML_DIR"/ml_start.sh "$APP_DIR"/bin/start.sh
|
||||
cat <<EOF >/etc/systemd/system/"${APPLICATION}"-web.service
|
||||
[Unit]
|
||||
Description=${APPLICATION} Web Service
|
||||
|
||||
@@ -13,13 +13,9 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
# broken on arm64
|
||||
fetch_and_deploy_gh_release "inspircd" "inspircd/inspircd" "binary"
|
||||
|
||||
msg_info "Installing InspIRCd"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/inspircd/inspircd/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
cd /opt
|
||||
curl -fsSL "https://github.com/inspircd/inspircd/releases/download/v${RELEASE}/inspircd_${RELEASE}.deb12u2_amd64.deb" -o "inspircd_${RELEASE}.deb12u2_amd64.deb"
|
||||
$STD apt-get install "./inspircd_${RELEASE}.deb12u2_amd64.deb" -y &>/dev/null
|
||||
msg_info "Configuring InspIRCd"
|
||||
cat <<EOF >/etc/inspircd/inspircd.conf
|
||||
<define name="networkDomain" value="helper-scripts.com">
|
||||
<define name="networkName" value="Proxmox VE Helper-Scripts">
|
||||
@@ -34,15 +30,12 @@ cat <<EOF >/etc/inspircd/inspircd.conf
|
||||
email="irc@&networkDomain;">
|
||||
<bind address="" port="6667" type="clients">
|
||||
EOF
|
||||
|
||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
||||
msg_ok "Installed InspIRCd"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf /opt/inspircd_${RELEASE}.deb12u2_amd64.deb
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -13,20 +13,14 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Jackett"
|
||||
RELEASE=$(curl -fsSL https://github.com/Jackett/Jackett/releases/latest | grep "title>Release" | cut -d " " -f 4)
|
||||
cd /opt
|
||||
curl -fsSL "https://github.com/Jackett/Jackett/releases/download/$RELEASE/Jackett.Binaries.LinuxARM64.tar.gz" -o "Jackett.Binaries.LinuxARM64.tar.gz"
|
||||
tar -xzf Jackett.Binaries.LinuxARM64.tar.gz -C /opt
|
||||
rm -rf Jackett.Binaries.LinuxARM64.tar.gz
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
msg_ok "Installed Jackett"
|
||||
fetch_and_deploy_gh_release "jackett" "Jackett/Jackett" "prebuild" "latest" "/opt/Jackett" "Jackett.Binaries.LinuxARM64.tar.gz"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/jackett.service
|
||||
[Unit]
|
||||
Description=Jackett Daemon
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
SyslogIdentifier=jackett
|
||||
Restart=always
|
||||
@@ -35,7 +29,8 @@ Type=simple
|
||||
WorkingDirectory=/opt/Jackett
|
||||
ExecStart=/bin/sh /opt/Jackett/jackett_launcher.sh
|
||||
TimeoutStopSec=30
|
||||
Environment="DisableRootWarning=true"
|
||||
EnvironmentFile="/opt/.env"
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
94
install/jeedom-install.sh
Normal file
94
install/jeedom-install.sh
Normal file
@@ -0,0 +1,94 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: Mips2648
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://jeedom.com/
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing dependencies"
|
||||
$STD apt-get install -y \
|
||||
lsb-release \
|
||||
git
|
||||
msg_ok "Dependencies installed"
|
||||
|
||||
DEFAULT_BRANCH="master"
|
||||
REPO_URL="https://github.com/jeedom/core.git"
|
||||
|
||||
echo
|
||||
while true; do
|
||||
read -rp "${TAB3}Enter branch to use (master, beta, alpha...) (Default: ${DEFAULT_BRANCH}): " BRANCH
|
||||
BRANCH="${BRANCH:-$DEFAULT_BRANCH}"
|
||||
|
||||
if git ls-remote --heads "$REPO_URL" "refs/heads/$BRANCH" | grep -q .; then
|
||||
break
|
||||
else
|
||||
msg_error "Branch '$BRANCH' does not exist on remote. Please try again."
|
||||
fi
|
||||
done
|
||||
|
||||
msg_info "Downloading Jeedom installation script"
|
||||
cd /tmp
|
||||
wget -q https://raw.githubusercontent.com/jeedom/core/"${BRANCH}"/install/install.sh
|
||||
chmod +x install.sh
|
||||
msg_ok "Installation script downloaded"
|
||||
|
||||
msg_info "Install Jeedom main dependencies, please wait"
|
||||
$STD ./install.sh -v "$BRANCH" -s 2
|
||||
msg_ok "Installed Jeedom main dependencies"
|
||||
|
||||
msg_info "Install Database"
|
||||
$STD ./install.sh -v "$BRANCH" -s 3
|
||||
msg_ok "Database installed"
|
||||
|
||||
msg_info "Install Apache"
|
||||
$STD ./install.sh -v "$BRANCH" -s 4
|
||||
msg_ok "Apache installed"
|
||||
|
||||
msg_info "Install PHP and dependencies"
|
||||
$STD ./install.sh -v "$BRANCH" -s 5
|
||||
msg_ok "PHP installed"
|
||||
|
||||
msg_info "Download Jeedom core"
|
||||
$STD ./install.sh -v "$BRANCH" -s 6
|
||||
msg_ok "Download done"
|
||||
|
||||
msg_info "Database customisation"
|
||||
$STD ./install.sh -v "$BRANCH" -s 7
|
||||
msg_ok "Database customisation done"
|
||||
|
||||
msg_info "Jeedom customisation"
|
||||
$STD ./install.sh -v "$BRANCH" -s 8
|
||||
msg_ok "Jeedom customisation done"
|
||||
|
||||
msg_info "Configuring Jeedom"
|
||||
$STD ./install.sh -v "$BRANCH" -s 9
|
||||
msg_ok "Jeedom configured"
|
||||
|
||||
msg_info "Installing Jeedom"
|
||||
$STD ./install.sh -v "$BRANCH" -s 10
|
||||
msg_ok "Jeedom installed"
|
||||
|
||||
msg_info "Post installation"
|
||||
$STD ./install.sh -v "$BRANCH" -s 11
|
||||
msg_ok "Post installation done"
|
||||
|
||||
msg_info "Check installation"
|
||||
$STD ./install.sh -v "$BRANCH" -s 12
|
||||
msg_ok "Installation checked, everything is successfuly installed. A reboot is recommended."
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf /tmp/install.sh
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
@@ -15,28 +15,20 @@ update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y \
|
||||
g++ \
|
||||
build-essential \
|
||||
git \
|
||||
ca-certificates \
|
||||
chromium/stable \
|
||||
chromium-common/stable \
|
||||
graphicsmagick \
|
||||
ghostscript \
|
||||
jq
|
||||
ghostscript
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing Additional Tools"
|
||||
curl -fsSL "https://github.com/Y2Z/monolith/releases/latest/download/monolith-gnu-linux-aarch64" -o "/usr/bin/monolith"
|
||||
chmod +x /usr/bin/monolith
|
||||
curl -fsSL "https://github.com/yt-dlp/yt-dlp-nightly-builds/releases/latest/download/yt-dlp_linux_aarch64" -o "/usr/bin/yt-dlp"
|
||||
chmod +x /usr/bin/yt-dlp
|
||||
msg_ok "Installed Additional Tools"
|
||||
fetch_and_deploy_gh_release "monolith" "Y2Z/monolith" "singlefile" "latest" "/usr/bin" "monolith-gnu-linux-aarch64"
|
||||
fetch_and_deploy_gh_release "yt-dlp" "yt-dlp/yt-dlp-nightly-builds" "singlefile" "latest" "/usr/bin" "yt-dlp_linux"
|
||||
fetch_and_deploy_gh_release "meilisearch" "meilisearch/meilisearch" "binary"
|
||||
|
||||
msg_info "Installing Meilisearch"
|
||||
cd /tmp
|
||||
curl -fsSL "https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch-aarch64.deb" -o "meilisearch.deb"
|
||||
$STD dpkg -i meilisearch.deb
|
||||
msg_info "Configuring Meilisearch"
|
||||
curl -fsSL "https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml" -o "/etc/meilisearch.toml"
|
||||
MASTER_KEY=$(openssl rand -base64 12)
|
||||
sed -i \
|
||||
@@ -47,7 +39,7 @@ sed -i \
|
||||
-e 's|^snapshot_dir =.*|snapshot_dir = "/var/lib/meilisearch/snapshots"|' \
|
||||
-e 's|^# no_analytics = true|no_analytics = true|' \
|
||||
/etc/meilisearch.toml
|
||||
msg_ok "Installed Meilisearch"
|
||||
msg_ok "Configured Meilisearch"
|
||||
|
||||
fetch_and_deploy_gh_release "karakeep" "karakeep-app/karakeep"
|
||||
cd /opt/karakeep
|
||||
@@ -185,7 +177,6 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf /tmp/meilisearch-aarch64.deb
|
||||
$STD apt-get autoremove -y
|
||||
$STD apt-get autoclean -y
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -13,32 +13,46 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing OpenJDK"
|
||||
curl -fsSL "https://packages.adoptium.net/artifactory/api/gpg/key/public" | gpg --dearmor >/etc/apt/trusted.gpg.d/adoptium.gpg
|
||||
echo 'deb [arch=arm64 signed-by=/etc/apt/trusted.gpg.d/adoptium.gpg] https://packages.adoptium.net/artifactory/deb bookworm main' >/etc/apt/sources.list.d/adoptium.list
|
||||
$STD apt-get update
|
||||
$STD apt-get install -y temurin-21-jre
|
||||
msg_ok "Installed OpenJDK"
|
||||
JAVA_VERSION=21 setup_java
|
||||
PG_VERSION=16 setup_postgresql
|
||||
|
||||
msg_info "Installing Keycloak"
|
||||
temp_file=$(mktemp)
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/keycloak/keycloak/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
curl -fsSL "https://github.com/keycloak/keycloak/releases/download/$RELEASE/keycloak-$RELEASE.tar.gz" -o "$temp_file"
|
||||
tar xzf $temp_file
|
||||
mv keycloak-$RELEASE /opt/keycloak
|
||||
msg_ok "Installed Keycloak"
|
||||
msg_info "Configuring PostgreSQL"
|
||||
DB_NAME="keycloak"
|
||||
DB_USER="keycloak"
|
||||
DB_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)"
|
||||
$STD sudo -u postgres psql -c "CREATE USER $DB_USER WITH PASSWORD '$DB_PASS';"
|
||||
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8';"
|
||||
$STD sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;"
|
||||
msg_ok "Configured PostgreSQL"
|
||||
|
||||
fetch_and_deploy_gh_release "keycloak" "keycloak/keycloak" "prebuild" "latest" "/opt/keycloak" "keycloak-*.tar.gz"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/keycloak.service
|
||||
[Unit]
|
||||
Description=Keycloak Service
|
||||
After=network.target
|
||||
Requires=network.target
|
||||
After=syslog.target network-online.target
|
||||
|
||||
[Service]
|
||||
Type=idle
|
||||
User=root
|
||||
WorkingDirectory=/opt/keycloak
|
||||
ExecStart=/opt/keycloak/bin/kc.sh start-dev
|
||||
|
||||
ExecStart=/opt/keycloak/bin/kc.sh start
|
||||
ExecStop=/opt/keycloak/bin/kc.sh stop
|
||||
Restart=always
|
||||
RestartSec=3
|
||||
Environment="JAVA_HOME=/usr/lib/jvm/temurin-21-jdk-amd64"
|
||||
Environment="KC_DB=postgres"
|
||||
Environment="KC_DB_USERNAME=$DB_USER"
|
||||
Environment="KC_DB_PASSWORD=$DB_PASS"
|
||||
Environment="KC_HTTP_ENABLED=true"
|
||||
Environment="KC_BOOTSTRAP_ADMIN_USERNAME=tmpadm"
|
||||
Environment="KC_BOOTSTRAP_ADMIN_PASSWORD=admin123"
|
||||
# Comment following line and uncomment the next 2 if working behind a reverse proxy
|
||||
Environment="KC_HOSTNAME_STRICT=false"
|
||||
#Environment="KC_HOSTNAME=keycloak.example.com"
|
||||
#Environment="KC_PROXY_HEADERS=xforwarded"
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
@@ -49,7 +63,6 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -f $temp_file
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -13,29 +13,10 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y \
|
||||
apache2 \
|
||||
lsb-release
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
|
||||
PG_VERSION="16" setup_postgresql
|
||||
|
||||
msg_info "Setup PHP8.4 Repository"
|
||||
$STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
||||
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
||||
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
|
||||
$STD apt-get update
|
||||
msg_ok "Setup PHP8.4 Repository"
|
||||
|
||||
msg_info "Setup PHP"
|
||||
$STD apt-get install -y \
|
||||
php8.4 \
|
||||
php8.4-{apcu,ctype,curl,dom,fileinfo,gd,iconv,intl,mbstring,pgsql} \
|
||||
libapache2-mod-php8.4 \
|
||||
composer
|
||||
msg_info "Setup PHP"
|
||||
PHP_VERSION="8.4" PHP_APACHE="YES" PHP_MODULE="apcu,ctype,dom,fileinfo,iconv,pgsql" setup_php
|
||||
setup_composer
|
||||
|
||||
msg_info "Setting up PostgreSQL"
|
||||
DB_NAME=koillection
|
||||
@@ -51,12 +32,9 @@ $STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER TEMP
|
||||
} >>~/koillection.creds
|
||||
msg_ok "Set up PostgreSQL"
|
||||
|
||||
msg_info "Installing Koillection"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/benjaminjonard/koillection/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
cd /opt
|
||||
curl -fsSL "https://github.com/benjaminjonard/koillection/archive/refs/tags/${RELEASE}.zip" -o "/opt/${RELEASE}.zip"
|
||||
$STD unzip "${RELEASE}.zip"
|
||||
mv "/opt/koillection-${RELEASE}" /opt/koillection
|
||||
fetch_and_deploy_gh_release "koillection" "benjaminjonard/koillection"
|
||||
|
||||
msg_info "Configuring Koillection"
|
||||
cd /opt/koillection
|
||||
cp /opt/koillection/.env /opt/koillection/.env.local
|
||||
APP_SECRET=$(openssl rand -base64 32)
|
||||
@@ -75,8 +53,7 @@ cd assets/
|
||||
$STD yarn install
|
||||
$STD yarn build
|
||||
chown -R www-data:www-data /opt/koillection/public/uploads
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
msg_ok "Installed Koillection"
|
||||
msg_ok "Configured Koillection"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/apache2/sites-available/koillection.conf
|
||||
@@ -107,7 +84,6 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf "/opt/${RELEASE}.zip"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -13,17 +13,9 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y openjdk-17-jre
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing Komga"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/gotson/komga/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
curl -fsSL "https://github.com/gotson/komga/releases/download/${RELEASE}/komga-${RELEASE}.jar" -o "komga-${RELEASE}.jar"
|
||||
mkdir -p /opt/komga
|
||||
mv -f komga-${RELEASE}.jar /opt/komga/komga.jar
|
||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
||||
msg_ok "Installed Komga"
|
||||
JAVA_VERSION="21" setup_java
|
||||
USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "komga" "gotson/komga" "singlefile" "latest" "/opt/komga" "komga*.jar"
|
||||
mv /opt/komga/komga-*.jar /opt/komga/komga.jar
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/komga.service
|
||||
@@ -42,7 +34,7 @@ Restart=on-failure
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable --now -q komga
|
||||
systemctl enable -q --now komga
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
|
||||
@@ -14,10 +14,9 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing IPFS"
|
||||
RELEASE=$(curl -fsSL https://github.com/ipfs/kubo/releases/latest | grep "title>Release" | cut -d " " -f 4)
|
||||
$STD curl -fsSL "https://github.com/ipfs/kubo/releases/download/${RELEASE}/kubo_${RELEASE}_linux-arm64.tar.gz" -o "kubo_${RELEASE}_linux-arm64.tar.gz"
|
||||
tar -xzf "kubo_${RELEASE}_linux-arm64.tar.gz" -C /usr/local
|
||||
fetch_and_deploy_gh_release "kubo" "ipfs/kubo" "prebuild" "latest" "/usr/local/kubo" "kubo*linux-arm64.tar.gz"
|
||||
|
||||
msg_info "Configuring IPFS"
|
||||
$STD ln -s /usr/local/kubo/ipfs /usr/local/bin/ipfs
|
||||
$STD ipfs init
|
||||
ipfs config Addresses.API /ip4/0.0.0.0/tcp/5001
|
||||
@@ -43,7 +42,7 @@ Environment=HOME=/root
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable --now -q ipfs.service
|
||||
systemctl enable -q --now ipfs
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
|
||||
@@ -16,7 +16,7 @@ update_os
|
||||
fetch_and_deploy_gh_release "librespeed-rust" "librespeed/speedtest-rust" "binary" "latest" "/opt/librespeed-rust" "librespeed-rs-aarch64-unknown-linux-gnu.deb"
|
||||
|
||||
msg_info "Enabling Service"
|
||||
systemctl enable -q --now speedtest_rs.service
|
||||
systemctl enable -q --now speedtest_rs
|
||||
msg_ok "Enabled Service"
|
||||
|
||||
motd_ssh
|
||||
|
||||
@@ -20,22 +20,20 @@ $STD apt-get install -y \
|
||||
mediainfo
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing Lidarr"
|
||||
temp_file="$(mktemp)"
|
||||
fetch_and_deploy_gh_release "lidarr" "Lidarr/Lidarr" "prebuild" "latest" "/opt/Lidarr" "Lidarr.master*linux-core-arm64.tar.gz"
|
||||
|
||||
msg_info "Configuring Lidarr"
|
||||
mkdir -p /var/lib/lidarr/
|
||||
chmod 775 /var/lib/lidarr/
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Lidarr/Lidarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
curl -fsSL "https://github.com/Lidarr/Lidarr/releases/download/v${RELEASE}/Lidarr.master.${RELEASE}.linux-core-arm64.tar.gz" -o "$temp_file"
|
||||
$STD tar -xvzf "$temp_file"
|
||||
mv Lidarr /opt
|
||||
chmod 775 /opt/Lidarr
|
||||
msg_ok "Installed Lidarr"
|
||||
msg_ok "Configured Lidarr"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/lidarr.service
|
||||
[Unit]
|
||||
Description=Lidarr Daemon
|
||||
After=syslog.target network.target
|
||||
|
||||
[Service]
|
||||
UMask=0002
|
||||
Type=simple
|
||||
@@ -43,6 +41,7 @@ ExecStart=/opt/Lidarr/Lidarr -nobrowser -data=/var/lib/lidarr/
|
||||
TimeoutStopSec=20
|
||||
KillMode=process
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
@@ -53,7 +52,6 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf "$temp_file"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -13,11 +13,9 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y postgresql
|
||||
msg_ok "Installed Dependencies"
|
||||
PG_VERSION="17" setup_postgresql
|
||||
|
||||
msg_info "Setting up PostgreSQL"
|
||||
msg_info "Configuring PostgreSQL"
|
||||
DB_NAME=listmonk
|
||||
DB_USER=listmonk
|
||||
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)
|
||||
@@ -29,22 +27,16 @@ $STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER TEMP
|
||||
echo -e "listmonk Database Password: \e[32m$DB_PASS\e[0m"
|
||||
echo -e "listmonk Database Name: \e[32m$DB_NAME\e[0m"
|
||||
} >>~/listmonk.creds
|
||||
msg_ok "Set up PostgreSQL"
|
||||
msg_ok "Configured PostgreSQL"
|
||||
|
||||
msg_info "Installing listmonk"
|
||||
cd /opt
|
||||
mkdir /opt/listmonk
|
||||
mkdir /opt/listmonk/uploads
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/knadh/listmonk/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
curl -fsSL "https://github.com/knadh/listmonk/releases/download/v${RELEASE}/listmonk_${RELEASE}_linux_arm64.tar.gz" -o "listmonk_${RELEASE}_linux_arm64.tar.gz"
|
||||
tar -xzf "listmonk_${RELEASE}_linux_arm64.tar.gz" -C /opt/listmonk
|
||||
fetch_and_deploy_gh_release "listmonk" "knadh/listmonk" "prebuild" "latest" "/opt/listmonk" "listmonk*linux_arm64.tar.gz"
|
||||
|
||||
msg_info "Configuring listmonk"
|
||||
mkdir -p /opt/listmonk/uploads
|
||||
$STD /opt/listmonk/listmonk --new-config --config /opt/listmonk/config.toml
|
||||
sed -i -e 's/address = "localhost:9000"/address = "0.0.0.0:9000"/' -e 's/^password = ".*"/password = "'"$DB_PASS"'"/' /opt/listmonk/config.toml
|
||||
$STD /opt/listmonk/listmonk --install --yes --config /opt/listmonk/config.toml
|
||||
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
msg_ok "Installed listmonk"
|
||||
msg_ok "Configured listmonk"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/listmonk.service
|
||||
@@ -70,7 +62,6 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf "/opt/listmonk_${RELEASE}_linux_arm64.tar.gz"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -13,25 +13,14 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y \
|
||||
zip \
|
||||
jq
|
||||
msg_ok "Installed Dependencies"
|
||||
fetch_and_deploy_gh_release "lubelogger" "hargata/lubelog" "prebuild" "latest" "/opt/lubelogger" "LubeLogger*linux_x64.zip"
|
||||
|
||||
msg_info "Installing LubeLogger"
|
||||
cd /opt
|
||||
mkdir -p /opt/lubelogger
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/hargata/lubelog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
RELEASE_TRIMMED=$(echo "${RELEASE}" | tr -d ".")
|
||||
msg_info "Configuring LubeLogger"
|
||||
cd /opt/lubelogger
|
||||
curl -fsSL "https://github.com/hargata/lubelog/releases/download/v${RELEASE}/LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip" -o "LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip"
|
||||
$STD unzip LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip
|
||||
chmod 700 /opt/lubelogger/CarCareTracker
|
||||
cp /opt/lubelogger/appsettings.json /opt/lubelogger/appsettings_bak.json
|
||||
jq '.Kestrel = {"Endpoints": {"Http": {"Url": "http://0.0.0.0:5000"}}}' /opt/lubelogger/appsettings_bak.json >/opt/lubelogger/appsettings.json
|
||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
||||
msg_ok "Installed LubeLogger"
|
||||
msg_ok "Configured LubeLogger"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/lubelogger.service
|
||||
@@ -53,7 +42,7 @@ Restart=on-failure
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
systemctl enable --now -q lubelogger.service
|
||||
systemctl enable -q --now lubelogger
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
@@ -61,7 +50,6 @@ customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf /opt/lubelogger/appsettings_bak.json
|
||||
rm -rf /opt/lubelogger/LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -22,14 +22,14 @@ msg_ok "Installed Dependencies"
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
|
||||
fetch_and_deploy_gh_release "mafl" "hywax/mafl"
|
||||
|
||||
msg_info "Installing Mafl v${RELEASE}"
|
||||
msg_info "Installing Mafl"
|
||||
mkdir -p /opt/mafl/data
|
||||
curl -fsSL "https://raw.githubusercontent.com/hywax/mafl/main/.example/config.yml" -o "/opt/mafl/data/config.yml"
|
||||
cd /opt/mafl
|
||||
export NUXT_TELEMETRY_DISABLED=true
|
||||
$STD yarn install
|
||||
$STD yarn build
|
||||
msg_ok "Installed Mafl v${RELEASE}"
|
||||
msg_ok "Installed Mafl"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/mafl.service
|
||||
|
||||
@@ -14,14 +14,11 @@ network_check
|
||||
update_os
|
||||
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
fetch_and_deploy_gh_release "magicmirror" "MagicMirrorOrg/MagicMirror" "tarball"
|
||||
|
||||
msg_info "Setup MagicMirror"
|
||||
temp_file=$(mktemp)
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/MagicMirrorOrg/MagicMirror/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
curl -fsSL "https://github.com/MagicMirrorOrg/MagicMirror/archive/refs/tags/v${RELEASE}.tar.gz" -o ""$temp_file""
|
||||
tar -xzf "$temp_file"
|
||||
mv MagicMirror-${RELEASE} /opt/magicmirror
|
||||
msg_info "Configuring MagicMirror"
|
||||
cd /opt/magicmirror
|
||||
sed -i -E 's/("postinstall": )".*"/\1""/; s/("prepare": )".*"/\1""/' package.json
|
||||
$STD npm run install-mm
|
||||
cat <<EOF >/opt/magicmirror/config/config.js
|
||||
let config = {
|
||||
@@ -112,8 +109,7 @@ let config = {
|
||||
/*************** DO NOT EDIT THE LINE BELOW ***************/
|
||||
if (typeof module !== "undefined") {module.exports = config;}
|
||||
EOF
|
||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
||||
msg_ok "Setup MagicMirror"
|
||||
msg_ok "Configured MagicMirror"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/magicmirror.service
|
||||
@@ -133,14 +129,13 @@ ExecStart=/usr/bin/npm run server
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable --now magicmirror
|
||||
systemctl enable -q --now magicmirror
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf $temp_file
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -31,13 +31,10 @@ $STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH
|
||||
} >>~/mmdl.creds
|
||||
msg_ok "Set up Database"
|
||||
|
||||
msg_info "Installing ${APPLICATION}"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/intri-in/manage-my-damn-life-nextjs/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
curl -fsSLO "https://github.com/intri-in/manage-my-damn-life-nextjs/archive/refs/tags/v${RELEASE}.zip"
|
||||
unzip -q v"$RELEASE".zip
|
||||
mv manage-my-damn-life-nextjs-"$RELEASE"/ /opt/mmdl
|
||||
cp /opt/mmdl/sample.env.local /opt/mmdl/.env
|
||||
fetch_and_deploy_gh_release "mmdl" "intri-in/manage-my-damn-life-nextjs" "tarball"
|
||||
|
||||
msg_info "Configuring ${APPLICATION}"
|
||||
cp /opt/mmdl/sample.env.local /opt/mmdl/.env
|
||||
sed -i -e 's|db|localhost|' \
|
||||
-e "s|myuser|${DB_USER}|" \
|
||||
-e "s|mypassword|${DB_PASS}|" \
|
||||
@@ -46,15 +43,13 @@ sed -i -e 's|db|localhost|' \
|
||||
-e "s|sample_install_mmdm|${DB_NAME}|" \
|
||||
-e "s|=PASSWORD|=$(openssl rand -base64 40 | tr -dc 'a-zA-Z0-9' | head -c40)|" \
|
||||
/opt/mmdl/.env
|
||||
|
||||
cd /opt/mmdl
|
||||
export NEXT_TELEMETRY_DISABLE=1
|
||||
export CI="true"
|
||||
$STD npm install
|
||||
$STD npm run migrate
|
||||
$STD npm run build
|
||||
echo "${RELEASE}" >/opt/mmdl_version.txt
|
||||
msg_ok "Installed ${APPLICATION}"
|
||||
msg_ok "Configured ${APPLICATION}"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/mmdl.service
|
||||
@@ -78,7 +73,6 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -f ~/v${RELEASE}.zip
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -17,14 +17,7 @@ msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y ffmpeg
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing MediaMTX"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/bluenviron/mediamtx/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
mkdir -p /opt/mediamtx
|
||||
cd /opt/mediamtx
|
||||
curl -fsSL "https://github.com/bluenviron/mediamtx/releases/download/${RELEASE}/mediamtx_${RELEASE}_linux_arm64v8.tar.gz" -o "mediamtx_${RELEASE}_linux_arm64v8.tar.gz"
|
||||
tar xzf mediamtx_${RELEASE}_linux_arm64v8.tar.gz
|
||||
rm -rf mediamtx_${RELEASE}_linux_arm64v8.tar.gz
|
||||
msg_ok "Installed MediaMTX"
|
||||
fetch_and_deploy_gh_release "mediamtx" "bluenviron/mediamtx" "prebuild" "latest" "/opt/mediamtx" "mediamtx*linux_arm64v8.tar.gz"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/mediamtx.service
|
||||
|
||||
@@ -13,11 +13,10 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Setup ${APPLICATION}"
|
||||
tmp_file=$(mktemp)
|
||||
RELEASE=$(curl -s https://api.github.com/repos/meilisearch/meilisearch/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
curl -fsSL https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb -o $tmp_file
|
||||
$STD dpkg -i $tmp_file
|
||||
fetch_and_deploy_gh_release "meilisearch" "meilisearch/meilisearch" "binary"
|
||||
|
||||
msg_info "Configuring ${APPLICATION}"
|
||||
cd /opt/meilisearch
|
||||
curl -fsSL https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml -o /etc/meilisearch.toml
|
||||
MASTER_KEY=$(openssl rand -base64 12)
|
||||
LOCAL_IP="$(hostname -I | awk '{print $1}')"
|
||||
@@ -30,21 +29,14 @@ sed -i \
|
||||
-e 's|^# no_analytics = true|no_analytics = true|' \
|
||||
-e 's|^http_addr =.*|http_addr = "0.0.0.0:7700"|' \
|
||||
/etc/meilisearch.toml
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
msg_ok "Setup ${APPLICATION}"
|
||||
msg_ok "Configured ${APPLICATION}"
|
||||
|
||||
read -r -p "${TAB3}Do you want add meilisearch-ui? [y/n]: " prompt
|
||||
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs
|
||||
fetch_and_deploy_gh_release "meilisearch-ui" "riccox/meilisearch-ui" "tarball"
|
||||
|
||||
msg_info "Setup ${APPLICATION}-ui"
|
||||
tmp_file=$(mktemp)
|
||||
tmp_dir=$(mktemp -d)
|
||||
mkdir -p /opt/meilisearch-ui
|
||||
RELEASE_UI=$(curl -s https://api.github.com/repos/riccox/meilisearch-ui/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
curl -fsSL "https://github.com/riccox/meilisearch-ui/archive/refs/tags/${RELEASE_UI}.zip" -o "$tmp_file"
|
||||
$STD unzip "$tmp_file" -d "$tmp_dir"
|
||||
mv "$tmp_dir"/*/* /opt/meilisearch-ui/
|
||||
msg_info "Configuring ${APPLICATION}-ui"
|
||||
cd /opt/meilisearch-ui
|
||||
sed -i 's|const hash = execSync("git rev-parse HEAD").toString().trim();|const hash = "unknown";|' /opt/meilisearch-ui/vite.config.ts
|
||||
$STD pnpm install
|
||||
@@ -53,11 +45,10 @@ VITE_SINGLETON_MODE=true
|
||||
VITE_SINGLETON_HOST=http://${LOCAL_IP}:7700
|
||||
VITE_SINGLETON_API_KEY=${MASTER_KEY}
|
||||
EOF
|
||||
echo "${RELEASE_UI}" >/opt/${APPLICATION}-ui_version.txt
|
||||
msg_ok "Setup ${APPLICATION}-ui"
|
||||
msg_ok "Configured ${APPLICATION}-ui"
|
||||
fi
|
||||
|
||||
msg_info "Setting up Services"
|
||||
msg_info "Creating service"
|
||||
cat <<EOF >/etc/systemd/system/meilisearch.service
|
||||
[Unit]
|
||||
Description=Meilisearch
|
||||
@@ -94,8 +85,7 @@ WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now meilisearch-ui
|
||||
fi
|
||||
|
||||
msg_ok "Set up Services"
|
||||
msg_ok "Service created"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
@@ -14,29 +14,8 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y \
|
||||
build-essential \
|
||||
git \
|
||||
tzdata
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs
|
||||
setup_go
|
||||
|
||||
msg_info "Installing Memos (Patience)"
|
||||
fetch_and_deploy_gh_release "memos" "usememos/memos" "prebuild" "latest" "/opt/memos" "memos*linux_amd64.tar.gz"
|
||||
mkdir -p /opt/memos_data
|
||||
export NODE_OPTIONS="--max-old-space-size=2048"
|
||||
$STD git clone https://github.com/usememos/memos.git /opt/memos
|
||||
cd /opt/memos/web
|
||||
$STD pnpm i --frozen-lockfile
|
||||
$STD pnpm build
|
||||
cd /opt/memos
|
||||
mkdir -p /opt/memos/server/dist
|
||||
cp -r web/dist/* /opt/memos/server/dist/
|
||||
cp -r web/dist/* /opt/memos/server/router/frontend/dist/
|
||||
$STD go build -o /opt/memos/memos -tags=embed bin/memos/main.go
|
||||
msg_ok "Installed Memos"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/memos.service
|
||||
|
||||
@@ -13,14 +13,8 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y \
|
||||
apache2 \
|
||||
libapache2-mod-php \
|
||||
php-{bcmath,curl,dom,gd,gmp,iconv,intl,json,mbstring,mysqli,opcache,pdo-mysql,redis,tokenizer,xml,zip} \
|
||||
composer
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
PHP_VERSION="8.2" PHP_APACHE="YES" PHP_MODULE="dom,gmp,iconv,mysqli,pdo-mysql,redis,tokenizer" setup_php
|
||||
setup_composer
|
||||
setup_mariadb
|
||||
NODE_VERSION="20" NODE_MODULE="yarn@latest" setup_nodejs
|
||||
|
||||
@@ -39,12 +33,9 @@ $STD mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUS
|
||||
} >>~/monica.creds
|
||||
msg_ok "Set up MariaDB"
|
||||
|
||||
msg_info "Installing monica"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/monicahq/monica/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
cd /opt
|
||||
curl -fsSL "https://github.com/monicahq/monica/releases/download/v${RELEASE}/monica-v${RELEASE}.tar.bz2" -o "monica-v${RELEASE}.tar.bz2"
|
||||
tar -xjf "monica-v${RELEASE}.tar.bz2"
|
||||
mv "/opt/monica-v${RELEASE}" /opt/monica
|
||||
fetch_and_deploy_gh_release "monica" "monicahq/monica" "prebuild" "latest" "/opt/monica" "monica-v*.tar.bz2"
|
||||
|
||||
msg_info "Configuring monica"
|
||||
cd /opt/monica
|
||||
cp /opt/monica/.env.example /opt/monica/.env
|
||||
HASH_SALT=$(openssl rand -base64 32)
|
||||
@@ -59,8 +50,7 @@ $STD php artisan key:generate
|
||||
$STD php artisan setup:production --email=admin@helper-scripts.com --password=helper-scripts.com --force
|
||||
chown -R www-data:www-data /opt/monica
|
||||
chmod -R 775 /opt/monica/storage
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
msg_ok "Installed monica"
|
||||
msg_ok "Configured monica"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/apache2/sites-available/monica.conf
|
||||
@@ -87,7 +77,6 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf "/opt/monica-v${RELEASE}.tar.bz2"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -20,15 +20,11 @@ $STD apt-get install -y \
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
fetch_and_deploy_gh_release "myspeed" "gnmyt/myspeed" "prebuild" "latest" "/opt/myspeed" "MySpeed-*.zip"
|
||||
|
||||
msg_info "Installing MySpeed"
|
||||
RELEASE=$(curl -fsSL https://github.com/gnmyt/myspeed/releases/latest | grep "title>Release" | cut -d " " -f 5)
|
||||
cd /opt
|
||||
curl -fsSL "https://github.com/gnmyt/myspeed/releases/download/v$RELEASE/MySpeed-$RELEASE.zip" -o "MySpeed-$RELEASE.zip"
|
||||
$STD unzip MySpeed-$RELEASE.zip -d myspeed
|
||||
cd myspeed
|
||||
msg_info "Configuring MySpeed"
|
||||
cd /opt/myspeed
|
||||
$STD npm install
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
msg_ok "Installed MySpeed"
|
||||
|
||||
msg_info "Creating Service"
|
||||
@@ -56,6 +52,5 @@ customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
$STD apt-get -y autoremove
|
||||
rm -rf /opt/MySpeed-$RELEASE.zip
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -15,7 +15,8 @@ update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y \
|
||||
ca-certificates
|
||||
ca-certificates \
|
||||
build-essential
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
@@ -26,18 +27,28 @@ $STD npm install --global n8n
|
||||
msg_ok "Installed n8n"
|
||||
|
||||
msg_info "Creating Service"
|
||||
HOST_IP=$(hostname -I | awk '{print $1}')
|
||||
mkdir -p /opt
|
||||
cat <<EOF >/opt/n8n.env
|
||||
N8N_SECURE_COOKIE=false
|
||||
N8N_PORT=5678
|
||||
N8N_PROTOCOL=http
|
||||
N8N_HOST=$HOST_IP
|
||||
EOF
|
||||
|
||||
cat <<EOF >/etc/systemd/system/n8n.service
|
||||
[Unit]
|
||||
Description=n8n
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
Environment="N8N_SECURE_COOKIE=false"
|
||||
EnvironmentFile=/opt/n8n.env
|
||||
ExecStart=n8n start
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
$STD systemctl enable --now n8n
|
||||
systemctl enable -q --now n8n
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
|
||||
@@ -14,18 +14,14 @@ network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies (Patience)"
|
||||
$STD apt-get install -y \
|
||||
ffmpeg
|
||||
$STD apt-get install -y ffmpeg
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing Navidrome"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/navidrome/navidrome/releases/latest | grep "tag_name" | awk -F '"' '{print $4}')
|
||||
TMP_DEB=$(mktemp --suffix=.deb)
|
||||
curl -fsSL -o "${TMP_DEB}" "https://github.com/navidrome/navidrome/releases/download/${RELEASE}/navidrome_${RELEASE#v}_linux_arm64.deb"
|
||||
$STD apt-get install -y "${TMP_DEB}"
|
||||
fetch_and_deploy_gh_release "navidrome" "navidrome/navidrome" "binary"
|
||||
|
||||
msg_info "Starting Navidrome"
|
||||
systemctl enable -q --now navidrome
|
||||
echo "${RELEASE}" >/opt/Navidrome_version.txt
|
||||
msg_ok "Installed Navidrome"
|
||||
msg_ok "Started Navidrome"
|
||||
|
||||
read -p "${TAB3}Do you want to install filebrowser addon? (y/n) " -n 1 -r
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
@@ -36,7 +32,6 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -f "${TMP_DEB}"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -14,22 +14,12 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y \
|
||||
lsb-release
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Setting up Adoptium Repository"
|
||||
mkdir -p /etc/apt/keyrings
|
||||
curl -fsSL "https://packages.adoptium.net/artifactory/api/gpg/key/public" | gpg --dearmor >/etc/apt/trusted.gpg.d/adoptium.gpg
|
||||
echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" >/etc/apt/sources.list.d/adoptium.list
|
||||
msg_ok "Set up Adoptium Repository"
|
||||
JAVA_VERSION="21" setup_java
|
||||
|
||||
msg_info "Installing Neo4j (patience)"
|
||||
curl -fsSL "https://debian.neo4j.com/neotechnology.gpg.key" | gpg --dearmor -o /etc/apt/keyrings/neotechnology.gpg
|
||||
echo 'deb [signed-by=/etc/apt/keyrings/neotechnology.gpg] https://debian.neo4j.com stable latest' >/etc/apt/sources.list.d/neo4j.list
|
||||
$STD apt-get update
|
||||
$STD apt-get install -y temurin-21-jre
|
||||
$STD apt-get install -y neo4j
|
||||
sed -i '/server.default_listen_address/s/^#//' /etc/neo4j/neo4j.conf
|
||||
systemctl enable -q --now neo4j
|
||||
|
||||
@@ -24,7 +24,7 @@ msg_ok "Installed Dependencies"
|
||||
setup_mongodb
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
|
||||
msg_info "Configure MongoDB"
|
||||
msg_info "Configuring MongoDB"
|
||||
MONGO_ADMIN_USER="admin"
|
||||
MONGO_ADMIN_PWD="$(openssl rand -base64 18 | cut -c1-13)"
|
||||
NODEBB_USER="nodebb"
|
||||
@@ -63,14 +63,11 @@ sed -i 's/bindIp: 127.0.0.1/bindIp: 0.0.0.0/' /etc/mongod.conf
|
||||
sed -i '/security:/d' /etc/mongod.conf
|
||||
bash -c 'echo -e "\nsecurity:\n authorization: enabled" >> /etc/mongod.conf'
|
||||
systemctl restart mongod
|
||||
msg_ok "MongoDB successfully configurated"
|
||||
msg_ok "MongoDB configured"
|
||||
|
||||
msg_info "Install NodeBB"
|
||||
cd /opt
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/NodeBB/NodeBB/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
curl -fsSL "https://github.com/NodeBB/NodeBB/archive/refs/tags/v${RELEASE}.zip" -o "/opt/v${RELEASE}.zip"
|
||||
$STD unzip v${RELEASE}.zip
|
||||
mv NodeBB-${RELEASE} /opt/nodebb
|
||||
fetch_and_deploy_gh_release "nodebb" "NodeBB/NodeBB" "tarball"
|
||||
|
||||
msg_info "Configuring NodeBB"
|
||||
cd /opt/nodebb
|
||||
touch pidfile
|
||||
expect <<EOF >/dev/null 2>&1
|
||||
@@ -107,8 +104,7 @@ expect "Confirm Password" {
|
||||
}
|
||||
expect eof
|
||||
EOF
|
||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
||||
msg_ok "Installed NodeBB"
|
||||
msg_ok "Configured NodeBB"
|
||||
|
||||
msg_info "Creating Services"
|
||||
cat <<EOF >/etc/systemd/system/nodebb.service
|
||||
@@ -136,7 +132,6 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -R /opt/v${RELEASE}.zip
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -13,20 +13,8 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y \
|
||||
jq
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Setup OAuth2-Proxy"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/oauth2-proxy/oauth2-proxy/releases/latest | jq -r .tag_name | sed 's/^v//')
|
||||
mkdir -p /opt/oauth2-proxy
|
||||
curl -fsSL "https://github.com/oauth2-proxy/oauth2-proxy/releases/download/v${RELEASE}/oauth2-proxy-v${RELEASE}.linux-amd64.tar.gz" -o /opt/oauth2-proxy.tar.gz
|
||||
tar -xzf /opt/oauth2-proxy.tar.gz -C /opt
|
||||
mv /opt/oauth2-proxy-v${RELEASE}.linux-amd64/oauth2-proxy /opt/oauth2-proxy
|
||||
fetch_and_deploy_gh_release "oauth2-proxy" "oauth2-proxy/oauth2-proxy" "prebuild" "latest" "/opt/oauth2-proxy" "oauth2-proxy*linux-amd64.tar.gz"
|
||||
touch /opt/oauth2-proxy/config.toml
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
msg_ok "Setup OAuth2-Proxy"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/oauth2-proxy.service
|
||||
@@ -51,8 +39,6 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -f "/opt/oauth2-proxy.tar.gz"
|
||||
rm -rf "/opt/oauth2-proxy-v${RELEASE}.linux-amd64"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -13,14 +13,7 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Ombi"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Ombi-app/Ombi/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
||||
curl -fsSL "https://github.com/Ombi-app/Ombi/releases/download/${RELEASE}/linux-arm64.tar.gz" -o "linux-arm64.tar.gz"
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
mkdir -p /opt/ombi
|
||||
tar -xzf linux-arm64.tar.gz -C /opt/ombi
|
||||
rm -rf linux-arm64.tar.gz
|
||||
msg_ok "Installed Ombi"
|
||||
fetch_and_deploy_gh_release "ombi" "Ombi-app/Ombi" "prebuild" "latest" "/opt/ombi" "linux-arm64.tar.gz"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/ombi.service
|
||||
|
||||
@@ -17,20 +17,11 @@ msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y git
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Install Opengist"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/thomiceli/opengist/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
||||
curl -fsSL "https://github.com/thomiceli/opengist/releases/download/v${RELEASE}/opengist${RELEASE}-linux-arm64.tar.gz" -o "opengist${RELEASE}-linux-arm64.tar.gz"
|
||||
$STD tar -xzf opengist${RELEASE}-linux-arm64.tar.gz
|
||||
mv opengist /opt/opengist
|
||||
chmod +x /opt/opengist/opengist
|
||||
fetch_and_deploy_gh_release "opengist" "thomiceli/opengist" "prebuild" "latest" "/opt/opengist" "opengist*linux-arm64.tar.gz"
|
||||
mkdir -p /opt/opengist-data
|
||||
msg_ok "Installed Opengist"
|
||||
|
||||
msg_info "Creating Service"
|
||||
|
||||
sed -i 's|opengist-home:.*|opengist-home: /opt/opengist-data|' /opt/opengist/config.yml
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/opengist.service
|
||||
[Unit]
|
||||
Description=Opengist server to manage your Gists
|
||||
@@ -52,7 +43,6 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf /opengist${RELEASE}-linux-arm64.tar.gz
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -16,7 +16,7 @@ update_os
|
||||
msg_info "Installing OpenObserve"
|
||||
mkdir -p /opt/openobserve/data
|
||||
LATEST=$(curl -fsSL https://api.github.com/repos/openobserve/openobserve/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
||||
$STD tar zxvf <(curl -fsSL https://github.com/openobserve/openobserve/releases/download/$LATEST/openobserve-${LATEST}-linux-arm64.tar.gz) -C /opt/openobserve
|
||||
$STD tar zxvf <(curl -fsSL https://downloads.openobserve.ai/releases/openobserve/$LATEST/openobserve-$LATEST-linux-arm64.tar.gz) -C /opt/openobserve
|
||||
|
||||
cat <<EOF >/opt/openobserve/data/.env
|
||||
ZO_ROOT_USER_EMAIL = "admin@example.com"
|
||||
|
||||
@@ -40,14 +40,11 @@ $STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC';"
|
||||
} >>~/outline.creds
|
||||
msg_ok "Set up PostgreSQL Database"
|
||||
|
||||
msg_info "Setup Outline (Patience)"
|
||||
fetch_and_deploy_gh_release "outline" "outline/outline" "tarball"
|
||||
|
||||
msg_info "Configuring Outline (Patience)"
|
||||
SECRET_KEY="$(openssl rand -hex 32)"
|
||||
temp_file=$(mktemp)
|
||||
LOCAL_IP="$(hostname -I | awk '{print $1}')"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/outline/outline/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
curl -fsSL "https://github.com/outline/outline/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
||||
tar zxf $temp_file
|
||||
mv outline-${RELEASE} /opt/outline
|
||||
cd /opt/outline
|
||||
cp .env.sample .env
|
||||
export NODE_ENV=development
|
||||
@@ -62,8 +59,7 @@ export NODE_OPTIONS="--max-old-space-size=3584"
|
||||
$STD yarn build
|
||||
sed -i 's/NODE_ENV=development/NODE_ENV=production/g' /opt/outline/.env
|
||||
export NODE_ENV=production
|
||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
||||
msg_ok "Setup Outline"
|
||||
msg_ok "Configured Outline"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/outline.service
|
||||
@@ -89,7 +85,6 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf $temp_file
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -14,19 +14,17 @@ network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y \
|
||||
git \
|
||||
ca-certificates
|
||||
$STD apt-get install -y ca-certificates
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
|
||||
fetch_and_deploy_gh_release "overseerr" "sct/overseerr" "tarball"
|
||||
|
||||
msg_info "Installing Overseerr (Patience)"
|
||||
git clone -q https://github.com/sct/overseerr.git /opt/overseerr
|
||||
msg_info "Configuring Overseerr (Patience)"
|
||||
cd /opt/overseerr
|
||||
$STD yarn install
|
||||
$STD yarn build
|
||||
msg_ok "Installed Overseerr"
|
||||
msg_ok "Configured Overseerr"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/overseerr.service
|
||||
|
||||
@@ -19,13 +19,7 @@ $STD apt-get install -y wget
|
||||
$STD apt-get install -y openssh-server
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing Owncast"
|
||||
mkdir /opt/owncast
|
||||
cd /opt/owncast
|
||||
curl -fsSL "$(curl -fsSL https://api.github.com/repos/owncast/owncast/releases/latest | grep download | grep linux-arm64 | cut -d\" -f4)" -o $(basename "$(curl -fsSL https://api.github.com/repos/owncast/owncast/releases/latest | grep download | grep linux-arm64 | cut -d\" -f4)")
|
||||
$STD unzip owncast*.zip
|
||||
rm owncast*.zip
|
||||
msg_ok "Installed Owncast"
|
||||
fetch_and_deploy_gh_release "owncast" "owncast/owncast" "prebuild" "latest" "/opt/owncast" "owncast*linux-arm64.zip"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/owncast.service
|
||||
|
||||
@@ -15,48 +15,90 @@ update_os
|
||||
|
||||
msg_info "Installing Dependencies (Patience)"
|
||||
$STD apt-get install -y \
|
||||
exiftool \
|
||||
ffmpeg \
|
||||
libheif1 \
|
||||
libpng-dev \
|
||||
libjpeg-dev \
|
||||
libtiff-dev \
|
||||
imagemagick \
|
||||
darktable \
|
||||
rawtherapee \
|
||||
libvips42 \
|
||||
lsb-release
|
||||
exiftool \
|
||||
ffmpeg \
|
||||
libheif1 \
|
||||
libpng-dev \
|
||||
libjpeg-dev \
|
||||
libtiff-dev \
|
||||
imagemagick \
|
||||
darktable \
|
||||
rawtherapee \
|
||||
libvips42 \
|
||||
lsb-release
|
||||
|
||||
echo 'export PATH=/usr/local:$PATH' >>~/.bashrc
|
||||
export PATH=/usr/local:$PATH
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
fetch_and_deploy_gh_release "photoprism" "photoprism/photoprism" "prebuild" "latest" "/opt/photoprism" "*linux-arm64.tar.gz"
|
||||
|
||||
msg_info "Installing PhotoPrism (Patience)"
|
||||
mkdir -p /opt/photoprism/{cache,config,photos,storage,temp}
|
||||
mkdir -p /opt/photoprism/photos/{originals,import}
|
||||
mkdir -p /opt/photoprism_backups
|
||||
curl -fsSL https://dl.photoprism.app/pkg/linux/arm64.tar.gz | tar -xz -C /opt/photoprism --strip-components=1
|
||||
LIBHEIF_URL=$(curl -fsSL "https://dl.photoprism.app/dist/libheif/" | grep -oP "libheif-$(lsb_release -cs)-arm64-v[0-9\.]+\.tar\.gz" | sort -V | tail -n 1)
|
||||
curl -fsSL "https://dl.photoprism.app/dist/libheif/$LIBHEIF_URL" | tar -xzf - -C /usr/local --strip-components=1
|
||||
curl -fsSL "https://dl.photoprism.app/dist/libheif/$LIBHEIF_URL" -o /tmp/libheif.tar.gz
|
||||
tar -xzf /tmp/libheif.tar.gz -C /usr/local
|
||||
ldconfig
|
||||
echo "${LIBHEIF_URL}" >~/.photoprism_libheif
|
||||
chmod -R 755 /opt/photoprism/photos/originals
|
||||
cat <<EOF >/opt/photoprism/config/.env
|
||||
# Authentication
|
||||
PHOTOPRISM_ADMIN_USER='admin'
|
||||
PHOTOPRISM_ADMIN_PASSWORD='changeme'
|
||||
PHOTOPRISM_AUTH_MODE='password'
|
||||
PHOTOPRISM_ADMIN_PASSWORD='helper-scripts.com'
|
||||
PHOTOPRISM_PUBLIC='false'
|
||||
|
||||
# Network / HTTP
|
||||
PHOTOPRISM_HTTP_HOST='0.0.0.0'
|
||||
PHOTOPRISM_HTTP_PORT='2342'
|
||||
PHOTOPRISM_SITE_CAPTION='https://tteck.github.io/Proxmox/'
|
||||
PHOTOPRISM_SITE_URL='http://localhost:2342/'
|
||||
PHOTOPRISM_DISABLE_TLS='true'
|
||||
PHOTOPRISM_DEFAULT_TLS='false'
|
||||
PHOTOPRISM_HTTP_COMPRESSION='gzip'
|
||||
|
||||
# Features & AI
|
||||
PHOTOPRISM_DISABLE_TENSORFLOW='false'
|
||||
PHOTOPRISM_DISABLE_FACES='false'
|
||||
PHOTOPRISM_DISABLE_CLASSIFICATION='false'
|
||||
PHOTOPRISM_DISABLE_VECTORS='false'
|
||||
PHOTOPRISM_DETECT_NSFW='false'
|
||||
PHOTOPRISM_UPLOAD_NSFW='true'
|
||||
|
||||
# Paths & Storage
|
||||
PHOTOPRISM_STORAGE_PATH='/opt/photoprism/storage'
|
||||
PHOTOPRISM_ORIGINALS_PATH='/opt/photoprism/photos/originals'
|
||||
PHOTOPRISM_IMPORT_PATH='/opt/photoprism/photos/import'
|
||||
PHOTOPRISM_BACKUP_PATH='/opt/photoprism_backups'
|
||||
|
||||
# Database
|
||||
PHOTOPRISM_DATABASE_DRIVER='sqlite'
|
||||
PHOTOPRISM_DISABLE_WEBDAV='false'
|
||||
PHOTOPRISM_DISABLE_FACES='false'
|
||||
|
||||
# Behavior & Options
|
||||
PHOTOPRISM_AUTO_INDEX='300'
|
||||
PHOTOPRISM_AUTO_IMPORT='-1'
|
||||
PHOTOPRISM_PUBLIC='false'
|
||||
PHOTOPRISM_DISABLE_WEBDAV='false'
|
||||
PHOTOPRISM_READONLY='false'
|
||||
PHOTOPRISM_DISABLE_SETTINGS='false'
|
||||
PHOTOPRISM_DISABLE_CHOWN='false'
|
||||
PHOTOPRISM_EXPERIMENTAL='false'
|
||||
PHOTOPRISM_INIT='https tensorflow'
|
||||
|
||||
# Image Processing
|
||||
PHOTOPRISM_ORIGINALS_LIMIT='5000'
|
||||
PHOTOPRISM_JPEG_QUALITY='85'
|
||||
PHOTOPRISM_RAW_PRESETS='false'
|
||||
PHOTOPRISM_DISABLE_RAW='false'
|
||||
|
||||
# Debug & Logging
|
||||
PHOTOPRISM_DEBUG='false'
|
||||
PHOTOPRISM_LOG_LEVEL='info'
|
||||
|
||||
# Site Info
|
||||
PHOTOPRISM_SITE_CAPTION='https://Helper-Scripts.com'
|
||||
PHOTOPRISM_SITE_DESCRIPTION=''
|
||||
PHOTOPRISM_SITE_AUTHOR=''
|
||||
EOF
|
||||
ln -sf /opt/photoprism/bin/photoprism /usr/local/bin/photoprism
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@ $STD apt-get -y install \
|
||||
wakeonlan \
|
||||
fping \
|
||||
zip \
|
||||
libtext-csv-perl \
|
||||
cron
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
@@ -51,7 +52,8 @@ $STD apt-get -y install \
|
||||
python3-requests \
|
||||
python3-tz \
|
||||
python3-tzlocal \
|
||||
python3-aiohttp
|
||||
python3-aiohttp \
|
||||
python3-cryptography
|
||||
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
|
||||
$STD pip3 install mac-vendor-lookup
|
||||
$STD pip3 install fritzconnection
|
||||
@@ -59,6 +61,7 @@ $STD pip3 install cryptography
|
||||
$STD pip3 install pyunifi
|
||||
$STD pip3 install openwrt-luci-rpc
|
||||
$STD pip3 install asusrouter
|
||||
$STD pip3 install paho-mqtt
|
||||
msg_ok "Installed Python Dependencies"
|
||||
|
||||
msg_info "Installing Pi.Alert"
|
||||
|
||||
@@ -18,14 +18,7 @@ $STD apt-get install -y libc++-dev
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
JAVA_VERSION=21 setup_java
|
||||
|
||||
msg_info "Settting up Suwayomi-Server"
|
||||
temp_file=$(mktemp)
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Suwayomi/Suwayomi-Server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
curl -fsSL "https://github.com/Suwayomi/Suwayomi-Server/releases/download/${RELEASE}/Suwayomi-Server-${RELEASE}-debian-all.deb" -o "$temp_file"
|
||||
$STD dpkg -i "$temp_file"
|
||||
echo "${RELEASE}" >/opt/suwayomi-server_version.txt
|
||||
msg_ok "Done setting up Suwayomi-Server"
|
||||
fetch_and_deploy_gh_release "suwayomi-server" "Suwayomi/Suwayomi-Server" "binary"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/suwayomi-server.service
|
||||
@@ -47,7 +40,6 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -f "$temp_file"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@@ -15,8 +15,13 @@ update_os
|
||||
|
||||
fetch_and_deploy_gh_release "victoriametrics" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "victoria-metrics-linux-arm64-v+([0-9.]).tar.gz"
|
||||
fetch_and_deploy_gh_release "vmutils" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "vmutils-linux-arm64-v+([0-9.]).tar.gz"
|
||||
fetch_and_deploy_gh_release "victorialogs" "VictoriaMetrics/VictoriaLogs" "prebuild" "latest" "/opt/victoriametrics" "victoria-logs-linux-arm64*.tar.gz"
|
||||
fetch_and_deploy_gh_release "vlutils" "VictoriaMetrics/VictoriaLogs" "prebuild" "latest" "/opt/victoriametrics" "vlutils-linux-arm64*.tar.gz"
|
||||
|
||||
read -r -p "${TAB3}Would you like to add VictoriaLogs? <y/N> " prompt
|
||||
|
||||
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
||||
fetch_and_deploy_gh_release "victorialogs" "VictoriaMetrics/VictoriaLogs" "prebuild" "latest" "/opt/victoriametrics" "victoria-logs-linux-arm64*.tar.gz"
|
||||
fetch_and_deploy_gh_release "vlutils" "VictoriaMetrics/VictoriaLogs" "prebuild" "latest" "/opt/victoriametrics" "vlutils-linux-arm64*.tar.gz"
|
||||
fi
|
||||
|
||||
msg_info "Setup VictoriaMetrics"
|
||||
mkdir -p /opt/victoriametrics/data
|
||||
@@ -38,8 +43,10 @@ ExecStart=/opt/victoriametrics/victoria-metrics-prod --storageDataPath="/opt/vic
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now victoriametrics
|
||||
|
||||
cat <<EOF >/etc/systemd/system/victoriametrics-logs.service
|
||||
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
||||
cat <<EOF >/etc/systemd/system/victoriametrics-logs.service
|
||||
[Unit]
|
||||
Description=VictoriaMetrics Service
|
||||
|
||||
@@ -53,15 +60,14 @@ ExecStart=/opt/victoriametrics/victoria-logs-prod
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now victoriametrics
|
||||
systemctl enable -q --now victoriametrics-logs
|
||||
systemctl enable -q --now victoriametrics-logs
|
||||
fi
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf $temp_dir
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
Reference in New Issue
Block a user