Compare commits

..

49 Commits

Author SHA1 Message Date
CanbiZ
9c59abf838 Update scripts to use Debian 13 and improve update logic
Bump default container OS version from Debian 12 to 13 across multiple LXC setup scripts. Refactor update_script functions for consistency, improve messaging, and standardize apt usage. Update Kimai install and update scripts to use setup_php, setup_composer, and fetch_and_deploy_gh_release helpers, and switch from MySQL to MariaDB. Update Kometa to use Python 3.13. Minor improvements to backup, cleanup, and service management steps in several scripts.
2025-10-23 16:28:01 +02:00
community-scripts-pr-app[bot]
99617f265a Update CHANGELOG.md (#8596)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-23 13:46:59 +00:00
CanbiZ
1fe00c2493 Refactor: Kavita + Updated tools.func (no-same-owner) (#8594) 2025-10-23 15:46:28 +02:00
community-scripts-pr-app[bot]
05fd03d160 Update versions.json (#8592)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-23 14:05:51 +02:00
community-scripts-pr-app[bot]
e837ebb0e5 Update CHANGELOG.md (#8591)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-23 11:11:51 +00:00
Slaviša Arežina
8e1a9ffb07 MeTube: Fix inserting path into .bashrc (#8589)
* Fixes

* Update

* Update
2025-10-23 04:11:22 -07:00
community-scripts-pr-app[bot]
af991286dc Update CHANGELOG.md (#8590)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-23 11:06:45 +00:00
CanbiZ
c1205691e7 tools.func: update update_check messages for clarity (#8588)
* Update update check messages for clarity

* Change message for no update available case
2025-10-23 13:06:13 +02:00
community-scripts-pr-app[bot]
394787e10e Update CHANGELOG.md (#8584)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-23 00:12:58 +00:00
community-scripts-pr-app[bot]
e37ef10283 Update versions.json (#8583)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-23 02:12:26 +02:00
community-scripts-pr-app[bot]
130e3c7efe Update CHANGELOG.md (#8579)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-22 15:57:21 +00:00
CanbiZ
634a847c06 part-db: use helper-script php function (#8575) 2025-10-22 17:56:41 +02:00
CanbiZ
c92f9d5518 Check and remove Node.js if version is not 22
Remove existing Node.js installation if version is not 22.
2025-10-22 17:18:35 +02:00
CanbiZ
c7fffd85d3 Expand MongoDB setup to support Ubuntu and update repo handling
Extended the MongoDB setup function to handle both Debian and Ubuntu distributions, mapping their codenames to supported MongoDB suites. Updated the GPG key URL and output path, and adjusted the repository source file structure to match MongoDB's nested layout.
2025-10-22 17:07:12 +02:00
CanbiZ
2ae62055a6 Improve MongoDB repo setup for unknown Debian releases
Fallback to 'bookworm' for unknown Debian releases and update repository verification to check the correct nested path for MongoDB. Also adjust the sources.list format to match the new repository structure.
2025-10-22 17:02:44 +02:00
CanbiZ
e6bd1b5759 Fix MongoDB repo verification and component setup
Simplifies the arguments passed to verify_repo_available by removing the MongoDB version and org path from the suite parameter. Also sets the repository component to 'main' instead of using the variable REPO_COMPONENT.
2025-10-22 16:53:38 +02:00
CanbiZ
55120ae165 Fix MongoDB repo verification path in setup script
Update the repository path passed to verify_repo_available to include the MongoDB version, ensuring the correct repository is checked for availability.
2025-10-22 16:50:53 +02:00
CanbiZ
4672934701 Improve MongoDB repo suite selection for Debian
Enhances the setup_mongodb function to explicitly map Debian codenames to MongoDB-supported suites and adds a fallback to 'bookworm' if the repository is unavailable for the detected suite. This improves compatibility with newer Debian releases and provides clearer error handling.
2025-10-22 16:47:22 +02:00
community-scripts-pr-app[bot]
560e1fdad3 Update CHANGELOG.md (#8578)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-22 14:42:02 +00:00
CanbiZ
e60020a998 omada: remove static mongodb install (#8577) 2025-10-22 16:41:30 +02:00
CanbiZ
dfda118e65 Improve Node.js setup robustness and module handling
Enhances the setup_nodejs function by improving checks for existing Node.js and npm installations, ensuring jq is installed, handling APT update failures with retries, and providing clearer messaging. Also refines global Node module installation logic with better version checks, update/install messaging, and error handling. Ensures a safe working directory for npm to avoid errors.
2025-10-22 16:38:58 +02:00
CanbiZ
6d7c318dec Fix MongoDB repo suite handling for new Debian versions
Adds explicit mapping of 'trixie', 'forky', and 'sid' to 'bookworm' for MongoDB repository setup. Improves error handling by failing early if the repository is unavailable, instead of attempting a fallback.
2025-10-22 16:32:15 +02:00
CanbiZ
9c39c9cd67 fix formatting 2025-10-22 16:28:03 +02:00
CanbiZ
0ed95ea9cb Install npm using Debian repository if not found
Replaced manual npm installation with apt install.
2025-10-22 16:25:00 +02:00
CanbiZ
433119e830 Update Node.js version and npm installation logic
Updated Node.js version to 22 and modified npm installation process to handle missing npm in Node 22.x.
2025-10-22 16:21:01 +02:00
CanbiZ
a794358c14 Refactor MongoDB setup function
Refactor MongoDB setup function to improve error handling and streamline commands.
2025-10-22 16:17:20 +02:00
CanbiZ
0f69e8cc69 Refactor MySQL installation logic in tools.func
Refactor MySQL installation script for clarity and efficiency. Update package handling and repository setup for Debian 13+.
2025-10-22 15:42:41 +02:00
community-scripts-pr-app[bot]
2e34f534eb Update CHANGELOG.md (#8572)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-22 13:26:02 +00:00
CanbiZ
1c9d325ae8 Refactor: Full Change & Feature-Bump of tools.func (#8409) 2025-10-22 15:25:26 +02:00
community-scripts-pr-app[bot]
a117cb7a34 Update versions.json (#8569)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-22 14:07:07 +02:00
community-scripts-pr-app[bot]
33d61e45c4 Update CHANGELOG.md (#8564)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-22 00:13:45 +00:00
community-scripts-pr-app[bot]
69a6590ab0 Update versions.json (#8563)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-22 02:13:15 +02:00
community-scripts-pr-app[bot]
0f2117ceba Update CHANGELOG.md (#8561)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-21 19:50:53 +00:00
Slaviša Arežina
87ae749eba Refactor (#8552) 2025-10-21 21:50:26 +02:00
community-scripts-pr-app[bot]
cc4b944b3b Update .app files (#8558)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-10-21 12:29:34 -07:00
community-scripts-pr-app[bot]
1c14b31a05 Update CHANGELOG.md (#8560)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-21 19:29:27 +00:00
Vincent
395e522430 Added validation before copying file and fix build command error (#8553) 2025-10-21 21:28:57 +02:00
community-scripts-pr-app[bot]
5277be0bc3 Update CHANGELOG.md (#8559)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-21 19:26:34 +00:00
community-scripts-pr-app[bot]
bd8d91057e Update CHANGELOG.md (#8557)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-21 19:26:04 +00:00
community-scripts-pr-app[bot]
de35c2a1f9 Update date in json (#8556)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-10-21 19:25:59 +00:00
Chris
f151c80b8b rwMarkable: migrate from rwMarkable => jotty (#8554) 2025-10-21 21:25:35 +02:00
community-scripts-pr-app[bot]
5f607a3132 Update CHANGELOG.md (#8551)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-21 17:06:54 +00:00
Yevhen Fastiuk
14bcaa054f 🐞 Bump libssl debian version to new update (#8547)
Signed-off-by: Yevhen <yfastiuk@iMac-Pro.local>
2025-10-21 19:06:20 +02:00
Slaviša Arežina
3d01a3bc03 Update open-archiver.json (#8542) 2025-10-21 15:32:41 +02:00
community-scripts-pr-app[bot]
389e40e6f0 Update versions.json (#8544)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-21 14:08:42 +02:00
community-scripts-pr-app[bot]
e94666c4d5 Update CHANGELOG.md (#8538)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-21 06:55:20 +00:00
Slaviša Arežina
f81cac1f70 Fix release version fetching (#8537) 2025-10-21 08:54:48 +02:00
community-scripts-pr-app[bot]
b8b5e92fd2 Update CHANGELOG.md (#8536)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-21 06:34:00 +00:00
CanbiZ
c160079447 jellyfin: fix opencl dep for ubuntu (#8535) 2025-10-21 08:33:32 +02:00
42 changed files with 2561 additions and 963 deletions

View File

@@ -10,8 +10,55 @@
> [!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-23
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- MeTube: Fix inserting path into .bashrc [@tremor021](https://github.com/tremor021) ([#8589](https://github.com/community-scripts/ProxmoxVE/pull/8589))
- #### 🔧 Refactor
- Refactor: Kavita + Updated tools.func (no-same-owner) [@MickLesk](https://github.com/MickLesk) ([#8594](https://github.com/community-scripts/ProxmoxVE/pull/8594))
- tools.func: update update_check messages for clarity [@MickLesk](https://github.com/MickLesk) ([#8588](https://github.com/community-scripts/ProxmoxVE/pull/8588))
## 2025-10-22
### 🚀 Updated Scripts
- Refactor: Full Change & Feature-Bump of tools.func [@MickLesk](https://github.com/MickLesk) ([#8409](https://github.com/community-scripts/ProxmoxVE/pull/8409))
- #### 🐞 Bug Fixes
- part-db: use helper-script php function [@MickLesk](https://github.com/MickLesk) ([#8575](https://github.com/community-scripts/ProxmoxVE/pull/8575))
- omada: remove static mongodb install [@MickLesk](https://github.com/MickLesk) ([#8577](https://github.com/community-scripts/ProxmoxVE/pull/8577))
## 2025-10-21 ## 2025-10-21
### 🆕 New Scripts
- rwMarkable: migrate from rwMarkable => jotty [@vhsdream](https://github.com/vhsdream) ([#8554](https://github.com/community-scripts/ProxmoxVE/pull/8554))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Guardian: Added validation before copying file and fix build command error [@HydroshieldMKII](https://github.com/HydroshieldMKII) ([#8553](https://github.com/community-scripts/ProxmoxVE/pull/8553))
- Unifi: Bump libssl debian version to new update [@fastiuk](https://github.com/fastiuk) ([#8547](https://github.com/community-scripts/ProxmoxVE/pull/8547))
- Alpine-TeamSpeak-Server: Fix release version fetching [@tremor021](https://github.com/tremor021) ([#8537](https://github.com/community-scripts/ProxmoxVE/pull/8537))
- jellyfin: fix opencl dep for ubuntu [@MickLesk](https://github.com/MickLesk) ([#8535](https://github.com/community-scripts/ProxmoxVE/pull/8535))
- #### ✨ New Features
- Refactor: ProjectSend [@tremor021](https://github.com/tremor021) ([#8552](https://github.com/community-scripts/ProxmoxVE/pull/8552))
### 🌐 Website
- #### 📝 Script Information
- Open Archiver: Fix application icon [@tremor021](https://github.com/tremor021) ([#8542](https://github.com/community-scripts/ProxmoxVE/pull/8542))
## 2025-10-20 ## 2025-10-20
### 🚀 Updated Scripts ### 🚀 Updated Scripts

View File

@@ -27,7 +27,7 @@ function update_script() {
exit 1 exit 1
fi fi
set +o pipefail && RELEASE=$(curl -fsSL https://teamspeak.com/en/downloads/#server | sed -n 's/.teamspeak3-server_linux_amd64-([0-9]+.[0-9]+.[0-9]+)./\1/p' | head -1) && set -o pipefail set +o pipefail && RELEASE=$(curl -fsSL https://teamspeak.com/en/downloads/#server | sed -n 's/.*teamspeak3-server_linux_amd64-\([0-9.]*[0-9]\).*/\1/p' | head -1) && set -o pipefail
if [ "${RELEASE}" != "$(cat ~/.teamspeak-server)" ] || [ ! -f ~/.teamspeak-server ]; then if [ "${RELEASE}" != "$(cat ~/.teamspeak-server)" ] || [ ! -f ~/.teamspeak-server ]; then
msg_info "Updating ${APP} LXC" msg_info "Updating ${APP} LXC"

View File

@@ -40,9 +40,9 @@ if check_for_gh_release "guardian" "HydroshieldMKII/Guardian" ; then
msg_ok "Backed up Database" msg_ok "Backed up Database"
fi fi
cp /opt/guardian/.env /opt [[ -f "/opt/guardian/.env" ]] && cp "/opt/guardian/.env" "/opt"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "guardian" "HydroshieldMKII/Guardian" "tarball" "latest" "/opt/guardian" CLEAN_INSTALL=1 fetch_and_deploy_gh_release "guardian" "HydroshieldMKII/Guardian" "tarball" "latest" "/opt/guardian"
mv /opt/.env /opt/guardian [[ -f "/opt/.env" ]] && mv "/opt/.env" "/opt/guardian"
if [[ -f "/tmp/plex-guard.db.backup" ]] ; then if [[ -f "/tmp/plex-guard.db.backup" ]] ; then
msg_info "Restoring Database" msg_info "Restoring Database"
@@ -58,7 +58,8 @@ if check_for_gh_release "guardian" "HydroshieldMKII/Guardian" ; then
cd /opt/guardian/frontend cd /opt/guardian/frontend
$STD npm ci $STD npm ci
$STD DEPLOYMENT_MODE=standalone npm run build export DEPLOYMENT_MODE=standalone
$STD npm run build
msg_ok "Updated Guardian" msg_ok "Updated Guardian"
msg_info "Starting Services" msg_info "Starting Services"

6
ct/headers/jotty Normal file
View File

@@ -0,0 +1,6 @@
_ __ __
(_)___ / /_/ /___ __
/ / __ \/ __/ __/ / / /
/ / /_/ / /_/ /_/ /_/ /
__/ /\____/\__/\__/\__, /
/___/ /____/

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:-8}" var_disk="${var_disk:-8}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -20,18 +20,18 @@ color
catch_errors catch_errors
function update_script() { function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -d /opt/iobroker ]]; then if [[ ! -d /opt/iobroker ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating ${APP} LXC"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated Successfully"
exit exit
fi
msg_info "Updating ${APP} LXC"
$STD apt update
$STD apt -y upgrade
msg_ok "Updated Successfully"
exit
} }
start start

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:-12}" var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -29,11 +29,10 @@ function update_script() {
exit 1 exit 1
fi fi
msg_info "Updating ${APP} LXC" msg_info "Updating LXC"
$STD apt-get update $STD apt-get update
$STD apt-get -y upgrade $STD apt-get -y upgrade
msg_ok "Updated Successfully" msg_ok "Updated Successfully!"
exit exit
} }

View File

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

View File

@@ -28,24 +28,24 @@ function update_script() {
exit exit
fi fi
if [ ! -f /opt/.env ]; then if check_for_gh_release "Jackett" "Jackett/Jackett"; then
sed -i 's|^Environment="DisableRootWarning=true"$|EnvironmentFile="/opt/.env"|' /etc/systemd/system/jackett.service if [ ! -f /opt/.env ]; then
cat <<EOF >/opt/.env sed -i 's|^Environment="DisableRootWarning=true"$|EnvironmentFile="/opt/.env"|' /etc/systemd/system/jackett.service
cat <<EOF >/opt/.env
DisableRootWarning=true DisableRootWarning=true
EOF EOF
fi fi
if check_for_gh_release "Jackett" "Jackett/Jackett"; then
msg_info "Stopping Service" msg_info "Stopping Service"
systemctl stop jackett systemctl stop jackett
msg_ok "Stopped Service" msg_ok "Stopped Service"
rm -rf /opt/Jackett CLEAN_INSTALL=1 fetch_and_deploy_gh_release "jackett" "Jackett/Jackett" "prebuild" "latest" "/opt/Jackett" "Jackett.Binaries.LinuxAMDx64.tar.gz"
fetch_and_deploy_gh_release "jackett" "Jackett/Jackett" "prebuild" "latest" "/opt/Jackett" "Jackett.Binaries.LinuxAMDx64.tar.gz"
msg_info "Starting Service" msg_info "Starting Service"
systemctl start jackett systemctl start jackett
msg_ok "Started Service" msg_ok "Started Service"
msg_ok "Updated Successfully" msg_ok "Updated Successfully!"
fi fi
exit exit
} }

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:-12}" var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -20,18 +20,22 @@ color
catch_errors catch_errors
function update_script() { function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -d /var/lib/jenkins ]]; then if [[ ! -d /var/lib/jenkins ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP LXC"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated $APP LXC"
exit exit
fi
JAVA_VERSION="21" setup_java
msg_info "Updating Jenkings"
$STD apt update
$STD apt -y upgrade
msg_ok "Updated Jenkins"
msg_ok "Update Successfully!"
exit
} }
start start

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}" var_ram="${var_ram:-4096}"
var_disk="${var_disk:-20}" var_disk="${var_disk:-20}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -35,19 +35,18 @@ function update_script() {
fetch_and_deploy_gh_release "joplin-server" "laurent22/joplin" "tarball" "latest" fetch_and_deploy_gh_release "joplin-server" "laurent22/joplin" "tarball" "latest"
msg_info "Updating ${APP}" msg_info "Updating Joplin-Server"
cd /opt/joplin-server cd /opt/joplin-server
sed -i "/onenote-converter/d" packages/lib/package.json sed -i "/onenote-converter/d" packages/lib/package.json
$STD yarn config set --home enableTelemetry 0 $STD yarn config set --home enableTelemetry 0
export BUILD_SEQUENCIAL=1 export BUILD_SEQUENCIAL=1
$STD yarn install --inline-builds $STD yarn install --inline-builds
msg_ok "Updated ${APP}" msg_ok "Updated Joplin-Server"
msg_info "Starting Services" msg_info "Starting Services"
systemctl start joplin-server systemctl start joplin-server
msg_ok "Started Services" msg_ok "Started Services"
msg_ok "Updated Successfully!"
msg_ok "Updated Successfully"
fi fi
exit exit
} }

74
ct/jotty.sh Normal file
View File

@@ -0,0 +1,74 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: vhsdream
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/fccview/jotty
APP="jotty"
var_tags="${var_tags:-tasks;notes}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-3072}"
var_disk="${var_disk:-6}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/jotty ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "jotty" "fccview/jotty"; then
msg_info "Stopping Service"
systemctl stop jotty
msg_ok "Stopped Service"
msg_info "Backing up configuration & data"
cd /opt/jotty
cp ./.env /opt/app.env
$STD tar -cf /opt/data_config.tar ./data ./config
msg_ok "Backed up configuration & data"
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "jotty" "fccview/jotty" "tarball" "latest" "/opt/jotty"
msg_info "Updating app"
cd /opt/jotty
$STD yarn --frozen-lockfile
$STD yarn next telemetry disable
$STD yarn build
msg_ok "Updated app"
msg_info "Restoring configuration & data"
mv /opt/app.env /opt/jotty/.env
$STD tar -xf /opt/data_config.tar
msg_ok "Restored configuration & data"
msg_info "Restarting ${APP} service"
systemctl start jotty
msg_ok "Restarted ${APP} service"
rm /opt/data_config.tar
msg_ok "Updated Successfully"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}" var_ram="${var_ram:-256}"
var_disk="${var_disk:-2}" var_disk="${var_disk:-2}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-13}"
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 "kapowarr" "Casvt/Kapowarr"; then if check_for_gh_release "kapowarr" "Casvt/Kapowarr"; then
msg_info "Stopping $APP" msg_info "Stopping Service"
systemctl stop kapowarr systemctl stop kapowarr
msg_ok "Stopped $APP" msg_ok "Stopped Service"
msg_info "Creating Backup" msg_info "Creating Backup"
mv /opt/kapowarr/db /opt/ mv /opt/kapowarr/db /opt/
@@ -42,14 +42,14 @@ function update_script() {
fetch_and_deploy_gh_release "kapowarr" "Casvt/Kapowarr" fetch_and_deploy_gh_release "kapowarr" "Casvt/Kapowarr"
msg_info "Updating $APP" msg_info "Updating Kapowarr"
mv /opt/db /opt/kapowarr mv /opt/db /opt/kapowarr
msg_ok "Updated $APP" msg_ok "Updated Kapowarr"
msg_info "Starting $APP" msg_info "Starting Service"
systemctl start kapowarr systemctl start kapowarr
msg_ok "Started $APP" msg_ok "Started Service"
msg_ok "Update Successful" msg_ok "Update Successfully!"
fi fi
exit exit
} }

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}" var_ram="${var_ram:-4096}"
var_disk="${var_disk:-10}" var_disk="${var_disk:-10}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -38,14 +38,11 @@ function update_script() {
msg_ok "Updated yt-dlp" msg_ok "Updated yt-dlp"
msg_info "Prepare update" msg_info "Prepare update"
if [[ -f /opt/${APP}_version.txt && "$(cat /opt/${APP}_version.txt)" < "0.23.0" ]]; then $STD apt install -y graphicsmagick ghostscript
$STD apt-get install -y graphicsmagick ghostscript
fi
if [[ -f /opt/karakeep/.env ]] && [[ ! -f /etc/karakeep/karakeep.env ]]; then if [[ -f /opt/karakeep/.env ]] && [[ ! -f /etc/karakeep/karakeep.env ]]; then
mkdir -p /etc/karakeep mkdir -p /etc/karakeep
mv /opt/karakeep/.env /etc/karakeep/karakeep.env mv /opt/karakeep/.env /etc/karakeep/karakeep.env
fi fi
rm -rf /opt/karakeep
msg_ok "Update prepared" msg_ok "Update prepared"
if grep -q "start:prod" /etc/systemd/system/karakeep-workers.service; then if grep -q "start:prod" /etc/systemd/system/karakeep-workers.service; then
@@ -65,7 +62,7 @@ function update_script() {
MODULE_VERSION="$(jq -r '.packageManager | split("@")[1]' /opt/karakeep/package.json)" MODULE_VERSION="$(jq -r '.packageManager | split("@")[1]' /opt/karakeep/package.json)"
NODE_VERSION="22" NODE_MODULE="pnpm@${MODULE_VERSION}" setup_nodejs NODE_VERSION="22" NODE_MODULE="pnpm@${MODULE_VERSION}" setup_nodejs
msg_info "Updating ${APP}" msg_info "Updating Karakeep"
corepack enable corepack enable
export PUPPETEER_SKIP_DOWNLOAD="true" export PUPPETEER_SKIP_DOWNLOAD="true"
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD="true" export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD="true"
@@ -86,17 +83,18 @@ function update_script() {
$STD pnpm migrate $STD pnpm migrate
$STD pnpm store prune $STD pnpm store prune
sed -i "s/^SERVER_VERSION=.*$/SERVER_VERSION=${CHECK_UPDATE_RELEASE}/" /etc/karakeep/karakeep.env sed -i "s/^SERVER_VERSION=.*$/SERVER_VERSION=${CHECK_UPDATE_RELEASE}/" /etc/karakeep/karakeep.env
msg_ok "Updated ${APP}" msg_ok "Updated Karakeep"
msg_info "Starting Services" msg_info "Starting Services"
systemctl start karakeep-browser karakeep-workers karakeep-web systemctl start karakeep-browser karakeep-workers karakeep-web
msg_ok "Started Services" msg_ok "Started Services"
msg_info "Cleaning up" msg_info "Cleaning up"
$STD apt-get autoremove -y $STD apt autoremove -y
$STD apt-get autoclean -y $STD apt autoclean -y
$STD apt clean -y
msg_ok "Cleaned" msg_ok "Cleaned"
msg_ok "Updated Successfully" msg_ok "Updated Successfully!"
fi fi
exit exit
} }

View File

@@ -11,7 +11,7 @@ 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}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-0}" var_unprivileged="${var_unprivileged:-0}"
var_fuse="${var_fuse:-yes}" var_fuse="${var_fuse:-yes}"
var_tun="${var_tun:-yes}" var_tun="${var_tun:-yes}"
@@ -29,10 +29,10 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
msg_info "Updating $APP LXC" msg_info "Updating LXC"
$STD apt-get update $STD apt update
$STD apt-get -y upgrade $STD apt -y upgrade
msg_ok "Updated $APP LXC" msg_ok "Updated LXC"
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:-8}" var_disk="${var_disk:-8}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -20,23 +20,28 @@ color
catch_errors catch_errors
function update_script() { function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -d /opt/Kavita ]]; then if [[ ! -d /opt/Kavita ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP LXC"
systemctl stop kavita
RELEASE=$(curl -fsSL https://api.github.com/repos/Kareadita/Kavita/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
$STD tar -xvzf <(curl -fsSL https://github.com/Kareadita/Kavita/releases/download/$RELEASE/kavita-linux-x64.tar.gz) --no-same-owner
rm -rf Kavita/config
cp -r Kavita/* /opt/Kavita
rm -rf Kavita
systemctl start kavita
msg_ok "Updated $APP LXC"
exit exit
fi
if check_for_gh_release "kavita" "Kareadita/Kavita"; then
msg_info "Stopping Service"
systemctl stop kavita
msg_ok "Service Stopped"
fetch_and_deploy_gh_release "kavita" "Kareadita/Kavita" "prebuild" "latest" "/opt/Kavita" "kavita-linux-x64.tar.gz"
chmod +x /opt/Kavita/Kavita && chown root:root /opt/Kavita/Kavita
msg_info "Starting Service"
systemctl start kavita
msg_ok "Service Started"
msg_ok "Update Successfully!"
fi
exit
} }
start start

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:-4}" var_disk="${var_disk:-4}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -28,9 +28,9 @@ function update_script() {
exit exit
fi fi
if check_for_gh_release "keycloak_app" "keycloak/keycloak"; then if check_for_gh_release "keycloak_app" "keycloak/keycloak"; then
msg_info "Stopping Keycloak" msg_info "Stopping Service"
systemctl stop keycloak systemctl stop keycloak
msg_ok "Stopped Keycloak" msg_ok "Stopped Service"
msg_info "Updating packages" msg_info "Updating packages"
$STD apt-get update $STD apt-get update
@@ -44,16 +44,16 @@ function update_script() {
fetch_and_deploy_gh_release "keycloak_app" "keycloak/keycloak" "prebuild" "latest" "/opt/keycloak" "keycloak-*.tar.gz" fetch_and_deploy_gh_release "keycloak_app" "keycloak/keycloak" "prebuild" "latest" "/opt/keycloak" "keycloak-*.tar.gz"
msg_info "Updating ${APP}" msg_info "Updating Keycloak"
cd /opt cd /opt
cp -a keycloak.old/conf/. keycloak/conf/ cp -a keycloak.old/conf/. keycloak/conf/
cp -a keycloak.old/providers/. keycloak/providers/ 2>/dev/null || true cp -a keycloak.old/providers/. keycloak/providers/ 2>/dev/null || true
cp -a keycloak.old/themes/. keycloak/themes/ 2>/dev/null || true cp -a keycloak.old/themes/. keycloak/themes/ 2>/dev/null || true
msg_ok "Updated ${APP} LXC" msg_ok "Updated Keycloak"
msg_info "Restarting Keycloak" msg_info "Restarting Service"
systemctl restart keycloak systemctl restart keycloak
msg_ok "Restarted Keycloak" msg_ok "Restarted Service"
msg_info "Cleaning up" msg_info "Cleaning up"
rm -rf keycloak.old rm -rf keycloak.old

View File

@@ -30,25 +30,13 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
CURRENT_PHP=$(php -v 2>/dev/null | awk '/^PHP/{print $2}' | cut -d. -f1,2)
if [[ "$CURRENT_PHP" != "8.4" ]]; then
msg_info "Migrating PHP $CURRENT_PHP to 8.4"
$STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
$STD apt-get update
$STD apt-get remove -y php"${CURRENT_PHP//./}"*
$STD apt-get install -y \
php8.4 composer \
php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm} \
libapache2-mod-php8.4
msg_ok "Migrated PHP $CURRENT_PHP to 8.4"
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/kimai/kimai/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') PHP_VERSION="8.4" PHP_MODULE="mysql" PHP_APACHE="YES" setup_php
BACKUP_DIR="/opt/kimai_backup" setup_composer
if check_for_gh_release "koillection" "benjaminjonard/koillection"; then
BACKUP_DIR="/opt/kimai_backup"
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Apache2" msg_info "Stopping Apache2"
systemctl stop apache2 systemctl stop apache2
msg_ok "Stopped Apache2" msg_ok "Stopped Apache2"
@@ -60,15 +48,9 @@ function update_script() {
[ -f /opt/kimai/config/packages/local.yaml ] && cp /opt/kimai/config/packages/local.yaml "$BACKUP_DIR/" [ -f /opt/kimai/config/packages/local.yaml ] && cp /opt/kimai/config/packages/local.yaml "$BACKUP_DIR/"
msg_ok "Backup completed" msg_ok "Backup completed"
msg_info "Updating ${APP} to ${RELEASE}" fetch_and_deploy_gh_release "kimai" "kimai/kimai"
trap "echo Unable to download release file for version ${RELEASE}; try again later" ERR
set -e msg_info "Updating Kimai"
curl -fsSL "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip")
$STD unzip "${RELEASE}".zip
set +e
trap - ERR
rm -rf /opt/kimai
mv kimai-"${RELEASE}" /opt/kimai
[ -d "$BACKUP_DIR/var" ] && cp -r "$BACKUP_DIR/var" /opt/kimai/ [ -d "$BACKUP_DIR/var" ] && cp -r "$BACKUP_DIR/var" /opt/kimai/
[ -f "$BACKUP_DIR/.env" ] && cp "$BACKUP_DIR/.env" /opt/kimai/ [ -f "$BACKUP_DIR/.env" ] && cp "$BACKUP_DIR/.env" /opt/kimai/
[ -f "$BACKUP_DIR/local.yaml" ] && cp "$BACKUP_DIR/local.yaml" /opt/kimai/config/packages/ [ -f "$BACKUP_DIR/local.yaml" ] && cp "$BACKUP_DIR/local.yaml" /opt/kimai/config/packages/
@@ -76,8 +58,7 @@ function update_script() {
cd /opt/kimai cd /opt/kimai
$STD composer install --no-dev --optimize-autoloader $STD composer install --no-dev --optimize-autoloader
$STD bin/console kimai:update $STD bin/console kimai:update
echo "${RELEASE}" >/opt/${APP}_version.txt msg_ok "Updated Kimai"
msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Starting Apache2" msg_info "Starting Apache2"
systemctl start apache2 systemctl start apache2
@@ -92,12 +73,9 @@ function update_script() {
msg_ok "Setup Permissions" msg_ok "Setup Permissions"
msg_info "Cleaning Up" msg_info "Cleaning Up"
rm -rf "${RELEASE}".zip
rm -rf "$BACKUP_DIR" rm -rf "$BACKUP_DIR"
msg_ok "Cleaned" msg_ok "Cleaned"
msg_ok "Updated Successfully" msg_ok "Updated Successfully!"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi fi
exit exit
} }

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:-8}" var_disk="${var_disk:-8}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -38,7 +38,7 @@ function update_script() {
fetch_and_deploy_gh_release "koillection" "benjaminjonard/koillection" fetch_and_deploy_gh_release "koillection" "benjaminjonard/koillection"
msg_info "Updating ${APP}" msg_info "Updating Koillection"
cd /opt/koillection cd /opt/koillection
cp -r /opt/koillection-backup/.env.local /opt/koillection cp -r /opt/koillection-backup/.env.local /opt/koillection
cp -r /opt/koillection-backup/public/uploads/. /opt/koillection/public/uploads/ cp -r /opt/koillection-backup/public/uploads/. /opt/koillection/public/uploads/
@@ -50,7 +50,7 @@ function update_script() {
$STD yarn install $STD yarn install
$STD yarn build $STD yarn build
chown -R www-data:www-data /opt/koillection/public/uploads chown -R www-data:www-data /opt/koillection/public/uploads
msg_ok "Updated $APP" msg_ok "Updated Koillection"
msg_info "Starting Service" msg_info "Starting Service"
systemctl start apache2 systemctl start apache2
@@ -59,7 +59,7 @@ function update_script() {
msg_info "Cleaning up" msg_info "Cleaning up"
rm -r /opt/koillection-backup rm -r /opt/koillection-backup
msg_ok "Cleaned" msg_ok "Cleaned"
msg_ok "Updated Successfully" msg_ok "Updated Successfully!"
fi fi
exit exit
} }

View File

@@ -37,7 +37,7 @@ function update_script() {
cp /opt/kometa/config/config.yml /opt cp /opt/kometa/config/config.yml /opt
msg_ok "Backup completed" msg_ok "Backup completed"
PYTHON_VERSION="3.12" setup_uv PYTHON_VERSION="3.13" setup_uv
fetch_and_deploy_gh_release "kometa" "Kometa-Team/Kometa" fetch_and_deploy_gh_release "kometa" "Kometa-Team/Kometa"
msg_info "Updating Kometa" msg_info "Updating Kometa"
@@ -49,7 +49,7 @@ function update_script() {
msg_info "Starting Service" msg_info "Starting Service"
systemctl start kometa systemctl start kometa
msg_ok "Started Service" msg_ok "Started Service"
msg_ok "Update Successful" msg_ok "Update Successfully!"
fi fi
exit exit
} }

View File

@@ -39,7 +39,7 @@ function update_script() {
msg_info "Starting Service" msg_info "Starting Service"
systemctl start komga systemctl start komga
msg_ok "Started Service" msg_ok "Started Service"
msg_ok "Updated Successfully" msg_ok "Updated Successfully!"
fi fi
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:-12}" var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -29,7 +29,7 @@ function update_script() {
exit 1 exit 1
} }
msg_info "Updating ${APP}" msg_info "Updating Komodo"
COMPOSE_FILE=$(find /opt/komodo -maxdepth 1 -type f -name '*.compose.yaml' ! -name 'compose.env' | head -n1) COMPOSE_FILE=$(find /opt/komodo -maxdepth 1 -type f -name '*.compose.yaml' ! -name 'compose.env' | head -n1)
if [[ -z "$COMPOSE_FILE" ]]; then if [[ -z "$COMPOSE_FILE" ]]; then
msg_error "No valid compose file found in /opt/komodo!" msg_error "No valid compose file found in /opt/komodo!"
@@ -61,7 +61,7 @@ function update_script() {
fi fi
$STD docker compose -p komodo -f "$COMPOSE_FILE" --env-file /opt/komodo/compose.env pull $STD docker compose -p komodo -f "$COMPOSE_FILE" --env-file /opt/komodo/compose.env pull
$STD docker compose -p komodo -f "$COMPOSE_FILE" --env-file /opt/komodo/compose.env up -d $STD docker compose -p komodo -f "$COMPOSE_FILE" --env-file /opt/komodo/compose.env up -d
msg_ok "Updated ${APP}" msg_ok "Updated Komodo"
exit exit
} }

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}" var_ram="${var_ram:-4096}"
var_disk="${var_disk:-4}" var_disk="${var_disk:-4}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
header_info "$APP" header_info "$APP"
@@ -37,7 +37,7 @@ function update_script() {
msg_info "Starting service" msg_info "Starting service"
systemctl start ipfs systemctl start ipfs
msg_ok "Service started" msg_ok "Service started"
msg_ok "Updated successfully" msg_ok "Updated successfully!"
fi fi
exit exit
} }

View File

@@ -30,7 +30,7 @@ function update_script() {
fi fi
if [[ $(echo ":$PATH:" != *":/usr/local/bin:"*) ]]; then if [[ $(echo ":$PATH:" != *":/usr/local/bin:"*) ]]; then
echo 'export PATH="/usr/local/bin:$PATH"' >>~/.bashrc echo -e "\nexport PATH=\"/usr/local/bin:\$PATH\"" >>~/.bashrc
source ~/.bashrc source ~/.bashrc
if ! command -v deno &>/dev/null; then if ! command -v deno &>/dev/null; then
export DENO_INSTALL="/usr/local" export DENO_INSTALL="/usr/local"
@@ -110,6 +110,7 @@ EOF
msg_ok "Updated Successfully!" msg_ok "Updated Successfully!"
fi fi
exit
} }
start start

View File

@@ -28,6 +28,19 @@ function update_script() {
exit exit
fi fi
if command -v node &> /dev/null; then
CURRENT_NODE_VERSION=$(node --version | cut -d'v' -f2 | cut -d'.' -f1)
if [[ "$CURRENT_NODE_VERSION" != "22" ]]; then
systemctl stop openresty
apt-get purge -y nodejs npm
apt-get autoremove -y
rm -rf /usr/local/bin/node /usr/local/bin/npm
rm -rf /usr/local/lib/node_modules
rm -rf ~/.npm
rm -rf /root/.npm
fi
fi
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
export NODE_OPTIONS="--openssl-legacy-provider" export NODE_OPTIONS="--openssl-legacy-provider"

View File

@@ -27,31 +27,28 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
RELEASE=$(curl -fsSL https://api.github.com/repos/projectsend/projectsend/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then if check_for_gh_release "projectsend" "projectsend/projectsend"; then
msg_info "Stopping Service" msg_info "Stopping Service"
systemctl stop apache2 systemctl stop apache2
msg_ok "Stopped Service" msg_ok "Stopped Service"
msg_info "Updating ${APP} to v${RELEASE}" php_ver=$(php -v | head -n 1 | awk '{print $2}')
cd /opt if [[ ! $php_ver == "8.4"* ]]; then
curl -fsSL "https://github.com/projectsend/projectsend/releases/download/r${RELEASE}/projectsend-r${RELEASE}.zip" -o $(basename "https://github.com/projectsend/projectsend/releases/download/r${RELEASE}/projectsend-r${RELEASE}.zip") PHP_VERSION="8.4" PHP_APACHE="YES" PHP_MODULE="pdo,mysql,gettext,fileinfo" setup_php
$STD unzip -o "projectsend-r${RELEASE}.zip" -d projectsend fi
mv /opt/projectsend/includes/sys.config.php /opt/sys.config.php
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "projectsend" "projectsend/projectsend" "prebuild" "latest" "/opt/projectsend" "projectsend-r*.zip"
mv /opt/sys.config.php /opt/projectsend/includes/sys.config.php
chown -R www-data:www-data /opt/projectsend chown -R www-data:www-data /opt/projectsend
chmod -R 775 /opt/projectsend chmod -R 775 /opt/projectsend
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting Service" msg_info "Starting Service"
systemctl start apache2 systemctl start apache2
msg_ok "Started Service" msg_ok "Started Service"
msg_info "Cleaning up"
rm -rf "/opt/projectsend-r${RELEASE}.zip"
msg_ok "Cleaned"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi fi
exit exit
} }

View File

@@ -29,38 +29,41 @@ function update_script() {
exit exit
fi fi
if check_for_gh_release "rwMarkable" "fccview/rwMarkable"; then msg_info "Stopping service"
msg_info "Stopping Service" systemctl -q disable --now rwmarkable
systemctl stop rwmarkable msg_ok "Stopped Service"
msg_ok "Stopped Service"
msg_info "Backing up configuration & data" NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
cd /opt/rwmarkable CLEAN_INSTALL=1 fetch_and_deploy_gh_release "jotty" "fccview/jotty" "tarball" "latest" "/opt/jotty"
cp ./.env /opt/app.env
$STD tar -cf /opt/data_config.tar ./data ./config
msg_ok "Backed up configuration & data"
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs msg_info "Updating app"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "rwMarkable" "fccview/rwMarkable" "tarball" "latest" "/opt/rwmarkable" cd /opt/jotty
$STD yarn --frozen-lockfile
$STD yarn next telemetry disable
$STD yarn build
msg_ok "Updated app"
msg_info "Updating app" msg_info "Migrating configuration & data"
cd /opt/rwmarkable cp /opt/rwmarkable/.env /opt/jotty/.env
$STD yarn --frozen-lockfile mkdir -p /opt/jotty/data
$STD yarn next telemetry disable cp -r /opt/rwmarkable/data/* /opt/jotty/data
$STD yarn build cp -r /opt/rwmarkable/config/* /opt/jotty/config
msg_ok "Updated app" msg_ok "Migrated configuration & data"
msg_info "Restoring configuration & data" msg_info "Patching systemd service file"
mv /opt/app.env /opt/rwmarkable/.env sed -i 's/rw[M|m]arkable/jotty/g' /etc/systemd/system/rwmarkable.service
$STD tar -xf /opt/data_config.tar mv /etc/systemd/system/rwmarkable.service /etc/systemd/system/jotty.service
msg_ok "Restored configuration & data" systemctl daemon-reload
msg_ok "Patched systemd service file"
msg_info "Restarting ${APP} service" msg_info "Patching update script"
systemctl start rwmarkable sed -i 's/rwmarkable/jotty/g' /usr/bin/update
msg_ok "Restarted ${APP} service" msg_ok "Patched update script"
rm /opt/data_config.tar
msg_ok "Updated Successfully" msg_info "Starting jotty service"
fi systemctl -q enable --now jotty
msg_ok "Started jotty service"
msg_ok "Migrated Successfully!"
exit exit
} }

View File

@@ -0,0 +1,40 @@
{
"name": "jotty",
"slug": "jotty",
"categories": [
12
],
"date_created": "2025-10-21",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": "https://github.com/fccview/jotty/blob/main/README.md",
"website": "https://github.com/fccview/jotty",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/jotty.webp",
"config_path": "/opt/jotty/.env",
"description": "A simple, self-hosted app for your checklists and notes. Tired of bloated, cloud-based to-do apps? jotty is a lightweight alternative for managing your personal checklists and notes. It's built with Next.js 14, is easy to deploy, and keeps all your data on your own server.",
"install_methods": [
{
"type": "default",
"script": "ct/jotty.sh",
"resources": {
"cpu": 2,
"ram": 3072,
"hdd": 6,
"os": "debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "jotty was previously named rwMarkable",
"type": "info"
}
]
}

View File

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

View File

@@ -12,7 +12,7 @@
"documentation": "https://docs.openarchiver.com/", "documentation": "https://docs.openarchiver.com/",
"config_path": "/opt/openarchiver/.env", "config_path": "/opt/openarchiver/.env",
"website": "https://openarchiver.com/", "website": "https://openarchiver.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/OpenArchiver.webp", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/open-archiver.webp",
"description": "Open Archiver is a secure, self-hosted email archiving solution, and it's completely open source. Get an email archiver that enables full-text search across email and attachments. Create a permanent, searchable, and compliant mail archive from Google Workspace, Microsoft 35, and any IMAP server.", "description": "Open Archiver is a secure, self-hosted email archiving solution, and it's completely open source. Get an email archiver that enables full-text search across email and attachments. Create a permanent, searchable, and compliant mail archive from Google Workspace, Microsoft 35, and any IMAP server.",
"install_methods": [ "install_methods": [
{ {

View File

@@ -1,35 +0,0 @@
{
"name": "rwMarkable",
"slug": "rwmarkable",
"categories": [
12
],
"date_created": "2025-10-09",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": "https://github.com/fccview/rwMarkable/blob/main/README.md",
"website": "https://github.com/fccview/rwMarkable",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/rwmarkable.webp",
"config_path": "/opt/rwmarkable/.env",
"description": "A simple, self-hosted app for your checklists and notes. Tired of bloated, cloud-based to-do apps? rwMarkable is a lightweight alternative for managing your personal checklists and notes. It's built with Next.js 14, is easy to deploy, and keeps all your data on your own server.",
"install_methods": [
{
"type": "default",
"script": "ct/rwmarkable.sh",
"resources": {
"cpu": 2,
"ram": 3072,
"hdd": 6,
"os": "debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@@ -1,8 +1,238 @@
[ [
{
"name": "duplicati/duplicati",
"version": "v2.2.0.0-2.2.0.0_stable_2025-10-23",
"date": "2025-10-23T11:25:25Z"
},
{
"name": "keycloak/keycloak",
"version": "26.4.2",
"date": "2025-10-23T06:59:32Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.24.175",
"date": "2025-10-23T05:50:23Z"
},
{
"name": "YunoHost/yunohost",
"version": "debian/12.1.31",
"date": "2025-10-23T00:45:04Z"
},
{
"name": "jeedom/core",
"version": "4.4.20",
"date": "2025-10-23T00:27:05Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v4.0.1",
"date": "2025-10-15T16:53:55Z"
},
{
"name": "BerriAI/litellm",
"version": "v1.78.7-nightly",
"date": "2025-10-22T22:33:31Z"
},
{
"name": "jhuckaby/Cronicle",
"version": "v0.9.99",
"date": "2025-10-22T22:20:33Z"
},
{
"name": "sabnzbd/sabnzbd",
"version": "4.5.4",
"date": "2025-10-22T21:23:17Z"
},
{
"name": "moghtech/komodo",
"version": "v1.19.5",
"date": "2025-09-27T20:59:46Z"
},
{
"name": "paperless-ngx/paperless-ngx",
"version": "v2.19.1",
"date": "2025-10-22T20:40:07Z"
},
{
"name": "rcourtman/Pulse",
"version": "issue-596",
"date": "2025-10-22T19:48:56Z"
},
{
"name": "gtsteffaniak/filebrowser",
"version": "v0.8.10-beta",
"date": "2025-10-22T18:41:54Z"
},
{
"name": "docker/compose",
"version": "v2.40.2",
"date": "2025-10-22T17:38:12Z"
},
{
"name": "louislam/uptime-kuma",
"version": "2.0.2",
"date": "2025-10-22T17:03:54Z"
},
{
"name": "chrisvel/tududi",
"version": "v0.84.2",
"date": "2025-10-22T17:03:48Z"
},
{
"name": "prometheus/prometheus",
"version": "v0.307.2",
"date": "2025-10-22T16:00:08Z"
},
{
"name": "thecfu/scraparr",
"version": "v3.0.0-beta",
"date": "2025-10-22T13:12:10Z"
},
{
"name": "NLnetLabs/unbound",
"version": "release-1.24.1",
"date": "2025-10-22T10:28:00Z"
},
{
"name": "mattermost/mattermost",
"version": "server/public/v0.1.21",
"date": "2025-10-16T09:46:16Z"
},
{
"name": "zabbix/zabbix",
"version": "7.4.4rc1",
"date": "2025-10-22T09:20:59Z"
},
{
"name": "SigNoz/signoz",
"version": "v0.98.0",
"date": "2025-10-22T06:49:36Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.3",
"date": "2025-09-20T12:12:33Z"
},
{
"name": "fuma-nama/fumadocs",
"version": "create-fumadocs-app@16.0.1",
"date": "2025-10-22T05:44:06Z"
},
{
"name": "chrisbenincasa/tunarr",
"version": "v0.23.0-alpha.17",
"date": "2025-10-22T00:33:47Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.30.0",
"date": "2025-10-21T21:37:52Z"
},
{
"name": "bluenviron/mediamtx",
"version": "v1.15.3",
"date": "2025-10-21T19:56:55Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.50.28",
"date": "2025-10-21T19:51:28Z"
},
{
"name": "mongodb/mongo",
"version": "r8.0.15",
"date": "2025-10-21T19:03:20Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.533",
"date": "2025-10-21T18:26:10Z"
},
{
"name": "TwiN/gatus",
"version": "v5.27.2",
"date": "2025-10-21T18:03:22Z"
},
{
"name": "kyantech/Palmr",
"version": "v3.2.5-beta",
"date": "2025-10-21T16:49:14Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.116.2",
"date": "2025-10-21T11:39:58Z"
},
{
"name": "element-hq/synapse",
"version": "v1.140.0",
"date": "2025-10-14T15:57:12Z"
},
{
"name": "grafana/grafana",
"version": "v12.2.1",
"date": "2025-10-21T14:40:19Z"
},
{
"name": "crowdsecurity/crowdsec",
"version": "v1.7.2",
"date": "2025-10-21T14:36:48Z"
},
{
"name": "laurent22/joplin",
"version": "server-v3.4.4",
"date": "2025-09-25T13:19:26Z"
},
{
"name": "wazuh/wazuh",
"version": "v4.14.0",
"date": "2025-10-21T13:39:55Z"
},
{ {
"name": "goauthentik/authentik", "name": "goauthentik/authentik",
"version": "version/2025.10.0-rc1", "version": "version/2025.10.0-rc2",
"date": "2025-10-20T23:43:29Z" "date": "2025-10-21T00:19:36Z"
},
{
"name": "AlexxIT/go2rtc",
"version": "v1.9.11",
"date": "2025-10-21T13:21:02Z"
},
{
"name": "influxdata/telegraf",
"version": "v1.36.3",
"date": "2025-10-21T12:53:58Z"
},
{
"name": "apache/cassandra",
"version": "5.0.6-tentative",
"date": "2025-10-21T11:42:35Z"
},
{
"name": "evcc-io/evcc",
"version": "0.209.3",
"date": "2025-10-21T10:53:07Z"
},
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "pmm-6401-v1.128.0",
"date": "2025-10-21T08:30:52Z"
},
{
"name": "meilisearch/meilisearch",
"version": "prototype-v1.24.0.ignore-embedding-failures-2",
"date": "2025-10-21T07:36:22Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.16.0-rc1",
"date": "2025-10-21T00:37:47Z"
},
{
"name": "documenso/documenso",
"version": "v1.13.0",
"date": "2025-10-21T00:21:04Z"
}, },
{ {
"name": "henrygd/beszel", "name": "henrygd/beszel",
@@ -24,61 +254,21 @@
"version": "v1.0.23", "version": "v1.0.23",
"date": "2025-10-20T19:51:33Z" "date": "2025-10-20T19:51:33Z"
}, },
{
"name": "chrisbenincasa/tunarr",
"version": "v0.23.0-alpha.16",
"date": "2025-10-20T19:29:20Z"
},
{ {
"name": "MediaBrowser/Emby.Releases", "name": "MediaBrowser/Emby.Releases",
"version": "4.9.1.80", "version": "4.9.1.80",
"date": "2025-09-30T20:25:16Z" "date": "2025-09-30T20:25:16Z"
}, },
{
"name": "kyantech/Palmr",
"version": "v3.2.4-beta",
"date": "2025-10-20T17:58:55Z"
},
{ {
"name": "tailscale/tailscale", "name": "tailscale/tailscale",
"version": "v1.91.0-pre", "version": "v1.91.0-pre",
"date": "2025-10-20T16:18:51Z" "date": "2025-10-20T16:18:51Z"
}, },
{
"name": "meilisearch/meilisearch",
"version": "prototype-v1.24.0.ignore-embedding-failures-1",
"date": "2025-10-20T16:17:45Z"
},
{
"name": "louislam/uptime-kuma",
"version": "2.0.1",
"date": "2025-10-20T16:11:12Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.29.2",
"date": "2025-10-20T16:07:20Z"
},
{
"name": "chrisvel/tududi",
"version": "v0.84.1",
"date": "2025-10-20T15:32:24Z"
},
{ {
"name": "rclone/rclone", "name": "rclone/rclone",
"version": "v1.71.2", "version": "v1.71.2",
"date": "2025-10-20T15:25:52Z" "date": "2025-10-20T15:25:52Z"
}, },
{
"name": "openobserve/openobserve",
"version": "v0.16.0-rc1",
"date": "2025-10-20T13:16:20Z"
},
{
"name": "crowdsecurity/crowdsec",
"version": "v1.7.1",
"date": "2025-10-15T10:44:03Z"
},
{ {
"name": "Graylog2/graylog2-server", "name": "Graylog2/graylog2-server",
"version": "7.0.0-rc.1", "version": "7.0.0-rc.1",
@@ -94,21 +284,11 @@
"version": "v2025.10.4", "version": "v2025.10.4",
"date": "2025-10-20T10:45:54Z" "date": "2025-10-20T10:45:54Z"
}, },
{
"name": "apache/cassandra",
"version": "cassandra-4.0.19",
"date": "2025-10-20T09:08:49Z"
},
{ {
"name": "jupyter/notebook", "name": "jupyter/notebook",
"version": "@jupyter-notebook/ui-components@7.5.0-beta.1", "version": "@jupyter-notebook/ui-components@7.5.0-beta.1",
"date": "2025-10-20T07:01:38Z" "date": "2025-10-20T07:01:38Z"
}, },
{
"name": "Jackett/Jackett",
"version": "v0.24.159",
"date": "2025-10-20T05:53:23Z"
},
{ {
"name": "inventree/InvenTree", "name": "inventree/InvenTree",
"version": "1.0.7", "version": "1.0.7",
@@ -134,26 +314,11 @@
"version": "v1.0.0-beta27", "version": "v1.0.0-beta27",
"date": "2025-10-20T00:38:13Z" "date": "2025-10-20T00:38:13Z"
}, },
{
"name": "jeedom/core",
"version": "4.4.20",
"date": "2025-10-20T00:27:05Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v4.0.1",
"date": "2025-10-15T16:53:55Z"
},
{ {
"name": "seriousm4x/UpSnap", "name": "seriousm4x/UpSnap",
"version": "5.2.3", "version": "5.2.3",
"date": "2025-10-19T20:50:15Z" "date": "2025-10-19T20:50:15Z"
}, },
{
"name": "dgtlmoon/changedetection.io",
"version": "0.50.27",
"date": "2025-10-19T20:31:07Z"
},
{ {
"name": "verdaccio/verdaccio", "name": "verdaccio/verdaccio",
"version": "generator-verdaccio-plugin@6.0.0-next-8.24", "version": "generator-verdaccio-plugin@6.0.0-next-8.24",
@@ -169,11 +334,6 @@
"version": "v13.0.0", "version": "v13.0.0",
"date": "2025-10-19T10:03:18Z" "date": "2025-10-19T10:03:18Z"
}, },
{
"name": "morpheus65535/bazarr",
"version": "v1.5.3",
"date": "2025-09-20T12:12:33Z"
},
{ {
"name": "Prowlarr/Prowlarr", "name": "Prowlarr/Prowlarr",
"version": "v2.0.5.5160", "version": "v2.0.5.5160",
@@ -184,11 +344,6 @@
"version": "v2.14.5.4836", "version": "v2.14.5.4836",
"date": "2025-10-08T15:30:50Z" "date": "2025-10-08T15:30:50Z"
}, },
{
"name": "BerriAI/litellm",
"version": "v1.78.5.rc.1",
"date": "2025-10-18T23:17:14Z"
},
{ {
"name": "Luligu/matterbridge", "name": "Luligu/matterbridge",
"version": "3.3.3", "version": "3.3.3",
@@ -204,11 +359,6 @@
"version": "v2025-10-18", "version": "v2025-10-18",
"date": "2025-10-18T20:35:54Z" "date": "2025-10-18T20:35:54Z"
}, },
{
"name": "moghtech/komodo",
"version": "v1.19.5",
"date": "2025-09-27T20:59:46Z"
},
{ {
"name": "project-zot/zot", "name": "project-zot/zot",
"version": "v2.1.10", "version": "v2.1.10",
@@ -219,11 +369,6 @@
"version": "v1.42.1", "version": "v1.42.1",
"date": "2025-10-18T18:31:38Z" "date": "2025-10-18T18:31:38Z"
}, },
{
"name": "YunoHost/yunohost",
"version": "debian/12.1.29",
"date": "2025-10-18T17:35:19Z"
},
{ {
"name": "Notifiarr/notifiarr", "name": "Notifiarr/notifiarr",
"version": "v0.9.0", "version": "v0.9.0",
@@ -234,11 +379,6 @@
"version": "v4.3.2", "version": "v4.3.2",
"date": "2025-10-18T12:11:00Z" "date": "2025-10-18T12:11:00Z"
}, },
{
"name": "laurent22/joplin",
"version": "server-v3.4.4",
"date": "2025-09-25T13:19:26Z"
},
{ {
"name": "readeck/readeck", "name": "readeck/readeck",
"version": "0.20.4", "version": "0.20.4",
@@ -259,21 +399,11 @@
"version": "v25.4", "version": "v25.4",
"date": "2025-10-09T10:27:01Z" "date": "2025-10-09T10:27:01Z"
}, },
{
"name": "TwiN/gatus",
"version": "v5.27.0",
"date": "2025-10-18T02:44:26Z"
},
{ {
"name": "9001/copyparty", "name": "9001/copyparty",
"version": "v1.19.17", "version": "v1.19.17",
"date": "2025-10-17T23:40:02Z" "date": "2025-10-17T23:40:02Z"
}, },
{
"name": "gtsteffaniak/filebrowser",
"version": "v0.8.9-beta",
"date": "2025-10-17T21:51:21Z"
},
{ {
"name": "home-assistant/core", "name": "home-assistant/core",
"version": "2025.10.3", "version": "2025.10.3",
@@ -284,11 +414,6 @@
"version": "v13.0.1", "version": "v13.0.1",
"date": "2025-10-17T18:54:16Z" "date": "2025-10-17T18:54:16Z"
}, },
{
"name": "keycloak/keycloak",
"version": "26.4.1",
"date": "2025-10-16T07:21:53Z"
},
{ {
"name": "grokability/snipe-it", "name": "grokability/snipe-it",
"version": "v8.3.4", "version": "v8.3.4",
@@ -299,31 +424,11 @@
"version": "v4.6.1", "version": "v4.6.1",
"date": "2025-10-17T15:21:59Z" "date": "2025-10-17T15:21:59Z"
}, },
{
"name": "docker/compose",
"version": "v2.40.1",
"date": "2025-10-17T13:42:04Z"
},
{ {
"name": "neo4j/neo4j", "name": "neo4j/neo4j",
"version": "5.26.14", "version": "5.26.14",
"date": "2025-10-17T12:38:22Z" "date": "2025-10-17T12:38:22Z"
}, },
{
"name": "mattermost/mattermost",
"version": "server/public/v0.1.21",
"date": "2025-10-16T09:46:16Z"
},
{
"name": "wazuh/wazuh",
"version": "coverity-w42-4.14.0",
"date": "2025-10-16T12:13:42Z"
},
{
"name": "prometheus/prometheus",
"version": "v0.307.1",
"date": "2025-10-17T08:41:04Z"
},
{ {
"name": "zwave-js/zwave-js-ui", "name": "zwave-js/zwave-js-ui",
"version": "v11.5.2", "version": "v11.5.2",
@@ -356,19 +461,14 @@
}, },
{ {
"name": "ollama/ollama", "name": "ollama/ollama",
"version": "v0.12.6-rc1", "version": "v0.12.6",
"date": "2025-10-16T16:36:25Z" "date": "2025-10-16T20:07:41Z"
}, },
{ {
"name": "minio/minio", "name": "minio/minio",
"version": "RELEASE.2025-10-15T17-29-55Z", "version": "RELEASE.2025-10-15T17-29-55Z",
"date": "2025-10-16T19:33:51Z" "date": "2025-10-16T19:33:51Z"
}, },
{
"name": "SigNoz/signoz",
"version": "v0.98.0-rc.1",
"date": "2025-10-16T17:49:50Z"
},
{ {
"name": "open-webui/open-webui", "name": "open-webui/open-webui",
"version": "v0.6.34", "version": "v0.6.34",
@@ -379,11 +479,6 @@
"version": "v3.2.8", "version": "v3.2.8",
"date": "2025-10-16T14:21:48Z" "date": "2025-10-16T14:21:48Z"
}, },
{
"name": "rcourtman/Pulse",
"version": "v4.24.0",
"date": "2025-10-16T09:08:47Z"
},
{ {
"name": "zitadel/zitadel", "name": "zitadel/zitadel",
"version": "v4.4.0", "version": "v4.4.0",
@@ -429,11 +524,6 @@
"version": "2.3.3", "version": "2.3.3",
"date": "2025-10-15T13:18:27Z" "date": "2025-10-15T13:18:27Z"
}, },
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.528.1",
"date": "2025-10-15T12:51:20Z"
},
{ {
"name": "cockpit-project/cockpit", "name": "cockpit-project/cockpit",
"version": "349", "version": "349",
@@ -459,11 +549,6 @@
"version": "2025.10.0", "version": "2025.10.0",
"date": "2025-10-14T19:07:37Z" "date": "2025-10-14T19:07:37Z"
}, },
{
"name": "evcc-io/evcc",
"version": "0.209.2",
"date": "2025-10-14T18:55:44Z"
},
{ {
"name": "crafty-controller/crafty-4", "name": "crafty-controller/crafty-4",
"version": "v4.5.5", "version": "v4.5.5",
@@ -479,16 +564,6 @@
"version": "16.2", "version": "16.2",
"date": "2025-09-08T14:03:25Z" "date": "2025-09-08T14:03:25Z"
}, },
{
"name": "element-hq/synapse",
"version": "v1.140.0",
"date": "2025-10-14T15:57:12Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.115.3",
"date": "2025-10-14T14:40:17Z"
},
{ {
"name": "rogerfar/rdt-client", "name": "rogerfar/rdt-client",
"version": "v2.0.119", "version": "v2.0.119",
@@ -499,21 +574,6 @@
"version": "v1.5.3", "version": "v1.5.3",
"date": "2025-10-13T19:59:30Z" "date": "2025-10-13T19:59:30Z"
}, },
{
"name": "bluenviron/mediamtx",
"version": "v1.15.2",
"date": "2025-10-13T17:03:15Z"
},
{
"name": "jhuckaby/Cronicle",
"version": "v0.9.97",
"date": "2025-10-13T16:13:50Z"
},
{
"name": "sabnzbd/sabnzbd",
"version": "4.5.3",
"date": "2025-08-25T13:59:56Z"
},
{ {
"name": "node-red/node-red", "name": "node-red/node-red",
"version": "4.1.1", "version": "4.1.1",
@@ -544,11 +604,6 @@
"version": "v0.10.4", "version": "v0.10.4",
"date": "2025-10-11T19:53:39Z" "date": "2025-10-11T19:53:39Z"
}, },
{
"name": "duplicati/duplicati",
"version": "v2.1.2.3-2.1.2.3_beta_2025-10-11",
"date": "2025-10-11T06:49:43Z"
},
{ {
"name": "0xERR0R/blocky", "name": "0xERR0R/blocky",
"version": "v0.27.0", "version": "v0.27.0",
@@ -619,11 +674,6 @@
"version": "11.0.1", "version": "11.0.1",
"date": "2025-10-09T12:34:15Z" "date": "2025-10-09T12:34:15Z"
}, },
{
"name": "documenso/documenso",
"version": "v1.12.10",
"date": "2025-10-09T04:32:35Z"
},
{ {
"name": "rabbitmq/rabbitmq-server", "name": "rabbitmq/rabbitmq-server",
"version": "v4.1.4", "version": "v4.1.4",
@@ -674,16 +724,6 @@
"version": "v0.15.1", "version": "v0.15.1",
"date": "2025-10-07T20:30:56Z" "date": "2025-10-07T20:30:56Z"
}, },
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "pmm-6401-v1.127.0",
"date": "2025-10-07T14:31:32Z"
},
{
"name": "thecfu/scraparr",
"version": "v2.2.5",
"date": "2025-10-07T12:34:31Z"
},
{ {
"name": "pocket-id/pocket-id", "name": "pocket-id/pocket-id",
"version": "v1.13.1", "version": "v1.13.1",
@@ -704,11 +744,6 @@
"version": "v2.2.2", "version": "v2.2.2",
"date": "2025-10-06T21:31:07Z" "date": "2025-10-06T21:31:07Z"
}, },
{
"name": "fuma-nama/fumadocs",
"version": "fumadocs-ui@15.8.4",
"date": "2025-10-06T15:41:49Z"
},
{ {
"name": "bunkerity/bunkerweb", "name": "bunkerity/bunkerweb",
"version": "v1.6.5", "version": "v1.6.5",
@@ -769,16 +804,6 @@
"version": "v5.41.4", "version": "v5.41.4",
"date": "2025-09-30T22:26:11Z" "date": "2025-09-30T22:26:11Z"
}, },
{
"name": "zabbix/zabbix",
"version": "7.4.3",
"date": "2025-09-30T21:49:53Z"
},
{
"name": "mongodb/mongo",
"version": "r8.2.1",
"date": "2025-09-30T21:46:28Z"
},
{ {
"name": "WordPress/WordPress", "name": "WordPress/WordPress",
"version": "4.7.31", "version": "4.7.31",
@@ -799,11 +824,6 @@
"version": "v1.11.1", "version": "v1.11.1",
"date": "2025-09-30T00:24:16Z" "date": "2025-09-30T00:24:16Z"
}, },
{
"name": "influxdata/telegraf",
"version": "v1.36.2",
"date": "2025-09-29T19:16:49Z"
},
{ {
"name": "Cleanuparr/Cleanuparr", "name": "Cleanuparr/Cleanuparr",
"version": "v2.3.3", "version": "v2.3.3",
@@ -875,20 +895,15 @@
"date": "2025-09-24T13:51:23Z" "date": "2025-09-24T13:51:23Z"
}, },
{ {
"name": "AlexxIT/go2rtc", "name": "mysql/mysql-server",
"version": "v1.9.10", "version": "mysql-cluster-8.4.7",
"date": "2025-09-24T13:49:53Z" "date": "2025-09-24T12:23:38Z"
}, },
{ {
"name": "syncthing/syncthing", "name": "syncthing/syncthing",
"version": "v2.0.10", "version": "v2.0.10",
"date": "2025-09-24T08:33:37Z" "date": "2025-09-24T08:33:37Z"
}, },
{
"name": "grafana/grafana",
"version": "v12.2.0",
"date": "2025-09-23T23:47:02Z"
},
{ {
"name": "postgres/postgres", "name": "postgres/postgres",
"version": "REL_18_0", "version": "REL_18_0",
@@ -934,11 +949,6 @@
"version": "v0.23.2", "version": "v0.23.2",
"date": "2025-09-18T17:18:59Z" "date": "2025-09-18T17:18:59Z"
}, },
{
"name": "NLnetLabs/unbound",
"version": "release-1.24.0",
"date": "2025-09-18T08:36:55Z"
},
{ {
"name": "eclipse-mosquitto/mosquitto", "name": "eclipse-mosquitto/mosquitto",
"version": "2.1.0-test1", "version": "2.1.0-test1",
@@ -1019,11 +1029,6 @@
"version": "v2.16.0", "version": "v2.16.0",
"date": "2025-09-09T01:05:45Z" "date": "2025-09-09T01:05:45Z"
}, },
{
"name": "paperless-ngx/paperless-ngx",
"version": "v2.18.4",
"date": "2025-09-07T23:57:32Z"
},
{ {
"name": "CrazyWolf13/streamlink-webui", "name": "CrazyWolf13/streamlink-webui",
"version": "0.6", "version": "0.6",
@@ -1224,11 +1229,6 @@
"version": "v2.12.6", "version": "v2.12.6",
"date": "2025-07-09T21:52:15Z" "date": "2025-07-09T21:52:15Z"
}, },
{
"name": "mysql/mysql-server",
"version": "mysql-cluster-9.4.0",
"date": "2025-07-09T08:35:30Z"
},
{ {
"name": "photoprism/photoprism", "name": "photoprism/photoprism",
"version": "250707-d28b3101e", "version": "250707-d28b3101e",

View File

@@ -20,7 +20,7 @@ $STD apk add --no-cache \
libc6-compat libc6-compat
msg_ok "Installed dependencies" msg_ok "Installed dependencies"
RELEASE=$(curl -fsSL https://teamspeak.com/en/downloads/#server | sed -n 's/.*teamspeak3-server_linux_amd64-\([0-9.]\+\).*/\1/p' | head -1) RELEASE=$(curl -fsSL https://teamspeak.com/en/downloads/#server | sed -n 's/.*teamspeak3-server_linux_amd64-\([0-9.]*[0-9]\).*/\1/p' | head -1)
msg_info "Installing Teamspeak Server v${RELEASE}" msg_info "Installing Teamspeak Server v${RELEASE}"
mkdir -p /opt/teamspeak-server mkdir -p /opt/teamspeak-server
cd /opt/teamspeak-server cd /opt/teamspeak-server

View File

@@ -19,11 +19,9 @@ if ! grep -qEi 'ubuntu' /etc/os-release; then
fetch_and_deploy_gh_release "intel-igc-opencl-2" "intel/intel-graphics-compiler" "binary" "latest" "" "intel-igc-opencl-2_*_amd64.deb" fetch_and_deploy_gh_release "intel-igc-opencl-2" "intel/intel-graphics-compiler" "binary" "latest" "" "intel-igc-opencl-2_*_amd64.deb"
fetch_and_deploy_gh_release "intel-libgdgmm12" "intel/compute-runtime" "binary" "latest" "" "libigdgmm12_*_amd64.deb" fetch_and_deploy_gh_release "intel-libgdgmm12" "intel/compute-runtime" "binary" "latest" "" "libigdgmm12_*_amd64.deb"
fetch_and_deploy_gh_release "intel-opencl-icd" "intel/compute-runtime" "binary" "latest" "" "intel-opencl-icd_*_amd64.deb" fetch_and_deploy_gh_release "intel-opencl-icd" "intel/compute-runtime" "binary" "latest" "" "intel-opencl-icd_*_amd64.deb"
else
$STD apt -y install intel-ocl-icd
fi fi
$STD apt -y install {va-driver-all,ocl-icd-libopencl1,vainfo,intel-gpu-tools} $STD apt -y install {va-driver-all,ocl-icd-libopencl1,intel-opencl-icd,vainfo,intel-gpu-tools}
if [[ "$CTTYPE" == "0" ]]; then if [[ "$CTTYPE" == "0" ]]; then
chgrp video /dev/dri chgrp video /dev/dri
chmod 755 /dev/dri chmod 755 /dev/dri

View File

@@ -3,7 +3,7 @@
# Copyright (c) 2021-2025 community-scripts ORG # Copyright (c) 2021-2025 community-scripts ORG
# Author: vhsdream # Author: vhsdream
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/fccview/rwMarkable # Source: https://github.com/fccview/jotty
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
@@ -14,16 +14,16 @@ network_check
update_os update_os
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
fetch_and_deploy_gh_release "rwMarkable" "fccview/rwMarkable" "tarball" "latest" "/opt/rwmarkable" fetch_and_deploy_gh_release "jotty" "fccview/jotty" "tarball" "latest" "/opt/jotty"
msg_info "Installing ${APPLICATION}" msg_info "Installing ${APPLICATION}"
cd /opt/rwmarkable cd /opt/jotty
$STD yarn --frozen-lockfile $STD yarn --frozen-lockfile
$STD yarn next telemetry disable $STD yarn next telemetry disable
$STD yarn build $STD yarn build
mkdir -p data/{users,checklists,notes} mkdir -p data/{users,checklists,notes}
cat <<EOF >/opt/rwmarkable/.env cat <<EOF >/opt/jotty/.env
NODE_ENV=production NODE_ENV=production
# HTTPS=true # HTTPS=true
@@ -39,21 +39,21 @@ EOF
msg_ok "Installed ${APPLICATION}" msg_ok "Installed ${APPLICATION}"
msg_info "Creating Service" msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/rwmarkable.service cat <<EOF >/etc/systemd/system/jotty.service
[Unit] [Unit]
Description=rwMarkable server Description=jotty server
After=network.target After=network.target
[Service] [Service]
WorkingDirectory=/opt/rwmarkable WorkingDirectory=/opt/jotty
EnvironmentFile=/opt/rwmarkable/.env EnvironmentFile=/opt/jotty/.env
ExecStart=yarn start ExecStart=yarn start
Restart=on-abnormal Restart=on-abnormal
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
EOF EOF
systemctl enable -q --now rwmarkable systemctl enable -q --now jotty
msg_ok "Created Service" msg_ok "Created Service"
motd_ssh motd_ssh

View File

@@ -13,15 +13,11 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing Kavita" fetch_and_deploy_gh_release "Kavita" "Kareadita/Kavita" "prebuild" "latest" "/opt/Kavita" "kavita-linux-x64.tar.gz"
cd /opt
RELEASE=$(curl -fsSL https://api.github.com/repos/Kareadita/Kavita/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
$STD tar -xvzf <(curl -fsSL https://github.com/Kareadita/Kavita/releases/download/$RELEASE/kavita-linux-x64.tar.gz) --no-same-owner
msg_ok "Installed Kavita"
msg_info "Creating Service" msg_info "Creating Service"
service_path="/etc/systemd/system/kavita.service" cat <<EOF >/etc/systemd/system/kavita.service
echo "[Unit] [Unit]
Description=Kavita Server Description=Kavita Server
After=network.target After=network.target
@@ -34,15 +30,17 @@ KillMode=process
Restart=on-failure Restart=on-failure
[Install] [Install]
WantedBy=multi-user.target" >$service_path WantedBy=multi-user.target
chmod +x /opt/Kavita/* && chown root /opt/Kavita/* EOF
systemctl enable --now -q kavita.service chmod +x /opt/Kavita/Kavita && chown root:root /opt/Kavita/Kavita
systemctl enable -q --now kavita
msg_ok "Created Service" msg_ok "Created Service"
motd_ssh motd_ssh
customize customize
msg_info "Cleaning up" msg_info "Cleaning up"
$STD apt-get -y autoremove $STD apt -y autoremove
$STD apt-get -y autoclean $STD apt -y autoclean
$STD apt -y clean
msg_ok "Cleaned" msg_ok "Cleaned"

View File

@@ -14,40 +14,25 @@ network_check
update_os update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y \ $STD apt install -y \
apt-transport-https \ apt-transport-https \
apache2 \ apache2 \
git \ git \
expect \ expect
composer \
lsb-release
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
setup_mysql setup_mariadb
PHP_VERSION="8.4" PHP_MODULE="mysql" PHP_APACHE="YES" setup_php
msg_info "Adding PHP8.4 Repository" setup_composer
$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
$STD apt-get update
msg_ok "Added PHP8.4 Repository"
msg_info "Installing PHP"
$STD apt-get remove -y php8.2*
$STD apt-get install -y \
php8.4 \
php8.4-{gd,mysql,mbstring,bcmath,xml,curl,zip,intl} \
libapache2-mod-php8.4
msg_ok "Installed PHP"
msg_info "Setting up database" msg_info "Setting up database"
DB_NAME=kimai_db DB_NAME=kimai_db
DB_USER=kimai DB_USER=kimai
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13) DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
MYSQL_VERSION=$(mysql --version | grep -oE '[0-9]+\.[0-9]+\.[0-9]+') MYSQL_VERSION=$(mariadb --version | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
$STD mysql -u root -e "CREATE DATABASE $DB_NAME;" $STD mariadb -e "CREATE DATABASE $DB_NAME;"
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';" $STD mariadb -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;" $STD mariadb -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
{ {
echo "Kimai-Credentials" echo "Kimai-Credentials"
echo "Kimai Database User: $DB_USER" echo "Kimai Database User: $DB_USER"
@@ -56,11 +41,9 @@ $STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH
} >>~/kimai.creds } >>~/kimai.creds
msg_ok "Set up database" msg_ok "Set up database"
msg_info "Installing Kimai (Patience)" fetch_and_deploy_gh_release "kimai" "kimai/kimai"
RELEASE=$(curl -fsSL https://api.github.com/repos/kimai/kimai/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
curl -fsSL "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip" -o "${RELEASE}".zip msg_info "Setup Kimai"
$STD unzip "${RELEASE}".zip
mv kimai-"${RELEASE}" /opt/kimai
cd /opt/kimai cd /opt/kimai
echo "export COMPOSER_ALLOW_SUPERUSER=1" >>~/.bashrc echo "export COMPOSER_ALLOW_SUPERUSER=1" >>~/.bashrc
source ~/.bashrc source ~/.bashrc
@@ -92,8 +75,6 @@ admin_lte:
options: options:
default_avatar: build/apple-touch-icon.png default_avatar: build/apple-touch-icon.png
EOF EOF
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed Kimai" msg_ok "Installed Kimai"
msg_info "Creating Service" msg_info "Creating Service"
@@ -131,6 +112,7 @@ customize
msg_info "Cleaning up" msg_info "Cleaning up"
rm -rf "${RELEASE}".zip rm -rf "${RELEASE}".zip
$STD apt-get -y autoremove $STD apt -y autoremove
$STD apt-get -y autoclean $STD apt -y autoclean
$STD apt -y clean
msg_ok "Cleaned" msg_ok "Cleaned"

View File

@@ -33,7 +33,7 @@ msg_info "Installing Deno"
export DENO_INSTALL="/usr/local" export DENO_INSTALL="/usr/local"
curl -fsSL https://deno.land/install.sh | $STD sh -s -- -y curl -fsSL https://deno.land/install.sh | $STD sh -s -- -y
[[ ":$PATH:" != *":/usr/local/bin:"* ]] && [[ ":$PATH:" != *":/usr/local/bin:"* ]] &&
echo 'export PATH="/usr/local/bin:$PATH"' >>~/.bashrc && echo -e "\nexport PATH=\"/usr/local/bin:\$PATH\"" >>~/.bashrc &&
source ~/.bashrc source ~/.bashrc
msg_ok "Installed Deno" msg_ok "Installed Deno"

View File

@@ -19,11 +19,11 @@ msg_ok "Installed Dependencies"
msg_info "Checking CPU Features" msg_info "Checking CPU Features"
if lscpu | grep -q 'avx'; then if lscpu | grep -q 'avx'; then
MONGODB_VERSION="7.0" MONGODB_VERSION="8.0"
msg_ok "AVX detected: Using MongoDB 7.0" msg_ok "AVX detected: Using MongoDB 8.0"
MONGO_VERSION="8.0" setup_mongodb
else else
msg_error "No AVX detected: TP-Link Canceled Support for Old MongoDB for Debian 12\n https://www.tp-link.com/baltic/support/faq/4160/" MONGO_VERSION="4.4" setup_mongodb
exit 0
fi fi
msg_info "Installing Azul Zulu Java" msg_info "Installing Azul Zulu Java"
@@ -34,27 +34,15 @@ $STD apt update
$STD apt -y install zulu21-jre-headless $STD apt -y install zulu21-jre-headless
msg_ok "Installed Azul Zulu Java" msg_ok "Installed Azul Zulu Java"
msg_info "Installing libssl (if needed)"
if ! dpkg -l | grep -q 'libssl1.1'; then if ! dpkg -l | grep -q 'libssl1.1'; then
msg_info "Installing libssl (if needed)"
curl -fsSL "https://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.1_1.1.1w-0+deb11u4_amd64.deb" -o "/tmp/libssl.deb" curl -fsSL "https://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.1_1.1.1w-0+deb11u4_amd64.deb" -o "/tmp/libssl.deb"
$STD dpkg -i /tmp/libssl.deb $STD dpkg -i /tmp/libssl.deb
rm -f /tmp/libssl.deb rm -f /tmp/libssl.deb
msg_ok "Installed libssl1.1" msg_ok "Installed libssl1.1"
fi fi
msg_info "Installing MongoDB $MONGODB_VERSION"
curl -fsSL "https://www.mongodb.org/static/pgp/server-${MONGODB_VERSION}.asc" | gpg --dearmor >/usr/share/keyrings/mongodb-server-${MONGODB_VERSION}.gpg
cat <<EOF >/etc/apt/sources.list.d/mongodb-org-${MONGODB_VERSION}.sources
Types: deb
URIs: http://repo.mongodb.org/apt/debian
Suites: $(grep '^VERSION_CODENAME=' /etc/os-release | cut -d'=' -f2)/mongodb-org/${MONGODB_VERSION}
Components: main
Signed-By: /usr/share/keyrings/mongodb-server-${MONGODB_VERSION}.gpg
EOF
$STD apt update
$STD apt install -y mongodb-org
msg_ok "Installed MongoDB $MONGODB_VERSION"
msg_info "Installing Omada Controller" msg_info "Installing Omada Controller"
OMADA_URL=$(curl -fsSL "https://support.omadanetworks.com/en/download/software/omada-controller/" | OMADA_URL=$(curl -fsSL "https://support.omadanetworks.com/en/download/software/omada-controller/" |
grep -o 'https://static\.tp-link\.com/upload/software/[^"]*linux_x64[^"]*\.deb' | grep -o 'https://static\.tp-link\.com/upload/software/[^"]*linux_x64[^"]*\.deb' |

View File

@@ -13,19 +13,10 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing Dependencies"
$STD apt install -y \
ca-certificates \
software-properties-common \
apt-transport-https \
lsb-release \
php-{opcache,curl,gd,mbstring,xml,bcmath,intl,zip,xsl,pgsql} \
libapache2-mod-php \
composer
msg_ok "Installed Dependencies"
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
PG_VERSION="16" setup_postgresql PG_VERSION="16" setup_postgresql
PHP_VERSION="8.4" PHP_APACHE="YES" PHP_MODULE="xsl,pgsql" setup_php
setup_composer
msg_info "Setting up PHP" msg_info "Setting up PHP"
PHPVER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION . "\n";') PHPVER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION . "\n";')

View File

@@ -13,14 +13,9 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing Dependencies" PHP_VERSION="8.4" PHP_APACHE="YES" PHP_MODULE="pdo,mysql,gettext,fileinfo" setup_php
$STD apt install -y \
apache2 \
libapache2-mod-php \
php8.2-{pdo,mysql,mbstring,gettext,fileinfo,gd,xml,zip}
msg_ok "Installed Dependencies"
setup_mariadb setup_mariadb
fetch_and_deploy_gh_release "projectsend" "projectsend/projectsend" "prebuild" "latest" "/opt/projectsend" "projectsend-r*.zip"
msg_info "Setting up MariaDB" msg_info "Setting up MariaDB"
DB_NAME=projectsend DB_NAME=projectsend
@@ -37,12 +32,7 @@ $STD mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUS
} >>~/projectsend.creds } >>~/projectsend.creds
msg_ok "Set up MariaDB" msg_ok "Set up MariaDB"
msg_info "Installing projectsend" msg_info "Installing ProjectSend"
RELEASE=$(curl -fsSL https://api.github.com/repos/projectsend/projectsend/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
cd /opt
curl -fsSL "https://github.com/projectsend/projectsend/releases/download/r${RELEASE}/projectsend-r${RELEASE}.zip" -o "projectsend-r${RELEASE}.zip"
mkdir projectsend
$STD unzip "projectsend-r${RELEASE}.zip" -d projectsend
mv /opt/projectsend/includes/sys.config.sample.php /opt/projectsend/includes/sys.config.php mv /opt/projectsend/includes/sys.config.sample.php /opt/projectsend/includes/sys.config.php
chown -R www-data:www-data /opt/projectsend chown -R www-data:www-data /opt/projectsend
chmod -R 775 /opt/projectsend chmod -R 775 /opt/projectsend
@@ -55,8 +45,7 @@ sed -i -e "s/^\(memory_limit = \).*/\1 256M/" \
-e "s/^\(post_max_size = \).*/\1 256M/" \ -e "s/^\(post_max_size = \).*/\1 256M/" \
-e "s/^\(upload_max_filesize = \).*/\1 256M/" \ -e "s/^\(upload_max_filesize = \).*/\1 256M/" \
-e "s/^\(max_execution_time = \).*/\1 300/" \ -e "s/^\(max_execution_time = \).*/\1 300/" \
/etc/php/8.2/apache2/php.ini /etc/php/8.4/apache2/php.ini
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed projectsend" msg_ok "Installed projectsend"
msg_info "Creating Service" msg_info "Creating Service"
@@ -84,7 +73,6 @@ motd_ssh
customize customize
msg_info "Cleaning up" msg_info "Cleaning up"
rm -rf "/opt/projectsend-r${RELEASE}.zip"
$STD apt -y autoremove $STD apt -y autoremove
$STD apt -y autoclean $STD apt -y autoclean
$STD apt -y clean $STD apt -y clean

View File

@@ -35,8 +35,8 @@ if ! grep -q -m1 'avx[^ ]*' /proc/cpuinfo; then
msg_ok "No AVX Support Detected" msg_ok "No AVX Support Detected"
msg_info "Installing MongoDB 4.4" msg_info "Installing MongoDB 4.4"
if ! dpkg -l | grep -q "libssl1.1"; then if ! dpkg -l | grep -q "libssl1.1"; then
curl -fsSL "https://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.1_1.1.1w-0+deb11u3_amd64.deb" -o "libssl1.1_1.1.1w-0+deb11u3_amd64.deb" curl -fsSL "https://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.1_1.1.1w-0+deb11u4_amd64.deb" -o "libssl1.1_1.1.1w-0+deb11u4_amd64.deb"
$STD dpkg -i libssl1.1_1.1.1w-0+deb11u3_amd64.deb $STD dpkg -i libssl1.1_1.1.1w-0+deb11u4_amd64.deb
fi fi
curl -fsSL "https://www.mongodb.org/static/pgp/server-4.4.asc" | gpg --dearmor -o /usr/share/keyrings/mongodb-server-4.4.gpg curl -fsSL "https://www.mongodb.org/static/pgp/server-4.4.asc" | gpg --dearmor -o /usr/share/keyrings/mongodb-server-4.4.gpg
cat <<EOF | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.sources >/dev/null cat <<EOF | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.sources >/dev/null

File diff suppressed because it is too large Load Diff