mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-07-01 11:37:38 +00:00
Compare commits
95 Commits
2025-06-12
...
2025-06-18
Author | SHA1 | Date | |
---|---|---|---|
601e1853e9 | |||
14077eddcd | |||
2255600c3b | |||
badd63d4a7 | |||
6c345af691 | |||
2f326ffb97 | |||
e7bb270c34 | |||
fc4a46b72d | |||
a402b45b17 | |||
9ab2089d01 | |||
0dc533cb82 | |||
4351218f8b | |||
3ee4ece04d | |||
a377640d16 | |||
bece1c574f | |||
e9afe958b1 | |||
93f9291d7c | |||
8f0751442d | |||
003422934a | |||
c11636562c | |||
654508eb94 | |||
acfb9d6ea1 | |||
0d56db2d3d | |||
4a1ae51446 | |||
6520b7f4d4 | |||
48da94f77a | |||
2ea372f034 | |||
5773459a39 | |||
40f083ea40 | |||
219a7853e1 | |||
6d1d903345 | |||
ef9ca48477 | |||
8ac24981a6 | |||
7e046d830d | |||
1691fafcc1 | |||
4400cd2b97 | |||
795fe72768 | |||
6d7d15ce46 | |||
a648b9abc4 | |||
4057fadfe0 | |||
9b700195e4 | |||
906a0a0fbc | |||
8df55a03f4 | |||
8241ed932d | |||
0b3c645ffb | |||
0c17402efc | |||
ccad7a2cd8 | |||
15772d8802 | |||
c7e0faa33b | |||
13b1c684ee | |||
5e649d7cb1 | |||
ec8a8b1908 | |||
d850dde4ef | |||
fb4075ac12 | |||
8576463522 | |||
2a4353fa13 | |||
d21cbf1d40 | |||
e97c96d0bb | |||
04dab68e17 | |||
b001687f5c | |||
9f26e25126 | |||
5671d8e957 | |||
0bf641f02c | |||
7fc39a442b | |||
6e1ee7d16e | |||
5ee48aba1e | |||
e6c21811bb | |||
142fea21bd | |||
df43101b4e | |||
3044a774c2 | |||
65e4c027b8 | |||
dabfb57173 | |||
63dfc2bd7b | |||
89399ef421 | |||
d9474c3dd6 | |||
f5a5e4854c | |||
632e823749 | |||
a128f3c43d | |||
9c90699ca2 | |||
f6f6ca6bac | |||
b6d0b1ae6a | |||
93906db2d1 | |||
4ab71ccf00 | |||
e058badee6 | |||
74c6df5aa6 | |||
c2484b7c60 | |||
b064127323 | |||
138f90f09c | |||
84469e2b5b | |||
a164d259e0 | |||
34aa360920 | |||
f0dde5a42d | |||
e0ccc1a0af | |||
4fa7483d8b | |||
cd835c6791 |
109
CHANGELOG.md
109
CHANGELOG.md
@ -14,8 +14,117 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
|
||||
|
||||
|
||||
## 2025-06-19
|
||||
|
||||
## 2025-06-18
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- FileBrowser Quantum [@MickLesk](https://github.com/MickLesk) ([#5248](https://github.com/community-scripts/ProxmoxVE/pull/5248))
|
||||
- Huntarr ([#5249](https://github.com/community-scripts/ProxmoxVE/pull/5249))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- tools.func: Standardized and Renamed Setup Functions [@MickLesk](https://github.com/MickLesk) ([#5241](https://github.com/community-scripts/ProxmoxVE/pull/5241))
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Immich: fix prompt clobber issue [@vhsdream](https://github.com/vhsdream) ([#5231](https://github.com/community-scripts/ProxmoxVE/pull/5231))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor all VM's to same logic & functions [@MickLesk](https://github.com/MickLesk) ([#5254](https://github.com/community-scripts/ProxmoxVE/pull/5254))
|
||||
- upgrade old Scriptcalls to new tools.func calls [@MickLesk](https://github.com/MickLesk) ([#5242](https://github.com/community-scripts/ProxmoxVE/pull/5242))
|
||||
|
||||
## 2025-06-17
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- gitea-mirror: increase build ressources [@CrazyWolf13](https://github.com/CrazyWolf13) ([#5235](https://github.com/community-scripts/ProxmoxVE/pull/5235))
|
||||
- Immich: ensure in proper working dir when updating [@vhsdream](https://github.com/vhsdream) ([#5227](https://github.com/community-scripts/ProxmoxVE/pull/5227))
|
||||
- Update IP-Tag [@DesertGamer](https://github.com/DesertGamer) ([#5226](https://github.com/community-scripts/ProxmoxVE/pull/5226))
|
||||
- trilium: fix update function after db changes folder [@tjcomserv](https://github.com/tjcomserv) ([#5207](https://github.com/community-scripts/ProxmoxVE/pull/5207))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- LibreTranslate: Add .env for easier configuration [@tremor021](https://github.com/tremor021) ([#5216](https://github.com/community-scripts/ProxmoxVE/pull/5216))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### 📝 Script Information
|
||||
|
||||
- IPTag: Better explanation [@MickLesk](https://github.com/MickLesk) ([#5213](https://github.com/community-scripts/ProxmoxVE/pull/5213))
|
||||
|
||||
## 2025-06-16
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Intel NIC offload Fix by @rcastley [@MickLesk](https://github.com/MickLesk) ([#5155](https://github.com/community-scripts/ProxmoxVE/pull/5155))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- [core] Move install_php() from VED to main [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#5182](https://github.com/community-scripts/ProxmoxVE/pull/5182))
|
||||
- Firefly: Add Data Importer to LXC [@tremor021](https://github.com/tremor021) ([#5159](https://github.com/community-scripts/ProxmoxVE/pull/5159))
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Wastebin: Fix missing dependencies [@tremor021](https://github.com/tremor021) ([#5185](https://github.com/community-scripts/ProxmoxVE/pull/5185))
|
||||
- Kasm: Storing Creds Fix [@omiinaya](https://github.com/omiinaya) ([#5162](https://github.com/community-scripts/ProxmoxVE/pull/5162))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- add optional Cloud-init support to Debian VM script [@koendiender](https://github.com/koendiender) ([#5137](https://github.com/community-scripts/ProxmoxVE/pull/5137))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: 2FAuth [@tremor021](https://github.com/tremor021) ([#5184](https://github.com/community-scripts/ProxmoxVE/pull/5184))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- Refactor layout and component styles for improved responsiveness [@BramSuurdje](https://github.com/BramSuurdje) ([#5195](https://github.com/community-scripts/ProxmoxVE/pull/5195))
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Refactor ScriptItem and ConfigFile components to conditionally render config file location. Update ConfigFile to accept configPath prop instead of item. [@BramSuurdje](https://github.com/BramSuurdje) ([#5197](https://github.com/community-scripts/ProxmoxVE/pull/5197))
|
||||
- Update default image asset in the public directory and update api route to only search for files that end with .json [@BramSuurdje](https://github.com/BramSuurdje) ([#5179](https://github.com/community-scripts/ProxmoxVE/pull/5179))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Update default image asset in the public directory [@BramSuurdje](https://github.com/BramSuurdje) ([#5189](https://github.com/community-scripts/ProxmoxVE/pull/5189))
|
||||
|
||||
## 2025-06-15
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- LibreTranslate ([#5154](https://github.com/community-scripts/ProxmoxVE/pull/5154))
|
||||
|
||||
## 2025-06-14
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- [core] Update install_mariadb func [@tremor021](https://github.com/tremor021) ([#5138](https://github.com/community-scripts/ProxmoxVE/pull/5138))
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- flowiseai: set NodeJS to Version 20 [@MickLesk](https://github.com/MickLesk) ([#5130](https://github.com/community-scripts/ProxmoxVE/pull/5130))
|
||||
- Update dolibarr-install.sh - Get largest version number [@tjcomserv](https://github.com/tjcomserv) ([#5127](https://github.com/community-scripts/ProxmoxVE/pull/5127))
|
||||
|
||||
## 2025-06-13
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Zigbee2MQTT: Fix missing directory [@tremor021](https://github.com/tremor021) ([#5120](https://github.com/community-scripts/ProxmoxVE/pull/5120))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### 📝 Script Information
|
||||
|
||||
- Umbrel OS: Fix bad disk size shown on website [@tremor021](https://github.com/tremor021) ([#5125](https://github.com/community-scripts/ProxmoxVE/pull/5125))
|
||||
|
||||
## 2025-06-12
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
27
ct/2fauth.sh
27
ct/2fauth.sh
@ -24,21 +24,16 @@ function update_script() {
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
# Check if installation is present | -f for file, -d for folder
|
||||
if [[ ! -d "/opt/2fauth" ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
# Crawling the new version and checking whether an update is required
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Bubka/2FAuth/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
if [[ "${RELEASE}" != "$(cat /opt/2fauth_version.txt)" ]] || [[ ! -f /opt/2fauth_version.txt ]]; then
|
||||
if [[ "${RELEASE}" != "$(cat ~/.2fauth 2>/dev/null || cat /opt/2fauth_version.txt 2>/dev/null)" ]]; then
|
||||
msg_info "Updating $APP to ${RELEASE}"
|
||||
|
||||
$STD apt-get update
|
||||
$STD apt-get -y upgrade
|
||||
|
||||
# Creating Backup
|
||||
msg_info "Creating Backup"
|
||||
mv "/opt/2fauth" "/opt/2fauth-backup"
|
||||
if ! dpkg -l | grep -q 'php8.3'; then
|
||||
@ -46,37 +41,24 @@ function update_script() {
|
||||
fi
|
||||
msg_ok "Backup Created"
|
||||
|
||||
# Upgrade PHP
|
||||
if ! dpkg -l | grep -q 'php8.3'; then
|
||||
$STD apt-get install -y \
|
||||
lsb-release \
|
||||
gpg
|
||||
curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /usr/share/keyrings/deb.sury.org-php.gpg
|
||||
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 install -y php8.3-{bcmath,common,ctype,curl,fileinfo,fpm,gd,mbstring,mysql,xml,cli,intl}
|
||||
gnupg2
|
||||
PHP_VERSION="8.3" PHP_MODULE="common,ctype,fileinfo,fpm,mysql,cli" setup_php
|
||||
sed -i 's/php8.2/php8.3/g' /etc/nginx/conf.d/2fauth.conf
|
||||
fi
|
||||
|
||||
# Execute Update
|
||||
curl -fsSL -o "${RELEASE}.zip" "https://github.com/Bubka/2FAuth/archive/refs/tags/${RELEASE}.zip"
|
||||
$STD unzip "${RELEASE}.zip"
|
||||
mv "2FAuth-${RELEASE//v/}/" "/opt/2fauth"
|
||||
fetch_and_deploy_gh_release "2fauth" "Bubka/2FAuth"
|
||||
mv "/opt/2fauth-backup/.env" "/opt/2fauth/.env"
|
||||
mv "/opt/2fauth-backup/storage" "/opt/2fauth/storage"
|
||||
cd "/opt/2fauth" || return
|
||||
|
||||
chown -R www-data: "/opt/2fauth"
|
||||
chmod -R 755 "/opt/2fauth"
|
||||
|
||||
export COMPOSER_ALLOW_SUPERUSER=1
|
||||
$STD composer install --no-dev --prefer-source
|
||||
|
||||
php artisan 2fauth:install
|
||||
|
||||
$STD systemctl restart nginx
|
||||
|
||||
# Cleaning up
|
||||
msg_info "Cleaning Up"
|
||||
rm -rf "v${RELEASE}.zip"
|
||||
if dpkg -l | grep -q 'php8.2'; then
|
||||
@ -86,7 +68,6 @@ function update_script() {
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleanup Completed"
|
||||
|
||||
# Last Action
|
||||
echo "${RELEASE}" >/opt/2fauth_version.txt
|
||||
msg_ok "Updated $APP to ${RELEASE}"
|
||||
else
|
||||
|
@ -29,7 +29,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
NODE_VERSION="22"
|
||||
install_node_and_modules
|
||||
setup_nodejs
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ -f /opt/actualbudget-data/config.json ]]; then
|
||||
if [[ ! -f /opt/actualbudget_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/actualbudget_version.txt)" ]]; then
|
||||
|
@ -28,7 +28,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/raydak-labs/configarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat /opt/configarr_version.txt)" ]] || [[ ! -f /opt/configarr_version.txt ]]; then
|
||||
if [[ "${RELEASE}" != "$(cat ~/.configarr 2>/dev/null || cat /opt/configarr_version.txt 2>/dev/null)" ]]; then
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop configarr-task.timer
|
||||
msg_ok "Stopped $APP"
|
||||
@ -37,7 +37,7 @@ function update_script() {
|
||||
mkdir -p /opt/backup/
|
||||
mv /opt/configarr/{config.yml,secrets.yml,.env} "/opt/backup/"
|
||||
rm -rf /opt/configarr
|
||||
fetch_and_deploy_gh_release "raydak-labs/configarr"
|
||||
fetch_and_deploy_gh_release "configarr" "raydak-labs/configarr"
|
||||
mv /opt/backup/* /opt/configarr/
|
||||
cd /opt/configarr
|
||||
$STD pnpm install
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: quantumryuu
|
||||
# Author: quantumryuu | Co-Author: Slaviša Arežina (tremor021)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://firefly-iii.org/
|
||||
|
||||
|
@ -34,7 +34,7 @@ function update_script() {
|
||||
exit 1
|
||||
fi
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@latest" install_node_and_modules
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs
|
||||
PROJECT_NAME=$(</opt/fumadocs/.projectname)
|
||||
PROJECT_DIR="/opt/fumadocs/${PROJECT_NAME}"
|
||||
SERVICE_NAME="fumadocs_${PROJECT_NAME}.service"
|
||||
|
@ -7,9 +7,9 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
||||
|
||||
APP="gitea-mirror"
|
||||
var_tags="${var_tags:-mirror;gitea}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-1024}"
|
||||
var_disk="${var_disk:-5}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-6}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-12}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
@ -29,7 +29,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/arunavo4/gitea-mirror/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 [[ "${RELEASE}" != "$(cat ~/.${APP} 2>/dev/null || cat /opt/${APP}_version.txt 2>/dev/null)" ]]; then
|
||||
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop gitea-mirror
|
||||
@ -48,15 +48,15 @@ function update_script() {
|
||||
msg_ok "Installed Bun"
|
||||
|
||||
rm -rf /opt/gitea-mirror
|
||||
fetch_and_deploy_gh_release "arunavo4/gitea-mirror"
|
||||
|
||||
msg_info "Updating and rebuilding ${APP} to v${RELEASE}"
|
||||
fetch_and_deploy_gh_release "gitea-mirror" "arunavo4/gitea-mirror"
|
||||
|
||||
msg_info "Updating and rebuilding ${APP} to v${RELEASE}"
|
||||
cd /opt/gitea-mirror
|
||||
$STD bun run setup
|
||||
$STD bun run build
|
||||
APP_VERSION=$(grep -o '"version": *"[^"]*"' package.json | cut -d'"' -f4)
|
||||
sudo sed -i.bak "s|^Environment=npm_package_version=.*|Environment=npm_package_version=${APP_VERSION}|" /etc/systemd/system/gitea-mirror.service
|
||||
msg_ok "Updated and rebuilt ${APP} to v${RELEASE}"
|
||||
msg_ok "Updated and rebuilt ${APP} to v${RELEASE}"
|
||||
|
||||
msg_info "Restoring Data"
|
||||
cp /opt/gitea-mirror-backup/data/* /opt/gitea-mirror/data
|
||||
|
6
ct/headers/huntarr
Normal file
6
ct/headers/huntarr
Normal file
@ -0,0 +1,6 @@
|
||||
__ __
|
||||
/ /_ __ ______ / /_____ ___________
|
||||
/ __ \/ / / / __ \/ __/ __ `/ ___/ ___/
|
||||
/ / / / /_/ / / / / /_/ /_/ / / / /
|
||||
/_/ /_/\__,_/_/ /_/\__/\__,_/_/ /_/
|
||||
|
6
ct/headers/libretranslate
Normal file
6
ct/headers/libretranslate
Normal file
@ -0,0 +1,6 @@
|
||||
__ _ __ ______ __ __
|
||||
/ / (_) /_ ________/_ __/________ _____ _____/ /___ _/ /____
|
||||
/ / / / __ \/ ___/ _ \/ / / ___/ __ `/ __ \/ ___/ / __ `/ __/ _ \
|
||||
/ /___/ / /_/ / / / __/ / / / / /_/ / / / (__ ) / /_/ / /_/ __/
|
||||
/_____/_/_.___/_/ \___/_/ /_/ \__,_/_/ /_/____/_/\__,_/\__/\___/
|
||||
|
@ -81,7 +81,7 @@ EOF
|
||||
systemctl daemon-reload
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/homarr-labs/homarr/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 [[ "${RELEASE}" != "$(cat ~/.${APP} 2>/dev/null || cat /opt/${APP}_version.txt 2>/dev/null)" ]]; then
|
||||
|
||||
msg_info "Stopping Services (Patience)"
|
||||
systemctl stop homarr
|
||||
@ -100,10 +100,10 @@ EOF
|
||||
$STD command -v jq || $STD apt-get update && $STD apt-get install -y jq
|
||||
NODE_VERSION=$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.engines.node | split(">=")[1] | split(".")[0]')
|
||||
NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.packageManager | split("@")[1]')"
|
||||
install_node_and_modules
|
||||
|
||||
setup_nodejs
|
||||
|
||||
rm -rf /opt/homarr
|
||||
fetch_and_deploy_gh_release "homarr-labs/homarr"
|
||||
fetch_and_deploy_gh_release "homarr" "homarr-labs/homarr"
|
||||
|
||||
msg_info "Updating and rebuilding ${APP} to v${RELEASE} (Patience)"
|
||||
rm /opt/run_homarr.sh
|
||||
|
63
ct/huntarr.sh
Normal file
63
ct/huntarr.sh
Normal file
@ -0,0 +1,63 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: BiluliB
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/plexguide/Huntarr.io
|
||||
|
||||
APP="huntarr"
|
||||
var_tags="${var_tags:-arr}"
|
||||
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_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -f /opt/huntarr/main.py ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
setup_uv
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/plexguide/Huntarr.io/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
|
||||
if [[ -f ~/.huntarr && "${RELEASE}" == "$(cat ~/.huntarr)" ]]; then
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
exit
|
||||
fi
|
||||
msg_info "Stopping huntarr service"
|
||||
systemctl stop huntarr
|
||||
msg_ok "Stopped huntarr service"
|
||||
|
||||
fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io"
|
||||
msg_info "Updating $APP to v${RELEASE}"
|
||||
cd /opt/huntarr
|
||||
$STD uv pip install -r requirements.txt --python /opt/huntarr/.venv/bin/python
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start huntarr
|
||||
msg_ok "Started $APP"
|
||||
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
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}:9705${CL}"
|
@ -30,6 +30,7 @@ function update_script() {
|
||||
STAGING_DIR=/opt/staging
|
||||
BASE_DIR=${STAGING_DIR}/base-images
|
||||
SOURCE_DIR=${STAGING_DIR}/image-source
|
||||
cd /root
|
||||
if [[ -f ~/.intel_version ]]; then
|
||||
curl -fsSLO https://raw.githubusercontent.com/immich-app/immich/refs/heads/main/machine-learning/Dockerfile
|
||||
readarray -t INTEL_URLS < <(sed -n "/intel/p" ./Dockerfile | awk '{print $3}')
|
||||
|
@ -53,10 +53,10 @@ function update_script() {
|
||||
|
||||
if [ -z "$pnpm_current" ]; then
|
||||
msg_error "pnpm not found. Installing version $pnpm_desired..."
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@$pnpm_desired" install_node_and_modules
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@$pnpm_desired" setup_nodejs
|
||||
elif ! node -e "const semver = require('semver'); process.exit(semver.satisfies('$pnpm_current', '$pnpm_desired') ? 0 : 1)"; then
|
||||
msg_error "Updating pnpm from version $pnpm_current to $pnpm_desired..."
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@$pnpm_desired" install_node_and_modules
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@$pnpm_desired" setup_nodejs
|
||||
else
|
||||
msg_ok "pnpm is already installed and satisfies version $pnpm_desired."
|
||||
fi
|
||||
|
61
ct/libretranslate.sh
Normal file
61
ct/libretranslate.sh
Normal file
@ -0,0 +1,61 @@
|
||||
#!/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: Slaviša Arežina (tremor021)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/LibreTranslate/LibreTranslate
|
||||
|
||||
APP="LibreTranslate"
|
||||
var_tags="${var_tags:-Arr}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-20}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-12}"
|
||||
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/libretranslate ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -s https://api.github.com/repos/LibreTranslate/LibreTranslate/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat $HOME/.libretranslate)" ]] || [[ ! -f $HOME/.libretranslate ]]; then
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop libretranslate
|
||||
msg_ok "Stopped $APP"
|
||||
|
||||
msg_info "Updating $APP to ${RELEASE}"
|
||||
cd /opt/libretranslate
|
||||
source .venv/bin/activate
|
||||
$STD pip install -U libretranslate
|
||||
msg_ok "Updated $APP to ${RELEASE}"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start libretranslate
|
||||
msg_ok "Started $APP"
|
||||
|
||||
msg_ok "Update Successful"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
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}:5000${CL}"
|
@ -28,17 +28,17 @@ function update_script() {
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
if [[ "${RELEASE}" != "$(cat /opt/linkwarden_version.txt)" ]] || [[ ! -f /opt/linkwarden_version.txt ]]; then
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" install_node_and_modules
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop linkwarden
|
||||
msg_ok "Stopped ${APP}"
|
||||
|
||||
RUST_CRATES="monolith" install_rust_and_crates
|
||||
RUST_CRATES="monolith" setup_rust
|
||||
|
||||
msg_info "Updating ${APP} to ${RELEASE}"
|
||||
mv /opt/linkwarden/.env /opt/.env
|
||||
rm -rf /opt/linkwarden
|
||||
fetch_and_deploy_gh_release "linkwarden/linkwarden"
|
||||
fetch_and_deploy_gh_release "linkwarden" "linkwarden/linkwarden"
|
||||
cd /opt/linkwarden
|
||||
$STD yarn
|
||||
$STD npx playwright install-deps
|
||||
|
@ -20,19 +20,17 @@ color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /root/Matterbridge ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
$STD apt-get update
|
||||
$STD apt-get upgrade -y
|
||||
NODE_VERSION="22"
|
||||
NODE_MODULE="matterbridge"
|
||||
install_node_and_modules
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /root/Matterbridge ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
$STD apt-get update
|
||||
$STD apt-get upgrade -y
|
||||
NODE_VERSION="22" NODE_MODULE="matterbridge" setup_nodejs
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
|
@ -28,7 +28,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
if fetch_and_deploy_gh_release "YuukanOO/seelf"; then
|
||||
if fetch_and_deploy_gh_release "seelf" "YuukanOO/seelf"; then
|
||||
msg_ok "$APP already at the latest version. No update required."
|
||||
else
|
||||
msg_info "Stopping $APP"
|
||||
|
@ -30,9 +30,9 @@ function update_script() {
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/CrazyWolf13/streamlink-webui/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||
if [[ "${RELEASE}" != "$(cat ~/.${APP} 2>/dev/null || cat /opt/${APP}_version.txt 2>/dev/null)" ]]; then
|
||||
msg_info "Starting Update"
|
||||
|
||||
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop ${APP}
|
||||
msg_ok "Stopped $APP"
|
||||
@ -40,9 +40,9 @@ function update_script() {
|
||||
rm -rf /opt/${APP}
|
||||
NODE_VERSION="22"
|
||||
NODE_MODULE="npm,yarn"
|
||||
install_node_and_modules
|
||||
setup_nodejs
|
||||
setup_uv
|
||||
fetch_and_deploy_gh_release "CrazyWolf13/streamlink-webui"
|
||||
fetch_and_deploy_gh_release "streamlink-webui" "CrazyWolf13/streamlink-webui"
|
||||
|
||||
msg_info "Updating $APP to v${RELEASE}"
|
||||
$STD uv venv /opt/"${APP}"/backend/src/.venv
|
||||
|
@ -31,7 +31,7 @@ function update_script() {
|
||||
if dpkg -l | grep -q "openjdk-17-jre"; then
|
||||
$STD apt-get remove -y openjdk-17-jre
|
||||
fi
|
||||
JAVA_VERSION=21 install_java
|
||||
JAVA_VERSION=21 setup_java
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Suwayomi/Suwayomi-Server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
if [[ "${RELEASE}" != "$(cat /opt/suwayomi-server_version.txt)" ]] || [[ ! -f /opt/suwayomi-server_version.txt ]]; then
|
||||
msg_info "Updating $APP"
|
||||
|
@ -29,38 +29,55 @@ function update_script() {
|
||||
fi
|
||||
if [[ ! -f /opt/${APP}_version.txt ]]; then touch /opt/${APP}_version.txt; fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/TriliumNext/Notes/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "v${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop trilium
|
||||
sleep 1
|
||||
msg_ok "Stopped ${APP}"
|
||||
|
||||
msg_info "Updating to ${RELEASE}"
|
||||
mkdir -p /opt/trilium_backup
|
||||
mv /opt/trilium/db /opt/trilium_backup/
|
||||
rm -rf /opt/trilium
|
||||
cd /tmp
|
||||
curl -fsSL "https://github.com/TriliumNext/Notes/releases/download/v${RELEASE}/TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz" -o $(basename "https://github.com/TriliumNext/Notes/releases/download/v${RELEASE}/TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz")
|
||||
tar -xf TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz
|
||||
mv TriliumNextNotes-Server-$RELEASE-linux-x64 /opt/trilium
|
||||
cp -r /opt/trilium_backup/db /opt/trilium/
|
||||
echo "v${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated to ${RELEASE}"
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf /tmp/TriliumNextNotes-Server-${RELEASE}-linux-x64.tar.xz
|
||||
rm -rf /opt/trilium_backup
|
||||
msg_ok "Cleaned"
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start trilium
|
||||
sleep 1
|
||||
msg_ok "Started ${APP}"
|
||||
msg_ok "Updated Successfully"
|
||||
if [[ "v${RELEASE}" != "$(cat /opt/${APP}_version.txt 2>/dev/null)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||
|
||||
if [[ -d /opt/trilium/db ]]; then
|
||||
DB_PATH="/opt/trilium/db"
|
||||
DB_RESTORE_PATH="/opt/trilium/db"
|
||||
elif [[ -d /opt/trilium/assets/db ]]; then
|
||||
DB_PATH="/opt/trilium/assets/db"
|
||||
DB_RESTORE_PATH="/opt/trilium/assets/db"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
msg_error "Database not found in either /opt/trilium/db or /opt/trilium/assets/db"
|
||||
exit 1
|
||||
fi
|
||||
exit
|
||||
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop trilium
|
||||
sleep 1
|
||||
msg_ok "Stopped ${APP}"
|
||||
|
||||
msg_info "Updating to ${RELEASE}"
|
||||
mkdir -p /opt/trilium_backup
|
||||
cp -r "${DB_PATH}" /opt/trilium_backup/
|
||||
rm -rf /opt/trilium
|
||||
cd /tmp
|
||||
curl -fsSL "https://github.com/TriliumNext/Notes/releases/download/v${RELEASE}/TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz" -o "TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz"
|
||||
tar -xf "TriliumNextNotes-Server-v${RELEASE}-linux-x64.tar.xz"
|
||||
mv "TriliumNextNotes-Server-${RELEASE}-linux-x64" /opt/trilium
|
||||
|
||||
# Restore database
|
||||
mkdir -p "$(dirname "${DB_RESTORE_PATH}")"
|
||||
cp -r /opt/trilium_backup/$(basename "${DB_PATH}") "${DB_RESTORE_PATH}"
|
||||
|
||||
echo "v${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated to ${RELEASE}"
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf "/tmp/TriliumNextNotes-Server-${RELEASE}-linux-x64.tar.xz"
|
||||
rm -rf /opt/trilium_backup
|
||||
msg_ok "Cleaned"
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start trilium
|
||||
sleep 1
|
||||
msg_ok "Started ${APP}"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 120 KiB |
@ -1,23 +1,23 @@
|
||||
{
|
||||
"name": "Proxmox VE LXC IP-Tag",
|
||||
"slug": "add-lxc-iptag",
|
||||
"name": "Proxmox VE LXC Tag",
|
||||
"slug": "add-iptag",
|
||||
"categories": [
|
||||
1
|
||||
],
|
||||
"date_created": "2024-12-16",
|
||||
"date_created": "2025-06-16",
|
||||
"type": "pve",
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": null,
|
||||
"documentation": null,
|
||||
"website": null,
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/proxmox.webp",
|
||||
"config_path": "/opt/lxc-iptag/iptag.conf",
|
||||
"description": "This script automatically adds IP address as tags to LXC containers using a Systemd service. The service also updates the tags if a LXC IP address is changed.",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/proxmox.svg",
|
||||
"config_path": "/opt/iptag/iptag.conf",
|
||||
"description": "This script automatically adds IP address as tags to LXC containers or VM's using a systemd service. The service also updates the tags if a LXC/VM IP address is changed.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "tools/pve/add-lxc-iptag.sh",
|
||||
"script": "tools/pve/add-iptag.sh",
|
||||
"resources": {
|
||||
"cpu": null,
|
||||
"ram": null,
|
||||
@ -36,6 +36,10 @@
|
||||
"text": "Execute within the Proxmox shell",
|
||||
"type": "info"
|
||||
},
|
||||
{
|
||||
"text": "Configuration: `nano /opt/iptag/iptag.conf`. iptag.service must be restarted after change.",
|
||||
"type": "info"
|
||||
},
|
||||
{
|
||||
"text": "The Proxmox Node must contain ipcalc and net-tools. `apt-get install -y ipcalc net-tools`",
|
||||
"type": "warning"
|
47
frontend/public/json/filebrowser-quantum.json
Normal file
47
frontend/public/json/filebrowser-quantum.json
Normal file
@ -0,0 +1,47 @@
|
||||
{
|
||||
"name": "FileBrowser Quantum",
|
||||
"slug": "filebrowser-quantum",
|
||||
"categories": [
|
||||
1,
|
||||
11
|
||||
],
|
||||
"date_created": "2025-06-18",
|
||||
"type": "addon",
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": 8080,
|
||||
"documentation": "https://github.com/gtsteffaniak/filebrowser/wiki/Getting-Started",
|
||||
"website": "https://github.com/gtsteffaniak/filebrowser",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/filebrowser-quantum.webp",
|
||||
"config_path": "/usr/local/community-scripts/fq-config.yaml",
|
||||
"description": "FileBrowser Quantum provides an easy way to access and manage your files from the web. It has has a web page interface that allows you to create secure shared links, users with their own specific permissions and settings, and offers a great viewing experience for many file types. This version is called Quantum because it packs tons of advanced features into a tiny easy to run file. Unlike the majority of alternative options, FileBrowser Quantum is simple to install and easy to configure.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "tools/addon/filebrowser-quantum.sh",
|
||||
"resources": {
|
||||
"cpu": null,
|
||||
"ram": null,
|
||||
"hdd": null,
|
||||
"os": null,
|
||||
"version": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "alpine",
|
||||
"script": "tools/addon/filebrowser-quantum.sh",
|
||||
"resources": {
|
||||
"cpu": null,
|
||||
"ram": null,
|
||||
"hdd": null,
|
||||
"os": null,
|
||||
"version": null
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": "admin",
|
||||
"password": "helper-scripts.com"
|
||||
},
|
||||
"notes": []
|
||||
}
|
@ -32,6 +32,10 @@
|
||||
"password": null
|
||||
},
|
||||
"notes": [
|
||||
{
|
||||
"text": "Data Importer is at `http://<LXC_IP>/dataimporter/`",
|
||||
"type": "info"
|
||||
},
|
||||
{
|
||||
"text": "Database credentials: `cat ~/firefly.creds`",
|
||||
"type": "info"
|
||||
|
@ -19,9 +19,9 @@
|
||||
"type": "default",
|
||||
"script": "ct/gitea-mirror.sh",
|
||||
"resources": {
|
||||
"cpu": 1,
|
||||
"ram": 1024,
|
||||
"hdd": 5,
|
||||
"cpu": 2,
|
||||
"ram": 2048,
|
||||
"hdd": 6,
|
||||
"os": "Debian",
|
||||
"version": "12"
|
||||
}
|
||||
|
35
frontend/public/json/huntarr.json
Normal file
35
frontend/public/json/huntarr.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"name": "Huntarr",
|
||||
"slug": "huntarr",
|
||||
"categories": [
|
||||
14
|
||||
],
|
||||
"date_created": "2025-06-18",
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 9705,
|
||||
"documentation": "https://github.com/plexguide/Huntarr.io/wiki",
|
||||
"config_path": "/opt/huntarr",
|
||||
"website": "https://github.com/plexguide/Huntarr.io",
|
||||
"logo": "https://raw.githubusercontent.com/plexguide/Huntarr.io/refs/heads/main/frontend/static/logo/Huntarr.svg",
|
||||
"description": "Huntarr is a tool that automates the search for missing or low-quality media content in your collection. It works seamlessly with applications like Sonarr, Radarr, Lidarr, Readarr, and Whisparr, enhancing their functionality with continuous background scans to identify and update missed or outdated content. Through a user-friendly web interface accessible on port 9705, Huntarr provides real-time statistics, log views, and extensive configuration options. The software is especially useful for users who want to keep their media library up to date by automatically searching for missing episodes or higher-quality versions. Huntarr is well-suited for self-hosted environments and can easily run in LXC containers or Docker setups.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/huntarr.sh",
|
||||
"resources": {
|
||||
"cpu": 2,
|
||||
"ram": 1024,
|
||||
"hdd": 4,
|
||||
"os": "debian",
|
||||
"version": "12"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": []
|
||||
}
|
44
frontend/public/json/libretranslate.json
Normal file
44
frontend/public/json/libretranslate.json
Normal file
@ -0,0 +1,44 @@
|
||||
{
|
||||
"name": "LibreTranslate",
|
||||
"slug": "libretranslate",
|
||||
"categories": [
|
||||
0
|
||||
],
|
||||
"date_created": "2025-06-15",
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 5000,
|
||||
"documentation": "https://github.com/LibreTranslate/LibreTranslate?tab=readme-ov-file#settings--flags",
|
||||
"website": "https://libretranslate.com/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/libretranslate.webp",
|
||||
"config_path": "/opt/libretranslate/.env",
|
||||
"description": "Free and Open Source Machine Translation API, entirely self-hosted. Unlike other APIs, it doesn't rely on proprietary providers such as Google or Azure to perform translations. Instead, its translation engine is powered by the open source Argos Translate library.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/libretranslate.sh",
|
||||
"resources": {
|
||||
"cpu": 2,
|
||||
"ram": 2048,
|
||||
"hdd": 20,
|
||||
"os": "debian",
|
||||
"version": "12"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": [
|
||||
{
|
||||
"text": "During the installation, application will download language models used for translation. Depending on how fast your internet/host is, this can take 5-10 minutes.",
|
||||
"type": "info"
|
||||
},
|
||||
{
|
||||
"text": "At every boot of LXC, application will look for updates for language models installed. This can prolong the startup of the LXC.",
|
||||
"type": "info"
|
||||
}
|
||||
]
|
||||
}
|
40
frontend/public/json/nic-offloading-fix.json
Normal file
40
frontend/public/json/nic-offloading-fix.json
Normal file
@ -0,0 +1,40 @@
|
||||
{
|
||||
"name": "NIC Offloading Fix",
|
||||
"slug": "nic-offloading-fix",
|
||||
"categories": [
|
||||
1
|
||||
],
|
||||
"date_created": "2025-05-25",
|
||||
"type": "pve",
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": null,
|
||||
"documentation": null,
|
||||
"config_path": "",
|
||||
"website": null,
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/proxmox.webp",
|
||||
"description": "This script automates the process of disabling network interface card (NIC) offloading features specifically for Intel e1000e network interfaces on Linux systems.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "tools/pve/nic-offloading-fix.sh",
|
||||
"resources": {
|
||||
"cpu": null,
|
||||
"ram": null,
|
||||
"hdd": null,
|
||||
"os": null,
|
||||
"version": null
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": [
|
||||
{
|
||||
"text": "Execute within the Proxmox shell",
|
||||
"type": "info"
|
||||
}
|
||||
]
|
||||
}
|
@ -21,7 +21,7 @@
|
||||
"resources": {
|
||||
"cpu": 2,
|
||||
"ram": 4096,
|
||||
"hdd": 20,
|
||||
"hdd": 32,
|
||||
"os": "debian",
|
||||
"version": "12"
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -19,7 +19,11 @@ const getMetadata = async () => {
|
||||
|
||||
const getScripts = async () => {
|
||||
const filePaths = (await fs.readdir(jsonDir))
|
||||
.filter((fileName) => fileName !== metadataFileName && fileName !== versionFileName)
|
||||
.filter((fileName) =>
|
||||
fileName.endsWith(".json") &&
|
||||
fileName !== metadataFileName &&
|
||||
fileName !== versionFileName
|
||||
)
|
||||
.map((fileName) => path.resolve(jsonDir, fileName));
|
||||
|
||||
const scripts = await Promise.all(
|
||||
|
@ -104,7 +104,7 @@ export default function RootLayout({
|
||||
<Navbar />
|
||||
<div className="flex min-h-screen flex-col justify-center">
|
||||
<div className="flex w-full justify-center">
|
||||
<div className="w-full max-w-7xl ">
|
||||
<div className="w-full max-w-[1440px] ">
|
||||
<QueryProvider>
|
||||
<NuqsAdapter>{children}</NuqsAdapter>
|
||||
</QueryProvider>
|
||||
|
@ -56,7 +56,7 @@ export default function ScriptAccordion({
|
||||
value={expandedItem}
|
||||
onValueChange={handleAccordionChange}
|
||||
collapsible
|
||||
className="overflow-y-scroll max-h-[calc(100vh-225px)] overflow-x-hidden mt-3 p-2"
|
||||
className="overflow-y-scroll max-h-[calc(100vh-225px)] overflow-x-hidden p-2"
|
||||
>
|
||||
{items.map((category) => (
|
||||
<AccordionItem
|
||||
|
@ -15,12 +15,12 @@ import { ResourceDisplay } from "./ResourceDisplay";
|
||||
import { getDisplayValueFromType } from "./ScriptInfoBlocks";
|
||||
import Alerts from "./ScriptItems/Alerts";
|
||||
import Buttons from "./ScriptItems/Buttons";
|
||||
import ConfigFile from "./ScriptItems/ConfigFile";
|
||||
import DefaultPassword from "./ScriptItems/DefaultPassword";
|
||||
import Description from "./ScriptItems/Description";
|
||||
import InstallCommand from "./ScriptItems/InstallCommand";
|
||||
import InterFaces from "./ScriptItems/InterFaces";
|
||||
import Tooltips from "./ScriptItems/Tooltips";
|
||||
import ConfigFile from "./ScriptItems/ConfigFile";
|
||||
|
||||
interface ScriptItemProps {
|
||||
item: Script;
|
||||
@ -120,7 +120,7 @@ export function ScriptItem({ item, setSelectedScript }: ScriptItemProps) {
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="w-full max-w-5xl mx-auto">
|
||||
<div className="w-full mx-auto">
|
||||
<div className="flex w-full flex-col">
|
||||
<div className="mb-3 flex items-center justify-between">
|
||||
<h2 className="text-2xl font-semibold tracking-tight text-foreground/90">Selected Script</h2>
|
||||
@ -132,7 +132,7 @@ export function ScriptItem({ item, setSelectedScript }: ScriptItemProps) {
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div className="rounded-xl border border-border/40 bg-gradient-to-b from-card/30 to-background/50 backdrop-blur-sm shadow-sm">
|
||||
<div className="rounded-xl border border-border bg-gradient-to-b from-card/30 to-background/50 backdrop-blur-sm shadow-sm">
|
||||
<div className="p-6 space-y-6">
|
||||
<Suspense fallback={<div className="animate-pulse h-32 bg-accent/20 rounded-xl" />}>
|
||||
<ScriptHeader item={item} />
|
||||
@ -152,16 +152,18 @@ export function ScriptItem({ item, setSelectedScript }: ScriptItemProps) {
|
||||
<div className="">
|
||||
<InstallCommand item={item} />
|
||||
</div>
|
||||
<Separator />
|
||||
<div className="flex gap-3 px-4 py-2 bg-accent/25">
|
||||
<h2 className="text-lg font-semibold">
|
||||
Location of config file
|
||||
</h2>
|
||||
</div>
|
||||
<Separator />
|
||||
<div className="">
|
||||
<ConfigFile item={item} />
|
||||
</div>
|
||||
{item.config_path && (
|
||||
<>
|
||||
<Separator />
|
||||
<div className="flex gap-3 px-4 py-2 bg-accent/25">
|
||||
<h2 className="text-lg font-semibold">Location of config file</h2>
|
||||
</div>
|
||||
<Separator />
|
||||
<div className="">
|
||||
<ConfigFile configPath={item.config_path} />
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
|
||||
<DefaultPassword item={item} />
|
||||
|
@ -1,10 +1,9 @@
|
||||
import ConfigCopyButton from "@/components/ui/config-copy-button";
|
||||
import { Script } from "@/lib/types";
|
||||
|
||||
export default function ConfigFile({ item }: { item: Script }) {
|
||||
export default function ConfigFile({ configPath }: { configPath: string }) {
|
||||
return (
|
||||
<div className="px-4 pb-4">
|
||||
<ConfigCopyButton>{item.config_path ? item.config_path : "No config path set"}</ConfigCopyButton>
|
||||
<ConfigCopyButton>{configPath}</ConfigCopyButton>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ const Sidebar = ({
|
||||
}, [] as Script[]);
|
||||
|
||||
return (
|
||||
<div className="flex min-w-72 flex-col sm:max-w-72">
|
||||
<div className="flex min-w-[350px] flex-col sm:max-w-[350px]">
|
||||
<div className="flex items-end justify-between pb-4">
|
||||
<h1 className="text-xl font-bold">Categories</h1>
|
||||
<p className="text-xs italic text-muted-foreground">
|
||||
@ -40,4 +40,4 @@ const Sidebar = ({
|
||||
);
|
||||
};
|
||||
|
||||
export default Sidebar;
|
||||
export default Sidebar;
|
||||
|
@ -47,7 +47,7 @@ function ScriptContent() {
|
||||
setSelectedScript={setSelectedScript}
|
||||
/>
|
||||
</div>
|
||||
<div className="mx-7 w-full sm:mx-0 sm:ml-7">
|
||||
<div className="mx-4 w-full sm:mx-0 sm:ml-4">
|
||||
{selectedScript && item ? (
|
||||
<ScriptItem item={item} setSelectedScript={setSelectedScript} />
|
||||
) : (
|
||||
|
@ -34,7 +34,7 @@ function Navbar() {
|
||||
isScrolled ? "glass border-b bg-background/50" : ""
|
||||
}`}
|
||||
>
|
||||
<div className="flex h-20 w-full max-w-7xl items-center justify-between sm:flex-row">
|
||||
<div className="flex h-20 w-full max-w-[1440px] items-center justify-between sm:flex-row">
|
||||
<Link
|
||||
href={"/"}
|
||||
className="flex cursor-pointer w-full justify-center sm:justify-start flex-row-reverse items-center gap-2 font-semibold sm:flex-row"
|
||||
|
@ -15,18 +15,13 @@ update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y \
|
||||
lsb-release
|
||||
curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /usr/share/keyrings/deb.sury.org-php.gpg
|
||||
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 install -y \
|
||||
nginx \
|
||||
composer \
|
||||
php8.3-{bcmath,common,ctype,curl,fileinfo,fpm,gd,intl,mbstring,mysql,xml,cli}
|
||||
lsb-release \
|
||||
nginx
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
install_mariadb
|
||||
PHP_VERSION="8.3" PHP_MODULE="common,ctype,fileinfo,fpm,mysql,cli" setup_php
|
||||
setup_composer
|
||||
setup_mariadb
|
||||
|
||||
msg_info "Setting up Database"
|
||||
DB_NAME=2fauth_db
|
||||
@ -43,16 +38,12 @@ $STD mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUS
|
||||
} >>~/2FAuth.creds
|
||||
msg_ok "Set up Database"
|
||||
|
||||
msg_info "Setup 2FAuth"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Bubka/2FAuth/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
curl -fsSL "https://github.com/Bubka/2FAuth/archive/refs/tags/${RELEASE}.zip" -o "${RELEASE}.zip"
|
||||
$STD unzip "${RELEASE}.zip"
|
||||
mv "2FAuth-${RELEASE//v/}/" /opt/2fauth
|
||||
fetch_and_deploy_gh_release "2fauth" "Bubka/2FAuth"
|
||||
|
||||
cd "/opt/2fauth" || return
|
||||
msg_info "Setup 2FAuth"
|
||||
cd /opt/2fauth
|
||||
cp .env.example .env
|
||||
IPADDRESS=$(hostname -I | awk '{print $1}')
|
||||
|
||||
sed -i -e "s|^APP_URL=.*|APP_URL=http://$IPADDRESS|" \
|
||||
-e "s|^DB_CONNECTION=$|DB_CONNECTION=mysql|" \
|
||||
-e "s|^DB_DATABASE=$|DB_DATABASE=$DB_NAME|" \
|
||||
@ -60,22 +51,16 @@ sed -i -e "s|^APP_URL=.*|APP_URL=http://$IPADDRESS|" \
|
||||
-e "s|^DB_PORT=$|DB_PORT=3306|" \
|
||||
-e "s|^DB_USERNAME=$|DB_USERNAME=$DB_USER|" \
|
||||
-e "s|^DB_PASSWORD=$|DB_PASSWORD=$DB_PASS|" .env
|
||||
|
||||
export COMPOSER_ALLOW_SUPERUSER=1
|
||||
$STD composer update --no-plugins --no-scripts
|
||||
$STD composer install --no-dev --prefer-source --no-plugins --no-scripts
|
||||
|
||||
$STD php artisan key:generate --force
|
||||
|
||||
$STD php artisan migrate:refresh
|
||||
$STD php artisan passport:install -q -n
|
||||
$STD php artisan storage:link
|
||||
$STD php artisan config:cache
|
||||
|
||||
chown -R www-data: /opt/2fauth
|
||||
chmod -R 755 /opt/2fauth
|
||||
|
||||
echo "${RELEASE}" >"/opt/2fauth_version.txt"
|
||||
msg_ok "Setup 2fauth"
|
||||
|
||||
msg_info "Configure Service"
|
||||
@ -107,7 +92,6 @@ server {
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
systemctl reload nginx
|
||||
msg_ok "Configured Service"
|
||||
|
||||
@ -115,7 +99,6 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -f "/opt/v${RELEASE}.zip"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
@ -22,7 +22,7 @@ msg_info "Installing Actual Budget"
|
||||
cd /opt
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
NODE_VERSION="22"
|
||||
install_node_and_modules
|
||||
setup_nodejs
|
||||
mkdir -p /opt/actualbudget-data/{server-files,upload,migrate,user-files,migrations,config}
|
||||
chown -R root:root /opt/actualbudget-data
|
||||
chmod -R 755 /opt/actualbudget-data
|
||||
|
@ -23,8 +23,8 @@ $STD apt-get install -y \
|
||||
python3-pip
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@latest" install_node_and_modules
|
||||
PG_VERSION="16" PG_MODULES="postgis" install_postgresql
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs
|
||||
PG_VERSION="16" PG_MODULES="postgis" setup_postgresql
|
||||
|
||||
msg_info "Set up PostgreSQL Database"
|
||||
DB_NAME="adventurelog_db"
|
||||
|
@ -14,8 +14,8 @@ network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Alpine-Zigbee2MQTT"
|
||||
mkdir -p /root/.z2m /etc/zigbee2mqtt
|
||||
$STD apk add zigbee2mqtt
|
||||
mkdir -p /root/.z2m
|
||||
ln -s /etc/zigbee2mqtt/ /root/.z2m
|
||||
chown -R root:root /etc/zigbee2mqtt /root/.z2m
|
||||
sed -i -e 's/#datadir="\/var\/lib\/zigbee2mqtt"/datadir="\/etc\/zigbee2mqtt"/' -e 's/#command_user="zigbee2mqtt"/command_user="root"/' /etc/conf.d/zigbee2mqtt
|
||||
|
@ -38,7 +38,7 @@ $STD apt-get install -y \
|
||||
default-jdk
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
install_mariadb
|
||||
setup_mariadb
|
||||
|
||||
msg_info "Setup Apache Tomcat"
|
||||
RELEASE=$(curl -fsSL https://dlcdn.apache.org/tomcat/tomcat-9/ | grep -oP '(?<=href=")v[^"/]+(?=/")' | sed 's/^v//' | sort -V | tail -n1)
|
||||
|
@ -33,7 +33,7 @@ $STD apt-get install -y \
|
||||
python3-regex
|
||||
msg_ok "Installed Python Dependencies"
|
||||
|
||||
NODE_VERSION="22" install_node_and_modules
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
|
||||
msg_info "Installing Playwright"
|
||||
$STD pip install playwright
|
||||
|
@ -20,7 +20,7 @@ $STD apt-get install -y \
|
||||
php-{pgsql,dom}
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
PG_VERSION="16" install_postgresql
|
||||
PG_VERSION="16" setup_postgresql
|
||||
|
||||
msg_info "Setting up PostgreSQL Database"
|
||||
DB_NAME=baikal
|
||||
|
@ -20,8 +20,8 @@ $STD apt-get install -y \
|
||||
musl-dev
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
PG_VERSION="16" install_postgresql
|
||||
install_go
|
||||
PG_VERSION="16" setup_postgresql
|
||||
setup_go
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
|
||||
msg_info "Installing bitmagnet v${RELEASE}"
|
||||
|
@ -22,7 +22,7 @@ $STD apt-get install -y \
|
||||
make
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
install_mariadb
|
||||
setup_mariadb
|
||||
|
||||
msg_info "Setting up Database"
|
||||
DB_NAME=bookstack
|
||||
|
@ -13,7 +13,7 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
NODE_VERSION="22" install_node_and_modules
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
|
||||
msg_info "Installing ByteStash"
|
||||
JWT_SECRET=$(openssl rand -base64 32 | tr -d '/+=')
|
||||
|
@ -29,7 +29,7 @@ msg_ok "Installed Caddy"
|
||||
|
||||
read -r -p "${TAB3}Would you like to install xCaddy Addon? <y/N> " prompt
|
||||
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||
install_go
|
||||
setup_go
|
||||
msg_info "Setup xCaddy"
|
||||
$STD apt-get install -y git
|
||||
cd /opt
|
||||
|
@ -51,7 +51,7 @@ $STD apt-get install -y \
|
||||
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
|
||||
msg_ok "Setup Python3"
|
||||
|
||||
NODE_VERSION="22" install_node_and_modules
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
|
||||
msg_info "Installing Change Detection"
|
||||
mkdir /opt/changedetection
|
||||
|
@ -13,7 +13,7 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
install_go
|
||||
setup_go
|
||||
|
||||
msg_info "Configure Application"
|
||||
var_cf_api_token="default"
|
||||
|
@ -18,8 +18,8 @@ $STD apt-get install -y \
|
||||
git
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_MODULE="pnpm@latest" install_node_and_modules
|
||||
fetch_and_deploy_gh_release "raydak-labs/configarr"
|
||||
NODE_MODULE="pnpm@latest" setup_nodejs
|
||||
fetch_and_deploy_gh_release "configarr" "raydak-labs/configarr"
|
||||
|
||||
msg_info "Setup ${APPLICATION}"
|
||||
cat <<EOF >/opt/configarr/.env
|
||||
|
@ -13,7 +13,7 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
NODE_VERSION="22" install_node_and_modules
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
|
||||
msg_info "Installing Cronicle Primary Server"
|
||||
LATEST=$(curl -fsSL https://api.github.com/repos/jhuckaby/Cronicle/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
||||
|
@ -13,7 +13,7 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
NODE_VERSION="22" install_node_and_modules
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
|
||||
msg_info "Setup Cross-Seed"
|
||||
$STD npm install cross-seed@latest -g
|
||||
|
@ -18,7 +18,7 @@ $STD apt-get install -y \
|
||||
git
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" install_node_and_modules
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
|
||||
read -p "${TAB3}Install OnlyOffice components instead of CKEditor? (Y/N): " onlyoffice
|
||||
|
||||
|
@ -13,7 +13,7 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
NODE_VERSION="22" install_node_and_modules
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Lissy93/dashy/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
msg_info "Installing Dashy ${RELEASE} (Patience)"
|
||||
|
@ -20,8 +20,8 @@ $STD apt-get install -y \
|
||||
make
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/docmost/docmost/main/package.json | jq -r '.packageManager | split("@")[1]')" install_node_and_modules
|
||||
PG_VERSION="16" install_postgresql
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/docmost/docmost/main/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
|
||||
PG_VERSION="16" setup_postgresql
|
||||
|
||||
msg_info "Setting up PostgreSQL"
|
||||
DB_NAME="docmost_db"
|
||||
|
@ -28,8 +28,8 @@ $STD apt-get install -y \
|
||||
python3-bcrypt
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="turbo@1.9.3" install_node_and_modules
|
||||
PG_VERSION="16" install_postgresql
|
||||
NODE_VERSION="22" NODE_MODULE="turbo@1.9.3" setup_nodejs
|
||||
PG_VERSION="16" setup_postgresql
|
||||
|
||||
msg_info "Setting up PostgreSQL"
|
||||
DB_NAME="documenso_db"
|
||||
|
@ -19,7 +19,7 @@ $STD apt-get install -y \
|
||||
debconf-utils
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
install_mariadb
|
||||
setup_mariadb
|
||||
|
||||
msg_info "Setting up Database"
|
||||
ROOT_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
||||
@ -32,7 +32,7 @@ msg_ok "Set up database"
|
||||
|
||||
msg_info "Setup Dolibarr"
|
||||
BASE="https://sourceforge.net/projects/dolibarr/files/Dolibarr%20installer%20for%20Debian-Ubuntu%20(DoliDeb)/"
|
||||
RELEASE=$(curl -fsSL "$BASE" | grep -oP '(?<=/Dolibarr%20installer%20for%20Debian-Ubuntu%20%28DoliDeb%29/)[^/"]+' | head -n1)
|
||||
RELEASE=$(curl -fsSL "$BASE" | grep -oP '(?<=/Dolibarr%20installer%20for%20Debian-Ubuntu%20%28DoliDeb%29/)\d+(\.\d+)+(?=/)' | sort -V | tail -n1)
|
||||
FILE=$(curl -fsSL "${BASE}${RELEASE}/" | grep -oP 'dolibarr_[^"]+_all.deb' | head -n1)
|
||||
curl -fsSL "https://netcologne.dl.sourceforge.net/project/dolibarr/Dolibarr%20installer%20for%20Debian-Ubuntu%20(DoliDeb)/${RELEASE}/${FILE}?viasf=1" -o ""$FILE""
|
||||
echo "dolibarr dolibarr/reconfigure-webserver multiselect apache2" | debconf-set-selections
|
||||
|
@ -20,7 +20,7 @@ $STD apt-get install -y \
|
||||
debconf-utils
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" install_node_and_modules
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
|
||||
|
||||
read -p "${TAB3}Please enter the name for your server: " servername
|
||||
|
||||
@ -57,8 +57,8 @@ cd /opt/synapse-admin
|
||||
$STD yarn global add serve
|
||||
$STD yarn install --ignore-engines
|
||||
$STD yarn build
|
||||
mv ./dist ../ && \
|
||||
rm -rf * && \
|
||||
mv ./dist ../ &&
|
||||
rm -rf * &&
|
||||
mv ../dist ./
|
||||
msg_ok "Installed Element Synapse"
|
||||
|
||||
|
@ -18,7 +18,7 @@ $STD apt-get install -y \
|
||||
xdg-utils
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" install_node_and_modules
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
|
||||
|
||||
msg_info "Setup Excalidraw"
|
||||
temp_file=$(mktemp)
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: quantumryuu
|
||||
# Author: quantumryuu | Co-Author: Slaviša Arežina (tremor021)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://firefly-iii.org/
|
||||
|
||||
@ -24,13 +24,12 @@ $STD apt-get install -y \
|
||||
composer
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
install_mariadb
|
||||
setup_mariadb
|
||||
|
||||
msg_info "Setting up database"
|
||||
DB_NAME=firefly
|
||||
DB_USER=firefly
|
||||
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
||||
MYSQL_VERSION=$(mariadb --version | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -n1)
|
||||
$STD mariadb -u root -e "CREATE DATABASE $DB_NAME;"
|
||||
$STD mariadb -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
|
||||
mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
||||
@ -43,6 +42,7 @@ mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRI
|
||||
msg_ok "Set up database"
|
||||
|
||||
msg_info "Installing Firefly III (Patience)"
|
||||
LOCAL_IP=$(hostname -I | awk '{print $1}')
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/firefly-iii/firefly-iii/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
|
||||
cd /opt
|
||||
curl -fsSL "https://github.com/firefly-iii/firefly-iii/releases/download/v${RELEASE}/FireflyIII-v${RELEASE}.tar.gz" -o "FireflyIII-v${RELEASE}.tar.gz"
|
||||
@ -61,6 +61,14 @@ $STD php artisan firefly:upgrade-database
|
||||
$STD php artisan firefly:correct-database
|
||||
$STD php artisan firefly:report-integrity
|
||||
$STD php artisan firefly:laravel-passport-keys
|
||||
IMPORTER_RELEASE=$(curl -fsSL https://api.github.com/repos/firefly-iii/data-importer/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
|
||||
mkdir -p /opt/firefly/dataimporter
|
||||
cd /opt
|
||||
curl -fsSL "https://github.com/firefly-iii/data-importer/releases/download/v${IMPORTER_RELEASE}/DataImporter-v${IMPORTER_RELEASE}.tar.gz" -o "DataImporter-v${IMPORTER_RELEASE}.tar.gz"
|
||||
tar -xzf "DataImporter-v${IMPORTER_RELEASE}.tar.gz" -C /opt/firefly/dataimporter
|
||||
cp /opt/firefly/dataimporter/.env.example /opt/firefly/dataimporter/.env
|
||||
sed -i "s#FIREFLY_III_URL=#FIREFLY_III_URL=http://${LOCAL_IP}#g" /opt/firefly/dataimporter/.env
|
||||
chown -R www-data:www-data /opt/firefly
|
||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
||||
msg_ok "Installed Firefly III"
|
||||
|
||||
@ -75,7 +83,18 @@ cat <<EOF >/etc/apache2/sites-available/firefly.conf
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
|
||||
Alias /dataimporter/ /opt/firefly/dataimporter/public/
|
||||
|
||||
<Directory /opt/firefly/dataimporter/public/>
|
||||
Options Indexes FollowSymLinks
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
</Directory>
|
||||
<FilesMatch \.php$>
|
||||
SetHandler application/x-httpd-php
|
||||
</FilesMatch>
|
||||
|
||||
ErrorLog /var/log/apache2/error.log
|
||||
CustomLog /var/log/apache2/access.log combined
|
||||
|
||||
@ -93,7 +112,8 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf /opt/FireflyIII-v${RELEASE}.tar.gz
|
||||
rm -rf "/opt/FireflyIII-v${RELEASE}.tar.gz"
|
||||
rm -rf "/opt/DataImporter-v${IMPORTER_RELEASE}.tar.gz"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
@ -13,7 +13,7 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
NODE_VERSION="22" install_node_and_modules
|
||||
NODE_VERSION="20" setup_nodejs
|
||||
|
||||
msg_info "Installing FlowiseAI (Patience)"
|
||||
$STD npm install -g flowise \
|
||||
|
@ -20,7 +20,7 @@ $STD apt-get install -y \
|
||||
libapache2-mod-php
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
PG_VERSION="16" install_postgresql
|
||||
PG_VERSION="16" setup_postgresql
|
||||
|
||||
msg_info "Setting up PostgreSQL"
|
||||
DB_NAME=freshrss
|
||||
|
@ -23,7 +23,7 @@ $STD apt-get install -y {python3,python3-dev,python3-setuptools,python3-distutil
|
||||
$STD pip install --upgrade pip
|
||||
msg_ok "Setup Python3"
|
||||
|
||||
NODE_VERSION="22" install_node_and_modules
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
|
||||
msg_info "Installing go2rtc"
|
||||
mkdir -p /usr/local/go2rtc/bin
|
||||
|
@ -17,7 +17,7 @@ $STD apt-get install -y \
|
||||
ca-certificates
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@latest" install_node_and_modules
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs
|
||||
|
||||
msg_info "Installing Fumadocs"
|
||||
mkdir -p /opt/fumadocs
|
||||
|
@ -19,7 +19,7 @@ $STD apt-get install -y \
|
||||
libcap2-bin
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
install_go
|
||||
setup_go
|
||||
|
||||
RELEASE=$(curl -s https://api.github.com/repos/TwiN/gatus/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
msg_info "Setting up gatus v${RELEASE}"
|
||||
|
@ -19,7 +19,7 @@ $STD apt-get install -y \
|
||||
ca-certificates
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
install_mariadb
|
||||
setup_mariadb
|
||||
|
||||
msg_info "Configuring Database"
|
||||
DB_NAME=ghost
|
||||
@ -37,7 +37,7 @@ $STD mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUS
|
||||
} >>~/ghost.creds
|
||||
msg_ok "Configured MySQL"
|
||||
|
||||
NODE_VERSION="20" install_node_and_modules
|
||||
NODE_VERSION="20" setup_nodejs
|
||||
|
||||
msg_info "Installing Ghost CLI"
|
||||
$STD npm install ghost-cli@latest -g
|
||||
|
@ -28,7 +28,7 @@ ln -sf /opt/bun/bin/bun /usr/local/bin/bun
|
||||
ln -sf /opt/bun/bin/bun /usr/local/bin/bunx
|
||||
msg_ok "Installed Bun"
|
||||
|
||||
fetch_and_deploy_gh_release "arunavo4/gitea-mirror"
|
||||
fetch_and_deploy_gh_release "gitea-mirror" "arunavo4/gitea-mirror"
|
||||
|
||||
msg_info "Installing gitea-mirror"
|
||||
cd /opt/gitea-mirror
|
||||
|
@ -22,7 +22,7 @@ $STD apt-get install -y \
|
||||
libapache2-mod-php
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
install_mariadb
|
||||
setup_mariadb
|
||||
|
||||
msg_info "Setting up database"
|
||||
DB_NAME=glpi_db
|
||||
|
@ -22,8 +22,8 @@ $STD apt-get install -y \
|
||||
build-essential
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
install_go
|
||||
NODE_VERSION="22" install_node_and_modules
|
||||
setup_go
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
|
||||
msg_info "Setup ${APPLICATION} (Patience)"
|
||||
temp_file=$(mktemp)
|
||||
|
@ -13,7 +13,7 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
MONGO_VERSION="7.0" install_mongodb
|
||||
MONGO_VERSION="7.0" setup_mongodb
|
||||
|
||||
msg_info "Setup Graylog Data Node"
|
||||
PASSWORD_SECRET=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c16)
|
||||
|
@ -20,7 +20,7 @@ $STD apt-get install -y \
|
||||
python3.11-venv
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" install_node_and_modules
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
|
||||
|
||||
msg_info "Installing Grist"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/gristlabs/grist-core/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
|
@ -22,7 +22,7 @@ curl -fsSL "http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1
|
||||
$STD dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="20" install_node_and_modules
|
||||
NODE_VERSION="20" setup_nodejs
|
||||
|
||||
msg_info "Setup ${APPLICATION}"
|
||||
temp_file=$(mktemp)
|
||||
|
@ -28,8 +28,8 @@ msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION=$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.engines.node | split(">=")[1] | split(".")[0]')
|
||||
NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.packageManager | split("@")[1]')"
|
||||
install_node_and_modules
|
||||
fetch_and_deploy_gh_release "homarr-labs/homarr"
|
||||
setup_nodejs
|
||||
fetch_and_deploy_gh_release "homarr" "homarr-labs/homarr"
|
||||
|
||||
msg_info "Installing Homarr (Patience)"
|
||||
cd /opt
|
||||
|
@ -17,7 +17,7 @@ msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y jq
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@latest" install_node_and_modules
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs
|
||||
|
||||
LOCAL_IP=$(hostname -I | awk '{print $1}')
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/gethomepage/homepage/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
|
49
install/huntarr-install.sh
Normal file
49
install/huntarr-install.sh
Normal file
@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: BiluliB
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/plexguide/Huntarr.io
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y jq
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
setup_uv
|
||||
fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io"
|
||||
|
||||
msg_info "Configure Huntarr"
|
||||
$STD uv venv /opt/huntarr/.venv
|
||||
$STD uv pip install --python /opt/huntarr/.venv/bin/python -r /opt/huntarr/requirements.txt
|
||||
msg_ok "Configured Huntrarr"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/huntarr.service
|
||||
[Unit]
|
||||
Description=Huntarr Service
|
||||
After=network.target
|
||||
[Service]
|
||||
WorkingDirectory=/opt/huntarr
|
||||
ExecStart=/opt/huntarr/.venv/bin/python /opt/huntarr/main.py
|
||||
Restart=always
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now huntarr
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
@ -84,10 +84,7 @@ ln -s /usr/lib/jellyfin-ffmpeg/ffmpeg /usr/bin/ffmpeg
|
||||
ln -s /usr/lib/jellyfin-ffmpeg/ffprobe /usr/bin/ffprobe
|
||||
msg_ok "Dependencies Installed"
|
||||
|
||||
NODE_VERSION="22" install_node_and_modules
|
||||
PG_VERSION="16" install_postgresql
|
||||
|
||||
read -r -p "${TAB3}Install OpenVINO dependencies for Intel HW-accelerated machine-learning? " prompt
|
||||
read -r -p "Install OpenVINO dependencies for Intel HW-accelerated machine-learning? y/N " prompt
|
||||
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
||||
msg_info "Installing OpenVINO dependencies"
|
||||
touch ~/.openvino
|
||||
@ -112,6 +109,9 @@ if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
||||
msg_ok "Installed OpenVINO dependencies"
|
||||
fi
|
||||
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
PG_VERSION="16" setup_postgresql
|
||||
|
||||
msg_info "Setting up Postgresql Database"
|
||||
$STD apt-get install postgresql-16-pgvector
|
||||
curl -fsSL https://github.com/tensorchord/VectorChord/releases/download/0.3.0/postgresql-16-vchord_0.3.0-1_amd64.deb -o vchord.deb
|
||||
|
@ -17,7 +17,7 @@ msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y ca-certificates
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" install_node_and_modules
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
|
||||
msg_info "Installing ioBroker (Patience)"
|
||||
$STD bash <(curl -fsSL https://iobroker.net/install.sh)
|
||||
|
@ -19,14 +19,12 @@ $STD apt-get install -y \
|
||||
build-essential
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
|
||||
|
||||
git clone -q https://github.com/Fallenbagel/jellyseerr.git /opt/jellyseerr
|
||||
cd /opt/jellyseerr
|
||||
$STD git checkout main
|
||||
|
||||
pnpm_desired=$(grep -Po '"pnpm":\s*"\K[^"]+' /opt/jellyseerr/package.json)
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@$pnpm_desired" install_node_and_modules
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@$pnpm_desired" setup_nodejs
|
||||
|
||||
msg_info "Installing Jellyseerr (Patience)"
|
||||
export CYPRESS_INSTALL_BINARY=0
|
||||
|
@ -48,7 +48,7 @@ sed -i \
|
||||
/etc/meilisearch.toml
|
||||
msg_ok "Installed Meilisearch"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" install_node_and_modules
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
|
||||
$STD npm install -g corepack@0.31.0
|
||||
|
||||
msg_info "Installing karakeep"
|
||||
|
@ -16,17 +16,25 @@ update_os
|
||||
msg_info "Installing Kasm Workspaces"
|
||||
KASM_VERSION=$(curl -fsSL 'https://www.kasmweb.com/downloads' | grep -o 'https://kasm-static-content.s3.amazonaws.com/kasm_release_[^"]*\.tar\.gz' | head -n 1 | sed -E 's/.*release_(.*)\.tar\.gz/\1/')
|
||||
curl -fsSL -o "/opt/kasm_release_${KASM_VERSION}.tar.gz" "https://kasm-static-content.s3.amazonaws.com/kasm_release_${KASM_VERSION}.tar.gz"
|
||||
tar -xf "/opt/kasm_release_${KASM_VERSION}.tar.gz" -C /opt
|
||||
printf 'y\ny\ny\n4\n' | bash /opt/kasm_release/install.sh
|
||||
touch ~/kasm-install.output
|
||||
sed -n '/Kasm UI Login Credentials/,$p' ~/kasm-install.output >~/kasm.creds
|
||||
|
||||
cd /opt
|
||||
tar -xf "kasm_release_${KASM_VERSION}.tar.gz"
|
||||
chmod +x /opt/kasm_release/install.sh
|
||||
printf 'y\ny\ny\n4\n' | bash /opt/kasm_release/install.sh > ~/kasm-install.output 2>&1
|
||||
cat ~/kasm-install.output | grep -A 20 -i "credentials\|login\|password\|admin" | sed '1i Kasm-Workspaces-Credentials' >~/kasm.creds
|
||||
|
||||
msg_ok "Installed Kasm Workspaces"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Displaying Kasm Credentials"
|
||||
cat ~/kasm.creds
|
||||
msg_ok "Kasm Credentials displayed"
|
||||
|
||||
msg_info "Cleaning up"
|
||||
$STD rm -f "/opt/kasm_release_${KASM_VERSION}.tar.gz"
|
||||
rm -f /opt/kasm_release_${KASM_VERSION}.tar.gz
|
||||
rm -f ~/kasm-install.output
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
@ -23,7 +23,7 @@ $STD apt-get install -y \
|
||||
lsb-release
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
install_mysql
|
||||
setup_mysql
|
||||
|
||||
msg_info "Adding PHP8.4 Repository"
|
||||
$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
||||
|
@ -19,8 +19,8 @@ $STD apt-get install -y \
|
||||
lsb-release
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" install_node_and_modules
|
||||
PG_VERSION="16" install_postgresql
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
|
||||
PG_VERSION="16" setup_postgresql
|
||||
|
||||
msg_info "Setup PHP8.4 Repository"
|
||||
$STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
||||
|
81
install/libretranslate-install.sh
Normal file
81
install/libretranslate-install.sh
Normal file
@ -0,0 +1,81 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: Slaviša Arežina (tremor021)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/LibreTranslate/LibreTranslate
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing dependencies"
|
||||
$STD apt-get install -y --no-install-recommends \
|
||||
pkg-config \
|
||||
gcc \
|
||||
g++ \
|
||||
libicu-dev
|
||||
msg_ok "Installed dependencies"
|
||||
|
||||
msg_info "Setup Python3"
|
||||
$STD apt-get install -y \
|
||||
python3-pip \
|
||||
python3-dev \
|
||||
python3-icu
|
||||
msg_ok "Setup Python3"
|
||||
|
||||
setup_uv
|
||||
fetch_and_deploy_gh_release "libretranslate" "LibreTranslate/LibreTranslate"
|
||||
|
||||
msg_info "Setup LibreTranslate (Patience)"
|
||||
cd /opt/libretranslate
|
||||
$STD uv venv .venv
|
||||
$STD source .venv/bin/activate
|
||||
$STD uv pip install --upgrade pip setuptools
|
||||
$STD uv pip install Babel==2.12.1
|
||||
$STD .venv/bin/python scripts/compile_locales.py
|
||||
$STD uv pip install torch==2.2.0 --extra-index-url https://download.pytorch.org/whl/cpu
|
||||
$STD uv pip install "numpy<2"
|
||||
$STD uv pip install .
|
||||
$STD uv pip install libretranslate
|
||||
$STD .venv/bin/python scripts/install_models.py
|
||||
|
||||
cat <<EOF >/opt/libretranslate/.env
|
||||
LT_PORT=5000
|
||||
EOF
|
||||
msg_ok "Installed LibreTranslate"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/libretranslate.service
|
||||
[Unit]
|
||||
Description=LibreTranslate
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
User=root
|
||||
Type=idle
|
||||
Restart=always
|
||||
Environment="PATH=/usr/local/lib/python3.11/dist-packages/libretranslate"
|
||||
EnvironmentFile=/opt/libretranslate/.env
|
||||
ExecStart=/opt/libretranslate/.venv/bin/python3 /opt/libretranslate/.venv/bin/libretranslate --host * --update-models
|
||||
ExecReload=/bin/kill -s HUP
|
||||
KillMode=mixed
|
||||
TimeoutStopSec=1
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now libretranslate
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
@ -19,9 +19,9 @@ $STD apt-get install -y \
|
||||
build-essential
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" install_node_and_modules
|
||||
PG_VERSION="16" install_postgresql
|
||||
RUST_CRATES="monolith" install_rust_and_crates
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
|
||||
PG_VERSION="16" setup_postgresql
|
||||
RUST_CRATES="monolith" setup_rust
|
||||
|
||||
msg_info "Setting up PostgreSQL DB"
|
||||
DB_NAME=linkwardendb
|
||||
@ -48,7 +48,7 @@ if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||
fi
|
||||
|
||||
msg_info "Installing Linkwarden (Patience)"
|
||||
fetch_and_deploy_gh_release "linkwarden/linkwarden"
|
||||
fetch_and_deploy_gh_release "linkwarden" "linkwarden/linkwarden"
|
||||
cd /opt/linkwarden
|
||||
$STD yarn
|
||||
$STD npx playwright install-deps
|
||||
|
@ -20,7 +20,7 @@ $STD apt-get install -y gcc
|
||||
$STD apt-get install -y ca-certificates
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" install_node_and_modules
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/hywax/mafl/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
msg_info "Installing Mafl v${RELEASE}"
|
||||
|
@ -13,7 +13,7 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
NODE_VERSION="22" install_node_and_modules
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
|
||||
msg_info "Setup MagicMirror"
|
||||
temp_file=$(mktemp)
|
||||
|
@ -13,8 +13,8 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
NODE_VERSION="20" install_node_and_modules
|
||||
MYSQL_VERSION="8.0" install_mysql
|
||||
NODE_VERSION="20" setup_nodejs
|
||||
MYSQL_VERSION="8.0" setup_mysql
|
||||
|
||||
msg_info "Setting up Database"
|
||||
DB_NAME="mmdl"
|
||||
|
@ -13,7 +13,7 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
install_mariadb
|
||||
setup_mariadb
|
||||
|
||||
msg_info "Setup MariaDB"
|
||||
sed -i 's/^# *\(port *=.*\)/\1/' /etc/mysql/my.cnf
|
||||
|
@ -17,7 +17,7 @@ msg_info "Install Matterbridge"
|
||||
mkdir -p /root/Matterbridge
|
||||
NODE_VERSION="22"
|
||||
NODE_MODULE="matterbridge"
|
||||
install_node_and_modules
|
||||
setup_nodejs
|
||||
msg_ok "Installed Matterbridge"
|
||||
|
||||
msg_info "Creating Service"
|
||||
|
@ -13,7 +13,7 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
PG_VERSION="16" install_postgresql
|
||||
PG_VERSION="16" setup_postgresql
|
||||
|
||||
msg_info "Setting up PostgreSQL"
|
||||
DB_NAME=mattermost
|
||||
|
@ -35,7 +35,7 @@ msg_ok "Setup ${APPLICATION}"
|
||||
|
||||
read -r -p "${TAB3}Do you want add meilisearch-ui? [y/n]: " prompt
|
||||
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@latest" install_node_and_modules
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs
|
||||
|
||||
msg_info "Setup ${APPLICATION}-ui"
|
||||
tmp_file=$(mktemp)
|
||||
|
@ -21,8 +21,8 @@ $STD apt-get install -y \
|
||||
tzdata
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@latest" install_node_and_modules
|
||||
install_go
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs
|
||||
setup_go
|
||||
|
||||
msg_info "Installing Memos (Patience)"
|
||||
mkdir -p /opt/memos_data
|
||||
|
@ -17,7 +17,7 @@ msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y ca-certificates
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" install_node_and_modules
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
|
||||
msg_info "Installing MeshCentral"
|
||||
mkdir /opt/meshcentral
|
||||
|
@ -36,7 +36,7 @@ $STD apt-get install -y \
|
||||
python3-venv
|
||||
msg_ok "Setup Python3"
|
||||
|
||||
NODE_VERSION="22" install_node_and_modules
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
|
||||
msg_info "Installing MeTube"
|
||||
$STD git clone https://github.com/alexta69/metube /opt/metube
|
||||
|
@ -21,8 +21,8 @@ $STD apt-get install -y \
|
||||
composer
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
install_mariadb
|
||||
NODE_VERSION="20" NODE_MODULE="yarn@latest" install_node_and_modules
|
||||
setup_mariadb
|
||||
NODE_VERSION="20" NODE_MODULE="yarn@latest" setup_nodejs
|
||||
|
||||
msg_info "Setting up MariaDB"
|
||||
DB_NAME=monica
|
||||
|
@ -19,7 +19,7 @@ $STD apt-get install -y \
|
||||
ca-certificates
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" install_node_and_modules
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
|
||||
msg_info "Installing MySpeed"
|
||||
RELEASE=$(curl -fsSL https://github.com/gnmyt/myspeed/releases/latest | grep "title>Release" | cut -d " " -f 5)
|
||||
|
@ -18,7 +18,7 @@ $STD apt-get install -y \
|
||||
ca-certificates
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" install_node_and_modules
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
|
||||
msg_info "Installing n8n (Patience)"
|
||||
$STD npm install --global patch-package
|
||||
|
@ -26,7 +26,7 @@ $STD apt-get install -y \
|
||||
zlib1g-dev
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
PG_VERSION="16" install_postgresql
|
||||
PG_VERSION="16" setup_postgresql
|
||||
|
||||
msg_info "Installing Python"
|
||||
$STD apt-get install -y \
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user