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]
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
### 🆕 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
### 🚀 Updated Scripts

View File

@@ -27,7 +27,7 @@ function update_script() {
exit 1
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
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"
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"
mv /opt/.env /opt/guardian
[[ -f "/opt/.env" ]] && mv "/opt/.env" "/opt/guardian"
if [[ -f "/tmp/plex-guard.db.backup" ]] ; then
msg_info "Restoring Database"
@@ -58,7 +58,8 @@ if check_for_gh_release "guardian" "HydroshieldMKII/Guardian" ; then
cd /opt/guardian/frontend
$STD npm ci
$STD DEPLOYMENT_MODE=standalone npm run build
export DEPLOYMENT_MODE=standalone
$STD npm run build
msg_ok "Updated Guardian"
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_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@@ -20,18 +20,18 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/iobroker ]]; then
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"
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/iobroker ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating ${APP} LXC"
$STD apt update
$STD apt -y upgrade
msg_ok "Updated Successfully"
exit
}
start
@@ -41,4 +41,4 @@ 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}:8081${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8081${CL}"

View File

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

View File

@@ -11,7 +11,7 @@ var_disk="${var_disk:-2}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-0}"
header_info "$APP"
@@ -38,4 +38,4 @@ 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}:26000${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:26000${CL}"

View File

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

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@@ -20,18 +20,22 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /var/lib/jenkins ]]; then
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"
header_info
check_container_storage
check_container_resources
if [[ ! -d /var/lib/jenkins ]]; then
msg_error "No ${APP} Installation Found!"
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
@@ -41,4 +45,4 @@ 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}:8080${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-20}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@@ -35,19 +35,18 @@ function update_script() {
fetch_and_deploy_gh_release "joplin-server" "laurent22/joplin" "tarball" "latest"
msg_info "Updating ${APP}"
msg_info "Updating Joplin-Server"
cd /opt/joplin-server
sed -i "/onenote-converter/d" packages/lib/package.json
$STD yarn config set --home enableTelemetry 0
export BUILD_SEQUENCIAL=1
$STD yarn install --inline-builds
msg_ok "Updated ${APP}"
msg_ok "Updated Joplin-Server"
msg_info "Starting Services"
systemctl start joplin-server
msg_ok "Started Services"
msg_ok "Updated Successfully"
msg_ok "Updated Successfully!"
fi
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_disk="${var_disk:-2}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@@ -32,9 +32,9 @@ function update_script() {
setup_uv
if check_for_gh_release "kapowarr" "Casvt/Kapowarr"; then
msg_info "Stopping $APP"
msg_info "Stopping Service"
systemctl stop kapowarr
msg_ok "Stopped $APP"
msg_ok "Stopped Service"
msg_info "Creating Backup"
mv /opt/kapowarr/db /opt/
@@ -42,14 +42,14 @@ function update_script() {
fetch_and_deploy_gh_release "kapowarr" "Casvt/Kapowarr"
msg_info "Updating $APP"
msg_info "Updating 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
msg_ok "Started $APP"
msg_ok "Update Successful"
msg_ok "Started Service"
msg_ok "Update Successfully!"
fi
exit
}

View File

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

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-8192}"
var_disk="${var_disk:-30}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-0}"
var_fuse="${var_fuse:-yes}"
var_tun="${var_tun:-yes}"
@@ -29,10 +29,10 @@ function update_script() {
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"
msg_info "Updating LXC"
$STD apt update
$STD apt -y upgrade
msg_ok "Updated LXC"
exit
}

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@@ -20,23 +20,28 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/Kavita ]]; then
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"
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/Kavita ]]; then
msg_error "No ${APP} Installation Found!"
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
@@ -46,4 +51,4 @@ 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}:5000${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@@ -28,9 +28,9 @@ function update_script() {
exit
fi
if check_for_gh_release "keycloak_app" "keycloak/keycloak"; then
msg_info "Stopping Keycloak"
msg_info "Stopping Service"
systemctl stop keycloak
msg_ok "Stopped Keycloak"
msg_ok "Stopped Service"
msg_info "Updating packages"
$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"
msg_info "Updating ${APP}"
msg_info "Updating Keycloak"
cd /opt
cp -a keycloak.old/conf/. keycloak/conf/
cp -a keycloak.old/providers/. keycloak/providers/ 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
msg_ok "Restarted Keycloak"
msg_ok "Restarted Service"
msg_info "Cleaning up"
rm -rf keycloak.old

View File

@@ -30,25 +30,13 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
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) }')
BACKUP_DIR="/opt/kimai_backup"
PHP_VERSION="8.4" PHP_MODULE="mysql" PHP_APACHE="YES" setup_php
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"
systemctl stop 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/"
msg_ok "Backup completed"
msg_info "Updating ${APP} to ${RELEASE}"
trap "echo Unable to download release file for version ${RELEASE}; try again later" ERR
set -e
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
fetch_and_deploy_gh_release "kimai" "kimai/kimai"
msg_info "Updating 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/local.yaml" ] && cp "$BACKUP_DIR/local.yaml" /opt/kimai/config/packages/
@@ -76,8 +58,7 @@ function update_script() {
cd /opt/kimai
$STD composer install --no-dev --optimize-autoloader
$STD bin/console kimai:update
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
msg_ok "Updated Kimai"
msg_info "Starting Apache2"
systemctl start apache2
@@ -92,12 +73,9 @@ function update_script() {
msg_ok "Setup Permissions"
msg_info "Cleaning Up"
rm -rf "${RELEASE}".zip
rm -rf "$BACKUP_DIR"
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
msg_ok "Updated Successfully!"
fi
exit
}

View File

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

View File

@@ -37,7 +37,7 @@ function update_script() {
cp /opt/kometa/config/config.yml /opt
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"
msg_info "Updating Kometa"
@@ -49,7 +49,7 @@ function update_script() {
msg_info "Starting Service"
systemctl start kometa
msg_ok "Started Service"
msg_ok "Update Successful"
msg_ok "Update Successfully!"
fi
exit
}

View File

@@ -39,7 +39,7 @@ function update_script() {
msg_info "Starting Service"
systemctl start komga
msg_ok "Started Service"
msg_ok "Updated Successfully"
msg_ok "Updated Successfully!"
fi
exit
}

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-10}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@@ -29,7 +29,7 @@ function update_script() {
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)
if [[ -z "$COMPOSE_FILE" ]]; then
msg_error "No valid compose file found in /opt/komodo!"
@@ -61,7 +61,7 @@ function update_script() {
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 up -d
msg_ok "Updated ${APP}"
msg_ok "Updated Komodo"
exit
}

View File

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

View File

@@ -30,7 +30,7 @@ function update_script() {
fi
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
if ! command -v deno &>/dev/null; then
export DENO_INSTALL="/usr/local"
@@ -110,6 +110,7 @@ EOF
msg_ok "Updated Successfully!"
fi
exit
}
start

View File

@@ -27,6 +27,19 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
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
export NODE_OPTIONS="--openssl-legacy-provider"

View File

@@ -27,31 +27,28 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
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"
systemctl stop apache2
msg_ok "Stopped Service"
msg_info "Updating ${APP} to v${RELEASE}"
cd /opt
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")
$STD unzip -o "projectsend-r${RELEASE}.zip" -d projectsend
php_ver=$(php -v | head -n 1 | awk '{print $2}')
if [[ ! $php_ver == "8.4"* ]]; then
PHP_VERSION="8.4" PHP_APACHE="YES" PHP_MODULE="pdo,mysql,gettext,fileinfo" setup_php
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
chmod -R 775 /opt/projectsend
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting Service"
systemctl start apache2
msg_ok "Started Service"
msg_info "Cleaning up"
rm -rf "/opt/projectsend-r${RELEASE}.zip"
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

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

View File

@@ -12,7 +12,7 @@
"documentation": "https://docs.openarchiver.com/",
"config_path": "/opt/openarchiver/.env",
"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.",
"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",
"version": "version/2025.10.0-rc1",
"date": "2025-10-20T23:43:29Z"
"version": "version/2025.10.0-rc2",
"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",
@@ -24,61 +254,21 @@
"version": "v1.0.23",
"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",
"version": "4.9.1.80",
"date": "2025-09-30T20:25:16Z"
},
{
"name": "kyantech/Palmr",
"version": "v3.2.4-beta",
"date": "2025-10-20T17:58:55Z"
},
{
"name": "tailscale/tailscale",
"version": "v1.91.0-pre",
"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",
"version": "v1.71.2",
"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",
"version": "7.0.0-rc.1",
@@ -94,21 +284,11 @@
"version": "v2025.10.4",
"date": "2025-10-20T10:45:54Z"
},
{
"name": "apache/cassandra",
"version": "cassandra-4.0.19",
"date": "2025-10-20T09:08:49Z"
},
{
"name": "jupyter/notebook",
"version": "@jupyter-notebook/ui-components@7.5.0-beta.1",
"date": "2025-10-20T07:01:38Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.24.159",
"date": "2025-10-20T05:53:23Z"
},
{
"name": "inventree/InvenTree",
"version": "1.0.7",
@@ -134,26 +314,11 @@
"version": "v1.0.0-beta27",
"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",
"version": "5.2.3",
"date": "2025-10-19T20:50:15Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.50.27",
"date": "2025-10-19T20:31:07Z"
},
{
"name": "verdaccio/verdaccio",
"version": "generator-verdaccio-plugin@6.0.0-next-8.24",
@@ -169,11 +334,6 @@
"version": "v13.0.0",
"date": "2025-10-19T10:03:18Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.3",
"date": "2025-09-20T12:12:33Z"
},
{
"name": "Prowlarr/Prowlarr",
"version": "v2.0.5.5160",
@@ -184,11 +344,6 @@
"version": "v2.14.5.4836",
"date": "2025-10-08T15:30:50Z"
},
{
"name": "BerriAI/litellm",
"version": "v1.78.5.rc.1",
"date": "2025-10-18T23:17:14Z"
},
{
"name": "Luligu/matterbridge",
"version": "3.3.3",
@@ -204,11 +359,6 @@
"version": "v2025-10-18",
"date": "2025-10-18T20:35:54Z"
},
{
"name": "moghtech/komodo",
"version": "v1.19.5",
"date": "2025-09-27T20:59:46Z"
},
{
"name": "project-zot/zot",
"version": "v2.1.10",
@@ -219,11 +369,6 @@
"version": "v1.42.1",
"date": "2025-10-18T18:31:38Z"
},
{
"name": "YunoHost/yunohost",
"version": "debian/12.1.29",
"date": "2025-10-18T17:35:19Z"
},
{
"name": "Notifiarr/notifiarr",
"version": "v0.9.0",
@@ -234,11 +379,6 @@
"version": "v4.3.2",
"date": "2025-10-18T12:11:00Z"
},
{
"name": "laurent22/joplin",
"version": "server-v3.4.4",
"date": "2025-09-25T13:19:26Z"
},
{
"name": "readeck/readeck",
"version": "0.20.4",
@@ -259,21 +399,11 @@
"version": "v25.4",
"date": "2025-10-09T10:27:01Z"
},
{
"name": "TwiN/gatus",
"version": "v5.27.0",
"date": "2025-10-18T02:44:26Z"
},
{
"name": "9001/copyparty",
"version": "v1.19.17",
"date": "2025-10-17T23:40:02Z"
},
{
"name": "gtsteffaniak/filebrowser",
"version": "v0.8.9-beta",
"date": "2025-10-17T21:51:21Z"
},
{
"name": "home-assistant/core",
"version": "2025.10.3",
@@ -284,11 +414,6 @@
"version": "v13.0.1",
"date": "2025-10-17T18:54:16Z"
},
{
"name": "keycloak/keycloak",
"version": "26.4.1",
"date": "2025-10-16T07:21:53Z"
},
{
"name": "grokability/snipe-it",
"version": "v8.3.4",
@@ -299,31 +424,11 @@
"version": "v4.6.1",
"date": "2025-10-17T15:21:59Z"
},
{
"name": "docker/compose",
"version": "v2.40.1",
"date": "2025-10-17T13:42:04Z"
},
{
"name": "neo4j/neo4j",
"version": "5.26.14",
"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",
"version": "v11.5.2",
@@ -356,19 +461,14 @@
},
{
"name": "ollama/ollama",
"version": "v0.12.6-rc1",
"date": "2025-10-16T16:36:25Z"
"version": "v0.12.6",
"date": "2025-10-16T20:07:41Z"
},
{
"name": "minio/minio",
"version": "RELEASE.2025-10-15T17-29-55Z",
"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",
"version": "v0.6.34",
@@ -379,11 +479,6 @@
"version": "v3.2.8",
"date": "2025-10-16T14:21:48Z"
},
{
"name": "rcourtman/Pulse",
"version": "v4.24.0",
"date": "2025-10-16T09:08:47Z"
},
{
"name": "zitadel/zitadel",
"version": "v4.4.0",
@@ -429,11 +524,6 @@
"version": "2.3.3",
"date": "2025-10-15T13:18:27Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.528.1",
"date": "2025-10-15T12:51:20Z"
},
{
"name": "cockpit-project/cockpit",
"version": "349",
@@ -459,11 +549,6 @@
"version": "2025.10.0",
"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",
"version": "v4.5.5",
@@ -479,16 +564,6 @@
"version": "16.2",
"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",
"version": "v2.0.119",
@@ -499,21 +574,6 @@
"version": "v1.5.3",
"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",
"version": "4.1.1",
@@ -544,11 +604,6 @@
"version": "v0.10.4",
"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",
"version": "v0.27.0",
@@ -619,11 +674,6 @@
"version": "11.0.1",
"date": "2025-10-09T12:34:15Z"
},
{
"name": "documenso/documenso",
"version": "v1.12.10",
"date": "2025-10-09T04:32:35Z"
},
{
"name": "rabbitmq/rabbitmq-server",
"version": "v4.1.4",
@@ -674,16 +724,6 @@
"version": "v0.15.1",
"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",
"version": "v1.13.1",
@@ -704,11 +744,6 @@
"version": "v2.2.2",
"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",
"version": "v1.6.5",
@@ -769,16 +804,6 @@
"version": "v5.41.4",
"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",
"version": "4.7.31",
@@ -799,11 +824,6 @@
"version": "v1.11.1",
"date": "2025-09-30T00:24:16Z"
},
{
"name": "influxdata/telegraf",
"version": "v1.36.2",
"date": "2025-09-29T19:16:49Z"
},
{
"name": "Cleanuparr/Cleanuparr",
"version": "v2.3.3",
@@ -875,20 +895,15 @@
"date": "2025-09-24T13:51:23Z"
},
{
"name": "AlexxIT/go2rtc",
"version": "v1.9.10",
"date": "2025-09-24T13:49:53Z"
"name": "mysql/mysql-server",
"version": "mysql-cluster-8.4.7",
"date": "2025-09-24T12:23:38Z"
},
{
"name": "syncthing/syncthing",
"version": "v2.0.10",
"date": "2025-09-24T08:33:37Z"
},
{
"name": "grafana/grafana",
"version": "v12.2.0",
"date": "2025-09-23T23:47:02Z"
},
{
"name": "postgres/postgres",
"version": "REL_18_0",
@@ -934,11 +949,6 @@
"version": "v0.23.2",
"date": "2025-09-18T17:18:59Z"
},
{
"name": "NLnetLabs/unbound",
"version": "release-1.24.0",
"date": "2025-09-18T08:36:55Z"
},
{
"name": "eclipse-mosquitto/mosquitto",
"version": "2.1.0-test1",
@@ -1019,11 +1029,6 @@
"version": "v2.16.0",
"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",
"version": "0.6",
@@ -1224,11 +1229,6 @@
"version": "v2.12.6",
"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",
"version": "250707-d28b3101e",

View File

@@ -20,7 +20,7 @@ $STD apk add --no-cache \
libc6-compat
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}"
mkdir -p /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-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"
else
$STD apt -y install intel-ocl-icd
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
chgrp video /dev/dri
chmod 755 /dev/dri

View File

@@ -3,7 +3,7 @@
# 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/rwMarkable
# Source: https://github.com/fccview/jotty
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
@@ -14,16 +14,16 @@ network_check
update_os
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}"
cd /opt/rwmarkable
cd /opt/jotty
$STD yarn --frozen-lockfile
$STD yarn next telemetry disable
$STD yarn build
mkdir -p data/{users,checklists,notes}
cat <<EOF >/opt/rwmarkable/.env
cat <<EOF >/opt/jotty/.env
NODE_ENV=production
# HTTPS=true
@@ -39,21 +39,21 @@ EOF
msg_ok "Installed ${APPLICATION}"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/rwmarkable.service
cat <<EOF >/etc/systemd/system/jotty.service
[Unit]
Description=rwMarkable server
Description=jotty server
After=network.target
[Service]
WorkingDirectory=/opt/rwmarkable
EnvironmentFile=/opt/rwmarkable/.env
WorkingDirectory=/opt/jotty
EnvironmentFile=/opt/jotty/.env
ExecStart=yarn start
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now rwmarkable
systemctl enable -q --now jotty
msg_ok "Created Service"
motd_ssh

View File

@@ -13,15 +13,11 @@ setting_up_container
network_check
update_os
msg_info "Installing Kavita"
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"
fetch_and_deploy_gh_release "Kavita" "Kareadita/Kavita" "prebuild" "latest" "/opt/Kavita" "kavita-linux-x64.tar.gz"
msg_info "Creating Service"
service_path="/etc/systemd/system/kavita.service"
echo "[Unit]
cat <<EOF >/etc/systemd/system/kavita.service
[Unit]
Description=Kavita Server
After=network.target
@@ -34,15 +30,17 @@ KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target" >$service_path
chmod +x /opt/Kavita/* && chown root /opt/Kavita/*
systemctl enable --now -q kavita.service
WantedBy=multi-user.target
EOF
chmod +x /opt/Kavita/Kavita && chown root:root /opt/Kavita/Kavita
systemctl enable -q --now kavita
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
$STD apt -y autoremove
$STD apt -y autoclean
$STD apt -y clean
msg_ok "Cleaned"

View File

@@ -14,40 +14,25 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
$STD apt install -y \
apt-transport-https \
apache2 \
git \
expect \
composer \
lsb-release
expect
msg_ok "Installed Dependencies"
setup_mysql
msg_info "Adding PHP8.4 Repository"
$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"
setup_mariadb
PHP_VERSION="8.4" PHP_MODULE="mysql" PHP_APACHE="YES" setup_php
setup_composer
msg_info "Setting up database"
DB_NAME=kimai_db
DB_USER=kimai
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]+')
$STD mysql -u root -e "CREATE DATABASE $DB_NAME;"
$STD mysql -u root -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;"
MYSQL_VERSION=$(mariadb --version | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
$STD mariadb -e "CREATE DATABASE $DB_NAME;"
$STD mariadb -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
$STD mariadb -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
{
echo "Kimai-Credentials"
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
msg_ok "Set up database"
msg_info "Installing Kimai (Patience)"
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
$STD unzip "${RELEASE}".zip
mv kimai-"${RELEASE}" /opt/kimai
fetch_and_deploy_gh_release "kimai" "kimai/kimai"
msg_info "Setup Kimai"
cd /opt/kimai
echo "export COMPOSER_ALLOW_SUPERUSER=1" >>~/.bashrc
source ~/.bashrc
@@ -92,8 +75,6 @@ admin_lte:
options:
default_avatar: build/apple-touch-icon.png
EOF
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed Kimai"
msg_info "Creating Service"
@@ -131,6 +112,7 @@ customize
msg_info "Cleaning up"
rm -rf "${RELEASE}".zip
$STD apt-get -y autoremove
$STD apt-get -y autoclean
$STD apt -y autoremove
$STD apt -y autoclean
$STD apt -y clean
msg_ok "Cleaned"

View File

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

View File

@@ -19,11 +19,11 @@ msg_ok "Installed Dependencies"
msg_info "Checking CPU Features"
if lscpu | grep -q 'avx'; then
MONGODB_VERSION="7.0"
msg_ok "AVX detected: Using MongoDB 7.0"
MONGODB_VERSION="8.0"
msg_ok "AVX detected: Using MongoDB 8.0"
MONGO_VERSION="8.0" setup_mongodb
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/"
exit 0
MONGO_VERSION="4.4" setup_mongodb
fi
msg_info "Installing Azul Zulu Java"
@@ -34,27 +34,15 @@ $STD apt update
$STD apt -y install zulu21-jre-headless
msg_ok "Installed Azul Zulu Java"
msg_info "Installing libssl (if needed)"
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"
$STD dpkg -i /tmp/libssl.deb
rm -f /tmp/libssl.deb
msg_ok "Installed libssl1.1"
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"
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' |

View File

@@ -13,19 +13,10 @@ setting_up_container
network_check
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
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"
PHPVER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION . "\n";')

View File

@@ -13,14 +13,9 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y \
apache2 \
libapache2-mod-php \
php8.2-{pdo,mysql,mbstring,gettext,fileinfo,gd,xml,zip}
msg_ok "Installed Dependencies"
PHP_VERSION="8.4" PHP_APACHE="YES" PHP_MODULE="pdo,mysql,gettext,fileinfo" setup_php
setup_mariadb
fetch_and_deploy_gh_release "projectsend" "projectsend/projectsend" "prebuild" "latest" "/opt/projectsend" "projectsend-r*.zip"
msg_info "Setting up MariaDB"
DB_NAME=projectsend
@@ -37,12 +32,7 @@ $STD mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUS
} >>~/projectsend.creds
msg_ok "Set up MariaDB"
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
msg_info "Installing ProjectSend"
mv /opt/projectsend/includes/sys.config.sample.php /opt/projectsend/includes/sys.config.php
chown -R www-data:www-data /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/^\(upload_max_filesize = \).*/\1 256M/" \
-e "s/^\(max_execution_time = \).*/\1 300/" \
/etc/php/8.2/apache2/php.ini
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
/etc/php/8.4/apache2/php.ini
msg_ok "Installed projectsend"
msg_info "Creating Service"
@@ -84,7 +73,6 @@ motd_ssh
customize
msg_info "Cleaning up"
rm -rf "/opt/projectsend-r${RELEASE}.zip"
$STD apt -y autoremove
$STD apt -y autoclean
$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_info "Installing MongoDB 4.4"
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"
$STD dpkg -i 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+deb11u4_amd64.deb
fi
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

File diff suppressed because it is too large Load Diff