mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-10-02 19:29:02 +02:00
Compare commits
11
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
407b0b7a1f | ||
|
|
eead382524 | ||
|
|
a0a28d9a48 | ||
|
|
4277a26af6 | ||
|
|
826a5d9612 | ||
|
|
435aaaa299 | ||
|
|
b4bf7aacf3 | ||
|
|
94cdc531ca | ||
|
|
f86db843e2 | ||
|
|
a311805a36 | ||
|
|
e91f2abe21 |
No files matched your search
@@ -549,6 +549,21 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
</details>
|
||||
|
||||
## 2026-10-02
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- zerobyte: upgrade Bun on update [@MickLesk](https://github.com/MickLesk) ([#17646](https://github.com/community-scripts/ProxmoxVE/pull/17646))
|
||||
- sure: keep Active Storage uploads across updates [@MickLesk](https://github.com/MickLesk) ([#17648](https://github.com/community-scripts/ProxmoxVE/pull/17648))
|
||||
- twenty: run upstreams upgrade command instead of the removed setup-db.ts [@MickLesk](https://github.com/MickLesk) ([#17647](https://github.com/community-scripts/ProxmoxVE/pull/17647))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- NPM: Refactor / Fix npm openresty user and certbot version [@MickLesk](https://github.com/MickLesk) ([#17649](https://github.com/community-scripts/ProxmoxVE/pull/17649))
|
||||
- several scripts: use the release helpers instead of hand-rolled version checks and downloads [@MickLesk](https://github.com/MickLesk) ([#17625](https://github.com/community-scripts/ProxmoxVE/pull/17625))
|
||||
|
||||
## 2026-10-01
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
@@ -558,6 +573,11 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
- romm: keep the asset links in sync with ROMM_BASE_PATH [@MickLesk](https://github.com/MickLesk) ([#17610](https://github.com/community-scripts/ProxmoxVE/pull/17610))
|
||||
- teslamate: build from the elixir directory since 4.3.0 [@MickLesk](https://github.com/MickLesk) ([#17612](https://github.com/community-scripts/ProxmoxVE/pull/17612))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- feat(glance): add alpine os [@skilletfun](https://github.com/skilletfun) ([#17605](https://github.com/community-scripts/ProxmoxVE/pull/17605))
|
||||
- feat(blocky): add alpine os [@skilletfun](https://github.com/skilletfun) ([#17637](https://github.com/community-scripts/ProxmoxVE/pull/17637))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- several scripts: apt instead of apt-get, cleanup_lxc, nginx_enable_site, drop needless daemon-reloads [@MickLesk](https://github.com/MickLesk) ([#17624](https://github.com/community-scripts/ProxmoxVE/pull/17624))
|
||||
|
||||
+6
-13
@@ -29,20 +29,13 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/sharevb/it-tools/releases/latest | grep '"tag_name":' | cut -d '"' -f4)
|
||||
if [ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ] || [ ! -f /opt/${APP}_version.txt ]; then
|
||||
msg_info "Updating ${APP} LXC"
|
||||
curl -fsSL "https://github.com/sharevb/it-tools/releases/download/${RELEASE}/it-tools-${RELEASE#v}.zip" -o it-tools.zip
|
||||
mkdir -p /usr/share/nginx/html
|
||||
rm -rf /usr/share/nginx/html/*
|
||||
$STD unzip it-tools.zip -d /tmp
|
||||
cp -r /tmp/dist/* /usr/share/nginx/html
|
||||
rm -rf /tmp/dist
|
||||
rm -f it-tools.zip
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
if [[ -f /opt/${APP}_version.txt ]]; then
|
||||
mv /opt/"${APP}_version.txt" ~/.it-tools
|
||||
fi
|
||||
|
||||
if check_for_gh_release "it-tools" "sharevb/it-tools"; then
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "it-tools" "sharevb/it-tools" "prebuild" "latest" "/usr/share/nginx/html" "it-tools-*.zip"
|
||||
msg_ok "Updated successfully!"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit 0
|
||||
}
|
||||
|
||||
+3
-16
@@ -29,8 +29,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -s https://api.github.com/repos/muety/wakapi/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
if [ "${RELEASE}" != "$(cat ~/.wakapi 2>/dev/null)" ] || [ ! -f ~/.wakapi ]; then
|
||||
if check_for_gh_release "wakapi" "muety/wakapi"; then
|
||||
msg_info "Stopping Wakapi Service"
|
||||
$STD rc-service wakapi stop
|
||||
msg_ok "Stopped Wakapi Service"
|
||||
@@ -39,26 +38,14 @@ function update_script() {
|
||||
$STD apk -U upgrade
|
||||
msg_ok "Updated Wakapi LXC"
|
||||
|
||||
msg_info "Creating backup"
|
||||
mkdir -p /opt/wakapi-backup
|
||||
cp /opt/wakapi/config.yml /opt/wakapi/wakapi_db.db /opt/wakapi-backup/
|
||||
msg_ok "Created backup"
|
||||
|
||||
create_backup /opt/wakapi/config.yml /opt/wakapi/wakapi_db.db
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "wakapi" "muety/wakapi" "prebuild" "latest" "/opt/wakapi" "wakapi_linux_$(arch_resolve).zip"
|
||||
|
||||
msg_info "Configuring Wakapi"
|
||||
cd /opt/wakapi
|
||||
cp /opt/wakapi-backup/config.yml /opt/wakapi/
|
||||
cp /opt/wakapi-backup/wakapi_db.db /opt/wakapi/
|
||||
rm -rf /opt/wakapi-backup
|
||||
msg_ok "Configured Wakapi"
|
||||
restore_backup
|
||||
|
||||
msg_info "Starting Service"
|
||||
$STD rc-service wakapi start
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit 0
|
||||
}
|
||||
|
||||
+1
-1
@@ -58,7 +58,7 @@ function update_script() {
|
||||
mkdir -p "$INSTALL_DIR"/metadata_temp
|
||||
$STD tar -xf ~/autocaliweb_bkp.tar --directory /
|
||||
KEPUB_VERSION="$(/usr/bin/kepubify --version)"
|
||||
CALIBRE_RELEASE="$(curl -s https://api.github.com/repos/kovidgoyal/calibre/releases/latest | grep -o '"tag_name": "[^"]*' | cut -d'"' -f4)"
|
||||
CALIBRE_RELEASE="$(get_latest_github_release "kovidgoyal/calibre")"
|
||||
echo "${KEPUB_VERSION#v}" >"$INSTALL_DIR"/KEPUBIFY_RELEASE
|
||||
echo "${CALIBRE_RELEASE#v}" >/"$INSTALL_DIR"/CALIBRE_RELEASE
|
||||
sed 's/^/v/' ~/.autocaliweb >"$INSTALL_DIR"/ACW_RELEASE
|
||||
|
||||
+18
-19
@@ -75,8 +75,7 @@ update_deb_based() {
|
||||
|
||||
msg_info "Configuring Bitmagnet"
|
||||
cd /opt/bitmagnet
|
||||
VREL=v$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
|
||||
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=v$(cat ~/.bitmagnet)"
|
||||
chmod +x bitmagnet
|
||||
msg_ok "Configured Bitmagnet"
|
||||
|
||||
@@ -92,8 +91,10 @@ update_alpine() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [ "${RELEASE}" != "$(cat /opt/bitmagnet_version.txt)" ] || [ ! -f /opt/bitmagnet_version.txt ]; then
|
||||
if [[ -f /opt/bitmagnet_version.txt ]]; then
|
||||
mv /opt/bitmagnet_version.txt ~/.bitmagnet
|
||||
fi
|
||||
if check_for_gh_release "bitmagnet" "bitmagnet-io/bitmagnet"; then
|
||||
msg_info "Backing up database"
|
||||
rm -f /tmp/backup.sql
|
||||
$STD sudo -u postgres pg_dump \
|
||||
@@ -119,27 +120,25 @@ update_alpine() {
|
||||
mv /tmp/backup.sql /opt/
|
||||
msg_ok "Database backed up"
|
||||
|
||||
msg_info "Updating ${APP} from $(cat /opt/bitmagnet_version.txt) to ${RELEASE}"
|
||||
msg_info "Stopping Service"
|
||||
$STD apk -U upgrade
|
||||
$STD service bitmagnet stop
|
||||
[ -f /opt/bitmagnet/.env ] && cp /opt/bitmagnet/.env /opt/
|
||||
[ -f /opt/bitmagnet/config.yml ] && cp /opt/bitmagnet/config.yml /opt/
|
||||
rm -rf /opt/bitmagnet/*
|
||||
temp_file=$(mktemp)
|
||||
curl -fsSL "https://github.com/bitmagnet-io/bitmagnet/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
||||
tar zxf "$temp_file" --strip-components=1 -C /opt/bitmagnet
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
create_backup /opt/bitmagnet/.env /opt/bitmagnet/config.yml
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bitmagnet" "bitmagnet-io/bitmagnet" "tarball"
|
||||
restore_backup
|
||||
|
||||
msg_info "Building ${APP}"
|
||||
cd /opt/bitmagnet
|
||||
VREL=v$RELEASE
|
||||
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
|
||||
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=v$(cat ~/.bitmagnet)"
|
||||
chmod +x bitmagnet
|
||||
[ -f "/opt/.env" ] && cp "/opt/.env" /opt/bitmagnet/
|
||||
[ -f "/opt/config.yml" ] && cp "/opt/config.yml" /opt/bitmagnet/
|
||||
rm -f "$temp_file"
|
||||
echo "${RELEASE}" >/opt/bitmagnet_version.txt
|
||||
msg_ok "Built ${APP}"
|
||||
|
||||
msg_info "Starting Service"
|
||||
$STD service bitmagnet start
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated successfully!"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
+45
-8
@@ -9,22 +9,30 @@ source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_
|
||||
APP="Blocky"
|
||||
var_tags="${var_tags:-adblock}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-512}"
|
||||
var_disk="${var_disk:-2}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
var_arm64="${var_arm64:-yes}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
if [[ -z "${var_os:-}" ]] && command -v pveversion >/dev/null 2>&1; then
|
||||
var_os=$(msg_menu "Choose the container OS" \
|
||||
"debian" "Debian 13" \
|
||||
"alpine" "Alpine 3.24 (smaller footprint)")
|
||||
fi
|
||||
|
||||
if [[ "${var_os:-}" == "alpine" ]]; then
|
||||
var_ram="${var_ram:-256}"
|
||||
var_disk="${var_disk:-2}"
|
||||
var_version="${var_version:-3.24}"
|
||||
else
|
||||
var_ram="${var_ram:-512}"
|
||||
var_disk="${var_disk:-2}"
|
||||
var_version="${var_version:-13}"
|
||||
fi
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
update_deb_based() {
|
||||
if [[ ! -d /opt/blocky ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
@@ -46,6 +54,35 @@ function update_script() {
|
||||
exit
|
||||
}
|
||||
|
||||
update_alpine() {
|
||||
if [[ ! -d /opt/blocky ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
if check_for_gh_release "blocky" "0xERR0R/blocky"; then
|
||||
msg_info "Stopping Service"
|
||||
rc-service blocky stop
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
create_backup /opt/blocky/config.yml
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_Linux_$(arch_resolve "x86_64" "arm64").tar.gz"
|
||||
restore_backup
|
||||
|
||||
msg_info "Starting Service"
|
||||
rc-service blocky start
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated successfully!"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
run_os_update
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
+52
-9
@@ -9,23 +9,30 @@ source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_
|
||||
APP="Glance"
|
||||
var_tags="${var_tags:-dashboard}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-512}"
|
||||
var_disk="${var_disk:-2}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
var_arm64="${var_arm64:-yes}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
if [[ -z "${var_os:-}" ]] && command -v pveversion >/dev/null 2>&1; then
|
||||
var_os=$(msg_menu "Choose the container OS" \
|
||||
"debian" "Debian 13" \
|
||||
"alpine" "Alpine 3.24 (smaller footprint)")
|
||||
fi
|
||||
|
||||
if [[ "${var_os:-}" == "alpine" ]]; then
|
||||
var_ram="${var_ram:-256}"
|
||||
var_disk="${var_disk:-2}"
|
||||
var_version="${var_version:-3.24}"
|
||||
else
|
||||
var_ram="${var_ram:-512}"
|
||||
var_disk="${var_disk:-2}"
|
||||
var_version="${var_version:-13}"
|
||||
fi
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
update_deb_based() {
|
||||
if [[ ! -f /etc/systemd/system/glance.service ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
@@ -54,6 +61,42 @@ function update_script() {
|
||||
exit
|
||||
}
|
||||
|
||||
update_alpine() {
|
||||
if [[ ! -f /etc/init.d/glance ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
if [[ ! -d /opt/glance_data ]]; then
|
||||
msg_info "Creating config directory"
|
||||
mkdir -p /opt/glance_data/
|
||||
cp /opt/glance/*.yml /opt/glance_data/
|
||||
sed -i 's|/opt/glance/glance\.yml|/opt/glance_data/glance.yml|' /etc/init.d/glance
|
||||
rc-service glance restart
|
||||
msg_ok "Created config directory"
|
||||
fi
|
||||
|
||||
if check_for_gh_release "glance" "glanceapp/glance"; then
|
||||
msg_info "Stopping Service"
|
||||
rc-service glance stop
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "glance" "glanceapp/glance" "prebuild" "latest" "/opt/glance" "glance-linux-$(arch_resolve).tar.gz"
|
||||
|
||||
msg_info "Starting Service"
|
||||
rc-service glance start
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated successfully!"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
run_os_update
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
+4
-4
@@ -31,11 +31,11 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
setup_mariadb
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/glpi-project/glpi/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/')
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
if [[ -f /opt/${APP}_version.txt ]]; then
|
||||
mv /opt/"${APP}_version.txt" ~/.glpi
|
||||
fi
|
||||
if check_for_gh_release "glpi" "glpi-project/glpi"; then
|
||||
msg_error "Currently we don't provide an update function for this ${APP}."
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
+11
-5
@@ -129,6 +129,13 @@ EOF
|
||||
msg_ok "Restored Admin Interface"
|
||||
fi
|
||||
|
||||
if grep -q '^user npm' /usr/local/openresty/nginx/conf/nginx.conf 2>/dev/null; then
|
||||
msg_info "Repairing OpenResty config"
|
||||
sed -i 's/user npm/user root/g; s/^pid/#pid/g' /usr/local/openresty/nginx/conf/nginx.conf
|
||||
systemctl restart openresty
|
||||
msg_ok "Repaired OpenResty config"
|
||||
fi
|
||||
|
||||
if check_for_gh_release "nginxproxymanager" "NginxProxyManager/nginx-proxy-manager"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop openresty
|
||||
@@ -165,6 +172,7 @@ EOF
|
||||
cp /opt/nginxproxymanager/docker/rootfs/etc/letsencrypt.ini /etc/letsencrypt.ini
|
||||
cp /opt/nginxproxymanager/docker/rootfs/etc/logrotate.d/nginx-proxy-manager /etc/logrotate.d/nginx-proxy-manager
|
||||
ln -sf /etc/nginx/nginx.conf /etc/nginx/conf/nginx.conf
|
||||
sed -i 's/user npm/user root/g; s/^pid/#pid/g' /usr/local/openresty/nginx/conf/nginx.conf
|
||||
rm -f /etc/nginx/conf.d/dev.conf
|
||||
if [[ -f /etc/nginx/conf.d/production.conf.template ]]; then
|
||||
ADMIN_PORT=$(grep -oP '^\s*listen\s+\K[0-9]+(?=\s+default)' /etc/nginx/conf.d/production.conf 2>/dev/null | head -n1 || true)
|
||||
@@ -237,18 +245,16 @@ EOF
|
||||
|
||||
msg_info "Starting Services"
|
||||
if [ -f /opt/certbot/bin/certbot ]; then
|
||||
CERTBOT_VER=$(/opt/certbot/bin/certbot --version 2>&1 | awk '{print $NF}' || echo "0.0.0")
|
||||
CERTBOT_VER=$(/opt/certbot/bin/certbot --version 2>&1 | awk '/^certbot [0-9]/{print $2; exit}' || true)
|
||||
elif command -v certbot &>/dev/null; then
|
||||
CERTBOT_VER=$(certbot --version 2>&1 | awk '{print $NF}' || echo "0.0.0")
|
||||
else
|
||||
CERTBOT_VER="2.0.0"
|
||||
CERTBOT_VER=$(certbot --version 2>&1 | awk '/^certbot [0-9]/{print $2; exit}' || true)
|
||||
fi
|
||||
[[ "${CERTBOT_VER:-}" =~ ^[0-9][0-9.]*$ ]] || CERTBOT_VER="2.0.0"
|
||||
if grep -q "Environment=CERTBOT_VERSION" /lib/systemd/system/npm.service; then
|
||||
sed -i "s|Environment=CERTBOT_VERSION=.*|Environment=CERTBOT_VERSION=${CERTBOT_VER}|" /lib/systemd/system/npm.service
|
||||
else
|
||||
sed -i "/Environment=NODE_ENV=production/a Environment=CERTBOT_VERSION=${CERTBOT_VER}" /lib/systemd/system/npm.service
|
||||
fi
|
||||
sed -i 's/user npm/user root/g; s/^pid/#pid/g' /usr/local/openresty/nginx/conf/nginx.conf
|
||||
sed -r -i 's/^([[:space:]]*)su npm npm/\1#su npm npm/g;' /etc/logrotate.d/nginx-proxy-manager
|
||||
if [ -n "$(command -v node)" ]; then
|
||||
sed -i -E "s|^ExecStart=.*/node index\.js|ExecStart=$(command -v node) index.js|" /lib/systemd/system/npm.service
|
||||
|
||||
+12
-13
@@ -54,19 +54,22 @@ EOF
|
||||
msg_ok "Migrated PHP $CURRENT_PHP to 8.4"
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/pterodactyl/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
if [[ -f /opt/${APP}_version.txt ]]; then
|
||||
mv /opt/"${APP}_version.txt" ~/.pterodactyl-panel
|
||||
fi
|
||||
|
||||
if check_for_gh_release "pterodactyl-panel" "pterodactyl/panel"; then
|
||||
msg_info "Stopping Service"
|
||||
cd /opt/pterodactyl-panel
|
||||
$STD php artisan down
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
cp -r /opt/pterodactyl-panel/.env /opt/
|
||||
rm -rf * .*
|
||||
curl -fsSL "https://github.com/pterodactyl/panel/releases/download/v${RELEASE}/panel.tar.gz" -o $(basename "https://github.com/pterodactyl/panel/releases/download/v${RELEASE}/panel.tar.gz")
|
||||
tar -xzf "panel.tar.gz"
|
||||
mv /opt/.env /opt/pterodactyl-panel/
|
||||
create_backup /opt/pterodactyl-panel/.env
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "pterodactyl-panel" "pterodactyl/panel" "prebuild" "latest" "/opt/pterodactyl-panel" "panel.tar.gz"
|
||||
restore_backup
|
||||
|
||||
msg_info "Updating ${APP}"
|
||||
cd /opt/pterodactyl-panel
|
||||
$STD composer install --no-dev --optimize-autoloader --no-interaction
|
||||
$STD php artisan view:clear
|
||||
$STD php artisan config:clear
|
||||
@@ -74,17 +77,13 @@ EOF
|
||||
chown -R www-data:www-data /opt/pterodactyl-panel/*
|
||||
chmod -R 755 /opt/pterodactyl-panel/storage /opt/pterodactyl-panel/bootstrap/cache/
|
||||
ln -s /opt/pterodactyl-panel /var/www/pterodactyl
|
||||
rm -rf "/opt/pterodactyl-panel/panel.tar.gz"
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
msg_ok "Updated ${APP}"
|
||||
|
||||
msg_info "Starting Service"
|
||||
$STD php artisan queue:restart
|
||||
$STD php artisan up
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated successfully!"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
+5
-10
@@ -56,17 +56,12 @@ update_alpine() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -s https://api.github.com/repos/rclone/rclone/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [ "${RELEASE}" != "$(cat /opt/rclone_version.txt)" ] || [ ! -f /opt/rclone_version.txt ]; then
|
||||
msg_info "Updating ${APP} LXC"
|
||||
temp_file=$(mktemp)
|
||||
curl -fsSL "https://github.com/rclone/rclone/releases/download/v${RELEASE}/rclone-v${RELEASE}-linux-$(arch_resolve).zip" -o "$temp_file"
|
||||
$STD unzip -o "$temp_file" '*/**' -d /opt/rclone
|
||||
rm -f "$temp_file"
|
||||
echo "${RELEASE}" >/opt/rclone_version.txt
|
||||
if [[ -f /opt/rclone_version.txt ]]; then
|
||||
mv /opt/rclone_version.txt ~/.rclone
|
||||
fi
|
||||
if check_for_gh_release "rclone" "rclone/rclone"; then
|
||||
fetch_and_deploy_gh_release "rclone" "rclone/rclone" "prebuild" "latest" "/opt/rclone" "rclone*linux-$(arch_resolve).zip"
|
||||
msg_ok "Updated successfully!"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
+16
-27
@@ -66,41 +66,30 @@ update_alpine() {
|
||||
exit
|
||||
fi
|
||||
|
||||
APIRELEASE=$(curl -s https://api.github.com/repos/lejianwen/rustdesk-api/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
RELEASE=$(curl -s https://api.github.com/repos/lejianwen/rustdesk-server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
if [ "${RELEASE}" != "$(cat ~/.rustdesk-server 2>/dev/null)" ] || [ ! -f ~/.rustdesk-server ]; then
|
||||
msg_info "Updating RustDesk Server to v${RELEASE}"
|
||||
if check_for_gh_release "rustdesk-server" "lejianwen/rustdesk-server"; then
|
||||
msg_info "Stopping RustDesk Server"
|
||||
$STD apk -U upgrade
|
||||
$STD service rustdesk-server-hbbs stop
|
||||
$STD service rustdesk-server-hbbr stop
|
||||
temp_file1=$(mktemp)
|
||||
ARCH=$(arch_resolve "amd64" "arm64v8")
|
||||
curl -fsSL "https://github.com/lejianwen/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-linux-${ARCH}.zip" -o "$temp_file1"
|
||||
$STD unzip "$temp_file1"
|
||||
cp -r "$ARCH"/* /opt/rustdesk-server/
|
||||
echo "${RELEASE}" >~/.rustdesk-server
|
||||
msg_ok "Stopped RustDesk Server"
|
||||
|
||||
fetch_and_deploy_gh_release "rustdesk-server" "lejianwen/rustdesk-server" "prebuild" "latest" "/opt/rustdesk-server" "rustdesk-server-linux-$(arch_resolve "amd64" "arm64v8").zip"
|
||||
|
||||
msg_info "Starting RustDesk Server"
|
||||
$STD service rustdesk-server-hbbs start
|
||||
$STD service rustdesk-server-hbbr start
|
||||
rm -rf "$ARCH"
|
||||
rm -f "$temp_file1"
|
||||
msg_ok "Updated RustDesk Server"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
msg_ok "Started RustDesk Server"
|
||||
fi
|
||||
if [ "${APIRELEASE}" != "$(cat ~/.rustdesk-api)" ] || [ ! -f ~/.rustdesk-api ]; then
|
||||
msg_info "Updating RustDesk API to v${APIRELEASE}"
|
||||
if check_for_gh_release "rustdesk-api" "lejianwen/rustdesk-api"; then
|
||||
msg_info "Stopping RustDesk API"
|
||||
$STD service rustdesk-api stop
|
||||
temp_file2=$(mktemp)
|
||||
curl -fsSL "https://github.com/lejianwen/rustdesk-api/releases/download/v${APIRELEASE}/linux-$(arch_resolve).tar.gz" -o "$temp_file2"
|
||||
$STD tar zxvf "$temp_file2"
|
||||
cp -r release/* /opt/rustdesk-api
|
||||
echo "${APIRELEASE}" >~/.rustdesk-api
|
||||
msg_ok "Stopped RustDesk API"
|
||||
|
||||
fetch_and_deploy_gh_release "rustdesk-api" "lejianwen/rustdesk-api" "prebuild" "latest" "/opt/rustdesk-api" "linux-$(arch_resolve).tar.gz"
|
||||
|
||||
msg_info "Starting RustDesk API"
|
||||
$STD service rustdesk-api start
|
||||
rm -rf release
|
||||
rm -f "$temp_file2"
|
||||
msg_ok "Updated RustDesk API"
|
||||
else
|
||||
msg_ok "No update required. RustDesk API is already at v${APIRELEASE}"
|
||||
msg_ok "Started RustDesk API"
|
||||
fi
|
||||
msg_ok "Updated successfully!"
|
||||
}
|
||||
|
||||
@@ -65,7 +65,9 @@ EOF
|
||||
msg_ok "Stopped services"
|
||||
fi
|
||||
|
||||
create_backup /opt/sure/storage
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Sure" "we-promise/sure" "tarball" "latest" "/opt/sure"
|
||||
restore_backup
|
||||
RUBY_VERSION="$(cat /opt/sure/.ruby-version)" RUBY_INSTALL_RAILS=false HOME=/root setup_ruby
|
||||
|
||||
msg_info "Updating Sure"
|
||||
|
||||
+7
-12
@@ -29,34 +29,29 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/benzino77/tasmocompiler/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
if [[ -f /opt/${APP}_version.txt ]]; then
|
||||
mv /opt/"${APP}_version.txt" ~/.tasmocompiler
|
||||
fi
|
||||
|
||||
if check_for_gh_release "tasmocompiler" "benzino77/tasmocompiler"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop tasmocompiler
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "tasmocompiler" "benzino77/tasmocompiler" "tarball"
|
||||
|
||||
msg_info "Updating TasmoCompiler"
|
||||
cd /opt
|
||||
rm -rf /opt/tasmocompiler
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/benzino77/tasmocompiler/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
curl -fsSL "https://github.com/benzino77/tasmocompiler/archive/refs/tags/v${RELEASE}.tar.gz" -o $(basename "https://github.com/benzino77/tasmocompiler/archive/refs/tags/v${RELEASE}.tar.gz")
|
||||
tar xzf v${RELEASE}.tar.gz
|
||||
mv tasmocompiler-${RELEASE}/ /opt/tasmocompiler/
|
||||
cd /opt/tasmocompiler
|
||||
$STD yarn install
|
||||
export NODE_OPTIONS=--openssl-legacy-provider
|
||||
$STD npm i
|
||||
$STD yarn build
|
||||
rm -r "/opt/v${RELEASE}.tar.gz"
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated TasmoCompiler"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start tasmocompiler
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated successfully!"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
+2
-10
@@ -62,8 +62,7 @@ update_alpine() {
|
||||
$STD apk -U upgrade
|
||||
msg_ok "Updated packages"
|
||||
|
||||
RELEASE=$(curl -s https://api.github.com/repos/tinyauthapp/tinyauth/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [ "${RELEASE}" != "$(cat ~/.tinyauth 2>/dev/null)" ] || [ ! -f ~/.tinyauth ]; then
|
||||
if check_for_gh_release "tinyauth" "tinyauthapp/tinyauth"; then
|
||||
msg_info "Stopping Service"
|
||||
$STD service tinyauth stop
|
||||
msg_ok "Service Stopped"
|
||||
@@ -82,19 +81,12 @@ update_alpine() {
|
||||
msg_ok "Migrated .env to v5 format"
|
||||
fi
|
||||
|
||||
msg_info "Updating Tinyauth"
|
||||
rm -f /opt/tinyauth/tinyauth
|
||||
curl -fsSL "https://github.com/tinyauthapp/tinyauth/releases/download/v${RELEASE}/tinyauth-$(arch_resolve)" -o /opt/tinyauth/tinyauth
|
||||
chmod +x /opt/tinyauth/tinyauth
|
||||
echo "${RELEASE}" >~/.tinyauth
|
||||
msg_ok "Updated Tinyauth"
|
||||
fetch_and_deploy_gh_release "tinyauth" "tinyauthapp/tinyauth" "singlefile" "latest" "/opt/tinyauth" "tinyauth-$(arch_resolve)"
|
||||
|
||||
msg_info "Restarting Tinyauth"
|
||||
$STD service tinyauth start
|
||||
msg_ok "Restarted Tinyauth"
|
||||
msg_ok "Updated successfully!"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
+3
-2
@@ -60,8 +60,9 @@ function update_script() {
|
||||
msg_info "Running Database Migrations"
|
||||
cd /opt/twenty/packages/twenty-server
|
||||
set -a && source /opt/twenty/.env && set +a
|
||||
$STD npx ts-node ./scripts/setup-db.ts
|
||||
$STD npx -y typeorm migration:run -d dist/database/typeorm/core/core.datasource
|
||||
$STD yarn command:prod cache:flush || true
|
||||
$STD yarn command:prod upgrade
|
||||
$STD yarn command:prod cache:flush || true
|
||||
msg_ok "Ran Database Migrations"
|
||||
|
||||
msg_info "Starting Services"
|
||||
|
||||
+7
-17
@@ -30,11 +30,11 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
ensure_dependencies zstd
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
# Dirty-Fix 03/2025 for missing APP_version.txt on old installations, set to pre-latest release
|
||||
if [[ -f /opt/${APP}_version.txt ]]; then
|
||||
mv /opt/"${APP}_version.txt" ~/.wastebin
|
||||
fi
|
||||
msg_info "Running Migration"
|
||||
if [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||
echo "2.7.1" >/opt/${APP}_version.txt
|
||||
if [[ ! -f /opt/wastebin-data/.env ]]; then
|
||||
mkdir -p /opt/wastebin-data
|
||||
cat <<EOF >/opt/wastebin-data/.env
|
||||
WASTEBIN_DATABASE_PATH=/opt/wastebin-data/wastebin.db
|
||||
@@ -60,28 +60,18 @@ EOF
|
||||
systemctl daemon-reload
|
||||
fi
|
||||
msg_ok "Migration Done"
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
if check_for_gh_release "wastebin" "matze/wastebin"; then
|
||||
msg_info "Stopping Wastebin"
|
||||
systemctl stop wastebin
|
||||
msg_ok "Wastebin Stopped"
|
||||
|
||||
msg_info "Updating Wastebin"
|
||||
temp_file=$(mktemp)
|
||||
curl -fsSL "https://github.com/matze/wastebin/releases/download/${RELEASE}/wastebin_${RELEASE}_$(arch_resolve "x86_64" "aarch64")-unknown-linux-musl.tar.zst" -o "$temp_file"
|
||||
tar -xf "$temp_file"
|
||||
cp -f wastebin* /opt/wastebin/
|
||||
chmod +x /opt/wastebin/wastebin
|
||||
chmod +x /opt/wastebin/wastebin-ctl
|
||||
rm -f "$temp_file"
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated Wastebin"
|
||||
fetch_and_deploy_gh_release "wastebin" "matze/wastebin" "prebuild" "latest" "/opt/wastebin" "wastebin_*_$(arch_resolve "x86_64" "aarch64")-unknown-linux-musl.tar.zst"
|
||||
chmod +x /opt/wastebin/wastebin /opt/wastebin/wastebin-ctl
|
||||
|
||||
msg_info "Starting Wastebin"
|
||||
systemctl start wastebin
|
||||
msg_ok "Started Wastebin"
|
||||
msg_ok "Updated successfully!"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -44,6 +44,10 @@ function update_script() {
|
||||
|
||||
restore_backup
|
||||
|
||||
msg_info "Updating Bun"
|
||||
$STD bun upgrade
|
||||
msg_ok "Updated Bun"
|
||||
|
||||
msg_info "Building Zerobyte"
|
||||
export NODE_OPTIONS="--max-old-space-size=3072"
|
||||
cd /opt/zerobyte
|
||||
|
||||
@@ -19,12 +19,9 @@ $STD apk add --no-cache \
|
||||
python3
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing IT-Tools"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/sharevb/it-tools/releases/latest | grep '"tag_name":' | cut -d '"' -f4)
|
||||
curl -fsSL "https://github.com/sharevb/it-tools/releases/download/${RELEASE}/it-tools-${RELEASE#v}.zip" -o it-tools.zip
|
||||
mkdir -p /usr/share/nginx/html
|
||||
$STD unzip it-tools.zip -d /tmp/
|
||||
mv /tmp/dist/* /usr/share/nginx/html
|
||||
fetch_and_deploy_gh_release "it-tools" "sharevb/it-tools" "prebuild" "latest" "/usr/share/nginx/html" "it-tools-*.zip"
|
||||
|
||||
msg_info "Configuring IT-Tools"
|
||||
cat <<'EOF' >/etc/nginx/http.d/default.conf
|
||||
server {
|
||||
listen 80;
|
||||
@@ -39,8 +36,7 @@ server {
|
||||
EOF
|
||||
$STD rc-update add nginx default
|
||||
$STD rc-service nginx start
|
||||
echo "${RELEASE}" >/opt/"${APPLICATION}"_version.txt
|
||||
msg_ok "Installed IT-Tools"
|
||||
msg_ok "Configured IT-Tools"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
@@ -90,20 +90,14 @@ setup_alpine() {
|
||||
$STD rc-service postgresql start
|
||||
msg_ok "Installed PostreSQL"
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
fetch_and_deploy_gh_release "bitmagnet" "bitmagnet-io/bitmagnet" "tarball"
|
||||
|
||||
msg_info "Installing bitmagnet v${RELEASE}"
|
||||
mkdir -p /opt/bitmagnet
|
||||
temp_file=$(mktemp)
|
||||
curl -fsSL "https://github.com/bitmagnet-io/bitmagnet/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
||||
tar zxf "$temp_file" --strip-components=1 -C /opt/bitmagnet
|
||||
msg_info "Building bitmagnet"
|
||||
cd /opt/bitmagnet
|
||||
VREL=v$RELEASE
|
||||
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
|
||||
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=v$(cat ~/.bitmagnet)"
|
||||
chmod +x bitmagnet
|
||||
$STD su - postgres -c "psql -c 'CREATE DATABASE bitmagnet;'"
|
||||
echo "${RELEASE}" >/opt/bitmagnet_version.txt
|
||||
msg_ok "Installed bitmagnet v${RELEASE}"
|
||||
msg_ok "Built bitmagnet"
|
||||
|
||||
read -rp "${TAB3}Enter your TMDB API key if you have one: " tmdbapikey
|
||||
|
||||
@@ -133,8 +127,6 @@ EOF
|
||||
msg_info "Starting bitmagnet"
|
||||
$STD service bitmagnet start
|
||||
msg_ok "Started bitmagnet"
|
||||
|
||||
rm -f "$temp_file"
|
||||
}
|
||||
|
||||
run_os_setup
|
||||
|
||||
+83
-11
@@ -13,13 +13,14 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_Linux_$(arch_resolve "x86_64" "arm64").tar.gz"
|
||||
setup_deb_based() {
|
||||
fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_Linux_$(arch_resolve "x86_64" "arm64").tar.gz"
|
||||
|
||||
msg_info "Configuring Blocky"
|
||||
if systemctl is-active systemd-resolved >/dev/null 2>&1; then
|
||||
systemctl disable -q --now systemd-resolved
|
||||
fi
|
||||
cat <<EOF >/opt/blocky/config.yml
|
||||
msg_info "Configuring Blocky"
|
||||
if systemctl is-active systemd-resolved >/dev/null 2>&1; then
|
||||
systemctl disable -q --now systemd-resolved
|
||||
fi
|
||||
cat <<EOF >/opt/blocky/config.yml
|
||||
# configuration documentation: https://0xerr0r.github.io/blocky/latest/configuration/
|
||||
|
||||
upstreams:
|
||||
@@ -61,10 +62,10 @@ log:
|
||||
# optional: Log level (one from trace, debug, info, warn, error). Default: info
|
||||
level: info
|
||||
EOF
|
||||
msg_ok "Configured Blocky"
|
||||
msg_ok "Configured Blocky"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/blocky.service
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/blocky.service
|
||||
[Unit]
|
||||
Description=Blocky
|
||||
After=network-online.target
|
||||
@@ -80,8 +81,79 @@ ExecStart=/opt/blocky/./blocky --config config.yml
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
$STD systemctl enable -q --now blocky
|
||||
msg_ok "Created Service"
|
||||
$STD systemctl enable -q --now blocky
|
||||
msg_ok "Created Service"
|
||||
}
|
||||
|
||||
setup_alpine() {
|
||||
fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_Linux_$(arch_resolve "x86_64" "arm64").tar.gz"
|
||||
|
||||
msg_info "Configuring Blocky"
|
||||
cat <<EOF >/opt/blocky/config.yml
|
||||
# configuration documentation: https://0xerr0r.github.io/blocky/latest/configuration/
|
||||
|
||||
upstreams:
|
||||
groups:
|
||||
# these external DNS resolvers will be used. Blocky picks 2 random resolvers from the list for each query
|
||||
# format for resolver: [net:]host:[port][/path]. net could be empty (default, shortcut for tcp+udp), tcp+udp, tcp, udp, tcp-tls or https (DoH). If port is empty, default port will be used (53 for udp and tcp, 853 for tcp-tls, 443 for https (Doh))
|
||||
# this configuration is mandatory, please define at least one external DNS resolver
|
||||
default:
|
||||
# Cloudflare
|
||||
- 1.1.1.1
|
||||
# Quad9 DNS-over-TLS server (DoT)
|
||||
- tcp-tls:dns.quad9.net
|
||||
|
||||
# optional: use allow/denylists to block queries (for example ads, trackers, adult pages etc.)
|
||||
blocking:
|
||||
# definition of denylist groups. Can be external link (http/https) or local file
|
||||
denylists:
|
||||
ads:
|
||||
- https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
|
||||
# definition: which groups should be applied for which client
|
||||
clientGroupsBlock:
|
||||
# default will be used, if no special definition for a client name exists
|
||||
default:
|
||||
- ads
|
||||
|
||||
# optional: write query information (question, answer, client, duration etc.) to daily csv file
|
||||
queryLog:
|
||||
# optional one of: mysql, postgresql, csv, csv-client. If empty, log to console
|
||||
type:
|
||||
|
||||
# optional: use these DNS servers to resolve denylist urls and upstream DNS servers. It is useful if no system DNS resolver is configured, and/or to encrypt the bootstrap queries.
|
||||
bootstrapDns:
|
||||
- upstream: tcp-tls:one.one.one.one
|
||||
ips:
|
||||
- 1.1.1.1
|
||||
|
||||
# optional: logging configuration
|
||||
log:
|
||||
# optional: Log level (one from trace, debug, info, warn, error). Default: info
|
||||
level: info
|
||||
EOF
|
||||
msg_ok "Configured Blocky"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/init.d/blocky
|
||||
#!/sbin/openrc-run
|
||||
name="blocky"
|
||||
description="Blocky Daemon"
|
||||
command="/opt/blocky/blocky"
|
||||
command_args="--config /opt/blocky/config.yml"
|
||||
command_background="yes"
|
||||
pidfile="/run/blocky.pid"
|
||||
|
||||
depend() {
|
||||
need net
|
||||
}
|
||||
EOF
|
||||
chmod +x /etc/init.d/blocky
|
||||
$STD rc-update add blocky default
|
||||
$STD rc-service blocky start
|
||||
msg_ok "Created Service"
|
||||
}
|
||||
|
||||
run_os_setup
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
@@ -78,12 +78,10 @@ EOF
|
||||
read -r -p "${TAB3}Would you like to install xCaddy Addon? <y/N> " prompt
|
||||
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||
GO_VERSION="$(curl -fsSL https://go.dev/VERSION?m=text | head -1 | cut -c3-)" setup_go
|
||||
fetch_and_deploy_gh_release "xcaddy" "caddyserver/xcaddy" "prebuild" "latest" "/opt/xcaddy" "xcaddy_*_linux_$(arch_resolve).tar.gz"
|
||||
ln -sf /opt/xcaddy/xcaddy /usr/local/bin/xcaddy
|
||||
msg_info "Setup xCaddy"
|
||||
cd /opt
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/caddyserver/xcaddy/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
curl -fsSL "https://github.com/caddyserver/xcaddy/releases/download/${RELEASE}/xcaddy_${RELEASE:1}_linux_amd64.tar.gz" -o "xcaddy_${RELEASE:1}_linux_amd64.tar.gz"
|
||||
$STD tar xzf xcaddy_"${RELEASE:1}"_linux_amd64.tar.gz -C /usr/local/bin xcaddy
|
||||
rm -rf /opt/xcaddy*
|
||||
$STD xcaddy build
|
||||
msg_ok "Setup xCaddy"
|
||||
fi
|
||||
|
||||
@@ -65,10 +65,7 @@ setup_alpine() {
|
||||
$STD rc-update add docker default
|
||||
msg_ok "Installed Docker"
|
||||
|
||||
get_latest_release() {
|
||||
curl -fsSL https://api.github.com/repos/"$1"/releases/latest | grep '"tag_name":' | cut -d'"' -f4
|
||||
}
|
||||
DOCKER_COMPOSE_LATEST_VERSION=$(get_latest_release "docker/compose")
|
||||
DOCKER_COMPOSE_LATEST_VERSION=$(get_latest_github_release "docker/compose" false)
|
||||
read -r -p "${TAB3}Would you like to add Docker Compose? <y/N> " prompt
|
||||
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||
msg_info "Installing Docker Compose $DOCKER_COMPOSE_LATEST_VERSION"
|
||||
|
||||
@@ -51,12 +51,7 @@ EOF
|
||||
$STD systemctl restart mariadb
|
||||
msg_ok "Configured MariaDB for ERPNext"
|
||||
|
||||
msg_info "Installing wkhtmltopdf"
|
||||
WKHTMLTOPDF_URL="https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_$(arch_resolve).deb"
|
||||
$STD curl -fsSL -o /tmp/wkhtmltox.deb "$WKHTMLTOPDF_URL"
|
||||
$STD apt install -y /tmp/wkhtmltox.deb
|
||||
rm -f /tmp/wkhtmltox.deb
|
||||
msg_ok "Installed wkhtmltopdf"
|
||||
fetch_and_deploy_gh_release "wkhtmltopdf" "wkhtmltopdf/packaging" "binary" "latest" "" "wkhtmltox_*.bookworm_$(arch_resolve).deb"
|
||||
|
||||
msg_info "Installing Frappe Bench"
|
||||
useradd -m -s /bin/bash frappe
|
||||
|
||||
@@ -13,11 +13,12 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
fetch_and_deploy_gh_release "glance" "glanceapp/glance" "prebuild" "latest" "/opt/glance" "glance-linux-$(arch_resolve).tar.gz"
|
||||
setup_deb_based() {
|
||||
fetch_and_deploy_gh_release "glance" "glanceapp/glance" "prebuild" "latest" "/opt/glance" "glance-linux-$(arch_resolve).tar.gz"
|
||||
|
||||
msg_info "Configuring Glance"
|
||||
mkdir -p /opt/glance_data
|
||||
cat <<EOF >/opt/glance_data/glance.yml
|
||||
msg_info "Configuring Glance"
|
||||
mkdir -p /opt/glance_data
|
||||
cat <<EOF >/opt/glance_data/glance.yml
|
||||
pages:
|
||||
- name: Startpage
|
||||
width: slim
|
||||
@@ -37,10 +38,10 @@ pages:
|
||||
- title: Helper Scripts
|
||||
url: https://github.com/community-scripts/ProxmoxVE
|
||||
EOF
|
||||
msg_ok "Configured Glance"
|
||||
msg_ok "Configured Glance"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/glance.service
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/glance.service
|
||||
[Unit]
|
||||
Description=Glance Daemon
|
||||
After=network.target
|
||||
@@ -56,8 +57,58 @@ Restart=on-failure
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now glance
|
||||
msg_ok "Created Service"
|
||||
systemctl enable -q --now glance
|
||||
msg_ok "Created Service"
|
||||
}
|
||||
|
||||
setup_alpine() {
|
||||
fetch_and_deploy_gh_release "glance" "glanceapp/glance" "prebuild" "latest" "/opt/glance" "glance-linux-$(arch_resolve).tar.gz"
|
||||
|
||||
msg_info "Configuring Glance"
|
||||
mkdir -p /opt/glance_data
|
||||
cat <<EOF >/opt/glance_data/glance.yml
|
||||
pages:
|
||||
- name: Startpage
|
||||
width: slim
|
||||
hide-desktop-navigation: true
|
||||
center-vertically: true
|
||||
columns:
|
||||
- size: full
|
||||
widgets:
|
||||
- type: search
|
||||
autofocus: true
|
||||
- type: bookmarks
|
||||
groups:
|
||||
- title: General
|
||||
links:
|
||||
- title: Google
|
||||
url: https://www.google.com/
|
||||
- title: Helper Scripts
|
||||
url: https://github.com/community-scripts/ProxmoxVE
|
||||
EOF
|
||||
msg_ok "Configured Glance"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/init.d/glance
|
||||
#!/sbin/openrc-run
|
||||
name="glance"
|
||||
description="Glance Daemon"
|
||||
command="/opt/glance/glance"
|
||||
command_args="--config /opt/glance_data/glance.yml"
|
||||
command_background="yes"
|
||||
pidfile="/run/glance.pid"
|
||||
|
||||
depend() {
|
||||
need net
|
||||
}
|
||||
EOF
|
||||
chmod +x /etc/init.d/glance
|
||||
rc-update add glance default
|
||||
rc-service glance start
|
||||
msg_ok "Created Service"
|
||||
}
|
||||
|
||||
run_os_setup
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
@@ -27,14 +27,7 @@ setup_mariadb
|
||||
mariadb-tzinfo-to-sql /usr/share/zoneinfo | mariadb mysql
|
||||
MARIADB_DB_NAME="glpi_db" MARIADB_DB_USER="glpi" MARIADB_DB_EXTRA_GRANTS="GRANT SELECT ON \`mysql\`.\`time_zone_name\`" MARIADB_DB_CREDS_FILE="$HOME/glpi_db.creds" setup_mariadb_db
|
||||
|
||||
msg_info "Installing GLPi"
|
||||
cd /opt
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/glpi-project/glpi/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/')
|
||||
curl -fsSL "https://github.com/glpi-project/glpi/releases/download/${RELEASE}/glpi-${RELEASE}.tgz" -o $(basename "https://github.com/glpi-project/glpi/releases/download/${RELEASE}/glpi-${RELEASE}.tgz")
|
||||
$STD tar -xzvf glpi-${RELEASE}.tgz
|
||||
cd /opt/glpi
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
msg_ok "Installed GLPi"
|
||||
fetch_and_deploy_gh_release "glpi" "glpi-project/glpi" "prebuild" "latest" "/opt/glpi" "glpi-*.tgz"
|
||||
|
||||
msg_info "Setting Downstream file"
|
||||
cat <<EOF >/opt/glpi/inc/downstream.php
|
||||
@@ -119,7 +112,6 @@ $STD a2dissite 000-default.conf
|
||||
$STD a2enmod rewrite
|
||||
$STD a2ensite glpi.conf
|
||||
rm -rf /opt/glpi/install/install.php
|
||||
rm -rf /opt/glpi-${RELEASE}.tgz
|
||||
msg_ok "Setup Service"
|
||||
|
||||
msg_info "Setup Cronjob"
|
||||
|
||||
@@ -26,11 +26,7 @@ msg_info "Installing runlike"
|
||||
$STD pip install runlike
|
||||
msg_ok "Installed runlike"
|
||||
|
||||
get_latest_release() {
|
||||
curl -fsSL https://api.github.com/repos/$1/releases/latest | grep '"tag_name":' | cut -d'"' -f4
|
||||
}
|
||||
|
||||
CORE_LATEST_VERSION=$(get_latest_release "home-assistant/core")
|
||||
CORE_LATEST_VERSION=$(get_latest_github_release "home-assistant/core")
|
||||
|
||||
setup_docker
|
||||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/portainer.sh)" <<<"y"
|
||||
|
||||
@@ -80,7 +80,7 @@ setup_alpine() {
|
||||
sed -i 's|# *include "mod_fastcgi.conf"|include "mod_fastcgi.conf"|' /etc/lighttpd/lighttpd.conf
|
||||
sed -i 's|/usr/bin/php-cgi|/usr/bin/php-cgi83|g' /etc/lighttpd/mod_fastcgi.conf
|
||||
mkdir -p /var/www/localhost/htdocs
|
||||
ADMINER_VERSION=$(curl -fsSL https://api.github.com/repos/vrana/adminer/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
||||
ADMINER_VERSION=$(get_latest_github_release "vrana/adminer")
|
||||
curl -fsSL "https://github.com/vrana/adminer/releases/download/v${ADMINER_VERSION}/adminer-${ADMINER_VERSION}.php" -o /var/www/localhost/htdocs/adminer.php
|
||||
chown lighttpd:lighttpd /var/www/localhost/htdocs/adminer.php
|
||||
chmod 755 /var/www/localhost/htdocs/adminer.php
|
||||
|
||||
@@ -25,10 +25,7 @@ $STD apk add docker
|
||||
$STD rc-service docker start
|
||||
$STD rc-update add docker default
|
||||
|
||||
get_latest_release() {
|
||||
curl -fsSL https://api.github.com/repos/$1/releases/latest | grep '"tag_name":' | cut -d'"' -f4
|
||||
}
|
||||
DOCKER_COMPOSE_LATEST_VERSION=$(get_latest_release "docker/compose")
|
||||
DOCKER_COMPOSE_LATEST_VERSION=$(get_latest_github_release "docker/compose" false)
|
||||
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
|
||||
mkdir -p $DOCKER_CONFIG/cli-plugins
|
||||
curl -fsSL https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_LATEST_VERSION/docker-compose-linux-$(arch_resolve "x86_64" "aarch64") -o ~/.docker/cli-plugins/docker-compose
|
||||
|
||||
@@ -22,7 +22,7 @@ msg_ok "Installed Dependencies"
|
||||
JAVA_VERSION="21" setup_java
|
||||
|
||||
msg_info "Installing OneDev"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/theonedev/onedev/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
||||
RELEASE=$(get_latest_github_release "theonedev/onedev" false)
|
||||
cd /opt
|
||||
curl -fsSL "https://code.onedev.io/onedev/server/~site/onedev-latest.tar.gz" -o onedev-latest.tar.gz
|
||||
tar -xzf onedev-latest.tar.gz
|
||||
|
||||
@@ -180,7 +180,7 @@ setup_alpine() {
|
||||
sed -i 's|# *include "mod_fastcgi.conf"|include "mod_fastcgi.conf"|' /etc/lighttpd/lighttpd.conf
|
||||
sed -i 's|/usr/bin/php-cgi|/usr/bin/php-cgi83|g' /etc/lighttpd/mod_fastcgi.conf
|
||||
mkdir -p /var/www/localhost/htdocs
|
||||
ADMINER_VERSION=$(curl -fsSL https://api.github.com/repos/vrana/adminer/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
||||
ADMINER_VERSION=$(get_latest_github_release "vrana/adminer")
|
||||
curl -fsSL "https://github.com/vrana/adminer/releases/download/v${ADMINER_VERSION}/adminer-${ADMINER_VERSION}.php" -o /var/www/localhost/htdocs/adminer.php
|
||||
chown lighttpd:lighttpd /var/www/localhost/htdocs/adminer.php
|
||||
chmod 755 /var/www/localhost/htdocs/adminer.php
|
||||
|
||||
@@ -51,12 +51,10 @@ read -p "${TAB3}Provide an email address for admin login, this should be a valid
|
||||
read -p "${TAB3}Enter your First Name: " NAME_FIRST
|
||||
read -p "${TAB3}Enter your Last Name: " NAME_LAST
|
||||
|
||||
fetch_and_deploy_gh_release "pterodactyl-panel" "pterodactyl/panel" "prebuild" "latest" "/opt/pterodactyl-panel" "panel.tar.gz"
|
||||
|
||||
msg_info "Installing pterodactyl Panel"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/pterodactyl/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
mkdir /opt/pterodactyl-panel
|
||||
cd /opt/pterodactyl-panel
|
||||
curl -fsSL "https://github.com/pterodactyl/panel/releases/download/v${RELEASE}/panel.tar.gz" -o "panel.tar.gz"
|
||||
tar -xzf "panel.tar.gz"
|
||||
cp .env.example .env
|
||||
ADMIN_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
||||
$STD composer install --no-dev --optimize-autoloader --no-interaction
|
||||
@@ -75,9 +73,7 @@ pterodactyl Admin Username: admin
|
||||
pterodactyl Admin Email: $ADMIN_EMAIL
|
||||
pterodactyl Admin Password: $ADMIN_PASS
|
||||
EOF
|
||||
rm -rf "/opt/pterodactyl-panel/panel.tar.gz"
|
||||
rm -rf "/tmp/debsuryorg-archive-keyring.deb"
|
||||
echo "${RELEASE}" >/opt/"${APPLICATION}"_version.txt
|
||||
msg_ok "Installed pterodactyl Panel"
|
||||
|
||||
msg_info "Creating Service"
|
||||
|
||||
@@ -57,12 +57,9 @@ setup_alpine() {
|
||||
apache2-utils fuse3
|
||||
msg_ok "Installed dependencies"
|
||||
|
||||
msg_info "Installing rclone"
|
||||
temp_file=$(mktemp)
|
||||
mkdir -p /opt/rclone
|
||||
RELEASE=$(curl -s https://api.github.com/repos/rclone/rclone/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
curl -fsSL "https://github.com/rclone/rclone/releases/download/v${RELEASE}/rclone-v${RELEASE}-linux-$(arch_resolve).zip" -o "$temp_file"
|
||||
$STD unzip -j "$temp_file" '*/**' -d /opt/rclone
|
||||
fetch_and_deploy_gh_release "rclone" "rclone/rclone" "prebuild" "latest" "/opt/rclone" "rclone*linux-$(arch_resolve).zip"
|
||||
|
||||
msg_info "Configuring rclone"
|
||||
cd /opt/rclone
|
||||
RCLONE_PASSWORD=$(head -c 16 /dev/urandom | xxd -p -c 16)
|
||||
$STD htpasswd -cb -B /opt/login.pwd admin "$RCLONE_PASSWORD"
|
||||
@@ -71,9 +68,7 @@ rclone-Credentials
|
||||
rclone User Name: admin
|
||||
rclone Password: $RCLONE_PASSWORD
|
||||
EOF
|
||||
echo "${RELEASE}" >/opt/rclone_version.txt
|
||||
rm -f "$temp_file"
|
||||
msg_ok "Installed rclone"
|
||||
msg_ok "Configured rclone"
|
||||
|
||||
msg_info "Enabling rclone Service"
|
||||
cat <<EOF >/etc/init.d/rclone
|
||||
@@ -96,8 +91,6 @@ EOF
|
||||
msg_info "Starting rclone"
|
||||
$STD service rclone start
|
||||
msg_ok "Started rclone"
|
||||
|
||||
rm -rf "$temp_file"
|
||||
}
|
||||
|
||||
run_os_setup
|
||||
|
||||
@@ -24,13 +24,9 @@ setup_deb_based() {
|
||||
}
|
||||
|
||||
setup_alpine() {
|
||||
RELEASE=$(curl -s https://api.github.com/repos/lejianwen/rustdesk-server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
msg_info "Installing RustDesk Server v${RELEASE}"
|
||||
temp_file1=$(mktemp)
|
||||
ARCH=$(arch_resolve "amd64" "arm64v8")
|
||||
curl -fsSL "https://github.com/lejianwen/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-linux-${ARCH}.zip" -o "$temp_file1"
|
||||
$STD unzip "$temp_file1"
|
||||
mv "$ARCH" /opt/rustdesk-server
|
||||
fetch_and_deploy_gh_release "rustdesk-server" "lejianwen/rustdesk-server" "prebuild" "latest" "/opt/rustdesk-server" "rustdesk-server-linux-$(arch_resolve "amd64" "arm64v8").zip"
|
||||
|
||||
msg_info "Configuring RustDesk Server"
|
||||
mkdir -p /root/.config/rustdesk
|
||||
cd /opt/rustdesk-server
|
||||
./rustdesk-utils genkeypair >/tmp/rustdesk_keys.txt
|
||||
@@ -39,15 +35,11 @@ setup_alpine() {
|
||||
chmod 600 /root/.config/rustdesk/id_ed25519
|
||||
chmod 644 /root/.config/rustdesk/id_ed25519.pub
|
||||
rm /tmp/rustdesk_keys.txt
|
||||
echo "${RELEASE}" >~/.rustdesk-server
|
||||
msg_ok "Installed RustDesk Server v${RELEASE}"
|
||||
msg_ok "Configured RustDesk Server"
|
||||
|
||||
APIRELEASE=$(curl -s https://api.github.com/repos/lejianwen/rustdesk-api/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
msg_info "Installing RustDesk API v${APIRELEASE}"
|
||||
temp_file2=$(mktemp)
|
||||
curl -fsSL "https://github.com/lejianwen/rustdesk-api/releases/download/v${APIRELEASE}/linux-$(arch_resolve).tar.gz" -o "$temp_file2"
|
||||
$STD tar zxvf "$temp_file2"
|
||||
mv release /opt/rustdesk-api
|
||||
fetch_and_deploy_gh_release "rustdesk-api" "lejianwen/rustdesk-api" "prebuild" "latest" "/opt/rustdesk-api" "linux-$(arch_resolve).tar.gz"
|
||||
|
||||
msg_info "Configuring RustDesk API"
|
||||
cd /opt/rustdesk-api
|
||||
ADMINPASS=$(head -c 16 /dev/urandom | xxd -p -c 16)
|
||||
$STD ./apimain reset-admin-pwd "$ADMINPASS"
|
||||
@@ -57,8 +49,7 @@ RustDesk WebUI
|
||||
Username: admin
|
||||
Password: $ADMINPASS
|
||||
EOF
|
||||
echo "${APIRELEASE}" >~/.rustdesk-api
|
||||
msg_ok "Installed RustDesk API v${APIRELEASE}"
|
||||
msg_ok "Configured RustDesk API"
|
||||
|
||||
msg_info "Enabling RustDesk Server Services"
|
||||
cat <<EOF >/etc/init.d/rustdesk-server-hbbs
|
||||
@@ -124,8 +115,6 @@ EOF
|
||||
$STD service rustdesk-server-hbbr start
|
||||
$STD service rustdesk-api start
|
||||
msg_ok "Started RustDesk Server"
|
||||
|
||||
rm -f "$temp_file1" "$temp_file2"
|
||||
}
|
||||
|
||||
run_os_setup
|
||||
|
||||
@@ -26,13 +26,10 @@ curl -fsSL -o get-platformio.py https://raw.githubusercontent.com/platformio/pla
|
||||
$STD python3 get-platformio.py
|
||||
msg_ok "Setup Platformio"
|
||||
|
||||
fetch_and_deploy_gh_release "tasmocompiler" "benzino77/tasmocompiler" "tarball"
|
||||
|
||||
msg_info "Setup TasmoCompiler"
|
||||
mkdir /tmp/Tasmota
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/benzino77/tasmocompiler/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
curl_download "/tmp/v${RELEASE}.tar.gz" "https://github.com/benzino77/tasmocompiler/archive/refs/tags/v${RELEASE}.tar.gz"
|
||||
cd /tmp
|
||||
tar xzf /tmp/v${RELEASE}.tar.gz
|
||||
mv tasmocompiler-${RELEASE}/ /opt/tasmocompiler/
|
||||
cd /opt/tasmocompiler
|
||||
$STD yarn install
|
||||
export NODE_OPTIONS=--openssl-legacy-provider
|
||||
@@ -42,8 +39,6 @@ mkdir -p /usr/local/bin
|
||||
ln -s ~/.platformio/penv/bin/platformio /usr/local/bin/platformio
|
||||
ln -s ~/.platformio/penv/bin/pio /usr/local/bin/pio
|
||||
ln -s ~/.platformio/penv/bin/piodebuggdb /usr/local/bin/piodebuggdb
|
||||
rm -f /tmp/v${RELEASE}.tar.gz
|
||||
echo "${RELEASE}" >"/opt/tasmocompiler_version.txt"
|
||||
msg_ok "Setup TasmoCompiler"
|
||||
|
||||
msg_info "Creating Service"
|
||||
|
||||
@@ -64,11 +64,9 @@ setup_alpine() {
|
||||
$STD apk add --no-cache openssl apache2-utils
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing Tinyauth"
|
||||
mkdir -p /opt/tinyauth
|
||||
RELEASE=$(curl -s https://api.github.com/repos/tinyauthapp/tinyauth/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
curl -fsSL "https://github.com/tinyauthapp/tinyauth/releases/download/v${RELEASE}/tinyauth-$(arch_resolve)" -o /opt/tinyauth/tinyauth
|
||||
chmod +x /opt/tinyauth/tinyauth
|
||||
fetch_and_deploy_gh_release "tinyauth" "tinyauthapp/tinyauth" "singlefile" "latest" "/opt/tinyauth" "tinyauth-$(arch_resolve)"
|
||||
|
||||
msg_info "Configuring Tinyauth"
|
||||
PASS=$(openssl rand -base64 8 | tr -dc 'a-zA-Z0-9' | head -c 8)
|
||||
USER=$(htpasswd -Bbn "tinyauth" "${PASS}")
|
||||
|
||||
@@ -77,8 +75,7 @@ Tinyauth Credentials
|
||||
Username: tinyauth
|
||||
Password: ${PASS}
|
||||
EOF
|
||||
echo "${RELEASE}" >~/.tinyauth
|
||||
msg_ok "Installed Tinyauth"
|
||||
msg_ok "Configured Tinyauth"
|
||||
|
||||
read -r -p "${TAB3}Enter your Tinyauth subdomain (e.g. https://tinyauth.example.com): " app_url
|
||||
|
||||
|
||||
@@ -17,15 +17,10 @@ msg_info "Installing dependencies"
|
||||
$STD apt install -y zstd
|
||||
msg_ok "Installed dependencies"
|
||||
|
||||
msg_info "Installing Wastebin"
|
||||
temp_file=$(mktemp)
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
curl -fsSL "https://github.com/matze/wastebin/releases/download/${RELEASE}/wastebin_${RELEASE}_$(arch_resolve "x86_64" "aarch64")-unknown-linux-musl.tar.zst" -o "$temp_file"
|
||||
tar -xf "$temp_file"
|
||||
mkdir -p /opt/wastebin
|
||||
mv wastebin* /opt/wastebin/
|
||||
chmod +x /opt/wastebin/wastebin
|
||||
chmod +x /opt/wastebin/wastebin-ctl
|
||||
fetch_and_deploy_gh_release "wastebin" "matze/wastebin" "prebuild" "latest" "/opt/wastebin" "wastebin_*_$(arch_resolve "x86_64" "aarch64")-unknown-linux-musl.tar.zst"
|
||||
chmod +x /opt/wastebin/wastebin /opt/wastebin/wastebin-ctl
|
||||
|
||||
msg_info "Configuring Wastebin"
|
||||
|
||||
mkdir -p /opt/wastebin-data
|
||||
cat <<EOF >/opt/wastebin-data/.env
|
||||
@@ -35,10 +30,7 @@ WASTEBIN_HTTP_TIMEOUT=30
|
||||
WASTEBIN_SIGNING_KEY=$(openssl rand -hex 32)
|
||||
WASTEBIN_PASTE_EXPIRATIONS=0,600,3600=d,86400,604800,2419200,29030400
|
||||
EOF
|
||||
rm -f "$temp_file"
|
||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
||||
|
||||
msg_ok "Installed Wastebin"
|
||||
msg_ok "Configured Wastebin"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/wastebin.service
|
||||
|
||||
@@ -13,7 +13,7 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '"tag_name"' | awk -F '"' '{print substr($4, 2, length($2)-4)}')
|
||||
RELEASE=$(get_latest_github_release "wazuh/wazuh" | cut -d. -f1,2)
|
||||
|
||||
msg_warn "WARNING: This script will run an external installer from a third-party source (https://wazuh.com/)."
|
||||
msg_warn "The following code is NOT maintained or audited by our repository."
|
||||
|
||||
Reference in new issue
Block a user