mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-11-23 22:15:16 +00:00
Compare commits
2 Commits
MickLesk-p
...
add-script
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
81bf7c12dc | ||
|
|
5e1d4df72d |
37
CHANGELOG.md
37
CHANGELOG.md
@@ -10,53 +10,16 @@
|
|||||||
> [!CAUTION]
|
> [!CAUTION]
|
||||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
||||||
|
|
||||||
## 2025-11-23
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- [LibreNMS] Correcting mariadb sed string for Debian 13 default in install/librenms-install.sh, website config for Debian 13 #9369 [@htmlspinnr](https://github.com/htmlspinnr) ([#9370](https://github.com/community-scripts/ProxmoxVE/pull/9370))
|
|
||||||
- fix: Snipe-IT update check failure [@ruanmed](https://github.com/ruanmed) ([#9371](https://github.com/community-scripts/ProxmoxVE/pull/9371))
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- PVE Kernel Clean: Add info about currently running kernel [@tremor021](https://github.com/tremor021) ([#9388](https://github.com/community-scripts/ProxmoxVE/pull/9388))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- Update glpi-install.sh to remove install.php [@CrazyWolf13](https://github.com/CrazyWolf13) ([#9378](https://github.com/community-scripts/ProxmoxVE/pull/9378))
|
|
||||||
|
|
||||||
### 🌐 Website
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- fix: enhance back navigation in NotFoundPage component and remove unused deps [@BramSuurdje](https://github.com/BramSuurdje) ([#9341](https://github.com/community-scripts/ProxmoxVE/pull/9341))
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- feat(frontend): add script disable functionality with visual indicators [@AlphaLawless](https://github.com/AlphaLawless) ([#9374](https://github.com/community-scripts/ProxmoxVE/pull/9374))
|
|
||||||
|
|
||||||
## 2025-11-22
|
## 2025-11-22
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- Upgopher ([#9360](https://github.com/community-scripts/ProxmoxVE/pull/9360))
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
- Expand support to Proxmox VE 9.1 in VM scripts [@MickLesk](https://github.com/MickLesk) ([#9351](https://github.com/community-scripts/ProxmoxVE/pull/9351))
|
- Expand support to Proxmox VE 9.1 in VM scripts [@MickLesk](https://github.com/MickLesk) ([#9351](https://github.com/community-scripts/ProxmoxVE/pull/9351))
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
- fix: Snipe-IT install and update failure due to new repository url [@ruanmed](https://github.com/ruanmed) ([#9362](https://github.com/community-scripts/ProxmoxVE/pull/9362))
|
|
||||||
- glpi - allow migration of existing databases [@moodyblue](https://github.com/moodyblue) ([#9353](https://github.com/community-scripts/ProxmoxVE/pull/9353))
|
- glpi - allow migration of existing databases [@moodyblue](https://github.com/moodyblue) ([#9353](https://github.com/community-scripts/ProxmoxVE/pull/9353))
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- Refactor cleanup steps to use cleanup_lxc function (install/ Folder) [@MickLesk](https://github.com/MickLesk) ([#9354](https://github.com/community-scripts/ProxmoxVE/pull/9354))
|
|
||||||
- Remove redundant cleanup steps from update scripts (ct/ Folder) [@MickLesk](https://github.com/MickLesk) ([#9359](https://github.com/community-scripts/ProxmoxVE/pull/9359))
|
|
||||||
|
|
||||||
### 🌐 Website
|
### 🌐 Website
|
||||||
|
|
||||||
- #### ✨ New Features
|
- #### ✨ New Features
|
||||||
|
|||||||
@@ -57,6 +57,15 @@ function update_script() {
|
|||||||
$STD composer install --no-dev --prefer-dist
|
$STD composer install --no-dev --prefer-dist
|
||||||
php artisan 2fauth:install
|
php artisan 2fauth:install
|
||||||
$STD systemctl restart nginx
|
$STD systemctl restart nginx
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
if dpkg -l | grep -q 'php8.2'; then
|
||||||
|
$STD apt remove --purge -y php8.2*
|
||||||
|
fi
|
||||||
|
$STD apt -y autoremove
|
||||||
|
$STD apt -y autoclean
|
||||||
|
$STD apt -y clean
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -62,7 +62,6 @@ function update_script() {
|
|||||||
cd /opt/adventurelog/frontend || exit
|
cd /opt/adventurelog/frontend || exit
|
||||||
$STD pnpm i
|
$STD pnpm i
|
||||||
$STD pnpm build
|
$STD pnpm build
|
||||||
rm -rf /opt/adventurelog-backup
|
|
||||||
msg_ok "Updated ${APP}"
|
msg_ok "Updated ${APP}"
|
||||||
|
|
||||||
msg_info "Starting Services"
|
msg_info "Starting Services"
|
||||||
@@ -70,6 +69,10 @@ function update_script() {
|
|||||||
systemctl start adventurelog-backend
|
systemctl start adventurelog-backend
|
||||||
systemctl start adventurelog-frontend
|
systemctl start adventurelog-frontend
|
||||||
msg_ok "Services Started"
|
msg_ok "Services Started"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf /opt/adventurelog-backup
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -38,13 +38,15 @@ function update_script() {
|
|||||||
curl -fsSL -o tika-server-standard-${RELEASE}.jar "https://dlcdn.apache.org/tika/${RELEASE}/tika-server-standard-${RELEASE}.jar"
|
curl -fsSL -o tika-server-standard-${RELEASE}.jar "https://dlcdn.apache.org/tika/${RELEASE}/tika-server-standard-${RELEASE}.jar"
|
||||||
mv --force tika-server-standard.jar tika-server-standard-prev-version.jar
|
mv --force tika-server-standard.jar tika-server-standard-prev-version.jar
|
||||||
mv tika-server-standard-${RELEASE}.jar tika-server-standard.jar
|
mv tika-server-standard-${RELEASE}.jar tika-server-standard.jar
|
||||||
rm -rf /opt/apache-tika/tika-server-standard-prev-version.jar
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start apache-tika
|
systemctl start apache-tika
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf /opt/apache-tika/tika-server-standard-prev-version.jar
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
|||||||
@@ -31,11 +31,15 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if check_for_gh_release "authelia" "authelia/authelia"; then
|
if check_for_gh_release "authelia" "authelia/authelia"; then
|
||||||
$STD apt update
|
$STD apt-get update
|
||||||
$STD apt -y upgrade
|
$STD apt-get -y upgrade
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "authelia" "authelia/authelia" "binary"
|
fetch_and_deploy_gh_release "authelia" "authelia/authelia" "binary"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -39,13 +39,16 @@ function update_script() {
|
|||||||
curl -fsSL "https://github.com/garethgeorge/backrest/releases/download/v${RELEASE}/backrest_Linux_x86_64.tar.gz" -o "$temp_file"
|
curl -fsSL "https://github.com/garethgeorge/backrest/releases/download/v${RELEASE}/backrest_Linux_x86_64.tar.gz" -o "$temp_file"
|
||||||
tar xzf $temp_file -C /opt/backrest/bin
|
tar xzf $temp_file -C /opt/backrest/bin
|
||||||
chmod +x /opt/backrest/bin/backrest
|
chmod +x /opt/backrest/bin/backrest
|
||||||
rm -f "$temp_file"
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start backrest
|
systemctl start backrest
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -f "$temp_file"
|
||||||
|
msg_ok "Cleaned up"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
|||||||
@@ -47,12 +47,15 @@ function update_script() {
|
|||||||
chmod -R 755 /opt/baikal/
|
chmod -R 755 /opt/baikal/
|
||||||
cd /opt/baikal
|
cd /opt/baikal
|
||||||
$STD composer install
|
$STD composer install
|
||||||
rm -rf /opt/baikal-backup
|
|
||||||
msg_ok "Configured Baikal"
|
msg_ok "Configured Baikal"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start apache2
|
systemctl start apache2
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf /opt/baikal-backup
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -54,12 +54,15 @@ function update_script() {
|
|||||||
$STD php artisan route:cache
|
$STD php artisan route:cache
|
||||||
$STD php artisan event:cache
|
$STD php artisan event:cache
|
||||||
chown -R www-data:www-data /opt/bar-assistant
|
chown -R www-data:www-data /opt/bar-assistant
|
||||||
rm -rf /opt/bar-assistant-backup
|
|
||||||
msg_ok "Updated Bar-Assistant"
|
msg_ok "Updated Bar-Assistant"
|
||||||
|
|
||||||
msg_info "Starting nginx"
|
msg_info "Starting nginx"
|
||||||
systemctl start nginx
|
systemctl start nginx
|
||||||
msg_ok "Started nginx"
|
msg_ok "Started nginx"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf /opt/bar-assistant-backup
|
||||||
|
msg_ok "Cleaned"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if check_for_gh_release "vue-salt-rim" "karlomikus/vue-salt-rim"; then
|
if check_for_gh_release "vue-salt-rim" "karlomikus/vue-salt-rim"; then
|
||||||
@@ -78,12 +81,15 @@ function update_script() {
|
|||||||
cd /opt/vue-salt-rim
|
cd /opt/vue-salt-rim
|
||||||
$STD npm install
|
$STD npm install
|
||||||
$STD npm run build
|
$STD npm run build
|
||||||
rm -rf /opt/vue-salt-rim-backup
|
|
||||||
msg_ok "Updated Vue Salt Rim"
|
msg_ok "Updated Vue Salt Rim"
|
||||||
|
|
||||||
msg_info "Starting nginx"
|
msg_info "Starting nginx"
|
||||||
systemctl start nginx
|
systemctl start nginx
|
||||||
msg_ok "Started nginx"
|
msg_ok "Started nginx"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf /opt/vue-salt-rim-backup
|
||||||
|
msg_ok "Cleaned"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if check_for_gh_release "meilisearch" "meilisearch/meilisearch"; then
|
if check_for_gh_release "meilisearch" "meilisearch/meilisearch"; then
|
||||||
|
|||||||
@@ -57,12 +57,15 @@ function update_script() {
|
|||||||
chmod -R 755 /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
|
chmod -R 755 /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
|
||||||
chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads
|
chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads
|
||||||
chmod -R 640 /opt/bookstack/.env
|
chmod -R 640 /opt/bookstack/.env
|
||||||
rm -rf /opt/bookstack-backup
|
|
||||||
msg_ok "Configured BookStack"
|
msg_ok "Configured BookStack"
|
||||||
|
|
||||||
msg_info "Starting Apache2"
|
msg_info "Starting Apache2"
|
||||||
systemctl start apache2
|
systemctl start apache2
|
||||||
msg_ok "Started Apache2"
|
msg_ok "Started Apache2"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf /opt/bookstack-backup
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -109,7 +109,6 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
$STD uv run python manage.py migrate --noinput
|
$STD uv run python manage.py migrate --noinput
|
||||||
$STD uv run python manage.py collectstatic --noinput
|
$STD uv run python manage.py collectstatic --noinput
|
||||||
rm -f /tmp/dispatcharr_db_*.sql
|
|
||||||
msg_ok "Migrations Complete"
|
msg_ok "Migrations Complete"
|
||||||
|
|
||||||
msg_info "Starting Services"
|
msg_info "Starting Services"
|
||||||
@@ -118,6 +117,10 @@ function update_script() {
|
|||||||
systemctl start dispatcharr-celerybeat
|
systemctl start dispatcharr-celerybeat
|
||||||
systemctl start dispatcharr-daphne
|
systemctl start dispatcharr-daphne
|
||||||
msg_ok "Started Services"
|
msg_ok "Started Services"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -f /tmp/dispatcharr_db_*.sql
|
||||||
|
msg_ok "Cleanup completed"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -76,6 +76,11 @@ function update_script() {
|
|||||||
portainer/agent
|
portainer/agent
|
||||||
msg_ok "Updated Portainer Agent"
|
msg_ok "Updated Portainer Agent"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleanup complete"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,13 +50,16 @@ function update_script() {
|
|||||||
$STD turbo run build --filter=@documenso/remix
|
$STD turbo run build --filter=@documenso/remix
|
||||||
$STD npm run prisma:migrate-deploy
|
$STD npm run prisma:migrate-deploy
|
||||||
$STD turbo daemon stop
|
$STD turbo daemon stop
|
||||||
rm -rf /opt/v${RELEASE}.zip
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated ${APP}"
|
msg_ok "Updated ${APP}"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start documenso
|
systemctl start documenso
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf /opt/v${RELEASE}.zip
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
|||||||
@@ -47,13 +47,16 @@ function update_script() {
|
|||||||
|
|
||||||
msg_info "Installing EMQX"
|
msg_info "Installing EMQX"
|
||||||
$STD apt-get install -y "$DEB_FILE"
|
$STD apt-get install -y "$DEB_FILE"
|
||||||
rm -f "$DEB_FILE"
|
|
||||||
echo "$RELEASE" >~/.emqx
|
|
||||||
msg_ok "Installed EMQX v${RELEASE}"
|
msg_ok "Installed EMQX v${RELEASE}"
|
||||||
|
|
||||||
msg_info "Starting EMQX"
|
msg_info "Starting EMQX"
|
||||||
systemctl start emqx
|
systemctl start emqx
|
||||||
|
echo "$RELEASE" >~/.emqx
|
||||||
msg_ok "Started EMQX"
|
msg_ok "Started EMQX"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -f "$DEB_FILE"
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. EMQX is already at v${RELEASE}"
|
msg_ok "No update required. EMQX is already at v${RELEASE}"
|
||||||
|
|||||||
@@ -48,13 +48,16 @@ function update_script() {
|
|||||||
temp_file=$(mktemp)
|
temp_file=$(mktemp)
|
||||||
curl -fsSL https://fileflows.com/downloads/zip -o "$temp_file"
|
curl -fsSL https://fileflows.com/downloads/zip -o "$temp_file"
|
||||||
$STD unzip -o -d /opt/fileflows "$temp_file"
|
$STD unzip -o -d /opt/fileflows "$temp_file"
|
||||||
rm -rf "$temp_file"
|
|
||||||
rm -rf "$backup_filename"
|
|
||||||
msg_ok "Updated $APP to latest version"
|
msg_ok "Updated $APP to latest version"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start fileflows
|
systemctl start fileflows
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf "$temp_file"
|
||||||
|
rm -rf "$backup_filename"
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at latest version"
|
msg_ok "No update required. ${APP} is already at latest version"
|
||||||
|
|||||||
@@ -56,6 +56,10 @@ function update_script() {
|
|||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start ghostfolio
|
systemctl start ghostfolio
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
$STD npm cache clean --force
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -20,57 +20,62 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
|
|
||||||
if [[ ! -d /opt/jellyseerr ]]; then
|
if [[ ! -d /opt/jellyseerr ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$(node -v | cut -c2-3)" -ne 22 ]; then
|
if [ "$(node -v | cut -c2-3)" -ne 22 ]; then
|
||||||
msg_info "Updating Node.js Repository"
|
msg_info "Updating Node.js Repository"
|
||||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
|
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
|
||||||
msg_ok "Updating Node.js Repository"
|
msg_ok "Updating Node.js Repository"
|
||||||
|
|
||||||
msg_info "Updating Packages"
|
msg_info "Updating Packages"
|
||||||
$STD apt-get update
|
$STD apt-get update
|
||||||
$STD apt-get -y upgrade
|
$STD apt-get -y upgrade
|
||||||
msg_ok "Updating Packages"
|
msg_ok "Updating Packages"
|
||||||
fi
|
|
||||||
|
|
||||||
cd /opt/jellyseerr
|
msg_info "Cleaning up"
|
||||||
output=$(git pull --no-rebase)
|
apt-get -y autoremove
|
||||||
|
apt-get -y autoclean
|
||||||
|
msg_ok "Cleaning up"
|
||||||
|
fi
|
||||||
|
|
||||||
pnpm_current=$(pnpm --version 2>/dev/null)
|
cd /opt/jellyseerr
|
||||||
pnpm_desired=$(grep -Po '"pnpm":\s*"\K[^"]+' /opt/jellyseerr/package.json)
|
output=$(git pull --no-rebase)
|
||||||
|
|
||||||
if [ -z "$pnpm_current" ]; then
|
pnpm_current=$(pnpm --version 2>/dev/null)
|
||||||
msg_error "pnpm not found. Installing version $pnpm_desired..."
|
pnpm_desired=$(grep -Po '"pnpm":\s*"\K[^"]+' /opt/jellyseerr/package.json)
|
||||||
NODE_VERSION="22" NODE_MODULE="pnpm@$pnpm_desired" setup_nodejs
|
|
||||||
elif ! node -e "const semver = require('semver'); process.exit(semver.satisfies('$pnpm_current', '$pnpm_desired') ? 0 : 1)"; then
|
|
||||||
msg_error "Updating pnpm from version $pnpm_current to $pnpm_desired..."
|
|
||||||
NODE_VERSION="22" NODE_MODULE="pnpm@$pnpm_desired" setup_nodejs
|
|
||||||
else
|
|
||||||
msg_ok "pnpm is already installed and satisfies version $pnpm_desired."
|
|
||||||
fi
|
|
||||||
|
|
||||||
msg_info "Updating $APP"
|
if [ -z "$pnpm_current" ]; then
|
||||||
if echo "$output" | grep -q "Already up to date."; then
|
msg_error "pnpm not found. Installing version $pnpm_desired..."
|
||||||
msg_ok "$APP is already up to date."
|
NODE_VERSION="22" NODE_MODULE="pnpm@$pnpm_desired" setup_nodejs
|
||||||
exit
|
elif ! node -e "const semver = require('semver'); process.exit(semver.satisfies('$pnpm_current', '$pnpm_desired') ? 0 : 1)"; then
|
||||||
fi
|
msg_error "Updating pnpm from version $pnpm_current to $pnpm_desired..."
|
||||||
|
NODE_VERSION="22" NODE_MODULE="pnpm@$pnpm_desired" setup_nodejs
|
||||||
|
else
|
||||||
|
msg_ok "pnpm is already installed and satisfies version $pnpm_desired."
|
||||||
|
fi
|
||||||
|
|
||||||
systemctl stop jellyseerr
|
msg_info "Updating $APP"
|
||||||
rm -rf dist .next node_modules
|
if echo "$output" | grep -q "Already up to date."; then
|
||||||
export CYPRESS_INSTALL_BINARY=0
|
msg_ok "$APP is already up to date."
|
||||||
cd /opt/jellyseerr
|
exit
|
||||||
$STD pnpm install --frozen-lockfile
|
fi
|
||||||
export NODE_OPTIONS="--max-old-space-size=3072"
|
|
||||||
$STD pnpm build
|
|
||||||
|
|
||||||
cat <<EOF >/etc/systemd/system/jellyseerr.service
|
systemctl stop jellyseerr
|
||||||
|
rm -rf dist .next node_modules
|
||||||
|
export CYPRESS_INSTALL_BINARY=0
|
||||||
|
cd /opt/jellyseerr
|
||||||
|
$STD pnpm install --frozen-lockfile
|
||||||
|
export NODE_OPTIONS="--max-old-space-size=3072"
|
||||||
|
$STD pnpm build
|
||||||
|
|
||||||
|
cat <<EOF >/etc/systemd/system/jellyseerr.service
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=jellyseerr Service
|
Description=jellyseerr Service
|
||||||
After=network.target
|
After=network.target
|
||||||
@@ -86,10 +91,10 @@ ExecStart=/usr/bin/node dist/index.js
|
|||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
systemctl start jellyseerr
|
systemctl start jellyseerr
|
||||||
msg_ok "Updated $APP"
|
msg_ok "Updated $APP"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
|
|||||||
@@ -49,12 +49,15 @@ function update_script() {
|
|||||||
cp -a keycloak.old/conf/. keycloak/conf/
|
cp -a keycloak.old/conf/. keycloak/conf/
|
||||||
cp -a keycloak.old/providers/. keycloak/providers/ 2>/dev/null || true
|
cp -a keycloak.old/providers/. keycloak/providers/ 2>/dev/null || true
|
||||||
cp -a keycloak.old/themes/. keycloak/themes/ 2>/dev/null || true
|
cp -a keycloak.old/themes/. keycloak/themes/ 2>/dev/null || true
|
||||||
rm -rf keycloak.old
|
|
||||||
msg_ok "Updated Keycloak"
|
msg_ok "Updated Keycloak"
|
||||||
|
|
||||||
msg_info "Restarting Service"
|
msg_info "Restarting Service"
|
||||||
systemctl restart keycloak
|
systemctl restart keycloak
|
||||||
msg_ok "Restarted Service"
|
msg_ok "Restarted Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf keycloak.old
|
||||||
|
msg_ok "Cleanup complete"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -50,12 +50,15 @@ function update_script() {
|
|||||||
$STD yarn install
|
$STD yarn install
|
||||||
$STD yarn build
|
$STD yarn build
|
||||||
chown -R www-data:www-data /opt/koillection/public/uploads
|
chown -R www-data:www-data /opt/koillection/public/uploads
|
||||||
rm -r /opt/koillection-backup
|
|
||||||
msg_ok "Updated Koillection"
|
msg_ok "Updated Koillection"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start apache2
|
systemctl start apache2
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -r /opt/koillection-backup
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated Successfully!"
|
msg_ok "Updated Successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -52,14 +52,17 @@ function update_script() {
|
|||||||
$STD yarn web:build
|
$STD yarn web:build
|
||||||
$STD yarn prisma:deploy
|
$STD yarn prisma:deploy
|
||||||
[ -d /opt/data.bak ] && mv /opt/data.bak /opt/linkwarden/data
|
[ -d /opt/data.bak ] && mv /opt/data.bak /opt/linkwarden/data
|
||||||
rm -rf ~/.cargo/registry ~/.cargo/git ~/.cargo/.package-cache ~/.rustup
|
|
||||||
rm -rf /root/.cache/yarn
|
|
||||||
rm -rf /opt/linkwarden/.next/cache
|
|
||||||
msg_ok "Updated ${APP}"
|
msg_ok "Updated ${APP}"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start linkwarden
|
systemctl start linkwarden
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf ~/.cargo/registry ~/.cargo/git ~/.cargo/.package-cache ~/.rustup
|
||||||
|
rm -rf /root/.cache/yarn
|
||||||
|
rm -rf /opt/linkwarden/.next/cache
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -42,12 +42,15 @@ function update_script() {
|
|||||||
mv /opt/listmonk-backup/config.toml /opt/listmonk/config.toml
|
mv /opt/listmonk-backup/config.toml /opt/listmonk/config.toml
|
||||||
mv /opt/listmonk-backup/uploads /opt/listmonk/uploads
|
mv /opt/listmonk-backup/uploads /opt/listmonk/uploads
|
||||||
$STD /opt/listmonk/listmonk --upgrade --yes --config /opt/listmonk/config.toml
|
$STD /opt/listmonk/listmonk --upgrade --yes --config /opt/listmonk/config.toml
|
||||||
rm -rf /opt/listmonk-backup/
|
|
||||||
msg_ok "Configured listmonk"
|
msg_ok "Configured listmonk"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start listmonk
|
systemctl start listmonk
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf /opt/listmonk-backup/
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -53,12 +53,15 @@ function update_script() {
|
|||||||
msg_info "Configuring LubeLogger"
|
msg_info "Configuring LubeLogger"
|
||||||
chmod 700 /opt/lubelogger/CarCareTracker
|
chmod 700 /opt/lubelogger/CarCareTracker
|
||||||
cp -rf /tmp/lubeloggerData/* /opt/lubelogger/
|
cp -rf /tmp/lubeloggerData/* /opt/lubelogger/
|
||||||
rm -rf /tmp/lubeloggerData
|
|
||||||
msg_ok "Configured LubeLogger"
|
msg_ok "Configured LubeLogger"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start lubelogger
|
systemctl start lubelogger
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf /tmp/lubeloggerData
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -38,9 +38,15 @@ function update_script() {
|
|||||||
curl -fsSL -o "$DEB_FILE" "$DEB_URL"
|
curl -fsSL -o "$DEB_FILE" "$DEB_URL"
|
||||||
$STD apt install "$DEB_FILE" -y
|
$STD apt install "$DEB_FILE" -y
|
||||||
systemctl restart lyrion
|
systemctl restart lyrion
|
||||||
$STD rm -f "$DEB_FILE"
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated $APP to ${RELEASE}"
|
msg_ok "Updated $APP to ${RELEASE}"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD rm -f "$DEB_FILE"
|
||||||
|
$STD apt -y autoremove
|
||||||
|
$STD apt -y autoclean
|
||||||
|
$STD apt -y clean
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "$APP is already up to date (${RELEASE})"
|
msg_ok "$APP is already up to date (${RELEASE})"
|
||||||
|
|||||||
@@ -55,13 +55,17 @@ function update_script() {
|
|||||||
mv /usr/local/bin/minio /usr/local/bin/minio_bak
|
mv /usr/local/bin/minio /usr/local/bin/minio_bak
|
||||||
curl -fsSL "https://dl.min.io/server/minio/release/linux-amd64/minio" -o /usr/local/bin/minio
|
curl -fsSL "https://dl.min.io/server/minio/release/linux-amd64/minio" -o /usr/local/bin/minio
|
||||||
chmod +x /usr/local/bin/minio
|
chmod +x /usr/local/bin/minio
|
||||||
rm -f /usr/local/bin/minio_bak
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated ${APP}"
|
msg_ok "Updated ${APP}"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start minio
|
systemctl start minio
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -f /usr/local/bin/minio_bak
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
|||||||
@@ -52,12 +52,15 @@ function update_script() {
|
|||||||
$STD php artisan monica:update --force
|
$STD php artisan monica:update --force
|
||||||
chown -R www-data:www-data /opt/monica
|
chown -R www-data:www-data /opt/monica
|
||||||
chmod -R 775 /opt/monica/storage
|
chmod -R 775 /opt/monica/storage
|
||||||
rm -r /opt/monica-backup
|
|
||||||
msg_ok "Configured monica"
|
msg_ok "Configured monica"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start apache2
|
systemctl start apache2
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -r /opt/monica-backup
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -57,14 +57,17 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
$STD /opt/netbox/upgrade.sh
|
$STD /opt/netbox/upgrade.sh
|
||||||
rm -r "/opt/v${RELEASE}.zip"
|
|
||||||
rm -r /opt/netbox-backup
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated $APP to v${RELEASE}"
|
msg_ok "Updated $APP to v${RELEASE}"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start netbox netbox-rq
|
systemctl start netbox netbox-rq
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -r "/opt/v${RELEASE}.zip"
|
||||||
|
rm -r /opt/netbox-backup
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
|||||||
@@ -21,34 +21,37 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/nextpvr ]]; then
|
if [[ ! -d /opt/nextpvr ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop nextpvr-server
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
msg_info "Updating LXC packages"
|
||||||
|
$STD apt update
|
||||||
|
$STD apt -y upgrade
|
||||||
|
msg_ok "Updated LXC packages"
|
||||||
|
|
||||||
|
msg_info "Updating ${APP}"
|
||||||
|
cd /opt
|
||||||
|
curl -fsSL "https://nextpvr.com/nextpvr-helper.deb" -o $(basename "https://nextpvr.com/nextpvr-helper.deb")
|
||||||
|
$STD dpkg -i nextpvr-helper.deb
|
||||||
|
msg_ok "Updated ${APP}"
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start nextpvr-server
|
||||||
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf /opt/nextpvr-helper.deb
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
msg_ok "Updated successfully!"
|
||||||
exit
|
exit
|
||||||
fi
|
|
||||||
msg_info "Stopping Service"
|
|
||||||
systemctl stop nextpvr-server
|
|
||||||
msg_ok "Stopped Service"
|
|
||||||
|
|
||||||
msg_info "Updating LXC packages"
|
|
||||||
$STD apt update
|
|
||||||
$STD apt -y upgrade
|
|
||||||
msg_ok "Updated LXC packages"
|
|
||||||
|
|
||||||
msg_info "Updating ${APP}"
|
|
||||||
cd /opt
|
|
||||||
curl -fsSL "https://nextpvr.com/nextpvr-helper.deb" -o $(basename "https://nextpvr.com/nextpvr-helper.deb")
|
|
||||||
$STD dpkg -i nextpvr-helper.deb
|
|
||||||
rm -rf /opt/nextpvr-helper.deb
|
|
||||||
msg_ok "Updated ${APP}"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
|
||||||
systemctl start nextpvr-server
|
|
||||||
msg_ok "Started Service"
|
|
||||||
msg_ok "Updated successfully!"
|
|
||||||
exit
|
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
|
|||||||
@@ -42,13 +42,17 @@ function update_script() {
|
|||||||
export DEBIAN_FRONTEND=noninteractive
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
export DEBCONF_NOWARNINGS=yes
|
export DEBCONF_NOWARNINGS=yes
|
||||||
$STD dpkg -i nxwitness-server-$RELEASE-linux_x64.deb
|
$STD dpkg -i nxwitness-server-$RELEASE-linux_x64.deb
|
||||||
rm -f /tmp/nxwitness-server-$RELEASE-linux_x64.deb
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated ${APP}"
|
msg_ok "Updated ${APP}"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start networkoptix-root-tool networkoptix-mediaserver
|
systemctl start networkoptix-root-tool networkoptix-mediaserver
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -f /tmp/nxwitness-server-$RELEASE-linux_x64.deb
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
|||||||
@@ -50,13 +50,17 @@ function update_script() {
|
|||||||
msg_info "Updating ${APP} to ${LATEST_VERSION}"
|
msg_info "Updating ${APP} to ${LATEST_VERSION}"
|
||||||
curl -fsSL https://nightly.odoo.com/${RELEASE}/nightly/deb/odoo_${RELEASE}.latest_all.deb -o /opt/odoo.deb
|
curl -fsSL https://nightly.odoo.com/${RELEASE}/nightly/deb/odoo_${RELEASE}.latest_all.deb -o /opt/odoo.deb
|
||||||
$STD apt install -y /opt/odoo.deb
|
$STD apt install -y /opt/odoo.deb
|
||||||
rm -f /opt/odoo.deb
|
|
||||||
echo "$LATEST_VERSION" >/opt/${APP}_version.txt
|
echo "$LATEST_VERSION" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated ${APP} to ${LATEST_VERSION}"
|
msg_ok "Updated ${APP} to ${LATEST_VERSION}"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting ${APP} service"
|
||||||
systemctl start odoo
|
systemctl start odoo
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -f /opt/odoo.deb
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at ${LATEST_VERSION}"
|
msg_ok "No update required. ${APP} is already at ${LATEST_VERSION}"
|
||||||
|
|||||||
@@ -43,13 +43,16 @@ function update_script() {
|
|||||||
mkdir -p /usr/local/lib/ollama
|
mkdir -p /usr/local/lib/ollama
|
||||||
tar -xzf "${TMP_TAR}" -C /usr/local/lib/ollama
|
tar -xzf "${TMP_TAR}" -C /usr/local/lib/ollama
|
||||||
ln -sf /usr/local/lib/ollama/bin/ollama /usr/local/bin/ollama
|
ln -sf /usr/local/lib/ollama/bin/ollama /usr/local/bin/ollama
|
||||||
rm -f "${TMP_TAR}"
|
|
||||||
echo "${RELEASE}" >/opt/Ollama_version.txt
|
echo "${RELEASE}" >/opt/Ollama_version.txt
|
||||||
msg_ok "Updated Ollama to ${RELEASE}"
|
msg_ok "Updated Ollama to ${RELEASE}"
|
||||||
|
|
||||||
msg_info "Starting Services"
|
msg_info "Starting Services"
|
||||||
systemctl start ollama
|
systemctl start ollama
|
||||||
msg_ok "Started Services"
|
msg_ok "Started Services"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -f "${TMP_TAR}"
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. Ollama is already at ${RELEASE}"
|
msg_ok "No update required. Ollama is already at ${RELEASE}"
|
||||||
|
|||||||
@@ -39,14 +39,17 @@ function update_script() {
|
|||||||
tar -xzf onedev-latest.tar.gz
|
tar -xzf onedev-latest.tar.gz
|
||||||
$STD /opt/onedev-latest/bin/upgrade.sh /opt/onedev
|
$STD /opt/onedev-latest/bin/upgrade.sh /opt/onedev
|
||||||
RELEASE=$(cat /opt/onedev/release.properties | grep "version" | cut -d'=' -f2)
|
RELEASE=$(cat /opt/onedev/release.properties | grep "version" | cut -d'=' -f2)
|
||||||
rm -rf /opt/onedev-latest
|
|
||||||
rm -rf /opt/onedev-latest.tar.gz
|
|
||||||
echo "${RELEASE}" >"/opt/${APP}_version.txt"
|
echo "${RELEASE}" >"/opt/${APP}_version.txt"
|
||||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start onedev
|
systemctl start onedev
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf /opt/onedev-latest
|
||||||
|
rm -rf /opt/onedev-latest.tar.gz
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
||||||
|
|||||||
@@ -65,14 +65,17 @@ EOF
|
|||||||
$STD pip install --no-cache-dir -r requirements.txt
|
$STD pip install --no-cache-dir -r requirements.txt
|
||||||
mkdir -p data/chromadb
|
mkdir -p data/chromadb
|
||||||
$STD npm install
|
$STD npm install
|
||||||
rm -rf /opt/v${RELEASE}.zip
|
|
||||||
rm -rf /opt/paperless-ai_bak
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated $APP to v${RELEASE}"
|
msg_ok "Updated $APP to v${RELEASE}"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start paperless-ai
|
systemctl start paperless-ai
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf /opt/v${RELEASE}.zip
|
||||||
|
rm -rf /opt/paperless-ai_bak
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
|||||||
@@ -20,45 +20,48 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/paperless-gpt ]]; then
|
if [[ ! -d /opt/paperless-gpt ]]; then
|
||||||
msg_error "No Paperless-GPT installation found!"
|
msg_error "No Paperless-GPT installation found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/icereed/paperless-gpt/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
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop paperless-gpt
|
||||||
|
msg_ok "Service Stopped"
|
||||||
|
|
||||||
|
msg_info "Updating Paperless-GPT to ${RELEASE}"
|
||||||
|
temp_file=$(mktemp)
|
||||||
|
curl -fsSL "https://github.com/icereed/paperless-gpt/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
||||||
|
tar zxf $temp_file
|
||||||
|
rm -rf /opt/paperless-gpt
|
||||||
|
mv paperless-gpt-${RELEASE} /opt/paperless-gpt
|
||||||
|
cd /opt/paperless-gpt/web-app
|
||||||
|
$STD npm install
|
||||||
|
$STD npm run build
|
||||||
|
cd /opt/paperless-gpt
|
||||||
|
go mod download
|
||||||
|
export CC=musl-gcc
|
||||||
|
CGO_ENABLED=1 go build -tags musl -o /dev/null github.com/mattn/go-sqlite3
|
||||||
|
CGO_ENABLED=1 go build -tags musl -o paperless-gpt .
|
||||||
|
echo "${RELEASE}" >"/opt/paperless-gpt_version.txt"
|
||||||
|
msg_ok "Updated Paperless-GPT to ${RELEASE}"
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start paperless-gpt
|
||||||
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -f $temp_file
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
|
msg_ok "Updated successfully!"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
fi
|
||||||
exit
|
exit
|
||||||
fi
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/icereed/paperless-gpt/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
|
|
||||||
msg_info "Stopping Service"
|
|
||||||
systemctl stop paperless-gpt
|
|
||||||
msg_ok "Service Stopped"
|
|
||||||
|
|
||||||
msg_info "Updating Paperless-GPT to ${RELEASE}"
|
|
||||||
temp_file=$(mktemp)
|
|
||||||
curl -fsSL "https://github.com/icereed/paperless-gpt/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
|
||||||
tar zxf $temp_file
|
|
||||||
rm -rf /opt/paperless-gpt
|
|
||||||
mv paperless-gpt-${RELEASE} /opt/paperless-gpt
|
|
||||||
cd /opt/paperless-gpt/web-app
|
|
||||||
$STD npm install
|
|
||||||
$STD npm run build
|
|
||||||
cd /opt/paperless-gpt
|
|
||||||
go mod download
|
|
||||||
export CC=musl-gcc
|
|
||||||
CGO_ENABLED=1 go build -tags musl -o /dev/null github.com/mattn/go-sqlite3
|
|
||||||
CGO_ENABLED=1 go build -tags musl -o paperless-gpt .
|
|
||||||
rm -f $temp_file
|
|
||||||
echo "${RELEASE}" >"/opt/paperless-gpt_version.txt"
|
|
||||||
msg_ok "Updated Paperless-GPT to ${RELEASE}"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
|
||||||
systemctl start paperless-gpt
|
|
||||||
msg_ok "Started Service"
|
|
||||||
msg_ok "Updated successfully!"
|
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
|
||||||
fi
|
|
||||||
exit
|
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
|
|||||||
@@ -52,14 +52,17 @@ function update_script() {
|
|||||||
$STD php bin/console cache:clear
|
$STD php bin/console cache:clear
|
||||||
$STD php bin/console doctrine:migrations:migrate -n
|
$STD php bin/console doctrine:migrations:migrate -n
|
||||||
chown -R www-data:www-data /opt/partdb
|
chown -R www-data:www-data /opt/partdb
|
||||||
rm -r "/opt/v${RELEASE}.zip"
|
|
||||||
rm -r /opt/partdb-backup
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated $APP to v${RELEASE}"
|
msg_ok "Updated $APP to v${RELEASE}"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start apache2
|
systemctl start apache2
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -r "/opt/v${RELEASE}.zip"
|
||||||
|
rm -r /opt/partdb-backup
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
|||||||
@@ -67,7 +67,6 @@ function update_script() {
|
|||||||
$STD php artisan migrate --seed --force
|
$STD php artisan migrate --seed --force
|
||||||
chown -R www-data:www-data /opt/pelican-panel
|
chown -R www-data:www-data /opt/pelican-panel
|
||||||
chmod -R 755 /opt/pelican-panel/storage /opt/pelican-panel/bootstrap/cache/
|
chmod -R 755 /opt/pelican-panel/storage /opt/pelican-panel/bootstrap/cache/
|
||||||
rm -rf "/opt/pelican-panel/panel.tar.gz"
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated $APP to v${RELEASE}"
|
msg_ok "Updated $APP to v${RELEASE}"
|
||||||
|
|
||||||
@@ -75,6 +74,10 @@ function update_script() {
|
|||||||
$STD php artisan queue:restart
|
$STD php artisan queue:restart
|
||||||
$STD php artisan up
|
$STD php artisan up
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf "/opt/pelican-panel/panel.tar.gz"
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
|||||||
@@ -70,7 +70,6 @@ EOF
|
|||||||
$STD php artisan migrate --seed --force --no-interaction
|
$STD php artisan migrate --seed --force --no-interaction
|
||||||
chown -R www-data:www-data /opt/pterodactyl-panel/*
|
chown -R www-data:www-data /opt/pterodactyl-panel/*
|
||||||
chmod -R 755 /opt/pterodactyl-panel/storage /opt/pterodactyl-panel/bootstrap/cache/
|
chmod -R 755 /opt/pterodactyl-panel/storage /opt/pterodactyl-panel/bootstrap/cache/
|
||||||
rm -rf "/opt/pterodactyl-panel/panel.tar.gz"
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated $APP to v${RELEASE}"
|
msg_ok "Updated $APP to v${RELEASE}"
|
||||||
|
|
||||||
@@ -78,6 +77,10 @@ EOF
|
|||||||
$STD php artisan queue:restart
|
$STD php artisan queue:restart
|
||||||
$STD php artisan up
|
$STD php artisan up
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf "/opt/pterodactyl-panel/panel.tar.gz"
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
|||||||
@@ -43,11 +43,14 @@ function update_script() {
|
|||||||
$STD apt remove --purge -y dotnet-sdk-8.0
|
$STD apt remove --purge -y dotnet-sdk-8.0
|
||||||
$STD apt install -y dotnet-sdk-9.0
|
$STD apt install -y dotnet-sdk-9.0
|
||||||
fi
|
fi
|
||||||
rm -rf /opt/rdtc-backup
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start rdtc
|
systemctl start rdtc
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf /opt/rdtc-backup
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -54,7 +54,6 @@ function update_script() {
|
|||||||
cd /tmp
|
cd /tmp
|
||||||
curl -fsSL https://dl.min.io/server/minio/release/linux-amd64/minio.deb -o minio.deb
|
curl -fsSL https://dl.min.io/server/minio/release/linux-amd64/minio.deb -o minio.deb
|
||||||
$STD dpkg -i minio.deb
|
$STD dpkg -i minio.deb
|
||||||
rm -f /tmp/minio.deb
|
|
||||||
msg_ok "Updated Minio"
|
msg_ok "Updated Minio"
|
||||||
|
|
||||||
msg_info "Updating Browserless (Patience)"
|
msg_info "Updating Browserless (Patience)"
|
||||||
@@ -76,12 +75,16 @@ function update_script() {
|
|||||||
$STD npm run build:function
|
$STD npm run build:function
|
||||||
$STD npm prune production
|
$STD npm prune production
|
||||||
mv /opt/browserless.env /opt/browserless/.env
|
mv /opt/browserless.env /opt/browserless/.env
|
||||||
rm -f "$brwsr_tmp"
|
|
||||||
msg_ok "Updated Browserless"
|
msg_ok "Updated Browserless"
|
||||||
|
|
||||||
msg_info "Restarting services"
|
msg_info "Restarting services"
|
||||||
systemctl start minio Reactive-Resume browserless
|
systemctl start minio Reactive-Resume browserless
|
||||||
msg_ok "Restarted services"
|
msg_ok "Restarted services"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -f /tmp/minio.deb
|
||||||
|
rm -f "$brwsr_tmp"
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -41,12 +41,15 @@ function update_script() {
|
|||||||
$STD npm install
|
$STD npm install
|
||||||
cp -f /opt/index.html /opt/revealjs
|
cp -f /opt/index.html /opt/revealjs
|
||||||
sed -i '25s/localhost/0.0.0.0/g' /opt/revealjs/gulpfile.js
|
sed -i '25s/localhost/0.0.0.0/g' /opt/revealjs/gulpfile.js
|
||||||
rm -f /opt/index.html
|
|
||||||
msg_ok "Updated $APP"
|
msg_ok "Updated $APP"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start revealjs
|
systemctl start revealjs
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -f /opt/index.html
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -61,12 +61,15 @@ function update_script() {
|
|||||||
$STD pip install -r requirements.txt
|
$STD pip install -r requirements.txt
|
||||||
mv /opt/config.ini.bak /opt/soularr/config.ini
|
mv /opt/config.ini.bak /opt/soularr/config.ini
|
||||||
mv /opt/run.sh.bak /opt/soularr/run.sh
|
mv /opt/run.sh.bak /opt/soularr/run.sh
|
||||||
rm -rf /tmp/main.zip
|
|
||||||
msg_ok "Updated soularr"
|
msg_ok "Updated soularr"
|
||||||
|
|
||||||
msg_info "Starting soularr timer"
|
msg_info "Starting soularr timer"
|
||||||
systemctl start soularr.timer
|
systemctl start soularr.timer
|
||||||
msg_ok "Started soularr timer"
|
msg_ok "Started soularr timer"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf /tmp/main.zip
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ function update_script() {
|
|||||||
sed -i '/index index.php;/i \ client_max_body_size 100M;' /etc/nginx/conf.d/snipeit.conf
|
sed -i '/index index.php;/i \ client_max_body_size 100M;' /etc/nginx/conf.d/snipeit.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if check_for_gh_release "snipe-it" "grokability/snipe-it"; then
|
if check_for_gh_release "snipe-it" "snipe/snipe-it"; then
|
||||||
msg_info "Stopping Services"
|
msg_info "Stopping Services"
|
||||||
systemctl stop nginx
|
systemctl stop nginx
|
||||||
msg_ok "Services Stopped"
|
msg_ok "Services Stopped"
|
||||||
@@ -40,7 +40,7 @@ function update_script() {
|
|||||||
mv /opt/snipe-it /opt/snipe-it-backup
|
mv /opt/snipe-it /opt/snipe-it-backup
|
||||||
msg_ok "Backup created"
|
msg_ok "Backup created"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "snipe-it" "grokability/snipe-it" "tarball"
|
fetch_and_deploy_gh_release "snipe-it" "snipe/snipe-it" "tarball"
|
||||||
[[ "$(php -v 2>/dev/null)" == PHP\ 8.2* ]] && PHP_VERSION="8.3" PHP_MODULE="common,ctype,ldap,fileinfo,iconv,mysql,soap,xsl" PHP_FPM="YES" setup_php
|
[[ "$(php -v 2>/dev/null)" == PHP\ 8.2* ]] && PHP_VERSION="8.3" PHP_MODULE="common,ctype,ldap,fileinfo,iconv,mysql,soap,xsl" PHP_FPM="YES" setup_php
|
||||||
sed -i 's/php8.2/php8.3/g' /etc/nginx/conf.d/snipeit.conf
|
sed -i 's/php8.2/php8.3/g' /etc/nginx/conf.d/snipeit.conf
|
||||||
setup_composer
|
setup_composer
|
||||||
|
|||||||
@@ -43,13 +43,17 @@ function update_script() {
|
|||||||
cd spoolman
|
cd spoolman
|
||||||
$STD pip3 install -r requirements.txt
|
$STD pip3 install -r requirements.txt
|
||||||
curl -fsSL "https://raw.githubusercontent.com/Donkie/Spoolman/master/.env.example" -o ".env"
|
curl -fsSL "https://raw.githubusercontent.com/Donkie/Spoolman/master/.env.example" -o ".env"
|
||||||
rm -rf /opt/spoolman.zip
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start spoolman
|
systemctl start spoolman
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf /opt/spoolman.zip
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
|||||||
@@ -64,13 +64,16 @@ EOF
|
|||||||
cd /opt/tandoor
|
cd /opt/tandoor
|
||||||
$STD /opt/tandoor/.venv/bin/python manage.py migrate
|
$STD /opt/tandoor/.venv/bin/python manage.py migrate
|
||||||
$STD /opt/tandoor/.venv/bin/python manage.py collectstatic --no-input
|
$STD /opt/tandoor/.venv/bin/python manage.py collectstatic --no-input
|
||||||
rm -rf /opt/tandoor.bak
|
|
||||||
msg_ok "Updated Trandoor"
|
msg_ok "Updated Trandoor"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start tandoor
|
systemctl start tandoor
|
||||||
systemctl reload nginx
|
systemctl reload nginx
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf /opt/tandoor.bak
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -45,13 +45,16 @@ function update_script() {
|
|||||||
export NODE_OPTIONS=--openssl-legacy-provider
|
export NODE_OPTIONS=--openssl-legacy-provider
|
||||||
$STD npm i
|
$STD npm i
|
||||||
$STD yarn build
|
$STD yarn build
|
||||||
rm -r "/opt/v${RELEASE}.tar.gz"
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
|
||||||
msg_ok "Updated TasmoCompiler"
|
msg_ok "Updated TasmoCompiler"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start tasmocompiler
|
systemctl start tasmocompiler
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -r "/opt/v${RELEASE}.tar.gz"
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
|||||||
@@ -37,8 +37,11 @@ function update_script() {
|
|||||||
$STD unzip Tdarr_Updater.zip
|
$STD unzip Tdarr_Updater.zip
|
||||||
chmod +x Tdarr_Updater
|
chmod +x Tdarr_Updater
|
||||||
$STD ./Tdarr_Updater
|
$STD ./Tdarr_Updater
|
||||||
rm -rf /opt/tdarr/Tdarr_Updater.zip
|
|
||||||
msg_ok "Updated Tdarr"
|
msg_ok "Updated Tdarr"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf /opt/tdarr/Tdarr_Updater.zip
|
||||||
|
msg_ok "Cleaned up"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,8 +38,11 @@ function update_script() {
|
|||||||
msg_info "Updating Technitium DNS"
|
msg_info "Updating Technitium DNS"
|
||||||
curl -fsSL "https://download.technitium.com/dns/DnsServerPortable.tar.gz" -o /opt/DnsServerPortable.tar.gz
|
curl -fsSL "https://download.technitium.com/dns/DnsServerPortable.tar.gz" -o /opt/DnsServerPortable.tar.gz
|
||||||
$STD tar zxvf /opt/DnsServerPortable.tar.gz -C /opt/technitium/dns/
|
$STD tar zxvf /opt/DnsServerPortable.tar.gz -C /opt/technitium/dns/
|
||||||
rm -f /opt/DnsServerPortable.tar.gz
|
|
||||||
msg_ok "Updated Technitium DNS"
|
msg_ok "Updated Technitium DNS"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -f /opt/DnsServerPortable.tar.gz
|
||||||
|
msg_ok "Cleaned up"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. Technitium DNS is already at v${RELEASE}."
|
msg_ok "No update required. Technitium DNS is already at v${RELEASE}."
|
||||||
|
|||||||
@@ -41,12 +41,15 @@ function update_script() {
|
|||||||
|
|
||||||
msg_info "Restoring data"
|
msg_info "Restoring data"
|
||||||
cp -R /opt/teddycloud_bak/certs /opt/teddycloud_bak/config /opt/teddycloud_bak/data /opt/teddycloud
|
cp -R /opt/teddycloud_bak/certs /opt/teddycloud_bak/config /opt/teddycloud_bak/data /opt/teddycloud
|
||||||
rm -rf /opt/teddycloud_bak
|
|
||||||
msg_ok "Data restored"
|
msg_ok "Data restored"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start teddycloud
|
systemctl start teddycloud
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf /opt/teddycloud_bak
|
||||||
|
msg_ok "Cleaned up"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
15
ct/tianji.sh
15
ct/tianji.sh
@@ -43,7 +43,7 @@ function update_script() {
|
|||||||
|
|
||||||
fetch_and_deploy_gh_release "tianji" "msgbyte/tianji"
|
fetch_and_deploy_gh_release "tianji" "msgbyte/tianji"
|
||||||
|
|
||||||
msg_info "Updating Tianji"
|
msg_info "Updating ${APP}"
|
||||||
cd /opt/tianji
|
cd /opt/tianji
|
||||||
export NODE_OPTIONS="--max_old_space_size=4096"
|
export NODE_OPTIONS="--max_old_space_size=4096"
|
||||||
$STD pnpm install --filter @tianji/client... --config.dedupe-peer-dependents=false --frozen-lockfile
|
$STD pnpm install --filter @tianji/client... --config.dedupe-peer-dependents=false --frozen-lockfile
|
||||||
@@ -55,11 +55,7 @@ function update_script() {
|
|||||||
mv /opt/.env /opt/tianji/src/server/.env
|
mv /opt/.env /opt/tianji/src/server/.env
|
||||||
cd src/server
|
cd src/server
|
||||||
$STD pnpm db:migrate:apply
|
$STD pnpm db:migrate:apply
|
||||||
rm -rf /opt/tianji_bak
|
msg_ok "Updated ${APP}"
|
||||||
rm -rf /opt/tianji/src/client
|
|
||||||
rm -rf /opt/tianji/website
|
|
||||||
rm -rf /opt/tianji/reporter
|
|
||||||
msg_ok "Updated Tianji"
|
|
||||||
|
|
||||||
msg_info "Updating AppRise"
|
msg_info "Updating AppRise"
|
||||||
$STD uv pip install apprise cryptography --system
|
$STD uv pip install apprise cryptography --system
|
||||||
@@ -68,6 +64,13 @@ function update_script() {
|
|||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start tianji
|
systemctl start tianji
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf /opt/tianji_bak
|
||||||
|
rm -rf /opt/tianji/src/client
|
||||||
|
rm -rf /opt/tianji/website
|
||||||
|
rm -rf /opt/tianji/reporter
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -50,12 +50,18 @@ function update_script() {
|
|||||||
mv /opt/traccar.xml /opt/traccar/conf
|
mv /opt/traccar.xml /opt/traccar/conf
|
||||||
[[ -d /opt/data ]] && mv /opt/data /opt/traccar
|
[[ -d /opt/data ]] && mv /opt/data /opt/traccar
|
||||||
[[ -d /opt/media ]] && mv /opt/media /opt/traccar
|
[[ -d /opt/media ]] && mv /opt/media /opt/traccar
|
||||||
[ -f README.txt ] || [ -f traccar.run ] && rm -f README.txt traccar.run
|
|
||||||
msg_ok "Data restored"
|
msg_ok "Data restored"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start traccar
|
systemctl start traccar
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
[ -f README.txt ] || [ -f traccar.run ] && rm -f README.txt traccar.run
|
||||||
|
$STD apt -y autoremove
|
||||||
|
$STD apt -y autoclean
|
||||||
|
$STD apt -y clean
|
||||||
|
msg_ok "Cleaned up"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -55,9 +55,15 @@ function update_script() {
|
|||||||
msg_info "Restoring Database"
|
msg_info "Restoring Database"
|
||||||
mkdir -p "$(dirname "${DB_RESTORE_PATH}")"
|
mkdir -p "$(dirname "${DB_RESTORE_PATH}")"
|
||||||
cp -r /opt/trilium_backup/$(basename "${DB_PATH}") "${DB_RESTORE_PATH}"
|
cp -r /opt/trilium_backup/$(basename "${DB_PATH}") "${DB_RESTORE_PATH}"
|
||||||
rm -rf /opt/trilium_backup
|
|
||||||
msg_ok "Restored Database"
|
msg_ok "Restored Database"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf /opt/trilium_backup
|
||||||
|
$STD apt -y autoremove
|
||||||
|
$STD apt -y autoclean
|
||||||
|
$STD apt -y clean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start trilium
|
systemctl start trilium
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|||||||
@@ -43,6 +43,12 @@ function update_script() {
|
|||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start uhf-server
|
systemctl start uhf-server
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt -y autoremove
|
||||||
|
$STD apt -y autoclean
|
||||||
|
$STD apt -y clean
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -57,9 +57,12 @@ function update_script() {
|
|||||||
else
|
else
|
||||||
cp target/release/vaultwarden /opt/vaultwarden/bin/
|
cp target/release/vaultwarden /opt/vaultwarden/bin/
|
||||||
fi
|
fi
|
||||||
cd ~ && rm -rf vaultwarden
|
|
||||||
msg_ok "Updated VaultWarden"
|
msg_ok "Updated VaultWarden"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
cd ~ && rm -rf vaultwarden
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start vaultwarden
|
systemctl start vaultwarden
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
@@ -74,9 +77,12 @@ function update_script() {
|
|||||||
msg_info "Updating Web-Vault to $WVRELEASE"
|
msg_info "Updating Web-Vault to $WVRELEASE"
|
||||||
$STD curl -fsSLO https://github.com/dani-garcia/bw_web_builds/releases/download/"$WVRELEASE"/bw_web_"$WVRELEASE".tar.gz
|
$STD curl -fsSLO https://github.com/dani-garcia/bw_web_builds/releases/download/"$WVRELEASE"/bw_web_"$WVRELEASE".tar.gz
|
||||||
$STD tar -zxf bw_web_"$WVRELEASE".tar.gz -C /opt/vaultwarden/
|
$STD tar -zxf bw_web_"$WVRELEASE".tar.gz -C /opt/vaultwarden/
|
||||||
rm bw_web_"$WVRELEASE".tar.gz
|
|
||||||
msg_ok "Updated Web-Vault"
|
msg_ok "Updated Web-Vault"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm bw_web_"$WVRELEASE".tar.gz
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start vaultwarden
|
systemctl start vaultwarden
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|||||||
@@ -39,13 +39,16 @@ function update_script() {
|
|||||||
curl -fsSL "https://dl.vikunja.io/vikunja/$RELEASE/vikunja-$RELEASE-amd64.deb" -o $(basename "https://dl.vikunja.io/vikunja/$RELEASE/vikunja-$RELEASE-amd64.deb")
|
curl -fsSL "https://dl.vikunja.io/vikunja/$RELEASE/vikunja-$RELEASE-amd64.deb" -o $(basename "https://dl.vikunja.io/vikunja/$RELEASE/vikunja-$RELEASE-amd64.deb")
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
$STD dpkg -i vikunja-"$RELEASE"-amd64.deb
|
$STD dpkg -i vikunja-"$RELEASE"-amd64.deb
|
||||||
rm -rf /opt/vikunja-"$RELEASE"-amd64.deb
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated ${APP}"
|
msg_ok "Updated ${APP}"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start vikunja
|
systemctl start vikunja
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf /opt/vikunja-"$RELEASE"-amd64.deb
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
|||||||
@@ -73,13 +73,16 @@ EOF
|
|||||||
cp -f wastebin* /opt/wastebin/
|
cp -f wastebin* /opt/wastebin/
|
||||||
chmod +x /opt/wastebin/wastebin
|
chmod +x /opt/wastebin/wastebin
|
||||||
chmod +x /opt/wastebin/wastebin-ctl
|
chmod +x /opt/wastebin/wastebin-ctl
|
||||||
rm -f "$temp_file"
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated Wastebin"
|
msg_ok "Updated Wastebin"
|
||||||
|
|
||||||
msg_info "Starting Wastebin"
|
msg_info "Starting Wastebin"
|
||||||
systemctl start wastebin
|
systemctl start wastebin
|
||||||
msg_ok "Started Wastebin"
|
msg_ok "Started Wastebin"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -f "$temp_file"
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
|||||||
@@ -37,7 +37,10 @@ function update_script() {
|
|||||||
fetch_and_deploy_gh_release "watchyourlan" "aceberg/WatchYourLAN" "binary"
|
fetch_and_deploy_gh_release "watchyourlan" "aceberg/WatchYourLAN" "binary"
|
||||||
cp -R config.yaml /data/config.yaml
|
cp -R config.yaml /data/config.yaml
|
||||||
sed -i 's|/etc/watchyourlan/config.yaml|/data/config.yaml|' /lib/systemd/system/watchyourlan.service
|
sed -i 's|/etc/watchyourlan/config.yaml|/data/config.yaml|' /lib/systemd/system/watchyourlan.service
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
rm ~/config.yaml
|
rm ~/config.yaml
|
||||||
|
msg_ok "Cleaned up"
|
||||||
|
|
||||||
msg_info "Starting service"
|
msg_info "Starting service"
|
||||||
systemctl enable -q --now watchyourlan
|
systemctl enable -q --now watchyourlan
|
||||||
|
|||||||
@@ -45,13 +45,16 @@ function update_script() {
|
|||||||
$STD python3 manage.py collectstatic --no-input
|
$STD python3 manage.py collectstatic --no-input
|
||||||
$STD yarn install
|
$STD yarn install
|
||||||
$STD yarn build:css:sass
|
$STD yarn build:css:sass
|
||||||
rm -rf "$temp_file"
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated $APP to v${RELEASE}"
|
msg_ok "Updated $APP to v${RELEASE}"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start wger
|
systemctl start wger
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf "$temp_file"
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
|||||||
@@ -54,12 +54,15 @@ function update_script() {
|
|||||||
msg_info "Restoring Data"
|
msg_info "Restoring Data"
|
||||||
cp -R /opt/wikijs-backup/* /opt/wikijs
|
cp -R /opt/wikijs-backup/* /opt/wikijs
|
||||||
$SQLITE_INSTALL && $STD npm rebuild sqlite3
|
$SQLITE_INSTALL && $STD npm rebuild sqlite3
|
||||||
rm -rf /opt/wikijs-backup
|
|
||||||
msg_ok "Restored Data"
|
msg_ok "Restored Data"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start wikijs
|
systemctl start wikijs
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf /opt/wikijs-backup
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -56,12 +56,15 @@ function update_script() {
|
|||||||
if ! grep -q 'frozen' /opt/wizarr/start.sh; then
|
if ! grep -q 'frozen' /opt/wizarr/start.sh; then
|
||||||
sed -i 's/run/& --frozen/' /opt/wizarr/start.sh
|
sed -i 's/run/& --frozen/' /opt/wizarr/start.sh
|
||||||
fi
|
fi
|
||||||
rm -rf "$BACKUP_FILE"
|
|
||||||
msg_ok "Updated Wizarr"
|
msg_ok "Updated Wizarr"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start wizarr
|
systemctl start wizarr
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf "$BACKUP_FILE"
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -59,7 +59,6 @@ function update_script() {
|
|||||||
xargs -I{} echo "https://repo.zabbix.com/zabbix/{}/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian13_all.deb")" \
|
xargs -I{} echo "https://repo.zabbix.com/zabbix/{}/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian13_all.deb")" \
|
||||||
-o /tmp/zabbix-release_latest+debian13_all.deb
|
-o /tmp/zabbix-release_latest+debian13_all.deb
|
||||||
$STD dpkg -i zabbix-release_latest+debian13_all.deb
|
$STD dpkg -i zabbix-release_latest+debian13_all.deb
|
||||||
rm -rf /tmp/zabbix-release_latest+debian13_all.deb
|
|
||||||
$STD apt update
|
$STD apt update
|
||||||
|
|
||||||
$STD apt install --only-upgrade zabbix-server-pgsql zabbix-frontend-php php8.4-pgsql
|
$STD apt install --only-upgrade zabbix-server-pgsql zabbix-frontend-php php8.4-pgsql
|
||||||
@@ -89,6 +88,13 @@ function update_script() {
|
|||||||
systemctl start "$AGENT_SERVICE"
|
systemctl start "$AGENT_SERVICE"
|
||||||
systemctl restart apache2
|
systemctl restart apache2
|
||||||
msg_ok "Started Services"
|
msg_ok "Started Services"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf /tmp/zabbix-release_latest+debian13_all.deb
|
||||||
|
$STD apt -y autoremove
|
||||||
|
$STD apt -y autoclean
|
||||||
|
$STD apt -y clean
|
||||||
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,15 +47,18 @@ function update_script() {
|
|||||||
rm -rf /opt/zigbee2mqtt/data
|
rm -rf /opt/zigbee2mqtt/data
|
||||||
mv /opt/z2m_backup/data /opt/zigbee2mqtt
|
mv /opt/z2m_backup/data /opt/zigbee2mqtt
|
||||||
cd /opt/zigbee2mqtt
|
cd /opt/zigbee2mqtt
|
||||||
grep -q "^packageImportMethod" ./pnpm-workspace.yaml || echo "packageImportMethod: hardlink" >>./pnpm-workspace.yaml
|
grep -q "^packageImportMethod" ./pnpm-workspace.yaml || echo "packageImportMethod: hardlink" >> ./pnpm-workspace.yaml
|
||||||
$STD pnpm install --frozen-lockfile
|
$STD pnpm install --frozen-lockfile
|
||||||
$STD pnpm build
|
$STD pnpm build
|
||||||
rm -rf /opt/z2m_backup
|
|
||||||
msg_ok "Updated Zigbee2MQTT"
|
msg_ok "Updated Zigbee2MQTT"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start zigbee2mqtt
|
systemctl start zigbee2mqtt
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf /opt/z2m_backup
|
||||||
|
msg_ok "Cleaned up"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
|
|||||||
850
frontend/bun.lock
generated
850
frontend/bun.lock
generated
File diff suppressed because it is too large
Load Diff
6
frontend/package.json
generated
6
frontend/package.json
generated
@@ -37,7 +37,6 @@
|
|||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
"cmdk": "^1.1.1",
|
"cmdk": "^1.1.1",
|
||||||
"date-fns": "^4.1.0",
|
"date-fns": "^4.1.0",
|
||||||
|
|
||||||
"framer-motion": "^11.18.2",
|
"framer-motion": "^11.18.2",
|
||||||
"fuse.js": "^7.1.0",
|
"fuse.js": "^7.1.0",
|
||||||
"lucide-react": "^0.554.0",
|
"lucide-react": "^0.554.0",
|
||||||
@@ -46,15 +45,20 @@
|
|||||||
"next": "15.5.2",
|
"next": "15.5.2",
|
||||||
"next-themes": "^0.4.4",
|
"next-themes": "^0.4.4",
|
||||||
"nuqs": "^2.4.1",
|
"nuqs": "^2.4.1",
|
||||||
|
"pocketbase": "^0.21.5",
|
||||||
"prettier-plugin-organize-imports": "^4.1.0",
|
"prettier-plugin-organize-imports": "^4.1.0",
|
||||||
"react": "19.0.0",
|
"react": "19.0.0",
|
||||||
"react-chartjs-2": "^5.3.0",
|
"react-chartjs-2": "^5.3.0",
|
||||||
|
"react-code-blocks": "^0.1.6",
|
||||||
|
"react-datepicker": "^7.6.0",
|
||||||
"react-day-picker": "^9.4.3",
|
"react-day-picker": "^9.4.3",
|
||||||
"react-dom": "19.0.0",
|
"react-dom": "19.0.0",
|
||||||
"react-icons": "^5.5.0",
|
"react-icons": "^5.5.0",
|
||||||
|
"react-simple-typewriter": "^5.0.1",
|
||||||
"react-use-measure": "^2.1.7",
|
"react-use-measure": "^2.1.7",
|
||||||
"recharts": "2.15.4",
|
"recharts": "2.15.4",
|
||||||
"sharp": "^0.33.5",
|
"sharp": "^0.33.5",
|
||||||
|
"simple-icons": "^13.21.0",
|
||||||
"sonner": "^1.7.4",
|
"sonner": "^1.7.4",
|
||||||
"tailwind-merge": "^2.6.0",
|
"tailwind-merge": "^2.6.0",
|
||||||
"zod": "^3.24.2"
|
"zod": "^3.24.2"
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
"ram": 2048,
|
"ram": 2048,
|
||||||
"hdd": 4,
|
"hdd": 4,
|
||||||
"os": "Debian",
|
"os": "Debian",
|
||||||
"version": "13"
|
"version": "12"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,43 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "OPNsense",
|
|
||||||
"slug": "opnsense-vm",
|
|
||||||
"categories": [
|
|
||||||
4,
|
|
||||||
2
|
|
||||||
],
|
|
||||||
"date_created": "2025-11-23",
|
|
||||||
"type": "vm",
|
|
||||||
"updateable": true,
|
|
||||||
"privileged": false,
|
|
||||||
"interface_port": 443,
|
|
||||||
"documentation": "https://docs.opnsense.org/",
|
|
||||||
"website": "https://opnsense.org/",
|
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/opnsense.webp",
|
|
||||||
"config_path": "",
|
|
||||||
"description": "OPNsense is an open-source firewall and routing platform based on FreeBSD. It provides advanced security features, including intrusion detection, VPN support, traffic shaping, and web filtering, with an intuitive web interface for easy management. Known for its reliability and regular updates, OPNsense is a popular choice for both businesses and home networks.",
|
|
||||||
"disable": true,
|
|
||||||
"disable_description": "This script has been temporarily disabled due to installation failures. The OPNsense bootstrap process was not completing successfully, resulting in a plain FreeBSD VM instead of a functional OPNsense installation. The issue is being investigated and the script will be re-enabled once resolved. For more details, see: https://github.com/community-scripts/ProxmoxVE/issues/6183",
|
|
||||||
"install_methods": [
|
|
||||||
{
|
|
||||||
"type": "default",
|
|
||||||
"script": "vm/opnsense-vm.sh",
|
|
||||||
"resources": {
|
|
||||||
"cpu": 4,
|
|
||||||
"ram": 8192,
|
|
||||||
"hdd": 10,
|
|
||||||
"os": "FreeBSD",
|
|
||||||
"version": "latest"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"default_credentials": {
|
|
||||||
"username": "root",
|
|
||||||
"password": "opnsense"
|
|
||||||
},
|
|
||||||
"notes": [
|
|
||||||
{
|
|
||||||
"text": "It will fail with default settings if there is no vmbr0 and vmbr1 on your node. Use advanced settings in this case.",
|
|
||||||
"type": "warning"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
"categories": [
|
"categories": [
|
||||||
11
|
11
|
||||||
],
|
],
|
||||||
"date_created": "2025-11-22",
|
"date_created": "2025-10-31",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
|
|||||||
@@ -1,99 +1,4 @@
|
|||||||
[
|
[
|
||||||
{
|
|
||||||
"name": "rcourtman/Pulse",
|
|
||||||
"version": "v4.32.4",
|
|
||||||
"date": "2025-11-23T11:05:14Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "readeck/readeck",
|
|
||||||
"version": "0.21.2",
|
|
||||||
"date": "2025-11-23T10:56:43Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "verdaccio/verdaccio",
|
|
||||||
"version": "generator-verdaccio-plugin@6.0.0-next-8.26",
|
|
||||||
"date": "2025-11-23T07:46:06Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "morpheus65535/bazarr",
|
|
||||||
"version": "v1.5.3",
|
|
||||||
"date": "2025-09-20T12:12:33Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jackett/Jackett",
|
|
||||||
"version": "v0.24.340",
|
|
||||||
"date": "2025-11-23T06:00:18Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "tobychui/zoraxy",
|
|
||||||
"version": "v3.3.0-rc1",
|
|
||||||
"date": "2025-11-23T05:42:35Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "hyperion-project/hyperion.ng",
|
|
||||||
"version": "2.1.1",
|
|
||||||
"date": "2025-06-14T17:45:06Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "BerriAI/litellm",
|
|
||||||
"version": "v1.80.5.rc.2",
|
|
||||||
"date": "2025-11-23T00:31:24Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "steveiliop56/tinyauth",
|
|
||||||
"version": "v4.0.1",
|
|
||||||
"date": "2025-10-15T16:53:55Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "jeedom/core",
|
|
||||||
"version": "4.4.20",
|
|
||||||
"date": "2025-11-23T00:27:04Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "paperless-ngx/paperless-ngx",
|
|
||||||
"version": "v2.20.0",
|
|
||||||
"date": "2025-11-22T21:56:00Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "OliveTin/OliveTin",
|
|
||||||
"version": "2025.11.25",
|
|
||||||
"date": "2025-11-22T21:00:52Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Cleanuparr/Cleanuparr",
|
|
||||||
"version": "v2.4.6",
|
|
||||||
"date": "2025-11-22T20:32:09Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "go-gitea/gitea",
|
|
||||||
"version": "v1.25.2",
|
|
||||||
"date": "2025-11-22T19:37:02Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "msgbyte/tianji",
|
|
||||||
"version": "v1.30.13",
|
|
||||||
"date": "2025-11-22T18:22:32Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "nzbgetcom/nzbget",
|
|
||||||
"version": "v25.4",
|
|
||||||
"date": "2025-10-09T10:27:01Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "bunkerity/bunkerweb",
|
|
||||||
"version": "v1.6.6",
|
|
||||||
"date": "2025-11-22T16:10:29Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "TechnitiumSoftware/DnsServer",
|
|
||||||
"version": "v14.2.0",
|
|
||||||
"date": "2025-11-22T12:54:08Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "keycloak/keycloak",
|
|
||||||
"version": "26.4.5",
|
|
||||||
"date": "2025-11-12T15:24:23Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "pocketbase/pocketbase",
|
"name": "pocketbase/pocketbase",
|
||||||
"version": "v0.34.0",
|
"version": "v0.34.0",
|
||||||
@@ -114,16 +19,36 @@
|
|||||||
"version": "1.1.5",
|
"version": "1.1.5",
|
||||||
"date": "2025-11-22T07:02:52Z"
|
"date": "2025-11-22T07:02:52Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "Jackett/Jackett",
|
||||||
|
"version": "v0.24.339",
|
||||||
|
"date": "2025-11-22T06:05:53Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "theonedev/onedev",
|
"name": "theonedev/onedev",
|
||||||
"version": "v13.1.0",
|
"version": "v13.1.0",
|
||||||
"date": "2025-11-22T04:29:25Z"
|
"date": "2025-11-22T04:29:25Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "jeedom/core",
|
||||||
|
"version": "4.4.20",
|
||||||
|
"date": "2025-11-22T00:27:05Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "steveiliop56/tinyauth",
|
||||||
|
"version": "v4.0.1",
|
||||||
|
"date": "2025-10-15T16:53:55Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "TwiN/gatus",
|
"name": "TwiN/gatus",
|
||||||
"version": "v5.33.0",
|
"version": "v5.33.0",
|
||||||
"date": "2025-11-21T22:54:49Z"
|
"date": "2025-11-21T22:54:49Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "BerriAI/litellm",
|
||||||
|
"version": "v1.78.5-stable-patch-1",
|
||||||
|
"date": "2025-11-21T19:57:45Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "homarr-labs/homarr",
|
"name": "homarr-labs/homarr",
|
||||||
"version": "v1.44.0",
|
"version": "v1.44.0",
|
||||||
@@ -139,6 +64,16 @@
|
|||||||
"version": "v1.72.0",
|
"version": "v1.72.0",
|
||||||
"date": "2025-11-21T18:20:58Z"
|
"date": "2025-11-21T18:20:58Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "keycloak/keycloak",
|
||||||
|
"version": "26.4.5",
|
||||||
|
"date": "2025-11-12T15:24:23Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "readeck/readeck",
|
||||||
|
"version": "0.21.1",
|
||||||
|
"date": "2025-11-21T17:17:52Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "mattermost/mattermost",
|
"name": "mattermost/mattermost",
|
||||||
"version": "v10.11.8",
|
"version": "v10.11.8",
|
||||||
@@ -174,11 +109,21 @@
|
|||||||
"version": "v13.0.3",
|
"version": "v13.0.3",
|
||||||
"date": "2025-11-21T12:43:04Z"
|
"date": "2025-11-21T12:43:04Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "bunkerity/bunkerweb",
|
||||||
|
"version": "v1.6.5",
|
||||||
|
"date": "2025-10-06T15:25:17Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "chrisbenincasa/tunarr",
|
"name": "chrisbenincasa/tunarr",
|
||||||
"version": "v0.23.0-alpha.24",
|
"version": "v0.23.0-alpha.24",
|
||||||
"date": "2025-11-21T12:16:39Z"
|
"date": "2025-11-21T12:16:39Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "rcourtman/Pulse",
|
||||||
|
"version": "v4.32.3",
|
||||||
|
"date": "2025-11-21T11:16:25Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "seriousm4x/UpSnap",
|
"name": "seriousm4x/UpSnap",
|
||||||
"version": "5.2.4",
|
"version": "5.2.4",
|
||||||
@@ -209,6 +154,11 @@
|
|||||||
"version": "mariadb-12.1.2",
|
"version": "mariadb-12.1.2",
|
||||||
"date": "2025-11-18T15:16:21Z"
|
"date": "2025-11-18T15:16:21Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "morpheus65535/bazarr",
|
||||||
|
"version": "v1.5.3",
|
||||||
|
"date": "2025-09-20T12:12:33Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "bluenviron/mediamtx",
|
"name": "bluenviron/mediamtx",
|
||||||
"version": "v1.15.4",
|
"version": "v1.15.4",
|
||||||
@@ -234,6 +184,11 @@
|
|||||||
"version": "v3007.9",
|
"version": "v3007.9",
|
||||||
"date": "2025-11-20T17:58:32Z"
|
"date": "2025-11-20T17:58:32Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "msgbyte/tianji",
|
||||||
|
"version": "v1.30.12",
|
||||||
|
"date": "2025-11-20T16:13:19Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "neo4j/neo4j",
|
"name": "neo4j/neo4j",
|
||||||
"version": "5.26.17",
|
"version": "5.26.17",
|
||||||
@@ -374,6 +329,11 @@
|
|||||||
"version": "v1.143.0rc1",
|
"version": "v1.143.0rc1",
|
||||||
"date": "2025-11-19T00:09:31Z"
|
"date": "2025-11-19T00:09:31Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "hyperion-project/hyperion.ng",
|
||||||
|
"version": "2.1.1",
|
||||||
|
"date": "2025-06-14T17:45:06Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "gtsteffaniak/filebrowser",
|
"name": "gtsteffaniak/filebrowser",
|
||||||
"version": "v1.0.1-stable",
|
"version": "v1.0.1-stable",
|
||||||
@@ -504,11 +464,26 @@
|
|||||||
"version": "v25.11.1",
|
"version": "v25.11.1",
|
||||||
"date": "2025-11-16T13:04:21Z"
|
"date": "2025-11-16T13:04:21Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "TechnitiumSoftware/DnsServer",
|
||||||
|
"version": "v14.1.0",
|
||||||
|
"date": "2025-11-16T11:32:10Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "FlowiseAI/Flowise",
|
"name": "FlowiseAI/Flowise",
|
||||||
"version": "flowise@3.0.11",
|
"version": "flowise@3.0.11",
|
||||||
"date": "2025-11-16T01:29:06Z"
|
"date": "2025-11-16T01:29:06Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "OliveTin/OliveTin",
|
||||||
|
"version": "3000.4.0",
|
||||||
|
"date": "2025-11-16T01:02:49Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "paperless-ngx/paperless-ngx",
|
||||||
|
"version": "v2.19.6",
|
||||||
|
"date": "2025-11-15T22:56:45Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "karakeep-app/karakeep",
|
"name": "karakeep-app/karakeep",
|
||||||
"version": "android/v1.8.2-2",
|
"version": "android/v1.8.2-2",
|
||||||
@@ -539,6 +514,16 @@
|
|||||||
"version": "v4.7.0",
|
"version": "v4.7.0",
|
||||||
"date": "2025-11-14T09:45:13Z"
|
"date": "2025-11-14T09:45:13Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "nzbgetcom/nzbget",
|
||||||
|
"version": "v25.4",
|
||||||
|
"date": "2025-10-09T10:27:01Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "verdaccio/verdaccio",
|
||||||
|
"version": "generator-verdaccio-plugin@6.0.0-next-8.25",
|
||||||
|
"date": "2025-11-14T08:14:55Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "runtipi/runtipi",
|
"name": "runtipi/runtipi",
|
||||||
"version": "v4.6.5",
|
"version": "v4.6.5",
|
||||||
@@ -659,6 +644,11 @@
|
|||||||
"version": "v1.0.0-beta19",
|
"version": "v1.0.0-beta19",
|
||||||
"date": "2025-11-09T17:26:30Z"
|
"date": "2025-11-09T17:26:30Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "Cleanuparr/Cleanuparr",
|
||||||
|
"version": "v2.4.5",
|
||||||
|
"date": "2025-11-09T17:14:01Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "authelia/authelia",
|
"name": "authelia/authelia",
|
||||||
"version": "v4.39.14",
|
"version": "v4.39.14",
|
||||||
@@ -789,6 +779,11 @@
|
|||||||
"version": "v4.0.16.2944",
|
"version": "v4.0.16.2944",
|
||||||
"date": "2025-11-05T01:56:48Z"
|
"date": "2025-11-05T01:56:48Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "go-gitea/gitea",
|
||||||
|
"version": "v1.25.1",
|
||||||
|
"date": "2025-11-04T20:01:09Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "jhuckaby/Cronicle",
|
"name": "jhuckaby/Cronicle",
|
||||||
"version": "v0.9.100",
|
"version": "v0.9.100",
|
||||||
@@ -839,6 +834,11 @@
|
|||||||
"version": "v1.9.1",
|
"version": "v1.9.1",
|
||||||
"date": "2025-11-02T21:14:50Z"
|
"date": "2025-11-02T21:14:50Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "tobychui/zoraxy",
|
||||||
|
"version": "v3.2.9",
|
||||||
|
"date": "2025-11-02T05:48:39Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "9001/copyparty",
|
"name": "9001/copyparty",
|
||||||
"version": "v1.19.20",
|
"version": "v1.19.20",
|
||||||
|
|||||||
@@ -35,22 +35,12 @@ export const ScriptSchema = z.object({
|
|||||||
logo: z.string().url().nullable(),
|
logo: z.string().url().nullable(),
|
||||||
config_path: z.string(),
|
config_path: z.string(),
|
||||||
description: z.string().min(1, "Description is required"),
|
description: z.string().min(1, "Description is required"),
|
||||||
disable: z.boolean().optional(),
|
|
||||||
disable_description: z.string().optional(),
|
|
||||||
install_methods: z.array(InstallMethodSchema).min(1, "At least one install method is required"),
|
install_methods: z.array(InstallMethodSchema).min(1, "At least one install method is required"),
|
||||||
default_credentials: z.object({
|
default_credentials: z.object({
|
||||||
username: z.string().nullable(),
|
username: z.string().nullable(),
|
||||||
password: z.string().nullable(),
|
password: z.string().nullable(),
|
||||||
}),
|
}),
|
||||||
notes: z.array(NoteSchema),
|
notes: z.array(NoteSchema),
|
||||||
}).refine((data) => {
|
|
||||||
if (data.disable === true && !data.disable_description) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}, {
|
|
||||||
message: "disable_description is required when disable is true",
|
|
||||||
path: ["disable_description"],
|
|
||||||
});
|
});
|
||||||
|
|
||||||
export type Script = z.infer<typeof ScriptSchema>;
|
export type Script = z.infer<typeof ScriptSchema>;
|
||||||
|
|||||||
@@ -42,8 +42,6 @@ const initialScript: Script = {
|
|||||||
website: null,
|
website: null,
|
||||||
logo: null,
|
logo: null,
|
||||||
description: "",
|
description: "",
|
||||||
disable: undefined,
|
|
||||||
disable_description: undefined,
|
|
||||||
install_methods: [],
|
install_methods: [],
|
||||||
default_credentials: {
|
default_credentials: {
|
||||||
username: null,
|
username: null,
|
||||||
@@ -263,25 +261,7 @@ export default function JSONGenerator() {
|
|||||||
<Switch checked={script.privileged} onCheckedChange={checked => updateScript("privileged", checked)} />
|
<Switch checked={script.privileged} onCheckedChange={checked => updateScript("privileged", checked)} />
|
||||||
<label>Privileged</label>
|
<label>Privileged</label>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center space-x-2">
|
|
||||||
<Switch checked={script.disable || false} onCheckedChange={checked => updateScript("disable", checked)} />
|
|
||||||
<label>Disabled</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{script.disable && (
|
|
||||||
<div>
|
|
||||||
<Label>
|
|
||||||
Disable Description
|
|
||||||
{" "}
|
|
||||||
<span className="text-red-500">*</span>
|
|
||||||
</Label>
|
|
||||||
<Textarea
|
|
||||||
placeholder="Explain why this script is disabled..."
|
|
||||||
value={script.disable_description || ""}
|
|
||||||
onChange={e => updateScript("disable_description", e.target.value)}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
<Input
|
<Input
|
||||||
placeholder="Interface Port"
|
placeholder="Interface Port"
|
||||||
type="number"
|
type="number"
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
"use client";
|
"use client";
|
||||||
import { Button } from "@/components/ui/button";
|
import { Button } from "@/components/ui/button";
|
||||||
import { basePath } from "@/config/site-config";
|
|
||||||
|
|
||||||
export default function NotFoundPage() {
|
export default function NotFoundPage() {
|
||||||
return (
|
return (
|
||||||
@@ -13,17 +12,7 @@ export default function NotFoundPage() {
|
|||||||
Oops, the page you are looking for could not be found.
|
Oops, the page you are looking for could not be found.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<Button
|
<Button onClick={() => window.history.back()} variant="secondary">
|
||||||
onClick={() => {
|
|
||||||
if (window.history.length > 1) {
|
|
||||||
window.history.back();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
window.location.href = `/${basePath}`;
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
variant="secondary"
|
|
||||||
>
|
|
||||||
Go Back
|
Go Back
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ export default function ScriptAccordion({
|
|||||||
className={`flex cursor-pointer items-center justify-between gap-1 px-1 py-1 text-muted-foreground hover:rounded-lg hover:bg-accent/60 hover:dark:bg-accent/20 ${selectedScript === script.slug
|
className={`flex cursor-pointer items-center justify-between gap-1 px-1 py-1 text-muted-foreground hover:rounded-lg hover:bg-accent/60 hover:dark:bg-accent/20 ${selectedScript === script.slug
|
||||||
? "rounded-lg bg-accent font-semibold dark:bg-accent/30 dark:text-white"
|
? "rounded-lg bg-accent font-semibold dark:bg-accent/30 dark:text-white"
|
||||||
: ""
|
: ""
|
||||||
} ${script.disable ? "opacity-60" : ""}`}
|
}`}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
handleSelected(script.slug);
|
handleSelected(script.slug);
|
||||||
setSelectedCategory(category.name);
|
setSelectedCategory(category.name);
|
||||||
@@ -143,9 +143,7 @@ export default function ScriptAccordion({
|
|||||||
alt={script.name}
|
alt={script.name}
|
||||||
className="mr-1 w-4 h-4 rounded-full"
|
className="mr-1 w-4 h-4 rounded-full"
|
||||||
/>
|
/>
|
||||||
<span className="flex items-center gap-2">
|
<span className="flex items-center gap-2">{script.name}</span>
|
||||||
{script.name}
|
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
{formattedBadge(script.type)}
|
{formattedBadge(script.type)}
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import { useVersions } from "@/hooks/use-versions";
|
|||||||
import { basePath } from "@/config/site-config";
|
import { basePath } from "@/config/site-config";
|
||||||
import { extractDate } from "@/lib/time";
|
import { extractDate } from "@/lib/time";
|
||||||
|
|
||||||
import DisableDescription from "./script-items/disable-description";
|
|
||||||
import { getDisplayValueFromType } from "./script-info-blocks";
|
import { getDisplayValueFromType } from "./script-info-blocks";
|
||||||
import DefaultPassword from "./script-items/default-password";
|
import DefaultPassword from "./script-items/default-password";
|
||||||
import InstallCommand from "./script-items/install-command";
|
import InstallCommand from "./script-items/install-command";
|
||||||
@@ -147,45 +146,37 @@ export function ScriptItem({ item, setSelectedScript }: ScriptItemProps) {
|
|||||||
<ScriptHeader item={item} />
|
<ScriptHeader item={item} />
|
||||||
</Suspense>
|
</Suspense>
|
||||||
|
|
||||||
{item.disable && item.disable_description && (
|
<Description item={item} />
|
||||||
<DisableDescription item={item} />
|
<Alerts item={item} />
|
||||||
) }
|
|
||||||
|
|
||||||
{!item.disable && (
|
<div className="mt-4 rounded-lg border shadow-sm">
|
||||||
<>
|
<div className="flex gap-3 px-4 py-2 bg-accent/25">
|
||||||
<Description item={item} />
|
<h2 className="text-lg font-semibold">
|
||||||
|
How to
|
||||||
<Alerts item={item} />
|
{" "}
|
||||||
<div className="mt-4 rounded-lg border shadow-sm">
|
{item.type === "pve" ? "use" : item.type === "addon" ? "apply" : "install"}
|
||||||
|
</h2>
|
||||||
|
<Tooltips item={item} />
|
||||||
|
</div>
|
||||||
|
<Separator />
|
||||||
|
<div className="">
|
||||||
|
<InstallCommand item={item} />
|
||||||
|
</div>
|
||||||
|
{item.config_path && (
|
||||||
|
<>
|
||||||
|
<Separator />
|
||||||
<div className="flex gap-3 px-4 py-2 bg-accent/25">
|
<div className="flex gap-3 px-4 py-2 bg-accent/25">
|
||||||
<h2 className="text-lg font-semibold">
|
<h2 className="text-lg font-semibold">Location of config file</h2>
|
||||||
How to
|
|
||||||
{" "}
|
|
||||||
{item.type === "pve" ? "use" : item.type === "addon" ? "apply" : "install"}
|
|
||||||
</h2>
|
|
||||||
<Tooltips item={item} />
|
|
||||||
</div>
|
</div>
|
||||||
<Separator />
|
<Separator />
|
||||||
<div className="">
|
<div className="">
|
||||||
<InstallCommand item={item} />
|
<ConfigFile configPath={item.config_path} />
|
||||||
</div>
|
</div>
|
||||||
{item.config_path && (
|
</>
|
||||||
<>
|
)}
|
||||||
<Separator />
|
</div>
|
||||||
<div className="flex gap-3 px-4 py-2 bg-accent/25">
|
|
||||||
<h2 className="text-lg font-semibold">Location of config file</h2>
|
|
||||||
</div>
|
|
||||||
<Separator />
|
|
||||||
<div className="">
|
|
||||||
<ConfigFile configPath={item.config_path} />
|
|
||||||
</div>
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<DefaultPassword item={item} />
|
<DefaultPassword item={item} />
|
||||||
</>
|
|
||||||
)}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
import { AlertCircle } from "lucide-react";
|
|
||||||
|
|
||||||
import type { Script } from "@/lib/types";
|
|
||||||
|
|
||||||
import TextParseLinks from "@/components/text-parse-links";
|
|
||||||
import { AlertColors } from "@/config/site-config";
|
|
||||||
import { cn } from "@/lib/utils";
|
|
||||||
|
|
||||||
export default function DisableDescription({ item }: { item: Script }) {
|
|
||||||
return (
|
|
||||||
<div className="mt-4 flex flex-col shadow-sm gap-2">
|
|
||||||
<div
|
|
||||||
className={cn(
|
|
||||||
"flex items-start gap-3 rounded-lg border p-4 text-sm",
|
|
||||||
AlertColors.warning,
|
|
||||||
)}
|
|
||||||
>
|
|
||||||
<AlertCircle className="h-5 min-h-5 w-5 min-w-5 mt-0.5" />
|
|
||||||
<div className="flex flex-col gap-2">
|
|
||||||
<h3 className="font-semibold text-base">Script Disabled</h3>
|
|
||||||
<p>{TextParseLinks(item.disable_description!)}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
import { ClipboardIcon, ExternalLink } from "lucide-react";
|
|
||||||
import { Fragment } from "react";
|
|
||||||
|
|
||||||
import handleCopy from "./handle-copy";
|
|
||||||
|
|
||||||
const URL_PATTERN = /(https?:\/\/[^\s,]+)/;
|
|
||||||
const CODE_PATTERN = /`([^`]*)`/;
|
|
||||||
|
|
||||||
export default function TextParseLinks(text: string) {
|
|
||||||
const codeParts = text.split(CODE_PATTERN);
|
|
||||||
|
|
||||||
return codeParts.map((part: string, codeIndex: number) => {
|
|
||||||
if (codeIndex % 2 === 1) {
|
|
||||||
return (
|
|
||||||
<span
|
|
||||||
key={`code-${codeIndex}`}
|
|
||||||
className="bg-secondary py-1 px-2 rounded-lg inline-flex items-center gap-2"
|
|
||||||
>
|
|
||||||
{part}
|
|
||||||
<ClipboardIcon
|
|
||||||
className="size-3 cursor-pointer"
|
|
||||||
onClick={() => handleCopy("command", part)}
|
|
||||||
/>
|
|
||||||
</span>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
const urlParts = part.split(URL_PATTERN);
|
|
||||||
|
|
||||||
return (
|
|
||||||
<Fragment key={`text-${codeIndex}`}>
|
|
||||||
{urlParts.map((urlPart: string, urlIndex: number) => {
|
|
||||||
if (urlIndex % 2 === 1) {
|
|
||||||
return (
|
|
||||||
<a
|
|
||||||
key={`url-${codeIndex}-${urlIndex}`}
|
|
||||||
href={urlPart}
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
className="inline-flex items-center gap-1 text-blue-600 dark:text-blue-400 hover:underline font-medium transition-colors"
|
|
||||||
>
|
|
||||||
{urlPart}
|
|
||||||
<ExternalLink className="size-3" />
|
|
||||||
</a>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return <Fragment key={`plain-${codeIndex}-${urlIndex}`}>{urlPart}</Fragment>;
|
|
||||||
})}
|
|
||||||
</Fragment>
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { useInView, useMotionValue, useSpring } from "motion/react";
|
import { useInView, useMotionValue, useSpring } from "framer-motion";
|
||||||
import { useEffect, useRef } from "react";
|
import { useEffect, useRef } from "react";
|
||||||
|
|
||||||
import { cn } from "@/lib/utils";
|
import { cn } from "@/lib/utils";
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import React from "react";
|
|||||||
import type { OperatingSystem } from "@/lib/types";
|
import type { OperatingSystem } from "@/lib/types";
|
||||||
|
|
||||||
// eslint-disable-next-line node/no-process-env
|
// eslint-disable-next-line node/no-process-env
|
||||||
export const basePath = process.env.BASE_PATH || "ProxmoxVE";
|
export const basePath = process.env.BASE_PATH || "";
|
||||||
|
|
||||||
export const navbarLinks = [
|
export const navbarLinks = [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -14,8 +14,6 @@ export type Script = {
|
|||||||
logo: string | null;
|
logo: string | null;
|
||||||
config_path: string;
|
config_path: string;
|
||||||
description: string;
|
description: string;
|
||||||
disable?: boolean;
|
|
||||||
disable_description?: string;
|
|
||||||
install_methods: {
|
install_methods: {
|
||||||
type: "default" | "alpine";
|
type: "default" | "alpine";
|
||||||
script: string;
|
script: string;
|
||||||
|
|||||||
@@ -97,4 +97,9 @@ msg_ok "Configured Service"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt -y autoremove
|
||||||
|
$STD apt -y autoclean
|
||||||
|
$STD apt -y clean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -89,4 +89,9 @@ msg_ok "Created Service"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt -y autoremove
|
||||||
|
$STD apt -y autoclean
|
||||||
|
$STD apt -y clean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -41,4 +41,9 @@ msg_ok "Created Service"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt -y autoremove
|
||||||
|
$STD apt -y autoclean
|
||||||
|
$STD apt -y clean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -146,4 +146,9 @@ msg_ok "Created Service"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt -y autoremove
|
||||||
|
$STD apt -y autoclean
|
||||||
|
$STD apt -y clean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ curl -fsSL "$RELEASE" -o $(basename "$RELEASE")
|
|||||||
$STD unzip Agent_Linux64*.zip
|
$STD unzip Agent_Linux64*.zip
|
||||||
chmod +x ./Agent
|
chmod +x ./Agent
|
||||||
echo $RELEASE >~/.agentdvr
|
echo $RELEASE >~/.agentdvr
|
||||||
rm -rf Agent_Linux64*.zip
|
|
||||||
msg_ok "Installed AgentDVR"
|
msg_ok "Installed AgentDVR"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
@@ -54,4 +53,10 @@ msg_ok "Created Service"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf Agent_Linux64*.zip
|
||||||
|
$STD apt -y autoremove
|
||||||
|
$STD apt -y autoclean
|
||||||
|
$STD apt -y clean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -34,4 +34,8 @@ msg_ok "Installed Apache Cassandra"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -36,4 +36,8 @@ msg_ok "Installed Apache CouchDB."
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -71,8 +71,6 @@ mv ~/mysql-connector-j-9.3.0/mysql-connector-j-9.3.0.jar /etc/guacamole/lib/
|
|||||||
curl -fsSL "https://downloads.apache.org/guacamole/${RELEASE_SERVER}/binary/guacamole-auth-jdbc-${RELEASE_SERVER}.tar.gz" -o "/root/guacamole-auth-jdbc-${RELEASE_SERVER}.tar.gz"
|
curl -fsSL "https://downloads.apache.org/guacamole/${RELEASE_SERVER}/binary/guacamole-auth-jdbc-${RELEASE_SERVER}.tar.gz" -o "/root/guacamole-auth-jdbc-${RELEASE_SERVER}.tar.gz"
|
||||||
$STD tar -xf ~/guacamole-auth-jdbc-$RELEASE_SERVER.tar.gz
|
$STD tar -xf ~/guacamole-auth-jdbc-$RELEASE_SERVER.tar.gz
|
||||||
mv ~/guacamole-auth-jdbc-$RELEASE_SERVER/mysql/guacamole-auth-jdbc-mysql-$RELEASE_SERVER.jar /etc/guacamole/extensions/
|
mv ~/guacamole-auth-jdbc-$RELEASE_SERVER/mysql/guacamole-auth-jdbc-mysql-$RELEASE_SERVER.jar /etc/guacamole/extensions/
|
||||||
rm -rf ~/mysql-connector-j-9.3.0{,.tar.gz}
|
|
||||||
rm -rf ~/guacamole-auth-jdbc-$RELEASE_SERVER{,.tar.gz}
|
|
||||||
msg_ok "Setup Apache Guacamole"
|
msg_ok "Setup Apache Guacamole"
|
||||||
|
|
||||||
msg_info "Setup Database"
|
msg_info "Setup Database"
|
||||||
@@ -148,4 +146,10 @@ msg_ok "Setup Service"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf ~/mysql-connector-j-9.3.0{,.tar.gz}
|
||||||
|
rm -rf ~/guacamole-auth-jdbc-$RELEASE_SERVER{,.tar.gz}
|
||||||
|
$STD apt -y autoremove
|
||||||
|
$STD apt -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -69,4 +69,8 @@ msg_ok "Created Service"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ curl -fsSL "$TOMCAT_URL" -o "/tmp/tomcat.tar.gz"
|
|||||||
mkdir -p /opt/tomcat-$TOMCAT_VERSION
|
mkdir -p /opt/tomcat-$TOMCAT_VERSION
|
||||||
tar --strip-components=1 -xzf /tmp/tomcat.tar.gz -C /opt/tomcat-$TOMCAT_VERSION
|
tar --strip-components=1 -xzf /tmp/tomcat.tar.gz -C /opt/tomcat-$TOMCAT_VERSION
|
||||||
chown -R root:root /opt/tomcat-$TOMCAT_VERSION
|
chown -R root:root /opt/tomcat-$TOMCAT_VERSION
|
||||||
rm -f /tmp/tomcat.tar.gz
|
|
||||||
cat <<EOF >/etc/systemd/system/tomcat.service
|
cat <<EOF >/etc/systemd/system/tomcat.service
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Apache Tomcat Web Application Container
|
Description=Apache Tomcat Web Application Container
|
||||||
@@ -147,4 +147,9 @@ msg_ok "Tomcat $LATEST_VERSION installed and started"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -f /tmp/tomcat.tar.gz
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ update_os
|
|||||||
msg_info "Installing Apt-Cacher NG"
|
msg_info "Installing Apt-Cacher NG"
|
||||||
DEBIAN_FRONTEND=noninteractive $STD apt-get -o Dpkg::Options::="--force-confold" install -y apt-cacher-ng
|
DEBIAN_FRONTEND=noninteractive $STD apt-get -o Dpkg::Options::="--force-confold" install -y apt-cacher-ng
|
||||||
sed -i 's/# PassThroughPattern: .* # this would allow CONNECT to everything/PassThroughPattern: .*/' /etc/apt-cacher-ng/acng.conf
|
sed -i 's/# PassThroughPattern: .* # this would allow CONNECT to everything/PassThroughPattern: .*/' /etc/apt-cacher-ng/acng.conf
|
||||||
cat <<EOF >/etc/apt/apt.conf.d/00aptproxy.conf
|
cat << EOF >/etc/apt/apt.conf.d/00aptproxy.conf
|
||||||
Acquire::http::Proxy "http://localhost:3142";
|
Acquire::http::Proxy "http://localhost:3142";
|
||||||
EOF
|
EOF
|
||||||
systemctl enable -q --now apt-cacher-ng
|
systemctl enable -q --now apt-cacher-ng
|
||||||
@@ -24,4 +24,8 @@ msg_ok "Installed Apt-Cacher NG"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -91,4 +91,9 @@ msg_ok "Created Service"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt -y autoremove
|
||||||
|
$STD apt -y autoclean
|
||||||
|
$STD apt -y clean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -82,4 +82,8 @@ msg_ok "Created Service"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
|||||||
systemctl disable -q --now nginx
|
systemctl disable -q --now nginx
|
||||||
curl -fsSL "$(curl -fsSL https://api.github.com/repos/mayswind/ariang/releases/latest | grep download | grep AllInOne.zip | cut -d\" -f4)" -o $(basename "$(curl -fsSL https://api.github.com/repos/mayswind/ariang/releases/latest | grep download | grep AllInOne.zip | cut -d\" -f4)")
|
curl -fsSL "$(curl -fsSL https://api.github.com/repos/mayswind/ariang/releases/latest | grep download | grep AllInOne.zip | cut -d\" -f4)" -o $(basename "$(curl -fsSL https://api.github.com/repos/mayswind/ariang/releases/latest | grep download | grep AllInOne.zip | cut -d\" -f4)")
|
||||||
$STD unzip AriaNg-*-AllInOne.zip -d /var/www
|
$STD unzip AriaNg-*-AllInOne.zip -d /var/www
|
||||||
rm AriaNg-*-AllInOne.zip
|
|
||||||
rm /etc/nginx/sites-enabled/*
|
rm /etc/nginx/sites-enabled/*
|
||||||
cat <<EOF >/etc/nginx/conf.d/ariang.conf
|
cat <<EOF >/etc/nginx/conf.d/ariang.conf
|
||||||
server {
|
server {
|
||||||
@@ -85,4 +84,9 @@ msg_ok "Created Service"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm AriaNg-*-AllInOne.zip
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -88,7 +88,6 @@ curl -fsSL "$DOWNLOAD_URL" -o "$temp_file"
|
|||||||
mkdir -p /opt/asterisk
|
mkdir -p /opt/asterisk
|
||||||
tar zxf "$temp_file" --strip-components=1 -C /opt/asterisk
|
tar zxf "$temp_file" --strip-components=1 -C /opt/asterisk
|
||||||
cd /opt/asterisk
|
cd /opt/asterisk
|
||||||
rm -f "$temp_file"
|
|
||||||
msg_ok "Downloaded Asterisk ($RELEASE)"
|
msg_ok "Downloaded Asterisk ($RELEASE)"
|
||||||
|
|
||||||
msg_info "Installing Asterisk"
|
msg_info "Installing Asterisk"
|
||||||
@@ -106,5 +105,10 @@ msg_ok "Installed Asterisk"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -f "$temp_file"
|
||||||
|
$STD apt -y autoremove
|
||||||
|
$STD apt -y autoclean
|
||||||
|
$STD apt -y clean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -28,4 +28,8 @@ msg_ok "Setup audiobookshelf"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -66,4 +66,8 @@ msg_ok "Authelia Setup completed"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -46,4 +46,8 @@ msg_ok "Created Service"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -15,34 +15,34 @@ update_os
|
|||||||
|
|
||||||
msg_info "Installing dependencies"
|
msg_info "Installing dependencies"
|
||||||
$STD apt-get install -y --no-install-recommends \
|
$STD apt-get install -y --no-install-recommends \
|
||||||
python3-dev \
|
python3-dev \
|
||||||
sqlite3 \
|
sqlite3 \
|
||||||
build-essential \
|
build-essential \
|
||||||
libldap2-dev \
|
libldap2-dev \
|
||||||
libssl-dev \
|
libssl-dev \
|
||||||
libsasl2-dev \
|
libsasl2-dev \
|
||||||
imagemagick \
|
imagemagick \
|
||||||
ghostscript \
|
ghostscript \
|
||||||
libmagic1 \
|
libmagic1 \
|
||||||
libxi6 \
|
libxi6 \
|
||||||
libxslt1.1 \
|
libxslt1.1 \
|
||||||
libxtst6 \
|
libxtst6 \
|
||||||
libxrandr2 \
|
libxrandr2 \
|
||||||
libxkbfile1 \
|
libxkbfile1 \
|
||||||
libxcomposite1 \
|
libxcomposite1 \
|
||||||
libopengl0 \
|
libopengl0 \
|
||||||
libnss3 \
|
libnss3 \
|
||||||
libxkbcommon0 \
|
libxkbcommon0 \
|
||||||
libegl1 \
|
libegl1 \
|
||||||
libxdamage1 \
|
libxdamage1 \
|
||||||
libgl1 \
|
libgl1 \
|
||||||
libglx-mesa0 \
|
libglx-mesa0 \
|
||||||
xz-utils \
|
xz-utils \
|
||||||
xdg-utils \
|
xdg-utils \
|
||||||
inotify-tools \
|
inotify-tools \
|
||||||
binutils \
|
binutils \
|
||||||
unrar-free \
|
unrar-free \
|
||||||
zip
|
zip
|
||||||
msg_ok "Installed dependencies"
|
msg_ok "Installed dependencies"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "kepubify" "pgaskin/kepubify" "singlefile" "latest" "/usr/bin" "kepubify-linux-64bit"
|
fetch_and_deploy_gh_release "kepubify" "pgaskin/kepubify" "singlefile" "latest" "/usr/bin" "kepubify-linux-64bit"
|
||||||
@@ -323,4 +323,8 @@ msg_ok "Created scripts and service files"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -97,4 +97,8 @@ msg_ok "Configured NGINX"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ mkdir -p /opt/backrest/{bin,config,data}
|
|||||||
curl -fsSL "https://github.com/garethgeorge/backrest/releases/download/v${RELEASE}/backrest_Linux_x86_64.tar.gz" -o "$temp_file"
|
curl -fsSL "https://github.com/garethgeorge/backrest/releases/download/v${RELEASE}/backrest_Linux_x86_64.tar.gz" -o "$temp_file"
|
||||||
tar xzf $temp_file -C /opt/backrest/bin
|
tar xzf $temp_file -C /opt/backrest/bin
|
||||||
chmod +x /opt/backrest/bin/backrest
|
chmod +x /opt/backrest/bin/backrest
|
||||||
rm -f "$temp_file"
|
|
||||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||||
msg_ok "Installed Backrest"
|
msg_ok "Installed Backrest"
|
||||||
|
|
||||||
@@ -47,5 +46,9 @@ msg_ok "Created Service"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -f "$temp_file"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -25,10 +25,10 @@ DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)
|
|||||||
$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';"
|
$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';"
|
||||||
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER TEMPLATE template0;"
|
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER TEMPLATE template0;"
|
||||||
{
|
{
|
||||||
echo "Baikal Credentials"
|
echo "Baikal Credentials"
|
||||||
echo "Baikal Database User: $DB_USER"
|
echo "Baikal Database User: $DB_USER"
|
||||||
echo "Baikal Database Password: $DB_PASS"
|
echo "Baikal Database Password: $DB_PASS"
|
||||||
echo "Baikal Database Name: $DB_NAME"
|
echo "Baikal Database Name: $DB_NAME"
|
||||||
} >>~/baikal.creds
|
} >>~/baikal.creds
|
||||||
msg_ok "Set up PostgreSQL Database"
|
msg_ok "Set up PostgreSQL Database"
|
||||||
|
|
||||||
@@ -81,4 +81,8 @@ msg_ok "Created Service"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -17,10 +17,10 @@ update_os
|
|||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
redis-server \
|
redis-server \
|
||||||
nginx \
|
nginx \
|
||||||
lsb-release \
|
lsb-release \
|
||||||
libvips
|
libvips
|
||||||
#php-{ffi,opcache,redis,zip,pdo-sqlite,bcmath,pdo,curl,dom,fpm}
|
#php-{ffi,opcache,redis,zip,pdo-sqlite,bcmath,pdo,curl,dom,fpm}
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
@@ -41,14 +41,14 @@ msg_info "Configure MeiliSearch"
|
|||||||
curl -fsSL https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml -o /etc/meilisearch.toml
|
curl -fsSL https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml -o /etc/meilisearch.toml
|
||||||
MASTER_KEY=$(openssl rand -base64 12)
|
MASTER_KEY=$(openssl rand -base64 12)
|
||||||
sed -i \
|
sed -i \
|
||||||
-e 's|^env =.*|env = "production"|' \
|
-e 's|^env =.*|env = "production"|' \
|
||||||
-e "s|^# master_key =.*|master_key = \"$MASTER_KEY\"|" \
|
-e "s|^# master_key =.*|master_key = \"$MASTER_KEY\"|" \
|
||||||
-e 's|^db_path =.*|db_path = "/var/lib/meilisearch/data"|' \
|
-e 's|^db_path =.*|db_path = "/var/lib/meilisearch/data"|' \
|
||||||
-e 's|^dump_dir =.*|dump_dir = "/var/lib/meilisearch/dumps"|' \
|
-e 's|^dump_dir =.*|dump_dir = "/var/lib/meilisearch/dumps"|' \
|
||||||
-e 's|^snapshot_dir =.*|snapshot_dir = "/var/lib/meilisearch/snapshots"|' \
|
-e 's|^snapshot_dir =.*|snapshot_dir = "/var/lib/meilisearch/snapshots"|' \
|
||||||
-e 's|^# no_analytics = true|no_analytics = true|' \
|
-e 's|^# no_analytics = true|no_analytics = true|' \
|
||||||
-e 's|^http_addr =.*|http_addr = "127.0.0.1:7700"|' \
|
-e 's|^http_addr =.*|http_addr = "127.0.0.1:7700"|' \
|
||||||
/etc/meilisearch.toml
|
/etc/meilisearch.toml
|
||||||
msg_ok "Configured MeiliSearch"
|
msg_ok "Configured MeiliSearch"
|
||||||
|
|
||||||
msg_info "Creating MeiliSearch service"
|
msg_info "Creating MeiliSearch service"
|
||||||
@@ -77,11 +77,11 @@ MeiliSearch_API_KEY=$(curl -s -X GET 'http://127.0.0.1:7700/keys' -H "Authorizat
|
|||||||
MeiliSearch_API_KEY_UID=$(curl -s -X GET 'http://127.0.0.1:7700/keys' -H "Authorization: Bearer $MASTER_KEY" | grep -o '"uid":"[^"]*"' | head -n 1 | sed 's/"uid":"//;s/"//')
|
MeiliSearch_API_KEY_UID=$(curl -s -X GET 'http://127.0.0.1:7700/keys' -H "Authorization: Bearer $MASTER_KEY" | grep -o '"uid":"[^"]*"' | head -n 1 | sed 's/"uid":"//;s/"//')
|
||||||
LOCAL_IP=$(hostname -I | awk '{print $1}')
|
LOCAL_IP=$(hostname -I | awk '{print $1}')
|
||||||
sed -i -e "s|^APP_URL=|APP_URL=http://${LOCAL_IP}/bar/|" \
|
sed -i -e "s|^APP_URL=|APP_URL=http://${LOCAL_IP}/bar/|" \
|
||||||
-e "s|^MEILISEARCH_HOST=|MEILISEARCH_HOST=http://127.0.0.1:7700|" \
|
-e "s|^MEILISEARCH_HOST=|MEILISEARCH_HOST=http://127.0.0.1:7700|" \
|
||||||
-e "s|^MEILISEARCH_KEY=|MEILISEARCH_KEY=${MASTER_KEY}|" \
|
-e "s|^MEILISEARCH_KEY=|MEILISEARCH_KEY=${MASTER_KEY}|" \
|
||||||
-e "s|^MEILISEARCH_API_KEY=|MEILISEARCH_API_KEY=${MeiliSearch_API_KEY}|" \
|
-e "s|^MEILISEARCH_API_KEY=|MEILISEARCH_API_KEY=${MeiliSearch_API_KEY}|" \
|
||||||
-e "s|^MEILISEARCH_API_KEY_UID=|MEILISEARCH_API_KEY_UID=${MeiliSearch_API_KEY_UID}|" \
|
-e "s|^MEILISEARCH_API_KEY_UID=|MEILISEARCH_API_KEY_UID=${MeiliSearch_API_KEY_UID}|" \
|
||||||
/opt/bar-assistant/.env
|
/opt/bar-assistant/.env
|
||||||
$STD composer install --no-interaction
|
$STD composer install --no-interaction
|
||||||
$STD php artisan key:generate
|
$STD php artisan key:generate
|
||||||
touch storage/bar-assistant/database.ba3.sqlite
|
touch storage/bar-assistant/database.ba3.sqlite
|
||||||
@@ -190,4 +190,8 @@ msg_ok "Created Service"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -49,4 +49,8 @@ msg_ok "Created Service"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -45,4 +45,9 @@ msg_ok "Created & started service"
|
|||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
cleanup_lxc
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt -y autoremove
|
||||||
|
$STD apt -y autoclean
|
||||||
|
$STD apt -y clean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user