Merge remote-tracking branch 'upstream/main'

This commit is contained in:
Sam Heinz
2025-08-03 16:42:03 +10:00
127 changed files with 1824 additions and 1512 deletions

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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"

View File

@@ -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]

View File

@@ -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

View File

@@ -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"

View File

@@ -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
View 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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"