Compare commits

..

2 Commits

127 changed files with 1566 additions and 2557 deletions

View File

@@ -10,42 +10,6 @@
> [!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-10-09
## 2025-10-08
### 🚀 Updated Scripts
- MyIP: Increase resources [@tremor021](https://github.com/tremor021) ([#8199](https://github.com/community-scripts/ProxmoxVE/pull/8199))
- #### 🐞 Bug Fixes
- Wireguard: Fix sysctl for Trixie [@tremor021](https://github.com/tremor021) ([#8209](https://github.com/community-scripts/ProxmoxVE/pull/8209))
- Update prompt for Stirling-PDF login option [@EarMaster](https://github.com/EarMaster) ([#8196](https://github.com/community-scripts/ProxmoxVE/pull/8196))
- #### 🔧 Refactor
- Refactor: Fixed incorrect tag variables in several scripts [@tremor021](https://github.com/tremor021) ([#8182](https://github.com/community-scripts/ProxmoxVE/pull/8182))
- ZeroTier One: Fix install output [@tremor021](https://github.com/tremor021) ([#8179](https://github.com/community-scripts/ProxmoxVE/pull/8179))
## 2025-10-07
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Alpine-Caddy: remove functions [@MickLesk](https://github.com/MickLesk) ([#8177](https://github.com/community-scripts/ProxmoxVE/pull/8177))
- Palmr: Fix NodeJS setup [@tremor021](https://github.com/tremor021) ([#8173](https://github.com/community-scripts/ProxmoxVE/pull/8173))
- GLPI: Fix UNBOUND variable [@tremor021](https://github.com/tremor021) ([#8167](https://github.com/community-scripts/ProxmoxVE/pull/8167))
- BookLore: upgrade to Java 25/Gradle 9 [@vhsdream](https://github.com/vhsdream) ([#8165](https://github.com/community-scripts/ProxmoxVE/pull/8165))
- Alpine-Wireguard: Fix for update failing in normal mode [@tremor021](https://github.com/tremor021) ([#8160](https://github.com/community-scripts/ProxmoxVE/pull/8160))
- #### ✨ New Features
- Bump W-V Scripts to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#8176](https://github.com/community-scripts/ProxmoxVE/pull/8176))
- Bump Z-Y Scripts to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#8174](https://github.com/community-scripts/ProxmoxVE/pull/8174))
- Docmost: Fixes and updates [@tremor021](https://github.com/tremor021) ([#8158](https://github.com/community-scripts/ProxmoxVE/pull/8158))
## 2025-10-06 ## 2025-10-06
### 🚀 Updated Scripts ### 🚀 Updated Scripts
@@ -61,12 +25,6 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
- Navidrome: bump to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#8139](https://github.com/community-scripts/ProxmoxVE/pull/8139)) - Navidrome: bump to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#8139](https://github.com/community-scripts/ProxmoxVE/pull/8139))
- pve-scripts-local: add update function [@MickLesk](https://github.com/MickLesk) ([#8138](https://github.com/community-scripts/ProxmoxVE/pull/8138)) - pve-scripts-local: add update function [@MickLesk](https://github.com/MickLesk) ([#8138](https://github.com/community-scripts/ProxmoxVE/pull/8138))
### 🌐 Website
- #### 📝 Script Information
- Update config_path for Zigbee2MQTT configuration [@MickLesk](https://github.com/MickLesk) ([#8153](https://github.com/community-scripts/ProxmoxVE/pull/8153))
## 2025-10-05 ## 2025-10-05
### 🚀 Updated Scripts ### 🚀 Updated Scripts

View File

@@ -21,6 +21,8 @@ catch_errors
function update_script() { function update_script() {
header_info header_info
check_container_storage
check_container_resources
if [[ ! -d /etc/caddy ]]; then if [[ ! -d /etc/caddy ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit

View File

@@ -32,7 +32,7 @@ function update_script() {
if [[ -d /etc/wgdashboard/src ]]; then if [[ -d /etc/wgdashboard/src ]]; then
msg_info "update WGDashboard" msg_info "update WGDashboard"
cd /etc/wgdashboard/src cd /etc/wgdashboard/src
echo "y" | ./wgd.sh update >/dev/null 2>&1 $STD echo "y" | ./wgd.sh update
$STD ./wgd.sh start $STD ./wgd.sh start
msg_ok "WGDashboard updated" msg_ok "WGDashboard updated"
fi fi

View File

@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Source: https://www.authelia.com/ # Source: https://www.authelia.com/
APP="Authelia" APP="Authelia"
var_tags="${var_tags:-authenticator}" TAGS=""
var_cpu="${var_cpu:-1}" var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}" var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}" var_disk="${var_disk:-2}"
@@ -25,7 +25,7 @@ function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -d /etc/authelia/ ]]; then if [[ ! -d "/etc/authelia/" ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi

View File

@@ -45,8 +45,6 @@ function update_script() {
$STD npm run build --configuration=production $STD npm run build --configuration=production
msg_ok "Built Frontend" msg_ok "Built Frontend"
JAVA_VERSION="25" setup_java
msg_info "Building Backend" msg_info "Building Backend"
cd /opt/booklore/booklore-api cd /opt/booklore/booklore-api
APP_VERSION=$(curl -fsSL https://api.github.com/repos/booklore-app/BookLore/releases/latest | yq '.tag_name' | sed 's/^v//') APP_VERSION=$(curl -fsSL https://api.github.com/repos/booklore-app/BookLore/releases/latest | yq '.tag_name' | sed 's/^v//')

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-3}"
var_ram="${var_ram:-4096}" var_ram="${var_ram:-4096}"
var_disk="${var_disk:-8}" var_disk="${var_disk:-8}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
header_info "$APP" header_info "$APP"
variables variables

View File

@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Source: https://github.com/excalidraw/excalidraw # Source: https://github.com/excalidraw/excalidraw
APP="Excalidraw" APP="Excalidraw"
var_tags="${var_tags:-diagrams}" TAGS="diagrams"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-3072}" var_ram="${var_ram:-3072}"
var_disk="${var_disk:-10}" var_disk="${var_disk:-10}"

View File

@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Source: https://graylog.org/ # Source: https://graylog.org/
APP="Graylog" APP="Graylog"
var_tags="${var_tags:-logging}" TAGS="logging"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-8192}" var_ram="${var_ram:-8192}"
var_disk="${var_disk:-30}" var_disk="${var_disk:-30}"

View File

@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Source: https://github.com/heiher/hev-socks5-server # Source: https://github.com/heiher/hev-socks5-server
APP="hev-socks5-server" APP="hev-socks5-server"
var_tags="${var_tags:-proxy;socks5}" TAGS="proxy,socks5"
var_cpu="${var_cpu:-1}" var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}" var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}" var_disk="${var_disk:-2}"

View File

@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Source: https://github.com/Kometa-Team/Kometa # Source: https://github.com/Kometa-Team/Kometa
APP="Kometa" APP="Kometa"
var_tags="${var_tags:-media;streaming}" TAGS="media;streaming"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}" var_ram="${var_ram:-4096}"
var_disk="${var_disk:-8}" var_disk="${var_disk:-8}"

View File

@@ -7,8 +7,8 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
APP="MyIP" APP="MyIP"
var_tags="${var_tags:-network}" var_tags="${var_tags:-network}"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-512}"
var_disk="${var_disk:-4}" var_disk="${var_disk:-4}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-13}"

View File

@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Source: https://github.com/rustdesk/rustdesk-server # Source: https://github.com/rustdesk/rustdesk-server
APP="RustDesk Server" APP="RustDesk Server"
var_tags="${var_tags:-remote-desktop}" TAGS="remote-desktop"
var_cpu="${var_cpu:-1}" var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}" var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}" var_disk="${var_disk:-2}"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-6144}" var_ram="${var_ram:-6144}"
var_disk="${var_disk:-20}" var_disk="${var_disk:-20}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -42,14 +42,14 @@ function update_script() {
3>&1 1>&2 2>&3) 3>&1 1>&2 2>&3)
if [ "$UPD" == "1" ]; then if [ "$UPD" == "1" ]; then
msg_info "Stopping Service" msg_info "Stopping Vaultwarden"
systemctl stop vaultwarden systemctl stop vaultwarden.service
msg_ok "Stopped Service" msg_ok "Stopped Vaultwarden"
msg_info "Updating VaultWarden to $VAULT (Patience)" msg_info "Updating VaultWarden to $VAULT (Patience)"
cd ~ && rm -rf vaultwarden cd ~ && rm -rf vaultwarden
$STD git clone https://github.com/dani-garcia/vaultwarden $STD git clone https://github.com/dani-garcia/vaultwarden
cd vaultwarden || exit cd vaultwarden
$STD cargo build --features "sqlite,mysql,postgresql" --release $STD cargo build --features "sqlite,mysql,postgresql" --release
DIR=/usr/bin/vaultwarden DIR=/usr/bin/vaultwarden
if [ -d "$DIR" ]; then if [ -d "$DIR" ]; then
@@ -63,17 +63,17 @@ function update_script() {
cd ~ && rm -rf vaultwarden cd ~ && rm -rf vaultwarden
msg_ok "Cleaned" msg_ok "Cleaned"
msg_info "Starting Service" msg_info "Starting Vaultwarden"
systemctl start vaultwarden systemctl start vaultwarden.service
msg_ok "Started Service" msg_ok "Started Vaultwarden"
msg_ok "$VAULT Update Successful" msg_ok "$VAULT Update Successful"
exit exit
fi fi
if [ "$UPD" == "2" ]; then if [ "$UPD" == "2" ]; then
msg_info "Stopping Service" msg_info "Stopping Vaultwarden"
systemctl stop vaultwarden systemctl stop vaultwarden.service
msg_ok "Stopped Service" msg_ok "Stopped Vaultwarden"
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
@@ -84,9 +84,9 @@ function update_script() {
rm bw_web_"$WVRELEASE".tar.gz rm bw_web_"$WVRELEASE".tar.gz
msg_ok "Cleaned" msg_ok "Cleaned"
msg_info "Starting Service" msg_info "Starting Vaultwarden"
systemctl start vaultwarden systemctl start vaultwarden.service
msg_ok "Started Service" msg_ok "Started Vaultwarden"
msg_ok "$WVRELEASE Update Successful" msg_ok "$WVRELEASE Update Successful"
exit exit
fi fi

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}" var_ram="${var_ram:-2048}"
var_disk="${var_disk:-16}" var_disk="${var_disk:-16}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -29,10 +29,10 @@ function update_script() {
fi fi
if check_for_gh_release "victoriametrics" "VictoriaMetrics/VictoriaMetrics"; then if check_for_gh_release "victoriametrics" "VictoriaMetrics/VictoriaMetrics"; then
msg_info "Stopping Service" msg_info "Stopping $APP"
systemctl stop victoriametrics systemctl stop victoriametrics
[[ -f /etc/systemd/system/victoriametrics-logs.service ]] && systemctl stop victoriametrics-logs [[ -f /etc/systemd/system/victoriametrics-logs.service ]] && systemctl stop victoriametrics-logs
msg_ok "Stopped Service" msg_ok "Stopped $APP"
victoriametrics_filename=$(curl -fsSL "https://api.github.com/repos/VictoriaMetrics/VictoriaMetrics/releases/latest" | victoriametrics_filename=$(curl -fsSL "https://api.github.com/repos/VictoriaMetrics/VictoriaMetrics/releases/latest" |
jq -r '.assets[].name' | jq -r '.assets[].name' |
@@ -50,11 +50,11 @@ function update_script() {
fi fi
chmod +x /opt/victoriametrics/* chmod +x /opt/victoriametrics/*
msg_info "Starting Service" msg_info "Starting $APP"
systemctl start victoriametrics systemctl start victoriametrics
[[ -f /etc/systemd/system/victoriametrics-logs.service ]] && systemctl start victoriametrics-logs [[ -f /etc/systemd/system/victoriametrics-logs.service ]] && systemctl start victoriametrics-logs
msg_ok "Started Service" msg_ok "Started $APP"
msg_ok "Updated Successfully!" msg_ok "Updated Successfully"
fi fi
exit exit
} }

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}" var_disk="${var_disk:-4}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -29,25 +29,25 @@ function update_script() {
fi fi
RELEASE=$(curl -fsSL https://dl.vikunja.io/vikunja/ | grep -oP 'href="/vikunja/\K[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1) RELEASE=$(curl -fsSL https://dl.vikunja.io/vikunja/ | grep -oP 'href="/vikunja/\K[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1)
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Service" msg_info "Stopping ${APP}"
systemctl stop vikunja systemctl stop vikunja
msg_ok "Stopped Service" msg_ok "Stopped ${APP}"
msg_info "Updating ${APP} to ${RELEASE}" msg_info "Updating ${APP} to ${RELEASE}"
cd /opt || exit cd /opt
rm -rf /opt/vikunja/vikunja rm -rf /opt/vikunja/vikunja
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
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 ${APP}"
systemctl start vikunja systemctl start vikunja
msg_ok "Started Service" msg_ok "Started ${APP}"
msg_info "Cleaning Up" msg_info "Cleaning Up"
rm -rf /opt/vikunja-"$RELEASE"-amd64.deb rm -rf /opt/vikunja-$RELEASE-amd64.deb
msg_ok "Cleaned" msg_ok "Cleaned"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
else else

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-1024}"
var_disk="${var_disk:-5}" var_disk="${var_disk:-5}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -35,9 +35,10 @@ function update_script() {
mv /opt/wallos/images/uploads/logos /opt/logos/ mv /opt/wallos/images/uploads/logos /opt/logos/
msg_ok "Backup created" msg_ok "Backup created"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "wallos" "ellite/Wallos" "tarball" rm -rf /opt/wallos
fetch_and_deploy_gh_release "wallos" "ellite/Wallos" "tarball"
msg_info "Configuring Wallos" msg_info "Configuring ${APP}"
rm -rf /opt/wallos/db/wallos.empty.db rm -rf /opt/wallos/db/wallos.empty.db
mv /opt/wallos.db /opt/wallos/db/wallos.db mv /opt/wallos.db /opt/wallos/db/wallos.db
mv /opt/logos/* /opt/wallos/images/uploads/logos mv /opt/logos/* /opt/wallos/images/uploads/logos
@@ -48,12 +49,12 @@ function update_script() {
chmod -R 755 /opt/wallos chmod -R 755 /opt/wallos
mkdir -p /var/log/cron mkdir -p /var/log/cron
$STD curl http://localhost/endpoints/db/migrate.php $STD curl http://localhost/endpoints/db/migrate.php
msg_ok "Configured Wallos" msg_ok "Configured ${APP}"
msg_info "Reload Apache2" msg_info "Reload Apache2"
systemctl reload apache2 systemctl reload apache2
msg_ok "Apache2 Reloaded" msg_ok "Apache2 Reloaded"
msg_ok "Updated Successfully!" msg_ok "Updated Successfully"
fi fi
exit exit
} }

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}" var_disk="${var_disk:-4}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -28,8 +28,8 @@ function update_script() {
exit exit
fi fi
if ! [[ $(dpkg -s zstd 2>/dev/null) ]]; then if ! [[ $(dpkg -s zstd 2>/dev/null) ]]; then
$STD apt update $STD apt-get update
$STD apt install -y zstd $STD apt-get install -y zstd
fi fi
RELEASE=$(curl -fsSL https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') RELEASE=$(curl -fsSL https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
# Dirty-Fix 03/2025 for missing APP_version.txt on old installations, set to pre-latest release # Dirty-Fix 03/2025 for missing APP_version.txt on old installations, set to pre-latest release
@@ -69,7 +69,7 @@ EOF
msg_info "Updating Wastebin" msg_info "Updating Wastebin"
temp_file=$(mktemp) temp_file=$(mktemp)
curl -fsSL "https://github.com/matze/wastebin/releases/download/${RELEASE}/wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst" -o "$temp_file" curl -fsSL "https://github.com/matze/wastebin/releases/download/${RELEASE}/wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst" -o "$temp_file"
tar -xf "$temp_file" tar -xf $temp_file
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
@@ -81,7 +81,7 @@ EOF
msg_ok "Started Wastebin" msg_ok "Started Wastebin"
msg_info "Cleaning Up" msg_info "Cleaning Up"
rm -f "$temp_file" rm -f $temp_file
msg_ok "Cleanup Completed" msg_ok "Cleanup Completed"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
else else

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}" var_disk="${var_disk:-4}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -29,29 +29,29 @@ function update_script() {
fi fi
if check_for_gh_release "watcharr" "sbondCo/Watcharr"; then if check_for_gh_release "watcharr" "sbondCo/Watcharr"; then
msg_info "Stopping Service" msg_info "Stopping $APP"
systemctl stop watcharr systemctl stop watcharr
msg_ok "Stopped Service" msg_ok "Stopped $APP"
rm -f /opt/watcharr/server/watcharr rm -f /opt/watcharr/server/watcharr
rm -rf /opt/watcharr/server/ui rm -rf /opt/watcharr/server/ui
fetch_and_deploy_gh_release "watcharr" "sbondCo/Watcharr" "tarball" fetch_and_deploy_gh_release "watcharr" "sbondCo/Watcharr" "tarball"
msg_info "Updating Watcharr" msg_info "Updating $APP"
cd /opt/watcharr || exit cd /opt/watcharr
export GOOS=linux export GOOS=linux
$STD npm i $STD npm i
$STD npm run build $STD npm run build
mv ./build ./server/ui mv ./build ./server/ui
cd server || exit cd server
$STD go mod download $STD go mod download
$STD go build -o ./watcharr $STD go build -o ./watcharr
msg_ok "Updated Watcharr" msg_ok "Updated $APP"
msg_info "Starting Service" msg_info "Starting $APP"
systemctl start watcharr systemctl start watcharr
msg_ok "Started Service" msg_ok "Started $APP"
msg_ok "Update Successfully!" msg_ok "Update Successfully"
fi fi
exit exit
} }

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}" var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}" var_disk="${var_disk:-2}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -30,7 +30,7 @@ function update_script() {
if check_for_gh_release "watchyourlan" "aceberg/WatchYourLAN"; then if check_for_gh_release "watchyourlan" "aceberg/WatchYourLAN"; then
msg_info "Stopping service" msg_info "Stopping service"
systemctl stop watchyourlan systemctl stop watchyourlan.service
msg_ok "Service stopped" msg_ok "Service stopped"
cp -R /data/config.yaml ~/config.yaml cp -R /data/config.yaml ~/config.yaml
@@ -45,7 +45,7 @@ function update_script() {
msg_info "Starting service" msg_info "Starting service"
systemctl enable -q --now watchyourlan systemctl enable -q --now watchyourlan
msg_ok "Service started" msg_ok "Service started"
msg_ok "Updated Successfully!" msg_ok "Updated Successfully"
fi fi
exit exit
} }

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}" var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}" var_disk="${var_disk:-2}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -45,7 +45,7 @@ function update_script() {
rm -rf /opt/wavelog rm -rf /opt/wavelog
fetch_and_deploy_gh_release "wavelog" "wavelog/wavelog" "tarball" fetch_and_deploy_gh_release "wavelog" "wavelog/wavelog" "tarball"
msg_info "Updating Wavelog" msg_info "Updating ${APP}"
rm -rf /opt/wavelog/install rm -rf /opt/wavelog/install
mv /opt/config.php /opt/wavelog/application/config/config.php mv /opt/config.php /opt/wavelog/application/config/config.php
mv /opt/database.php /opt/wavelog/application/config/database.php mv /opt/database.php /opt/wavelog/application/config/database.php
@@ -57,12 +57,12 @@ function update_script() {
chown -R www-data:www-data /opt/wavelog/ chown -R www-data:www-data /opt/wavelog/
find /opt/wavelog/ -type d -exec chmod 755 {} \; find /opt/wavelog/ -type d -exec chmod 755 {} \;
find /opt/wavelog/ -type f -exec chmod 664 {} \; find /opt/wavelog/ -type f -exec chmod 664 {} \;
msg_ok "Updated Wavelog" msg_ok "Updated ${APP}"
msg_info "Starting Services" msg_info "Starting Services"
systemctl start apache2 systemctl start apache2
msg_ok "Started Services" msg_ok "Started Services"
msg_ok "Updated Successfully!" msg_ok "Updated Successfully"
fi fi
exit exit
} }

View File

@@ -6,12 +6,12 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Source: https://github.com/Lissy93/web-check # Source: https://github.com/Lissy93/web-check
APP="web-check" APP="web-check"
var_tags="${var_tags:-network;analysis}" TAGS="network;analysis"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}" var_ram="${var_ram:-2048}"
var_disk="${var_disk:-12}" var_disk="${var_disk:-12}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -27,7 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
msg_error "Currently we don't provide an update function for this App." msg_error "Currently we don't provide an update function for this ${APP}."
exit exit
} }

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-1024}"
var_disk="${var_disk:-6}" var_disk="${var_disk:-6}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -29,20 +29,20 @@ function update_script() {
fi fi
RELEASE=$(curl -fsSL https://api.github.com/repos/wger-project/wger/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}') RELEASE=$(curl -fsSL https://api.github.com/repos/wger-project/wger/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Stopping Service" msg_info "Stopping $APP"
systemctl stop wger systemctl stop wger
msg_ok "Stopped Service" msg_ok "Stopped $APP"
msg_info "Updating $APP to v${RELEASE}" msg_info "Updating $APP to v${RELEASE}"
temp_file=$(mktemp) temp_file=$(mktemp)
curl -fsSL "https://github.com/wger-project/wger/archive/refs/tags/$RELEASE.tar.gz" -o "$temp_file" curl -fsSL "https://github.com/wger-project/wger/archive/refs/tags/$RELEASE.tar.gz" -o "$temp_file"
tar xzf "$temp_file" tar xzf "$temp_file"
cp -rf wger-"$RELEASE"/* /home/wger/src cp -rf wger-"$RELEASE"/* /home/wger/src
cd /home/wger/src || exit cd /home/wger/src
$STD python3 manage.py migrate python3 manage.py migrate &>/dev/null
$STD yarn install yarn install &>/dev/null
$STD yarn build:css:sass yarn build:css:sass &>/dev/null
$STD python3 manage.py collectstatic --noinput python3 manage.py collectstatic --noinput &>/dev/null
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}"
@@ -53,7 +53,8 @@ function update_script() {
msg_info "Cleaning Up" msg_info "Cleaning Up"
rm -rf "$temp_file" rm -rf "$temp_file"
msg_ok "Cleanup Completed" msg_ok "Cleanup Completed"
msg_ok "Updated Successfully!"
msg_ok "Update Successful"
else else
msg_ok "No update required. ${APP} is already at v${RELEASE}" msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi fi

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}" var_disk="${var_disk:-4}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -27,11 +27,10 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
msg_info "Updating Whisparr" msg_info "Updating $APP LXC"
$STD apt update $STD apt-get update
$STD apt -y upgrade $STD apt-get -y upgrade
msg_ok "Updated Whisparr" msg_ok "Updated $APP LXC"
msg_ok "Updated Successfully!"
exit exit
} }

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}" var_ram="${var_ram:-2048}"
var_disk="${var_disk:-10}" var_disk="${var_disk:-10}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -27,9 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
NODE_VERSION="22" NODE_MODULE="yarn@latest,node-gyp" setup_nodejs
NODE_VERSION="22" NODE_MODULE="yarn,node-gyp" setup_nodejs
if check_for_gh_release "wikijs" "requarks/wiki"; then if check_for_gh_release "wikijs" "requarks/wiki"; then
msg_info "Verifying whether ${APP}' new release is v3.x+ and current install uses SQLite." msg_info "Verifying whether ${APP}' new release is v3.x+ and current install uses SQLite."
SQLITE_INSTALL=$([ -f /opt/wikijs/db.sqlite ] && echo "true" || echo "false") SQLITE_INSTALL=$([ -f /opt/wikijs/db.sqlite ] && echo "true" || echo "false")
@@ -39,9 +37,9 @@ function update_script() {
fi fi
msg_ok "There is an update path available for ${APP}" msg_ok "There is an update path available for ${APP}"
msg_info "Stopping Service" msg_info "Stopping ${APP}"
systemctl stop wikijs systemctl stop wikijs
msg_ok "Stopped Service" msg_ok "Stopped ${APP}"
msg_info "Backing up Data" msg_info "Backing up Data"
mkdir /opt/wikijs-backup mkdir /opt/wikijs-backup
@@ -49,21 +47,22 @@ function update_script() {
cp -R /opt/wikijs/{config.yml,/data} /opt/wikijs-backup cp -R /opt/wikijs/{config.yml,/data} /opt/wikijs-backup
msg_ok "Backed up Data" msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "wikijs" "requarks/wiki" "prebuild" "latest" "/opt/wikijs" "wiki-js.tar.gz" rm -rf /opt/wikijs/*
fetch_and_deploy_gh_release "wikijs" "requarks/wiki" "prebuild" "latest" "/opt/wikijs" "wiki-js.tar.gz"
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
msg_ok "Restored Data" msg_ok "Restored Data"
msg_info "Starting Service" msg_info "Starting ${APP}"
systemctl start wikijs systemctl start wikijs
msg_ok "Started Service" msg_ok "Started ${APP}"
msg_info "Cleaning Up" msg_info "Cleaning Up"
rm -rf /opt/wikijs-backup rm -rf /opt/wikijs-backup
msg_ok "Cleanup Completed" msg_ok "Cleanup Completed"
msg_ok "Updated Successfully!" msg_ok "Updated Successfully"
fi fi
exit exit
} }

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}" var_ram="${var_ram:-512}"
var_disk="${var_disk:-4}" var_disk="${var_disk:-4}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
var_tun="${var_tun:-1}" var_tun="${var_tun:-1}"
@@ -30,19 +30,18 @@ function update_script() {
fi fi
if ! dpkg -s git >/dev/null 2>&1; then if ! dpkg -s git >/dev/null 2>&1; then
msg_info "Installing git" msg_info "Installing git"
$STD apt update $STD apt-get update
$STD apt install -y git $STD apt-get install -y git
msg_ok "Installed git" msg_ok "Installed git"
fi fi
apt update apt-get update
apt -y upgrade apt-get -y upgrade
if [[ -d /etc/wgdashboard ]]; then if [[ -d /etc/wgdashboard ]]; then
sleep 2 sleep 2
cd /etc/wgdashboard/src || exit cd /etc/wgdashboard/src
./wgd.sh update ./wgd.sh update
./wgd.sh start ./wgd.sh start
fi fi
msg_ok "Updated Successfully!"
exit exit
} }

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}" var_disk="${var_disk:-4}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -32,9 +32,9 @@ function update_script() {
setup_uv setup_uv
if check_for_gh_release "wizarr" "wizarrrr/wizarr"; then if check_for_gh_release "wizarr" "wizarrrr/wizarr"; then
msg_info "Stopping Service" msg_info "Stopping $APP"
systemctl stop wizarr systemctl stop wizarr
msg_ok "Stopped Service" msg_ok "Stopped $APP"
msg_info "Creating Backup" msg_info "Creating Backup"
BACKUP_FILE="/opt/wizarr_backup_$(date +%F).tar.gz" BACKUP_FILE="/opt/wizarr_backup_$(date +%F).tar.gz"
@@ -44,8 +44,8 @@ function update_script() {
fetch_and_deploy_gh_release "wizarr" "wizarrrr/wizarr" fetch_and_deploy_gh_release "wizarr" "wizarrrr/wizarr"
msg_info "Updating Wizarr" msg_info "Updating $APP"
cd /opt/wizarr || exit cd /opt/wizarr
$STD /usr/local/bin/uv sync --frozen $STD /usr/local/bin/uv sync --frozen
$STD /usr/local/bin/uv run --frozen pybabel compile -d app/translations $STD /usr/local/bin/uv run --frozen pybabel compile -d app/translations
$STD npm --prefix app/static install $STD npm --prefix app/static install
@@ -56,16 +56,16 @@ 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
msg_ok "Updated Wizarr" msg_ok "Updated $APP"
msg_info "Starting Service" msg_info "Starting $APP"
systemctl start wizarr systemctl start wizarr
msg_ok "Started Service" msg_ok "Started $APP"
msg_info "Cleaning Up" msg_info "Cleaning Up"
rm -rf "$BACKUP_FILE" rm -rf "$BACKUP_FILE"
msg_ok "Cleanup Completed" msg_ok "Cleanup Completed"
msg_ok "Updated Successfully!" msg_ok "Updated Successfully"
fi fi
exit exit
} }

View File

@@ -12,7 +12,7 @@ var_disk="${var_disk:-5}"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}" var_ram="${var_ram:-2048}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
header_info "$APP" header_info "$APP"
variables variables

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}" var_disk="${var_disk:-4}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -29,9 +29,9 @@ function update_script() {
fi fi
if check_for_gh_release "yt-dlp-webui" "marcopiovanello/yt-dlp-web-ui"; then if check_for_gh_release "yt-dlp-webui" "marcopiovanello/yt-dlp-web-ui"; then
msg_info "Stopping Service" msg_info "Stopping $APP"
systemctl stop yt-dlp-webui systemctl stop yt-dlp-webui
msg_ok "Stopped Service" msg_ok "Stopped $APP"
msg_info "Updating yt-dlp" msg_info "Updating yt-dlp"
$STD yt-dlp -U $STD yt-dlp -U
@@ -40,9 +40,9 @@ function update_script() {
rm -rf /usr/local/bin/yt-dlp-webui rm -rf /usr/local/bin/yt-dlp-webui
fetch_and_deploy_gh_release "yt-dlp-webui" "marcopiovanello/yt-dlp-web-ui" "singlefile" "latest" "/usr/local/bin" "yt-dlp-webui_linux-amd64" fetch_and_deploy_gh_release "yt-dlp-webui" "marcopiovanello/yt-dlp-web-ui" "singlefile" "latest" "/usr/local/bin" "yt-dlp-webui_linux-amd64"
msg_info "Starting Service" msg_info "Starting $APP"
systemctl start yt-dlp-webui systemctl start yt-dlp-webui
msg_ok "Started Service" msg_ok "Started $APP"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
fi fi
exit exit

View File

@@ -11,7 +11,7 @@ var_disk="${var_disk:-8}"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}" var_ram="${var_ram:-4096}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -28,19 +28,15 @@ function update_script() {
exit exit
fi fi
msg_info "Stopping Service" msg_info "Stopping Service"
systemctl stop zammad $STD systemctl stop zammad
msg_ok "Stopped Service"
msg_info "Updating ${APP}" msg_info "Updating ${APP}"
$STD apt update $STD apt-get update
$STD apt-mark hold zammad $STD apt-mark hold zammad
$STD apt -y upgrade $STD apt-get -y upgrade
$STD apt-mark unhold zammad $STD apt-mark unhold zammad
$STD apt -y upgrade $STD apt-get -y upgrade
msg_ok "Updated ${APP}"
msg_info "Starting Service" msg_info "Starting Service"
systemctl start zammad $STD systemctl start zammad
msg_ok "Updated ${APP} LXC" msg_ok "Updated ${APP} LXC"
exit exit
} }

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}" var_ram="${var_ram:-512}"
var_disk="${var_disk:-4}" var_disk="${var_disk:-4}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -28,14 +28,12 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
msg_info "Stopping Service" msg_info "Stopping Service"
systemctl stop zerotier-one systemctl stop zerotier-one
msg_ok "Stopping Service" msg_ok "Stopping Service"
msg_info "Updating ${APP}" msg_info "Updating ${APP}"
$STD apt update $STD apt-get update
$STD apt -y upgrade apt-get -y upgrade
msg_ok "Updated ${APP}" msg_ok "Updated ${APP}"
msg_info "Starting Service" msg_info "Starting Service"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-1024}"
var_disk="${var_disk:-5}" var_disk="${var_disk:-5}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-0}" var_unprivileged="${var_unprivileged:-0}"
header_info "$APP" header_info "$APP"
@@ -30,6 +30,7 @@ function update_script() {
if check_for_gh_release "Zigbee2MQTT" "Koenkk/zigbee2mqtt"; then if check_for_gh_release "Zigbee2MQTT" "Koenkk/zigbee2mqtt"; then
NODE_VERSION=24 NODE_MODULE="pnpm@$(curl -fsSL https://raw.githubusercontent.com/Koenkk/zigbee2mqtt/master/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs NODE_VERSION=24 NODE_MODULE="pnpm@$(curl -fsSL https://raw.githubusercontent.com/Koenkk/zigbee2mqtt/master/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
msg_info "Stopping Service" msg_info "Stopping Service"
systemctl stop zigbee2mqtt systemctl stop zigbee2mqtt
msg_ok "Stopped Service" msg_ok "Stopped Service"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}" var_ram="${var_ram:-2048}"
var_disk="${var_disk:-5}" var_disk="${var_disk:-5}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -26,8 +26,12 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
if ! command -v pnpm &>/dev/null; then
NODE_VERSION="22" NODE_MODULE="pnpm" setup_nodejs msg_info "Installing pnpm"
#export NODE_OPTIONS=--openssl-legacy-provider
$STD npm install -g pnpm@latest
msg_ok "Installed pnpm"
fi
if check_for_gh_release "zipline" "diced/zipline"; then if check_for_gh_release "zipline" "diced/zipline"; then
msg_info "Stopping Service" msg_info "Stopping Service"
@@ -43,7 +47,7 @@ function update_script() {
fetch_and_deploy_gh_release "zipline" "diced/zipline" "tarball" fetch_and_deploy_gh_release "zipline" "diced/zipline" "tarball"
msg_info "Updating ${APP}" msg_info "Updating ${APP}"
cd /opt/zipline || exit cd /opt/zipline
mv /opt/.env /opt/zipline/.env mv /opt/.env /opt/zipline/.env
$STD pnpm install $STD pnpm install
$STD pnpm build $STD pnpm build

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-1024}"
var_disk="${var_disk:-8}" var_disk="${var_disk:-8}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}" var_ram="${var_ram:-2048}"
var_disk="${var_disk:-6}" var_disk="${var_disk:-6}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-2048}" var_ram="${var_ram:-2048}"
var_disk="${var_disk:-5}" var_disk="${var_disk:-5}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}" var_disk="${var_disk:-4}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-0}" var_unprivileged="${var_unprivileged:-0}"
header_info "$APP" header_info "$APP"

File diff suppressed because it is too large Load Diff

9
frontend/package.json generated
View File

@@ -65,6 +65,7 @@
"@antfu/eslint-config": "^4.16.1", "@antfu/eslint-config": "^4.16.1",
"@eslint-react/eslint-plugin": "^1.52.2", "@eslint-react/eslint-plugin": "^1.52.2",
"@next/eslint-plugin-next": "^15.3.4", "@next/eslint-plugin-next": "^15.3.4",
"@tailwindcss/postcss": "^4.1.14",
"@tanstack/eslint-plugin-query": "^5.68.0", "@tanstack/eslint-plugin-query": "^5.68.0",
"@types/node": "^22.13.16", "@types/node": "^22.13.16",
"@types/react": "npm:types-react@19.0.0-rc.1", "@types/react": "npm:types-react@19.0.0-rc.1",
@@ -77,15 +78,13 @@
"eslint-plugin-format": "^1.0.1", "eslint-plugin-format": "^1.0.1",
"eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.20", "eslint-plugin-react-refresh": "^0.4.20",
"jsdom": "^25.0.1",
"postcss": "^8.5.3", "postcss": "^8.5.3",
"prettier": "^3.5.3", "prettier": "^3.5.3",
"prettier-plugin-tailwindcss": "^0.6.11", "prettier-plugin-tailwindcss": "^0.6.14",
"tailwindcss": "^3.4.17", "tailwindcss": "^4.1.14",
"tailwindcss-animate": "^1.0.7", "tailwindcss-animate": "^1.0.7",
"tailwindcss-animated": "^1.1.2", "tailwindcss-animated": "^1.1.2",
"typescript": "^5.8.2", "typescript": "^5.8.2"
"vite-tsconfig-paths": "^5.1.4"
}, },
"overrides": { "overrides": {
"@types/react": "npm:types-react@19.0.0-rc.1", "@types/react": "npm:types-react@19.0.0-rc.1",

View File

@@ -1,7 +1,7 @@
/** @type {import('postcss-load-config').Config} */ /** @type {import('postcss-load-config').Config} */
const config = { const config = {
plugins: { plugins: {
tailwindcss: {}, '@tailwindcss/postcss': {},
}, },
}; };

View File

@@ -23,7 +23,7 @@
"ram": 4096, "ram": 4096,
"hdd": 8, "hdd": 8,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -19,8 +19,8 @@
"type": "default", "type": "default",
"script": "ct/myip.sh", "script": "ct/myip.sh",
"resources": { "resources": {
"cpu": 2, "cpu": 1,
"ram": 1024, "ram": 512,
"hdd": 2, "hdd": 2,
"os": "Debian", "os": "Debian",
"version": "13" "version": "13"

View File

@@ -1,6 +1,6 @@
{ {
"name": "Outline", "name": "Outline",
"slug": "outline", "slug": "outline-solid",
"categories": [ "categories": [
12 12
], ],

View File

@@ -23,7 +23,7 @@
"ram": 6144, "ram": 6144,
"hdd": 20, "hdd": 20,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
}, },
{ {

View File

@@ -1,314 +1,44 @@
[ [
{ {
"name": "dgtlmoon/changedetection.io", "name": "Graylog2/graylog2-server",
"version": "0.50.17", "version": "7.0.0-beta.3",
"date": "2025-10-08T22:19:52Z" "date": "2025-10-06T11:25:12Z"
}, },
{ {
"name": "rabbitmq/rabbitmq-server", "name": "inventree/InvenTree",
"version": "v4.1.4", "version": "1.0.4",
"date": "2025-09-02T14:26:24Z" "date": "2025-10-06T11:12:04Z"
},
{
"name": "ipfs/kubo",
"version": "v0.38.1",
"date": "2025-10-08T21:34:07Z"
},
{
"name": "BerriAI/litellm",
"version": "v1.77.1.rc.5",
"date": "2025-10-08T20:54:40Z"
},
{
"name": "pelican-dev/panel",
"version": "v1.0.0-beta26",
"date": "2025-10-08T20:12:11Z"
},
{
"name": "azukaar/Cosmos-Server",
"version": "v0.18.4",
"date": "2025-04-05T19:12:57Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.27.7",
"date": "2025-10-08T18:44:23Z"
},
{
"name": "autobrr/autobrr",
"version": "v1.68.0",
"date": "2025-10-08T18:33:12Z"
},
{
"name": "rcourtman/Pulse",
"version": "v4.21.0",
"date": "2025-10-03T22:38:32Z"
},
{
"name": "AdguardTeam/AdGuardHome",
"version": "v0.107.67",
"date": "2025-09-29T14:45:57Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v4.0.0",
"date": "2025-10-08T16:12:11Z"
},
{
"name": "advplyr/audiobookshelf",
"version": "v2.30.0",
"date": "2025-10-08T16:03:49Z"
},
{
"name": "nicolargo/glances",
"version": "v4.3.3",
"date": "2025-10-08T15:45:21Z"
},
{
"name": "Lidarr/Lidarr",
"version": "v2.14.5.4836",
"date": "2025-10-08T15:30:50Z"
},
{
"name": "pocketbase/pocketbase",
"version": "v0.30.2",
"date": "2025-10-08T15:30:25Z"
}, },
{ {
"name": "wizarrrr/wizarr", "name": "wizarrrr/wizarr",
"version": "v2025.10.3", "version": "v2025.10.2",
"date": "2025-10-08T15:29:15Z" "date": "2025-10-06T11:10:37Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.4.2",
"date": "2025-10-07T08:11:58Z"
},
{
"name": "meilisearch/meilisearch",
"version": "prototype-v1.22.2-compaction-task-2",
"date": "2025-10-08T13:45:38Z"
},
{
"name": "FlowiseAI/Flowise",
"version": "flowise@3.0.8",
"date": "2025-10-08T12:19:18Z"
},
{
"name": "prometheus/prometheus",
"version": "v0.307.0-rc.0",
"date": "2025-10-08T11:25:44Z"
},
{
"name": "element-hq/synapse",
"version": "v1.138.4",
"date": "2025-10-08T09:11:57Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.114.4",
"date": "2025-10-07T14:28:46Z"
},
{
"name": "authelia/authelia",
"version": "v4.39.12",
"date": "2025-10-08T08:03:01Z"
},
{
"name": "gotson/komga",
"version": "1.23.5",
"date": "2025-10-08T07:31:37Z"
},
{
"name": "SigNoz/signoz",
"version": "v0.97.0-rc.3",
"date": "2025-10-08T06:53:48Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.3",
"date": "2025-09-20T12:12:33Z"
},
{
"name": "TandoorRecipes/recipes",
"version": "2.3.1",
"date": "2025-10-08T05:58:37Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.24.90",
"date": "2025-10-08T05:52:50Z"
},
{
"name": "keycloak/keycloak",
"version": "26.0.16",
"date": "2025-10-08T04:44:28Z"
},
{
"name": "jeedom/core",
"version": "4.4.20",
"date": "2025-10-08T00:27:04Z"
},
{
"name": "booklore-app/booklore",
"version": "v1.5.1",
"date": "2025-10-07T21:57:21Z"
},
{
"name": "open-webui/open-webui",
"version": "v0.6.33",
"date": "2025-10-07T21:20:37Z"
},
{
"name": "pelican-dev/wings",
"version": "v1.0.0-beta18",
"date": "2025-10-07T21:05:57Z"
},
{
"name": "C4illin/ConvertX",
"version": "v0.15.1",
"date": "2025-10-07T20:30:56Z"
},
{
"name": "runtipi/runtipi",
"version": "nightly",
"date": "2025-10-07T18:00:49Z"
},
{
"name": "MediaBrowser/Emby.Releases",
"version": "4.9.1.80",
"date": "2025-09-30T20:25:16Z"
},
{
"name": "coder/code-server",
"version": "v4.104.3",
"date": "2025-10-07T17:42:11Z"
},
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "pmm-6401-v1.127.0",
"date": "2025-10-07T14:31:32Z"
},
{
"name": "chrisvel/tududi",
"version": "v0.83.2",
"date": "2025-10-07T14:30:15Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.531",
"date": "2025-10-07T13:42:39Z"
},
{
"name": "zitadel/zitadel",
"version": "v4.3.1",
"date": "2025-10-07T12:55:04Z"
},
{
"name": "zwave-js/zwave-js-ui",
"version": "v11.4.1",
"date": "2025-10-07T12:45:24Z"
},
{
"name": "thecfu/scraparr",
"version": "v2.2.5",
"date": "2025-10-07T12:34:31Z"
},
{
"name": "evcc-io/evcc",
"version": "0.209.1",
"date": "2025-10-07T11:29:11Z"
}, },
{ {
"name": "mattermost/mattermost", "name": "mattermost/mattermost",
"version": "mattermost-redux@10.12.0", "version": "mattermost-redux@10.12.0",
"date": "2025-09-18T20:15:19Z" "date": "2025-09-18T20:15:19Z"
}, },
{
"name": "pocket-id/pocket-id",
"version": "v1.13.1",
"date": "2025-10-07T06:32:50Z"
},
{
"name": "documenso/documenso",
"version": "v1.12.9",
"date": "2025-10-07T06:07:11Z"
},
{
"name": "rogerfar/rdt-client",
"version": "v2.0.117",
"date": "2025-10-07T02:21:37Z"
},
{
"name": "inventree/InvenTree",
"version": "1.0.5",
"date": "2025-10-07T00:37:08Z"
},
{
"name": "sassanix/Warracker",
"version": "0.10.1.14",
"date": "2025-10-06T23:35:16Z"
},
{
"name": "outline/outline",
"version": "v1.0.0-1",
"date": "2025-10-06T23:16:32Z"
},
{
"name": "Ombi-app/Ombi",
"version": "v4.47.1",
"date": "2025-01-05T21:14:23Z"
},
{
"name": "Radarr/Radarr",
"version": "v5.28.0.10274",
"date": "2025-10-06T21:31:07Z"
},
{
"name": "Kometa-Team/Kometa",
"version": "v2.2.2",
"date": "2025-10-06T21:31:07Z"
},
{
"name": "grokability/snipe-it",
"version": "v8.3.3",
"date": "2025-10-06T19:57:17Z"
},
{
"name": "TwiN/gatus",
"version": "v5.26.0",
"date": "2025-10-06T17:57:27Z"
},
{
"name": "seerr-team/seerr",
"version": "preview-seerr",
"date": "2025-10-06T16:50:29Z"
},
{
"name": "fuma-nama/fumadocs",
"version": "fumadocs-ui@15.8.4",
"date": "2025-10-06T15:41:49Z"
},
{
"name": "bunkerity/bunkerweb",
"version": "v1.6.5",
"date": "2025-10-06T15:25:17Z"
},
{
"name": "bastienwirtz/homer",
"version": "v25.10.1",
"date": "2025-10-06T14:23:20Z"
},
{
"name": "Graylog2/graylog2-server",
"version": "7.0.0-beta.3",
"date": "2025-10-06T11:25:12Z"
},
{ {
"name": "jordan-dalby/ByteStash", "name": "jordan-dalby/ByteStash",
"version": "v1.5.9", "version": "v1.5.9",
"date": "2025-10-06T08:34:01Z" "date": "2025-10-06T08:34:01Z"
}, },
{
"name": "Jackett/Jackett",
"version": "v0.24.82",
"date": "2025-10-06T07:56:13Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.50.15",
"date": "2025-10-06T07:15:01Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.4.0",
"date": "2025-09-13T16:38:21Z"
},
{ {
"name": "moghtech/komodo", "name": "moghtech/komodo",
"version": "v1.19.5", "version": "v1.19.5",
@@ -324,6 +54,16 @@
"version": "2.1.1", "version": "2.1.1",
"date": "2025-06-14T17:45:06Z" "date": "2025-06-14T17:45:06Z"
}, },
{
"name": "jeedom/core",
"version": "4.4.20",
"date": "2025-10-06T00:27:06Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v3.6.2",
"date": "2025-07-17T12:08:03Z"
},
{ {
"name": "9001/copyparty", "name": "9001/copyparty",
"version": "v1.19.16", "version": "v1.19.16",
@@ -334,26 +74,71 @@
"version": "4.5.3", "version": "4.5.3",
"date": "2025-08-25T13:59:56Z" "date": "2025-08-25T13:59:56Z"
}, },
{
"name": "outline/outline",
"version": "v1.0.0-0",
"date": "2025-10-05T20:30:31Z"
},
{ {
"name": "plankanban/planka", "name": "plankanban/planka",
"version": "planka-1.0.5", "version": "planka-1.0.5",
"date": "2025-10-05T18:54:25Z" "date": "2025-10-05T18:54:25Z"
}, },
{
"name": "msgbyte/tianji",
"version": "v1.27.6",
"date": "2025-10-05T17:27:46Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v1.13.0",
"date": "2025-10-05T15:41:31Z"
},
{ {
"name": "BookStackApp/BookStack", "name": "BookStackApp/BookStack",
"version": "v25.07.3", "version": "v25.07.3",
"date": "2025-10-05T14:47:20Z" "date": "2025-10-05T14:47:20Z"
}, },
{
"name": "runtipi/runtipi",
"version": "v4.4.0",
"date": "2025-09-02T19:26:18Z"
},
{ {
"name": "Prowlarr/Prowlarr", "name": "Prowlarr/Prowlarr",
"version": "v2.0.5.5160", "version": "v2.0.5.5160",
"date": "2025-08-23T21:23:11Z" "date": "2025-08-23T21:23:11Z"
}, },
{
"name": "chrisvel/tududi",
"version": "v0.82-rc5",
"date": "2025-09-23T07:31:12Z"
},
{
"name": "TandoorRecipes/recipes",
"version": "2.3.0",
"date": "2025-10-05T11:13:58Z"
},
{
"name": "Radarr/Radarr",
"version": "v5.27.5.10198",
"date": "2025-09-03T12:08:43Z"
},
{
"name": "Lidarr/Lidarr",
"version": "v2.13.3.4711",
"date": "2025-08-28T20:06:24Z"
},
{ {
"name": "seriousm4x/UpSnap", "name": "seriousm4x/UpSnap",
"version": "5.2.2", "version": "5.2.2",
"date": "2025-10-05T09:12:17Z" "date": "2025-10-05T09:12:17Z"
}, },
{
"name": "evcc-io/evcc",
"version": "0.209.0",
"date": "2025-10-05T07:45:18Z"
},
{ {
"name": "pommee/goaway", "name": "pommee/goaway",
"version": "v0.62.11", "version": "v0.62.11",
@@ -364,15 +149,30 @@
"version": "debian/12.1.27", "version": "debian/12.1.27",
"date": "2025-10-05T02:16:42Z" "date": "2025-10-05T02:16:42Z"
}, },
{
"name": "BerriAI/litellm",
"version": "v1.77.7-nightly",
"date": "2025-10-05T01:43:25Z"
},
{ {
"name": "webmin/webmin", "name": "webmin/webmin",
"version": "2.520", "version": "2.520",
"date": "2025-10-05T00:51:34Z" "date": "2025-10-05T00:51:34Z"
}, },
{
"name": "Ombi-app/Ombi",
"version": "v4.47.1",
"date": "2025-01-05T21:14:23Z"
},
{ {
"name": "ollama/ollama", "name": "ollama/ollama",
"version": "v0.12.4-rc6", "version": "v0.12.4-rc5",
"date": "2025-10-04T18:46:45Z" "date": "2025-10-04T16:18:42Z"
},
{
"name": "SigNoz/signoz",
"version": "v0.97.0-rc.2",
"date": "2025-10-04T16:21:45Z"
}, },
{ {
"name": "gtsteffaniak/filebrowser", "name": "gtsteffaniak/filebrowser",
@@ -394,11 +194,21 @@
"version": "v25.7.0", "version": "v25.7.0",
"date": "2025-10-04T00:36:45Z" "date": "2025-10-04T00:36:45Z"
}, },
{
"name": "rcourtman/Pulse",
"version": "v4.21.0",
"date": "2025-10-03T22:38:32Z"
},
{ {
"name": "Luligu/matterbridge", "name": "Luligu/matterbridge",
"version": "3.3.0", "version": "3.3.0",
"date": "2025-10-03T21:22:14Z" "date": "2025-10-03T21:22:14Z"
}, },
{
"name": "keycloak/keycloak",
"version": "26.4.0",
"date": "2025-09-30T11:49:13Z"
},
{ {
"name": "homarr-labs/homarr", "name": "homarr-labs/homarr",
"version": "v1.40.0", "version": "v1.40.0",
@@ -414,6 +224,16 @@
"version": "2025.10.1", "version": "2025.10.1",
"date": "2025-10-03T18:10:59Z" "date": "2025-10-03T18:10:59Z"
}, },
{
"name": "fuma-nama/fumadocs",
"version": "@fumadocs/mdx-remote@1.4.2",
"date": "2025-10-03T17:01:32Z"
},
{
"name": "bunkerity/bunkerweb",
"version": "v1.6.5",
"date": "2025-10-03T16:43:34Z"
},
{ {
"name": "immich-app/immich", "name": "immich-app/immich",
"version": "v2.0.1", "version": "v2.0.1",
@@ -434,6 +254,16 @@
"version": "v25.3", "version": "v25.3",
"date": "2025-09-01T09:47:06Z" "date": "2025-09-01T09:47:06Z"
}, },
{
"name": "pocketbase/pocketbase",
"version": "v0.30.1",
"date": "2025-10-03T06:55:25Z"
},
{
"name": "booklore-app/booklore",
"version": "v1.4.1",
"date": "2025-10-03T06:52:35Z"
},
{ {
"name": "redis/redis", "name": "redis/redis",
"version": "8.2.2", "version": "8.2.2",
@@ -449,6 +279,16 @@
"version": "v0.9.95", "version": "v0.9.95",
"date": "2025-10-02T16:07:18Z" "date": "2025-10-02T16:07:18Z"
}, },
{
"name": "meilisearch/meilisearch",
"version": "prototype-shorten-snapshot-creation-0",
"date": "2025-10-02T15:16:05Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.112.6",
"date": "2025-09-26T10:56:27Z"
},
{ {
"name": "theonedev/onedev", "name": "theonedev/onedev",
"version": "v13.0.7", "version": "v13.0.7",
@@ -474,11 +314,21 @@
"version": "v25.10.0", "version": "v25.10.0",
"date": "2025-10-02T11:34:39Z" "date": "2025-10-02T11:34:39Z"
}, },
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.530",
"date": "2025-09-30T15:42:52Z"
},
{ {
"name": "laurent22/joplin", "name": "laurent22/joplin",
"version": "server-v3.4.4", "version": "server-v3.4.4",
"date": "2025-09-25T13:19:26Z" "date": "2025-09-25T13:19:26Z"
}, },
{
"name": "ipfs/kubo",
"version": "v0.38.0",
"date": "2025-10-02T01:46:06Z"
},
{ {
"name": "NodeBB/NodeBB", "name": "NodeBB/NodeBB",
"version": "v4.6.0", "version": "v4.6.0",
@@ -494,11 +344,21 @@
"version": "11.0.0", "version": "11.0.0",
"date": "2025-10-01T12:00:01Z" "date": "2025-10-01T12:00:01Z"
}, },
{
"name": "authelia/authelia",
"version": "v4.39.11",
"date": "2025-10-01T11:42:23Z"
},
{ {
"name": "esphome/esphome", "name": "esphome/esphome",
"version": "2025.9.3", "version": "2025.9.3",
"date": "2025-10-01T11:30:07Z" "date": "2025-10-01T11:30:07Z"
}, },
{
"name": "element-hq/synapse",
"version": "v1.139.0",
"date": "2025-10-01T08:24:16Z"
},
{ {
"name": "Kozea/Radicale", "name": "Kozea/Radicale",
"version": "v3.5.7.pypi", "version": "v3.5.7.pypi",
@@ -519,11 +379,21 @@
"version": "r8.2.1", "version": "r8.2.1",
"date": "2025-09-30T21:46:28Z" "date": "2025-09-30T21:46:28Z"
}, },
{
"name": "MediaBrowser/Emby.Releases",
"version": "4.9.1.80",
"date": "2025-09-30T20:25:16Z"
},
{ {
"name": "netbox-community/netbox", "name": "netbox-community/netbox",
"version": "v4.4.2", "version": "v4.4.2",
"date": "2025-09-30T20:16:13Z" "date": "2025-09-30T20:16:13Z"
}, },
{
"name": "TwiN/gatus",
"version": "v5.25.2",
"date": "2025-09-30T18:32:35Z"
},
{ {
"name": "WordPress/WordPress", "name": "WordPress/WordPress",
"version": "4.7.31", "version": "4.7.31",
@@ -544,11 +414,21 @@
"version": "4.4.46", "version": "4.4.46",
"date": "2025-09-30T13:21:24Z" "date": "2025-09-30T13:21:24Z"
}, },
{
"name": "fallenbagel/jellyseerr",
"version": "preview-rename-tags",
"date": "2025-09-30T12:50:15Z"
},
{ {
"name": "emqx/emqx", "name": "emqx/emqx",
"version": "e6.0.0", "version": "e6.0.0",
"date": "2025-09-30T12:04:20Z" "date": "2025-09-30T12:04:20Z"
}, },
{
"name": "zitadel/zitadel",
"version": "v4.3.0",
"date": "2025-09-30T06:54:15Z"
},
{ {
"name": "thomiceli/opengist", "name": "thomiceli/opengist",
"version": "v1.11.1", "version": "v1.11.1",
@@ -579,16 +459,41 @@
"version": "v2.7.12", "version": "v2.7.12",
"date": "2025-05-29T17:08:26Z" "date": "2025-05-29T17:08:26Z"
}, },
{
"name": "sassanix/Warracker",
"version": "0.10.1.13",
"date": "2025-09-29T17:11:25Z"
},
{
"name": "AdguardTeam/AdGuardHome",
"version": "v0.107.67",
"date": "2025-09-29T14:45:57Z"
},
{ {
"name": "MDeLuise/plant-it", "name": "MDeLuise/plant-it",
"version": "1.0.0", "version": "1.0.0",
"date": "2025-09-29T13:53:50Z" "date": "2025-09-29T13:53:50Z"
}, },
{
"name": "documenso/documenso",
"version": "v1.12.8",
"date": "2025-09-29T13:22:59Z"
},
{ {
"name": "jupyter/notebook", "name": "jupyter/notebook",
"version": "@jupyter-notebook/ui-components@7.5.0-beta.0", "version": "@jupyter-notebook/ui-components@7.5.0-beta.0",
"date": "2025-09-29T09:16:42Z" "date": "2025-09-29T09:16:42Z"
}, },
{
"name": "open-webui/open-webui",
"version": "v0.6.32",
"date": "2025-09-29T06:13:12Z"
},
{
"name": "autobrr/autobrr",
"version": "v1.67.0",
"date": "2025-09-28T20:49:34Z"
},
{ {
"name": "lazy-media/Reactive-Resume", "name": "lazy-media/Reactive-Resume",
"version": "v1.2.6", "version": "v1.2.6",
@@ -609,6 +514,11 @@
"version": "v0.10.1", "version": "v0.10.1",
"date": "2025-09-28T08:55:44Z" "date": "2025-09-28T08:55:44Z"
}, },
{
"name": "morpheus65535/bazarr",
"version": "v1.5.3",
"date": "2025-09-20T12:12:33Z"
},
{ {
"name": "raydak-labs/configarr", "name": "raydak-labs/configarr",
"version": "v1.16.0", "version": "v1.16.0",
@@ -626,8 +536,8 @@
}, },
{ {
"name": "javedh-dev/tracktor", "name": "javedh-dev/tracktor",
"version": "0.3.18", "version": "0.3.17",
"date": "2025-09-27T10:32:09Z" "date": "2025-09-27T07:00:36Z"
}, },
{ {
"name": "Dolibarr/dolibarr", "name": "Dolibarr/dolibarr",
@@ -639,6 +549,16 @@
"version": "v6.13.5", "version": "v6.13.5",
"date": "2025-09-27T01:10:59Z" "date": "2025-09-27T01:10:59Z"
}, },
{
"name": "coder/code-server",
"version": "v4.104.2",
"date": "2025-09-26T22:34:32Z"
},
{
"name": "bastienwirtz/homer",
"version": "v25.09.1",
"date": "2025-09-26T19:22:16Z"
},
{ {
"name": "traefik/traefik", "name": "traefik/traefik",
"version": "v3.5.3", "version": "v3.5.3",
@@ -679,6 +599,11 @@
"version": "v14.0.0-dev", "version": "v14.0.0-dev",
"date": "2025-09-25T13:19:45Z" "date": "2025-09-25T13:19:45Z"
}, },
{
"name": "rabbitmq/rabbitmq-server",
"version": "v4.1.4",
"date": "2025-09-02T14:26:24Z"
},
{ {
"name": "gelbphoenix/autocaliweb", "name": "gelbphoenix/autocaliweb",
"version": "v0.10.2", "version": "v0.10.2",
@@ -699,6 +624,11 @@
"version": "v1.9.10", "version": "v1.9.10",
"date": "2025-09-24T13:49:53Z" "date": "2025-09-24T13:49:53Z"
}, },
{
"name": "zwave-js/zwave-js-ui",
"version": "v11.3.1",
"date": "2025-09-24T11:58:00Z"
},
{ {
"name": "syncthing/syncthing", "name": "syncthing/syncthing",
"version": "v2.0.10", "version": "v2.0.10",
@@ -744,6 +674,11 @@
"version": "v2.1.0", "version": "v2.1.0",
"date": "2025-09-22T09:23:37Z" "date": "2025-09-22T09:23:37Z"
}, },
{
"name": "prometheus/prometheus",
"version": "v3.6.0",
"date": "2025-09-22T08:24:59Z"
},
{ {
"name": "Athou/commafeed", "name": "Athou/commafeed",
"version": "5.11.1", "version": "5.11.1",
@@ -784,6 +719,11 @@
"version": "v0.23.2", "version": "v0.23.2",
"date": "2025-09-18T17:18:59Z" "date": "2025-09-18T17:18:59Z"
}, },
{
"name": "grokability/snipe-it",
"version": "v8.3.2",
"date": "2025-09-18T13:55:58Z"
},
{ {
"name": "NLnetLabs/unbound", "name": "NLnetLabs/unbound",
"version": "release-1.24.0", "version": "release-1.24.0",
@@ -864,6 +804,11 @@
"version": "v5.15.0", "version": "v5.15.0",
"date": "2025-09-15T17:25:58Z" "date": "2025-09-15T17:25:58Z"
}, },
{
"name": "FlowiseAI/Flowise",
"version": "flowise@3.0.7",
"date": "2025-09-15T16:08:09Z"
},
{ {
"name": "linuxserver/Heimdall", "name": "linuxserver/Heimdall",
"version": "v2.7.6", "version": "v2.7.6",
@@ -874,6 +819,11 @@
"version": "v0.25.1", "version": "v0.25.1",
"date": "2025-09-15T14:57:30Z" "date": "2025-09-15T14:57:30Z"
}, },
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "pmm-6401-v1.126.0",
"date": "2025-09-15T11:32:31Z"
},
{ {
"name": "crafty-controller/crafty-4", "name": "crafty-controller/crafty-4",
"version": "v4.5.4", "version": "v4.5.4",
@@ -914,6 +864,11 @@
"version": "1.11.3", "version": "1.11.3",
"date": "2025-09-09T08:03:31Z" "date": "2025-09-09T08:03:31Z"
}, },
{
"name": "gotson/komga",
"version": "1.23.4",
"date": "2025-09-09T02:47:05Z"
},
{ {
"name": "Tautulli/Tautulli", "name": "Tautulli/Tautulli",
"version": "v2.16.0", "version": "v2.16.0",
@@ -954,6 +909,16 @@
"version": "2.0.0-beta.2-temp", "version": "2.0.0-beta.2-temp",
"date": "2025-03-28T08:45:58Z" "date": "2025-03-28T08:45:58Z"
}, },
{
"name": "pelican-dev/panel",
"version": "v1.0.0-beta25",
"date": "2025-09-04T21:42:46Z"
},
{
"name": "pelican-dev/wings",
"version": "v1.0.0-beta17",
"date": "2025-09-04T21:30:14Z"
},
{ {
"name": "blakeblackshear/frigate", "name": "blakeblackshear/frigate",
"version": "v0.14.1", "version": "v0.14.1",
@@ -1004,6 +969,11 @@
"version": "v1.9.2", "version": "v1.9.2",
"date": "2025-08-28T07:06:14Z" "date": "2025-08-28T07:06:14Z"
}, },
{
"name": "advplyr/audiobookshelf",
"version": "v2.29.0",
"date": "2025-08-25T22:43:20Z"
},
{ {
"name": "plexguide/Huntarr.io", "name": "plexguide/Huntarr.io",
"version": "8.2.10", "version": "8.2.10",
@@ -1054,6 +1024,11 @@
"version": "3.3.0", "version": "3.3.0",
"date": "2025-08-17T19:57:11Z" "date": "2025-08-17T19:57:11Z"
}, },
{
"name": "thecfu/scraparr",
"version": "v2.2.4",
"date": "2025-08-17T10:12:21Z"
},
{ {
"name": "mylar3/mylar3", "name": "mylar3/mylar3",
"version": "v0.8.3", "version": "v0.8.3",
@@ -1064,6 +1039,11 @@
"version": "latest", "version": "latest",
"date": "2025-08-15T15:33:51Z" "date": "2025-08-15T15:33:51Z"
}, },
{
"name": "Kometa-Team/Kometa",
"version": "v2.2.1",
"date": "2025-08-13T19:49:01Z"
},
{ {
"name": "swapplications/uhf-server-dist", "name": "swapplications/uhf-server-dist",
"version": "1.5.1", "version": "1.5.1",
@@ -1099,6 +1079,11 @@
"version": "v2.14.0", "version": "v2.14.0",
"date": "2025-08-05T08:31:35Z" "date": "2025-08-05T08:31:35Z"
}, },
{
"name": "rogerfar/rdt-client",
"version": "v2.0.116",
"date": "2025-08-05T04:45:21Z"
},
{ {
"name": "inspircd/inspircd", "name": "inspircd/inspircd",
"version": "v4.8.0", "version": "v4.8.0",
@@ -1184,6 +1169,11 @@
"version": "v2.12.6", "version": "v2.12.6",
"date": "2025-07-09T21:52:15Z" "date": "2025-07-09T21:52:15Z"
}, },
{
"name": "nicolargo/glances",
"version": "v4.3.3",
"date": "2025-07-09T15:35:44Z"
},
{ {
"name": "mysql/mysql-server", "name": "mysql/mysql-server",
"version": "mysql-cluster-9.4.0", "version": "mysql-cluster-9.4.0",
@@ -1274,6 +1264,11 @@
"version": "v0.26.1", "version": "v0.26.1",
"date": "2025-06-06T11:22:02Z" "date": "2025-06-06T11:22:02Z"
}, },
{
"name": "C4illin/ConvertX",
"version": "v0.14.1",
"date": "2025-06-04T08:57:15Z"
},
{ {
"name": "release-argus/Argus", "name": "release-argus/Argus",
"version": "0.26.3", "version": "0.26.3",
@@ -1349,6 +1344,11 @@
"version": "v0.2.11", "version": "v0.2.11",
"date": "2025-04-12T21:13:08Z" "date": "2025-04-12T21:13:08Z"
}, },
{
"name": "azukaar/Cosmos-Server",
"version": "v0.18.4",
"date": "2025-04-05T19:12:57Z"
},
{ {
"name": "wger-project/wger", "name": "wger-project/wger",
"version": "2.3", "version": "2.3",

View File

@@ -23,7 +23,7 @@
"ram": 2048, "ram": 2048,
"hdd": 16, "hdd": 16,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 1024, "ram": 1024,
"hdd": 4, "hdd": 4,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 1024, "ram": 1024,
"hdd": 5, "hdd": 5,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 1024, "ram": 1024,
"hdd": 4, "hdd": 4,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 1024, "ram": 1024,
"hdd": 4, "hdd": 4,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 512, "ram": 512,
"hdd": 2, "hdd": 2,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 512, "ram": 512,
"hdd": 2, "hdd": 2,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 2048, "ram": 2048,
"hdd": 12, "hdd": 12,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 1024, "ram": 1024,
"hdd": 6, "hdd": 6,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 1024, "ram": 1024,
"hdd": 4, "hdd": 4,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 2048, "ram": 2048,
"hdd": 7, "hdd": 7,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 512, "ram": 512,
"hdd": 4, "hdd": 4,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
}, },
{ {

View File

@@ -24,7 +24,7 @@
"ram": 1024, "ram": 1024,
"hdd": 4, "hdd": 4,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 2048, "ram": 2048,
"hdd": 5, "hdd": 5,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 1024, "ram": 1024,
"hdd": 4, "hdd": 4,
"os": "Debian", "os": "Debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 4096, "ram": 4096,
"hdd": 8, "hdd": 8,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 512, "ram": 512,
"hdd": 4, "hdd": 4,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -12,7 +12,7 @@
"documentation": "https://www.zigbee2mqtt.io/guide/getting-started/", "documentation": "https://www.zigbee2mqtt.io/guide/getting-started/",
"website": "https://www.zigbee2mqtt.io/", "website": "https://www.zigbee2mqtt.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/zigbee2mqtt.webp", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/zigbee2mqtt.webp",
"config_path": "debian: /opt/zigbee2mqtt/data/configuration.yaml | alpine: /var/lib/zigbee2mqtt/configuration.yaml", "config_path": "/opt/zigbee2mqtt/data/configuration.yaml",
"description": "Zigbee2MQTT is an open-source software project that allows you to use Zigbee-based smart home devices (such as those sold under the Philips Hue and Ikea Tradfri brands) with MQTT-based home automation systems, like Home Assistant, Node-RED, and others. The software acts as a bridge between your Zigbee devices and MQTT, allowing you to control and monitor these devices from your home automation system.", "description": "Zigbee2MQTT is an open-source software project that allows you to use Zigbee-based smart home devices (such as those sold under the Philips Hue and Ikea Tradfri brands) with MQTT-based home automation systems, like Home Assistant, Node-RED, and others. The software acts as a bridge between your Zigbee devices and MQTT, allowing you to control and monitor these devices from your home automation system.",
"install_methods": [ "install_methods": [
{ {
@@ -23,7 +23,7 @@
"ram": 1024, "ram": 1024,
"hdd": 5, "hdd": 5,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
}, },
{ {

View File

@@ -23,7 +23,7 @@
"ram": 2048, "ram": 2048,
"hdd": 5, "hdd": 5,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 1024, "ram": 1024,
"hdd": 8, "hdd": 8,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 2048, "ram": 2048,
"hdd": 6, "hdd": 6,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 2048, "ram": 2048,
"hdd": 5, "hdd": 5,
"os": "Debian", "os": "Debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -23,7 +23,7 @@
"ram": 1024, "ram": 1024,
"hdd": 4, "hdd": 4,
"os": "debian", "os": "debian",
"version": "13" "version": "12"
} }
} }
], ],

View File

@@ -315,7 +315,7 @@ export default function JSONGenerator() {
</Button> </Button>
</div> </div>
<pre className="mt-4 p-4 bg-secondary rounded shadow overflow-x-scroll"> <pre className="mt-4 p-4 bg-secondary rounded shadow-sm overflow-x-scroll">
{JSON.stringify(script, null, 2)} {JSON.stringify(script, null, 2)}
</pre> </pre>
</div> </div>

View File

@@ -47,8 +47,8 @@ export default function Page() {
<AnimatedGradientText> <AnimatedGradientText>
<div <div
className={cn( className={cn(
`absolute inset-0 block size-full animate-gradient bg-gradient-to-r from-[#ffaa40]/50 via-[#9c40ff]/50 to-[#ffaa40]/50 bg-[length:var(--bg-size)_100%] [border-radius:inherit] [mask:linear-gradient(#fff_0_0)_content-box,linear-gradient(#fff_0_0)]`, `absolute inset-0 block size-full animate-gradient bg-linear-to-r from-[#ffaa40]/50 via-[#9c40ff]/50 to-[#ffaa40]/50 bg-size-[var(--bg-size)_100%] rounded-[inherit] [mask:linear-gradient(#fff_0_0)_content-box,linear-gradient(#fff_0_0)]`,
`p-px ![mask-composite:subtract]`, `p-px mask-subtract!`,
)} )}
/> />
@@ -56,7 +56,7 @@ export default function Page() {
<Separator className="mx-2 h-4" orientation="vertical" /> <Separator className="mx-2 h-4" orientation="vertical" />
<span <span
className={cn( className={cn(
`animate-gradient bg-gradient-to-r from-[#ffaa40] via-[#9c40ff] to-[#ffaa40] bg-[length:var(--bg-size)_100%] bg-clip-text text-transparent`, `animate-gradient bg-linear-to-r from-[#ffaa40] via-[#9c40ff] to-[#ffaa40] bg-size-[var(--bg-size)_100%] bg-clip-text text-transparent`,
`inline`, `inline`,
)} )}
> >

View File

@@ -120,7 +120,7 @@ export default function ScriptAccordion({
query: { id: script.slug, category: category.name }, query: { id: script.slug, category: category.name },
}} }}
prefetch={false} prefetch={false}
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 dark:hover: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"
: "" : ""
}`} }`}

View File

@@ -84,7 +84,7 @@ export function LatestScripts({ items }: { items: Category[] }) {
)} )}
<div className="min-w flex w-full flex-row flex-wrap gap-4"> <div className="min-w flex w-full flex-row flex-wrap gap-4">
{latestScripts.slice(startIndex, endIndex).map(script => ( {latestScripts.slice(startIndex, endIndex).map(script => (
<Card key={script.slug} className="min-w-[250px] flex-1 flex-grow bg-accent/30"> <Card key={script.slug} className="min-w-[250px] flex-1 grow bg-accent/30">
<CardHeader> <CardHeader>
<CardTitle className="flex items-center gap-3"> <CardTitle className="flex items-center gap-3">
<div className="flex h-16 w-16 min-w-16 items-center justify-center rounded-lg bg-accent p-1"> <div className="flex h-16 w-16 min-w-16 items-center justify-center rounded-lg bg-accent p-1">
@@ -148,7 +148,7 @@ export function MostViewedScripts({ items }: { items: Category[] }) {
)} )}
<div className="min-w flex w-full flex-row flex-wrap gap-4"> <div className="min-w flex w-full flex-row flex-wrap gap-4">
{mostViewedScripts.map(script => ( {mostViewedScripts.map(script => (
<Card key={script.slug} className="min-w-[250px] flex-1 flex-grow bg-accent/30"> <Card key={script.slug} className="min-w-[250px] flex-1 grow bg-accent/30">
<CardHeader> <CardHeader>
<CardTitle className="flex items-center gap-3"> <CardTitle className="flex items-center gap-3">
<div className="flex size-16 min-w-16 items-center justify-center rounded-lg bg-accent p-1"> <div className="flex size-16 min-w-16 items-center justify-center rounded-lg bg-accent p-1">

View File

@@ -35,10 +35,10 @@ function ScriptHeader({ item }: { item: Script }) {
return ( return (
<div className="flex flex-col lg:flex-row gap-6 w-full"> <div className="flex flex-col lg:flex-row gap-6 w-full">
<div className="flex flex-col md:flex-row gap-6 flex-grow"> <div className="flex flex-col md:flex-row gap-6 grow">
<div className="flex-shrink-0"> <div className="shrink-0">
<Image <Image
className="h-32 w-32 rounded-xl bg-gradient-to-br from-accent/40 to-accent/60 object-contain p-3 shadow-lg transition-transform hover:scale-105" className="h-32 w-32 rounded-xl bg-linear-to-br from-accent/40 to-accent/60 object-contain p-3 shadow-lg transition-transform hover:scale-105"
src={item.logo || `/${basePath}/logo.png`} src={item.logo || `/${basePath}/logo.png`}
width={400} width={400}
onError={e => ((e.currentTarget as HTMLImageElement).src = `/${basePath}/logo.png`)} onError={e => ((e.currentTarget as HTMLImageElement).src = `/${basePath}/logo.png`)}
@@ -47,7 +47,7 @@ function ScriptHeader({ item }: { item: Script }) {
unoptimized unoptimized
/> />
</div> </div>
<div className="flex flex-col justify-between flex-grow space-y-4"> <div className="flex flex-col justify-between grow space-y-4">
<div className="space-y-2"> <div className="space-y-2">
<div className="flex items-start justify-between"> <div className="flex items-start justify-between">
<div> <div>
@@ -140,7 +140,7 @@ export function ScriptItem({ item, setSelectedScript }: ScriptItemProps) {
</button> </button>
</div> </div>
<div className="rounded-xl border border-border bg-accent/30 backdrop-blur-sm shadow-sm"> <div className="rounded-xl border border-border bg-accent/30 backdrop-blur-xs shadow-xs">
<div className="p-6 space-y-6"> <div className="p-6 space-y-6">
<Suspense fallback={<div className="animate-pulse h-32 bg-accent/20 rounded-xl" />}> <Suspense fallback={<div className="animate-pulse h-32 bg-accent/20 rounded-xl" />}>
<ScriptHeader item={item} /> <ScriptHeader item={item} />
@@ -149,7 +149,7 @@ export function ScriptItem({ item, setSelectedScript }: ScriptItemProps) {
<Description item={item} /> <Description item={item} />
<Alerts item={item} /> <Alerts item={item} />
<div className="mt-4 rounded-lg border shadow-sm"> <div className="mt-4 rounded-lg border shadow-xs">
<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">
How to How to

View File

@@ -16,7 +16,7 @@ export default function Alerts({ item }: { item: Script }) {
<> <>
{item?.notes?.length > 0 {item?.notes?.length > 0
&& item.notes.map((note: NoteProps, index: number) => ( && item.notes.map((note: NoteProps, index: number) => (
<div key={index} className="mt-4 flex flex-col shadow-sm gap-2"> <div key={index} className="mt-4 flex flex-col shadow-xs gap-2">
<p <p
className={cn( className={cn(
"inline-flex items-center gap-2 rounded-lg border p-2 pl-4 text-sm", "inline-flex items-center gap-2 rounded-lg border p-2 pl-4 text-sm",

View File

@@ -16,7 +16,7 @@ export default function DefaultPassword({ item }: { item: Script }) {
}; };
return ( return (
<div className="mt-4 rounded-lg border shadow-sm"> <div className="mt-4 rounded-lg border shadow-xs">
<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">Default Login Credentials</h2> <h2 className="text-lg font-semibold">Default Login Credentials</h2>
</div> </div>

View File

@@ -14,19 +14,19 @@ import {
import { cn } from "@/lib/utils"; import { cn } from "@/lib/utils";
const buttonVariants = cva( const buttonVariants = cva(
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[box-shadow,_color,_background-color,_border-color,_outline-color,_text-decoration-color,_fill,_stroke] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[box-shadow,color,background-color,border-color,outline-color,text-decoration-color,fill,stroke] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-hidden focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
{ {
variants: { variants: {
variant: { variant: {
default: default:
"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90", "bg-primary text-primary-foreground shadow-2xs hover:bg-primary/90",
accent: "bg-accent text-accent-foreground shadow-xs hover:bg-accent/90", accent: "bg-accent text-accent-foreground shadow-2xs hover:bg-accent/90",
destructive: destructive:
"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60", "bg-destructive text-white shadow-2xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
outline: outline:
"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50", "border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
secondary: secondary:
"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80", "bg-secondary text-secondary-foreground shadow-2xs hover:bg-secondary/80",
ghost: ghost:
"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50", "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
link: "text-primary underline-offset-4 hover:underline", link: "text-primary underline-offset-4 hover:underline",

View File

@@ -18,14 +18,14 @@ import { Button as ButtonPrimitive } from "@/components/animate-ui/primitives/bu
import { cn } from "@/lib/utils"; import { cn } from "@/lib/utils";
const buttonVariants = cva( const buttonVariants = cva(
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[box-shadow,_color,_background-color,_border-color,_outline-color,_text-decoration-color,_fill,_stroke] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[box-shadow,color,background-color,border-color,outline-color,text-decoration-color,fill,stroke] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-hidden focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
{ {
variants: { variants: {
variant: { variant: {
default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90", default: "bg-primary text-primary-foreground shadow-2xs hover:bg-primary/90",
accent: "bg-accent text-accent-foreground shadow-xs hover:bg-accent/90", accent: "bg-accent text-accent-foreground shadow-2xs hover:bg-accent/90",
outline: outline:
"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50", "border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50", ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
}, },
size: { size: {

View File

@@ -12,12 +12,12 @@ export default function AnimatedGradientText({
return ( return (
<div <div
className={cn( className={cn(
"group relative mx-auto flex max-w-fit flex-row items-center justify-center rounded-2xl bg-white/40 px-4 py-1.5 text-sm font-medium shadow-[inset_0_-8px_10px_#8fdfff1f] backdrop-blur-sm transition-shadow duration-500 ease-out [--bg-size:300%] hover:shadow-[inset_0_-5px_10px_#8fdfff3f] dark:bg-black/40", "group relative mx-auto flex max-w-fit flex-row items-center justify-center rounded-2xl bg-white/40 px-4 py-1.5 text-sm font-medium shadow-[inset_0_-8px_10px_#8fdfff1f] backdrop-blur-xs transition-shadow duration-500 ease-out [--bg-size:300%] hover:shadow-[inset_0_-5px_10px_#8fdfff3f] dark:bg-black/40",
className, className,
)} )}
> >
<div <div
className="absolute inset-0 block h-full w-full animate-gradient bg-gradient-to-r from-[#ffaa40]/50 via-[#9c40ff]/50 to-[#ffaa40]/50 bg-[length:var(--bg-size)_100%] p-[1px] [border-radius:inherit] ![mask-composite:subtract] [mask:linear-gradient(#fff_0_0)_content-box,linear-gradient(#fff_0_0)]" className="absolute inset-0 block h-full w-full animate-gradient bg-linear-to-r from-[#ffaa40]/50 via-[#9c40ff]/50 to-[#ffaa40]/50 bg-size-[var(--bg-size)_100%] p-px rounded-[inherit] mask-subtract! [mask:linear-gradient(#fff_0_0)_content-box,linear-gradient(#fff_0_0)]"
/> />
{children} {children}

View File

@@ -6,7 +6,7 @@ import * as React from "react";
import { cn } from "@/lib/utils"; import { cn } from "@/lib/utils";
const badgeVariants = cva( const badgeVariants = cva(
"inline-flex items-center rounded-full border px-1.5 py-0.1 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", "inline-flex items-center rounded-full border px-1.5 py-0.1 text-xs font-semibold transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2",
{ {
variants: { variants: {
variant: { variant: {

View File

@@ -7,7 +7,7 @@ import * as React from "react";
import { cn } from "@/lib/utils"; import { cn } from "@/lib/utils";
const buttonVariants = cva( const buttonVariants = cva(
"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
{ {
variants: { variants: {
variant: { variant: {
@@ -25,15 +25,15 @@ const buttonVariants = cva(
ringHover: ringHover:
"bg-primary text-primary-foreground transition-all duration-300 hover:bg-primary/90 hover:ring-2 hover:ring-primary/90 hover:ring-offset-2", "bg-primary text-primary-foreground transition-all duration-300 hover:bg-primary/90 hover:ring-2 hover:ring-primary/90 hover:ring-offset-2",
shine: shine:
"text-primary-foreground animate-shine bg-gradient-to-r from-primary via-primary/75 to-primary bg-[length:400%_100%] ", "text-primary-foreground animate-shine bg-linear-to-r from-primary via-primary/75 to-primary bg-size-[400%_100%] ",
gooeyRight: gooeyRight:
"text-primary-foreground relative bg-primary z-0 overflow-hidden transition-all duration-500 before:absolute before:inset-0 before:-z-10 before:translate-x-[150%] before:translate-y-[150%] before:scale-[2.5] before:rounded-[100%] before:bg-gradient-to-r from-zinc-400 before:transition-transform before:duration-1000 hover:before:translate-x-[0%] hover:before:translate-y-[0%] ", "text-primary-foreground relative bg-primary z-0 overflow-hidden transition-all duration-500 before:absolute before:inset-0 before:-z-10 before:translate-x-[150%] before:translate-y-[150%] before:scale-[2.5] before:rounded-[100%] before:bg-linear-to-r from-zinc-400 before:transition-transform before:duration-1000 hover:before:translate-x-[0%] hover:before:translate-y-[0%] ",
gooeyLeft: gooeyLeft:
"text-primary-foreground relative bg-primary z-0 overflow-hidden transition-all duration-500 after:absolute after:inset-0 after:-z-10 after:translate-x-[-150%] after:translate-y-[150%] after:scale-[2.5] after:rounded-[100%] after:bg-gradient-to-l from-zinc-400 after:transition-transform after:duration-1000 hover:after:translate-x-[0%] hover:after:translate-y-[0%] ", "text-primary-foreground relative bg-primary z-0 overflow-hidden transition-all duration-500 after:absolute after:inset-0 after:-z-10 after:translate-x-[-150%] after:translate-y-[150%] after:scale-[2.5] after:rounded-[100%] after:bg-linear-to-l from-zinc-400 after:transition-transform after:duration-1000 hover:after:translate-x-[0%] hover:after:translate-y-[0%] ",
linkHover1: linkHover1:
"relative after:absolute after:bg-primary after:bottom-2 after:h-[1px] after:w-2/3 after:origin-bottom-left after:scale-x-100 hover:after:origin-bottom-right hover:after:scale-x-0 after:transition-transform after:ease-in-out after:duration-300", "relative after:absolute after:bg-primary after:bottom-2 after:h-px after:w-2/3 after:origin-bottom-left after:scale-x-100 hover:after:origin-bottom-right hover:after:scale-x-0 after:transition-transform after:ease-in-out after:duration-300",
linkHover2: linkHover2:
"relative after:absolute after:bg-primary after:bottom-2 after:h-[1px] after:w-2/3 after:origin-bottom-right after:scale-x-0 hover:after:origin-bottom-left hover:after:scale-x-100 after:transition-transform after:ease-in-out after:duration-300", "relative after:absolute after:bg-primary after:bottom-2 after:h-px after:w-2/3 after:origin-bottom-right after:scale-x-0 hover:after:origin-bottom-left hover:after:scale-x-100 after:transition-transform after:ease-in-out after:duration-300",
}, },
size: { size: {
default: "h-10 px-4 py-2", default: "h-10 px-4 py-2",
@@ -96,7 +96,7 @@ const Button = React.forwardRef<
)} )}
<Slottable>{props.children}</Slottable> <Slottable>{props.children}</Slottable>
{Icon && iconPlacement === "right" && ( {Icon && iconPlacement === "right" && (
<div className="w-0 translate-x-[100%] pl-0 opacity-0 transition-all duration-200 group-hover:w-5 group-hover:translate-x-0 group-hover:pl-2 group-hover:opacity-100"> <div className="w-0 translate-x-full pl-0 opacity-0 transition-all duration-200 group-hover:w-5 group-hover:translate-x-0 group-hover:pl-2 group-hover:opacity-100">
<Icon /> <Icon />
</div> </div>
)} )}

View File

@@ -9,7 +9,7 @@ const Card = React.forwardRef<
<div <div
ref={ref} ref={ref}
className={cn( className={cn(
"rounded-lg border text-card-foreground shadow-sm", "rounded-lg border text-card-foreground shadow-xs",
className, className,
)} )}
{...props} {...props}

View File

@@ -15,7 +15,7 @@ import { Separator } from "./separator";
import { Button } from "./button"; import { Button } from "./button";
const buttonVariants = cva( const buttonVariants = cva(
"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
{ {
variants: { variants: {
variant: { variant: {

View File

@@ -47,7 +47,7 @@ const CommandInput = React.forwardRef<
<CommandPrimitive.Input <CommandPrimitive.Input
ref={ref} ref={ref}
className={cn( className={cn(
"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50", "flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
className, className,
)} )}
{...props} {...props}
@@ -118,7 +118,7 @@ const CommandItem = React.forwardRef<
<CommandPrimitive.Item <CommandPrimitive.Item
ref={ref} ref={ref}
className={cn( className={cn(
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50", "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50",
className, className,
)} )}
{...props} {...props}

View File

@@ -44,7 +44,7 @@ const DialogContent = React.forwardRef<
{...props} {...props}
> >
{children} {children}
<DialogPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground"> <DialogPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground">
<X className="h-4 w-4" /> <X className="h-4 w-4" />
<span className="sr-only">Close</span> <span className="sr-only">Close</span>
</DialogPrimitive.Close> </DialogPrimitive.Close>

View File

@@ -27,7 +27,7 @@ const DropdownMenuSubTrigger = React.forwardRef<
<DropdownMenuPrimitive.SubTrigger <DropdownMenuPrimitive.SubTrigger
ref={ref} ref={ref}
className={cn( className={cn(
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent", "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent data-[state=open]:bg-accent",
inset && "pl-8", inset && "pl-8",
className, className,
)} )}
@@ -47,7 +47,7 @@ const DropdownMenuSubContent = React.forwardRef<
<DropdownMenuPrimitive.SubContent <DropdownMenuPrimitive.SubContent
ref={ref} ref={ref}
className={cn( className={cn(
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", "z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
className, className,
)} )}
{...props} {...props}
@@ -65,7 +65,7 @@ const DropdownMenuContent = React.forwardRef<
ref={ref} ref={ref}
sideOffset={sideOffset} sideOffset={sideOffset}
className={cn( className={cn(
"glass z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover/50 p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", "glass z-50 min-w-32 overflow-hidden rounded-md border bg-popover/50 p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
className, className,
)} )}
{...props} {...props}
@@ -83,7 +83,7 @@ const DropdownMenuItem = React.forwardRef<
<DropdownMenuPrimitive.Item <DropdownMenuPrimitive.Item
ref={ref} ref={ref}
className={cn( className={cn(
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", "relative flex cursor-default select-none items-center rounded-sm px-2 py-1 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
inset && "pl-8", inset && "pl-8",
className, className,
)} )}
@@ -99,7 +99,7 @@ const DropdownMenuCheckboxItem = React.forwardRef<
<DropdownMenuPrimitive.CheckboxItem <DropdownMenuPrimitive.CheckboxItem
ref={ref} ref={ref}
className={cn( className={cn(
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
className, className,
)} )}
checked={checked} checked={checked}
@@ -123,7 +123,7 @@ const DropdownMenuRadioItem = React.forwardRef<
<DropdownMenuPrimitive.RadioItem <DropdownMenuPrimitive.RadioItem
ref={ref} ref={ref}
className={cn( className={cn(
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
className, className,
)} )}
{...props} {...props}

View File

@@ -10,7 +10,7 @@ const Input = React.forwardRef<HTMLInputElement, InputProps>(
<input <input
type={type} type={type}
className={cn( className={cn(
"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", "flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
className, className,
)} )}
ref={ref} ref={ref}

View File

@@ -41,7 +41,7 @@ NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
const NavigationMenuItem = NavigationMenuPrimitive.Item; const NavigationMenuItem = NavigationMenuPrimitive.Item;
const navigationMenuTriggerStyle = cva( const navigationMenuTriggerStyle = cva(
"group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50", "group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-hidden disabled:pointer-events-none disabled:opacity-50 data-active:bg-accent/50 data-[state=open]:bg-accent/50",
); );
const NavigationMenuTrigger = React.forwardRef< const NavigationMenuTrigger = React.forwardRef<
@@ -56,7 +56,7 @@ const NavigationMenuTrigger = React.forwardRef<
{children} {children}
{" "} {" "}
<ChevronDown <ChevronDown
className="relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180" className="relative top-px ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180"
aria-hidden="true" aria-hidden="true"
/> />
</NavigationMenuPrimitive.Trigger> </NavigationMenuPrimitive.Trigger>
@@ -87,7 +87,7 @@ const NavigationMenuViewport = React.forwardRef<
<div className={cn("absolute left-0 top-full flex justify-center")}> <div className={cn("absolute left-0 top-full flex justify-center")}>
<NavigationMenuPrimitive.Viewport <NavigationMenuPrimitive.Viewport
className={cn( className={cn(
"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]", "origin-top-center relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-(--radix-navigation-menu-viewport-width)",
className, className,
)} )}
ref={ref} ref={ref}
@@ -105,7 +105,7 @@ const NavigationMenuIndicator = React.forwardRef<
<NavigationMenuPrimitive.Indicator <NavigationMenuPrimitive.Indicator
ref={ref} ref={ref}
className={cn( className={cn(
"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in", "top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in",
className, className,
)} )}
{...props} {...props}

View File

@@ -19,7 +19,7 @@ const PopoverContent = React.forwardRef<
align={align} align={align}
sideOffset={sideOffset} sideOffset={sideOffset}
className={cn( className={cn(
"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
className, className,
)} )}
{...props} {...props}

View File

@@ -19,7 +19,7 @@ const SelectTrigger = React.forwardRef<
<SelectPrimitive.Trigger <SelectPrimitive.Trigger
ref={ref} ref={ref}
className={cn( className={cn(
"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1", "flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
className, className,
)} )}
{...props} {...props}
@@ -75,7 +75,7 @@ const SelectContent = React.forwardRef<
<SelectPrimitive.Content <SelectPrimitive.Content
ref={ref} ref={ref}
className={cn( className={cn(
"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", "relative z-50 max-h-96 min-w-32 overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
position === "popper" position === "popper"
&& "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
className, className,
@@ -88,7 +88,7 @@ const SelectContent = React.forwardRef<
className={cn( className={cn(
"p-1", "p-1",
position === "popper" position === "popper"
&& "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]", && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width)",
)} )}
> >
{children} {children}
@@ -118,7 +118,7 @@ const SelectItem = React.forwardRef<
<SelectPrimitive.Item <SelectPrimitive.Item
ref={ref} ref={ref}
className={cn( className={cn(
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
className, className,
)} )}
{...props} {...props}

View File

@@ -19,7 +19,7 @@ const Separator = React.forwardRef<
orientation={orientation} orientation={orientation}
className={cn( className={cn(
"shrink-0 bg-border", "shrink-0 bg-border",
orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]", orientation === "horizontal" ? "h-px w-full" : "h-full w-px",
className, className,
)} )}
{...props} {...props}

View File

@@ -65,7 +65,7 @@ const SheetContent = React.forwardRef<
{...props} {...props}
> >
{children} {children}
<SheetPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary"> <SheetPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary">
<X className="h-4 w-4" /> <X className="h-4 w-4" />
<span className="sr-only">Close</span> <span className="sr-only">Close</span>
</SheetPrimitive.Close> </SheetPrimitive.Close>

View File

@@ -11,7 +11,7 @@ const Switch = React.forwardRef<
>(({ className, ...props }, ref) => ( >(({ className, ...props }, ref) => (
<SwitchPrimitives.Root <SwitchPrimitives.Root
className={cn( className={cn(
"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input", "peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
className, className,
)} )}
{...props} {...props}

View File

@@ -43,7 +43,7 @@ const TableFooter = React.forwardRef<
<tfoot <tfoot
ref={ref} ref={ref}
className={cn( className={cn(
"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", "border-t bg-muted/50 font-medium last:[&>tr]:border-b-0",
className, className,
)} )}
{...props} {...props}

View File

@@ -29,7 +29,7 @@ const TabsTrigger = React.forwardRef<
<TabsPrimitive.Trigger <TabsPrimitive.Trigger
ref={ref} ref={ref}
className={cn( className={cn(
"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm", "inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-xs",
className, className,
)} )}
{...props} {...props}
@@ -44,7 +44,7 @@ const TabsContent = React.forwardRef<
<TabsPrimitive.Content <TabsPrimitive.Content
ref={ref} ref={ref}
className={cn( className={cn(
"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", "mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
className, className,
)} )}
{...props} {...props}

View File

@@ -9,7 +9,7 @@ const Textarea = React.forwardRef<
return ( return (
<textarea <textarea
className={cn( className={cn(
"flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
className, className,
)} )}
ref={ref} ref={ref}

View File

@@ -19,7 +19,7 @@ const TooltipContent = React.forwardRef<
ref={ref} ref={ref}
sideOffset={sideOffset} sideOffset={sideOffset}
className={cn( className={cn(
"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]", "z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-(--radix-tooltip-content-transform-origin)",
className, className,
)} )}
{...props} {...props}

View File

@@ -1,6 +1,147 @@
@tailwind base; @import 'tailwindcss';
@tailwind components;
@tailwind utilities; @custom-variant dark (&:is(.dark *));
@utility container {
margin-inline: auto;
padding-inline: 2rem;
@media (width >= --theme(--breakpoint-sm)) {
max-width: none;
}
@media (width >= 1400px) {
max-width: 1400px;
}
}
@theme {
--color-border: hsl(var(--border));
--color-input: hsl(var(--input));
--color-ring: hsl(var(--ring));
--color-background: hsl(var(--background));
--color-foreground: hsl(var(--foreground));
--color-primary: hsl(var(--primary));
--color-primary-foreground: hsl(var(--primary-foreground));
--color-secondary: hsl(var(--secondary));
--color-secondary-foreground: hsl(var(--secondary-foreground));
--color-destructive: hsl(var(--destructive));
--color-destructive-foreground: hsl(var(--destructive-foreground));
--color-muted: hsl(var(--muted));
--color-muted-foreground: hsl(var(--muted-foreground));
--color-accent: hsl(var(--accent));
--color-accent-foreground: hsl(var(--accent-foreground));
--color-popover: hsl(var(--popover));
--color-popover-foreground: hsl(var(--popover-foreground));
--color-card: hsl(var(--card));
--color-card-foreground: hsl(var(--card-foreground));
--radius-lg: var(--radius);
--radius-md: calc(var(--radius) - 2px);
--radius-sm: calc(var(--radius) - 4px);
--animate-accordion-down: accordion-down 0.2s ease-out;
--animate-accordion-up: accordion-up 0.2s ease-out;
--animate-shine: shine 8s ease-in-out infinite;
--animate-gradient: gradient 8s linear infinite;
@keyframes accordion-down {
from {
height: 0;
}
to {
height: var(--radix-accordion-content-height);
}
}
@keyframes accordion-up {
from {
height: var(--radix-accordion-content-height);
}
to {
height: 0;
}
}
@keyframes shine {
from {
background-position: 200% 0;
}
to {
background-position: -200% 0;
}
}
@keyframes gradient {
to {
background-position: var(--bg-size) 0;
}
}
@keyframes shine-pulse {
0% {
background-position: 0% 0%;
}
50% {
background-position: 100% 100%;
}
to {
background-position: 0% 0%;
}
}
@keyframes moveHorizontal {
0% {
transform: translateX(-50%) translateY(-10%);
}
50% {
transform: translateX(50%) translateY(10%);
}
100% {
transform: translateX(-50%) translateY(-10%);
}
}
@keyframes moveInCircle {
0% {
transform: rotate(0deg);
}
50% {
transform: rotate(180deg);
}
100% {
transform: rotate(360deg);
}
}
@keyframes moveVertical {
0% {
transform: translateY(-50%);
}
50% {
transform: translateY(50%);
}
100% {
transform: translateY(-50%);
}
}
}
/*
The default border color has changed to `currentcolor` in Tailwind CSS v4,
so we've added these compatibility styles to make sure everything still
looks the same as it did with Tailwind CSS v3.
If we ever want to remove these styles, we need to add an explicit border
color utility to any element that depends on these defaults.
*/
@layer base {
*,
::after,
::before,
::backdrop,
::file-selector-button {
border-color: var(--color-gray-200, currentcolor);
}
}
@layer base { @layer base {
:root { :root {

View File

@@ -1,181 +0,0 @@
/* eslint-disable ts/no-require-imports */
//
import type { Config } from "tailwindcss";
const {
default: flattenColorPalette,
} = require("tailwindcss/lib/util/flattenColorPalette");
const svgToDataUri = require("mini-svg-data-uri");
const config = {
darkMode: ["class"],
content: [
"./pages/**/*.{ts,tsx}",
"./components/**/*.{ts,tsx}",
"./app/**/*.{ts,tsx}",
"./src/**/*.{ts,tsx}",
],
prefix: "",
theme: {
container: {
center: true,
padding: "2rem",
screens: {
"2xl": "1400px",
},
},
extend: {
colors: {
border: "hsl(var(--border))",
input: "hsl(var(--input))",
ring: "hsl(var(--ring))",
background: "hsl(var(--background))",
foreground: "hsl(var(--foreground))",
primary: {
DEFAULT: "hsl(var(--primary))",
foreground: "hsl(var(--primary-foreground))",
},
secondary: {
DEFAULT: "hsl(var(--secondary))",
foreground: "hsl(var(--secondary-foreground))",
},
destructive: {
DEFAULT: "hsl(var(--destructive))",
foreground: "hsl(var(--destructive-foreground))",
},
muted: {
DEFAULT: "hsl(var(--muted))",
foreground: "hsl(var(--muted-foreground))",
},
accent: {
DEFAULT: "hsl(var(--accent))",
foreground: "hsl(var(--accent-foreground))",
},
popover: {
DEFAULT: "hsl(var(--popover))",
foreground: "hsl(var(--popover-foreground))",
},
card: {
DEFAULT: "hsl(var(--card))",
foreground: "hsl(var(--card-foreground))",
},
},
borderRadius: {
lg: "var(--radius)",
md: "calc(var(--radius) - 2px)",
sm: "calc(var(--radius) - 4px)",
},
keyframes: {
"accordion-down": {
from: { height: "0" },
to: { height: "var(--radix-accordion-content-height)" },
},
"accordion-up": {
from: { height: "var(--radix-accordion-content-height)" },
to: { height: "0" },
},
"shine": {
from: { backgroundPosition: "200% 0" },
to: { backgroundPosition: "-200% 0" },
},
"gradient": {
to: {
backgroundPosition: "var(--bg-size) 0",
},
},
"shine-pulse": {
"0%": {
"background-position": "0% 0%",
},
"50%": {
"background-position": "100% 100%",
},
"to": {
"background-position": "0% 0%",
},
},
"moveHorizontal": {
"0%": {
transform: "translateX(-50%) translateY(-10%)",
},
"50%": {
transform: "translateX(50%) translateY(10%)",
},
"100%": {
transform: "translateX(-50%) translateY(-10%)",
},
},
"moveInCircle": {
"0%": {
transform: "rotate(0deg)",
},
"50%": {
transform: "rotate(180deg)",
},
"100%": {
transform: "rotate(360deg)",
},
},
"moveVertical": {
"0%": {
transform: "translateY(-50%)",
},
"50%": {
transform: "translateY(50%)",
},
"100%": {
transform: "translateY(-50%)",
},
},
},
animation: {
"accordion-down": "accordion-down 0.2s ease-out",
"accordion-up": "accordion-up 0.2s ease-out",
"shine": "shine 8s ease-in-out infinite",
"gradient": "gradient 8s linear infinite",
},
},
},
plugins: [
require(`tailwindcss-animated`),
require("tailwindcss-animate"),
addVariablesForColors,
function ({ matchUtilities, theme }: any) {
matchUtilities(
{
"bg-grid": (value: any) => ({
backgroundImage: `url("${svgToDataUri(
`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32" fill="none" stroke="${value}"><path d="M0 .5H31.5V32"/></svg>`,
)}")`,
}),
"bg-grid-small": (value: any) => ({
backgroundImage: `url("${svgToDataUri(
`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="8" height="8" fill="none" stroke="${value}"><path d="M0 .5H31.5V32"/></svg>`,
)}")`,
}),
"bg-dot": (value: any) => ({
backgroundImage: `url("${svgToDataUri(
`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="16" height="16" fill="none"><circle fill="${value}" id="pattern-circle" cx="10" cy="10" r="1.6257413380501518"></circle></svg>`,
)}")`,
}),
},
{
values: flattenColorPalette(theme("backgroundColor")),
type: "color",
},
);
},
],
} satisfies Config;
function addVariablesForColors({ addBase, theme }: any) {
const allColors = flattenColorPalette(theme("colors"));
const newVars = Object.fromEntries(
Object.entries(allColors).map(([key, val]) => [`--${key}`, val]),
);
addBase({
":root": newVars,
});
}
export default config;

View File

@@ -18,7 +18,7 @@ $STD apt-get install -y nginx
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
fetch_and_deploy_gh_release "booklore" "booklore-app/BookLore" fetch_and_deploy_gh_release "booklore" "booklore-app/BookLore"
JAVA_VERSION="25" setup_java JAVA_VERSION="21" setup_java
NODE_VERSION="22" setup_nodejs NODE_VERSION="22" setup_nodejs
setup_mariadb setup_mariadb
setup_yq setup_yq

View File

@@ -14,7 +14,7 @@ network_check
update_os update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt install -y \ $STD apt-get install -y \
redis \ redis \
jq \ jq \
make make
@@ -48,8 +48,6 @@ mkdir data
sed -i -e "s|APP_SECRET=.*|APP_SECRET=$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | cut -c1-32)|" \ sed -i -e "s|APP_SECRET=.*|APP_SECRET=$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | cut -c1-32)|" \
-e "s|DATABASE_URL=.*|DATABASE_URL=postgres://$DB_USER:$DB_PASS@localhost:5432/$DB_NAME|" \ -e "s|DATABASE_URL=.*|DATABASE_URL=postgres://$DB_USER:$DB_PASS@localhost:5432/$DB_NAME|" \
-e "s|FILE_UPLOAD_SIZE_LIMIT=.*|FILE_UPLOAD_SIZE_LIMIT=50mb|" \ -e "s|FILE_UPLOAD_SIZE_LIMIT=.*|FILE_UPLOAD_SIZE_LIMIT=50mb|" \
-e "s|DRAWIO_URL=.*|DRAWIO_URL=https://embed.diagrams.net|" \
-e "s|DISABLE_TELEMETRY=.*|DISABLE_TELEMETRY=true|" \
/opt/docmost/.env /opt/docmost/.env
export NODE_OPTIONS="--max-old-space-size=2048" export NODE_OPTIONS="--max-old-space-size=2048"
$STD pnpm install $STD pnpm install
@@ -78,7 +76,6 @@ motd_ssh
customize customize
msg_info "Cleaning up" msg_info "Cleaning up"
$STD apt -y autoremove $STD apt-get -y autoremove
$STD apt -y autoclean $STD apt-get -y autoclean
$STD apt -y clean
msg_ok "Cleaned" msg_ok "Cleaned"

View File

@@ -48,7 +48,7 @@ curl -fsSL "https://github.com/glpi-project/glpi/releases/download/10.0.20/glpi-
$STD tar -xzvf glpi-10.0.20.tgz $STD tar -xzvf glpi-10.0.20.tgz
cd /opt/glpi cd /opt/glpi
$STD php bin/console db:install --db-name=$DB_NAME --db-user=$DB_USER --db-password=$DB_PASS --no-interaction $STD php bin/console db:install --db-name=$DB_NAME --db-user=$DB_USER --db-password=$DB_PASS --no-interaction
echo "10.0.20" >/opt/${APPLICATION}_version.txt echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed GLPi" msg_ok "Installed GLPi"
msg_info "Setting Downstream file" msg_info "Setting Downstream file"

Some files were not shown because too many files have changed in this diff Show More