mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-07-02 03:57:37 +00:00
Compare commits
45 Commits
2025-03-04
...
2025-03-09
Author | SHA1 | Date | |
---|---|---|---|
6ad1ea004f | |||
a640814ae0 | |||
89962b01fa | |||
b0a06bdc5f | |||
54fc60b60e | |||
830634517b | |||
f99fd28fe6 | |||
70f96e3bfd | |||
a56bbba2bd | |||
9f0945394f | |||
c9dec5e3cd | |||
6e8dd730ad | |||
0fdab8c0b4 | |||
24af87ae08 | |||
175150d928 | |||
50963e0fa1 | |||
e0f65118a4 | |||
c48111496c | |||
2630c46c24 | |||
4a41b24386 | |||
f3d59531c1 | |||
4a67ba0a88 | |||
d19d535873 | |||
2fd035582a | |||
c057e14daf | |||
06771873f3 | |||
ee008c7db4 | |||
b4874d9705 | |||
06fc4209a7 | |||
9d46a6d133 | |||
bbbbd3cb5f | |||
5db4a93697 | |||
dc7529dc8e | |||
301ea36264 | |||
fc26badfdb | |||
0ded79b785 | |||
83a79dcb6d | |||
c98e92b034 | |||
c8dd6b1af1 | |||
7ee0c9cc78 | |||
648e452f8b | |||
8e3177135f | |||
7352cbc220 | |||
3dd87d8989 | |||
4a3192b704 |
25
.github/workflows/github-release.yml
vendored
25
.github/workflows/github-release.yml
vendored
@ -4,7 +4,7 @@ on:
|
||||
schedule:
|
||||
- cron: '1 0 * * *' # Runs daily at 00:01 UTC
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
jobs:
|
||||
create-daily-release:
|
||||
runs-on: runner-cluster-htl-set
|
||||
@ -14,32 +14,25 @@ jobs:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Extract first 5000 characters from CHANGELOG.md
|
||||
run: head -c 5000 CHANGELOG.md > changelog_cropped.md
|
||||
|
||||
- name: Debugging - Show extracted changelog
|
||||
run: |
|
||||
echo "=== CHANGELOG EXCERPT ==="
|
||||
cat changelog_cropped.md
|
||||
echo "========================="
|
||||
- name: Clean CHANGELOG (remove HTML header)
|
||||
run: sed -n '/^## /,$p' CHANGELOG.md > changelog_cleaned.md
|
||||
|
||||
- name: Extract relevant changelog section
|
||||
run: |
|
||||
YESTERDAY=$(date -u --date="yesterday" +%Y-%m-%d)
|
||||
echo "Checking for changes on: $YESTERDAY"
|
||||
|
||||
# Extract relevant section from cropped changelog
|
||||
awk -v date="## $YESTERDAY" '
|
||||
$0 ~ date {found=1; next}
|
||||
found && /^## [0-9]{4}-[0-9]{2}-[0-9]{2}/ {exit}
|
||||
found
|
||||
' changelog_cropped.md > changelog_tmp.md
|
||||
# Extract the section from "## $YESTERDAY" until the next "## YYYY-MM-DD"
|
||||
sed -n "/^## $YESTERDAY/,/^## [0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}/p" changelog_cleaned.md | head -n -1 > changelog_tmp_full.md
|
||||
|
||||
# Truncate the extracted section to 5000 characters
|
||||
head -c 5000 changelog_tmp_full.md > changelog_tmp.md
|
||||
|
||||
echo "=== Extracted Changelog ==="
|
||||
cat changelog_tmp.md
|
||||
echo "==========================="
|
||||
|
||||
# Skip if no content was found
|
||||
# Abort if no content was found
|
||||
if [ ! -s changelog_tmp.md ]; then
|
||||
echo "No changes found for $YESTERDAY, skipping release."
|
||||
exit 0
|
||||
|
81
CHANGELOG.md
81
CHANGELOG.md
@ -14,6 +14,87 @@ 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-03-09
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Fix wikijs update issue while backing up data [@AdelRefaat](https://github.com/AdelRefaat) ([#2950](https://github.com/community-scripts/ProxmoxVE/pull/2950))
|
||||
|
||||
### 🧰 Maintenance
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Improve Release-Action (awk function) [@MickLesk](https://github.com/MickLesk) ([#2934](https://github.com/community-scripts/ProxmoxVE/pull/2934))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Pi-hole interface port in documentation [@la7eralus](https://github.com/la7eralus) ([#2953](https://github.com/community-scripts/ProxmoxVE/pull/2953))
|
||||
|
||||
## 2025-03-08
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Update slug to lowercase in pf2etools.json [@PhoenixEmik](https://github.com/PhoenixEmik) ([#2942](https://github.com/community-scripts/ProxmoxVE/pull/2942))
|
||||
|
||||
## 2025-03-07
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- JupyterNotebook: Fix APP Variable [@MickLesk](https://github.com/MickLesk) ([#2924](https://github.com/community-scripts/ProxmoxVE/pull/2924))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Beszel: restarting service after update [@C0pywriting](https://github.com/C0pywriting) ([#2915](https://github.com/community-scripts/ProxmoxVE/pull/2915))
|
||||
|
||||
- #### 💥 Breaking Changes
|
||||
|
||||
- ActualBudget: Update Script with new Repo [@MickLesk](https://github.com/MickLesk) ([#2907](https://github.com/community-scripts/ProxmoxVE/pull/2907))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### 📝 Script Information
|
||||
|
||||
- Improve Nextcloud(pi) docu and Name to NextcloudPi [@MickLesk](https://github.com/MickLesk) ([#2930](https://github.com/community-scripts/ProxmoxVE/pull/2930))
|
||||
- fix jupyternotebook slug [@MickLesk](https://github.com/MickLesk) ([#2922](https://github.com/community-scripts/ProxmoxVE/pull/2922))
|
||||
- Improve Trilium Description and Name to TriliumNext [@MickLesk](https://github.com/MickLesk) ([#2929](https://github.com/community-scripts/ProxmoxVE/pull/2929))
|
||||
- Prowlarr icon [@bannert1337](https://github.com/bannert1337) ([#2906](https://github.com/community-scripts/ProxmoxVE/pull/2906))
|
||||
- Update Apache Tika icon to SVG [@bannert1337](https://github.com/bannert1337) ([#2904](https://github.com/community-scripts/ProxmoxVE/pull/2904))
|
||||
- Update Prometheus Alertmanager Icon [@bannert1337](https://github.com/bannert1337) ([#2905](https://github.com/community-scripts/ProxmoxVE/pull/2905))
|
||||
|
||||
## 2025-03-06
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- InvenTree [@tremor021](https://github.com/tremor021) ([#2890](https://github.com/community-scripts/ProxmoxVE/pull/2890))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Homarr: Optional Reboot after update [@CrazyWolf13](https://github.com/CrazyWolf13) ([#2876](https://github.com/community-scripts/ProxmoxVE/pull/2876))
|
||||
- Fix Tag "community-scripts" for ArchLinux / OPNSense [@MickLesk](https://github.com/MickLesk) ([#2875](https://github.com/community-scripts/ProxmoxVE/pull/2875))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Wastebin: Update Script for Version 3.0.0 [@MickLesk](https://github.com/MickLesk) ([#2885](https://github.com/community-scripts/ProxmoxVE/pull/2885))
|
||||
|
||||
## 2025-03-05
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Kimai: Better Handling of Updates (backup var / env / yaml) [@MickLesk](https://github.com/MickLesk) ([#2862](https://github.com/community-scripts/ProxmoxVE/pull/2862))
|
||||
- Fix NextcloudPi-Installation [@MickLesk](https://github.com/MickLesk) ([#2853](https://github.com/community-scripts/ProxmoxVE/pull/2853))
|
||||
|
||||
## 2025-03-04
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
@ -26,9 +26,93 @@ function update_script() {
|
||||
|
||||
if [[ ! -d /opt/actualbudget ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit 1
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ ! -f /opt/actualbudget_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/actualbudget_version.txt)" ]]; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop actualbudget
|
||||
msg_ok "${APP} Stopped"
|
||||
|
||||
msg_info "Updating ${APP} to ${RELEASE}"
|
||||
cd /tmp
|
||||
wget -q https://github.com/actualbudget/actual/archive/refs/tags/v${RELEASE}.tar.gz
|
||||
|
||||
mv /opt/actualbudget /opt/actualbudget_bak
|
||||
tar -xzf "v${RELEASE}.tar.gz"
|
||||
mv actual-${RELEASE} /opt/actualbudget
|
||||
|
||||
mkdir -p /opt/actualbudget-data/{server-files,upload,migrate,user-files,migrations,config}
|
||||
for dir in server-files .migrate user-files migrations; do
|
||||
if [[ -d /opt/actualbudget_bak/$dir ]]; then
|
||||
mv /opt/actualbudget_bak/$dir/* /opt/actualbudget-data/$dir/ || true
|
||||
fi
|
||||
done
|
||||
if [[ -f /opt/actualbudget-data/migrate/.migrations ]]; then
|
||||
sed -i 's/null/1732656575219/g' /opt/actualbudget-data/migrate/.migrations
|
||||
sed -i 's/null/1732656575220/g' /opt/actualbudget-data/migrate/.migrations
|
||||
fi
|
||||
if [[ -f /opt/actualbudget/server-files/account.sqlite ]] && [[ ! -f /opt/actualbudget-data/server-files/account.sqlite ]]; then
|
||||
mv /opt/actualbudget/server-files/account.sqlite /opt/actualbudget-data/server-files/account.sqlite
|
||||
fi
|
||||
|
||||
if [[ -f /opt/actualbudget_bak/selfhost.key ]]; then
|
||||
mv /opt/actualbudget_bak/selfhost.key /opt/actualbudget/selfhost.key
|
||||
mv /opt/actualbudget_bak/selfhost.crt /opt/actualbudget/selfhost.crt
|
||||
fi
|
||||
|
||||
if [[ -f /opt/actualbudget_bak/.env ]]; then
|
||||
mv /opt/actualbudget_bak/.env /opt/actualbudget-data/.env
|
||||
else
|
||||
cat <<EOF >/opt/actualbudget-data/.env
|
||||
ACTUAL_UPLOAD_DIR=/opt/actualbudget-data/upload
|
||||
ACTUAL_DATA_DIR=/opt/actualbudget-data
|
||||
ACTUAL_SERVER_FILES_DIR=/opt/actualbudget-data/server-files
|
||||
ACTUAL_USER_FILES=/opt/actualbudget-data/user-files
|
||||
PORT=5006
|
||||
ACTUAL_TRUSTED_PROXIES="10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.1/32,::1/128,fc00::/7"
|
||||
ACTUAL_HTTPS_KEY=/opt/actualbudget/selfhost.key
|
||||
ACTUAL_HTTPS_CERT=/opt/actualbudget/selfhost.crt
|
||||
EOF
|
||||
fi
|
||||
cd /opt/actualbudget
|
||||
$STD yarn workspaces focus @actual-app/sync-server --production
|
||||
echo "${RELEASE}" >/opt/actualbudget_version.txt
|
||||
msg_ok "Updated ${APP}"
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
cat <<EOF >/etc/systemd/system/actualbudget.service
|
||||
[Unit]
|
||||
Description=Actual Budget Service
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
Group=root
|
||||
WorkingDirectory=/opt/actualbudget
|
||||
EnvironmentFile=/opt/actualbudget-data/.env
|
||||
ExecStart=/usr/bin/yarn start:server
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl start actualbudget
|
||||
msg_ok "Started ${APP}"
|
||||
|
||||
msg_info "Cleaning Up"
|
||||
rm -rf /opt/actualbudget_bak
|
||||
rm -rf "/tmp/v${RELEASE}.tar.gz"
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
msg_error "Due to major changes in the Actual Budget repository, we are currently unable to provide updates. Please check back later."
|
||||
exit
|
||||
}
|
||||
|
||||
|
14
ct/beszel.sh
14
ct/beszel.sh
@ -27,8 +27,18 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
/opt/beszel/beszel update
|
||||
msg_error "Currently we don't provide an update function for this ${APP}."
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop beszel-hub
|
||||
msg_ok "Stopped $APP"
|
||||
|
||||
msg_info "Updating $APP"
|
||||
$STD /opt/beszel/beszel update
|
||||
msg_ok "Updated $APP"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start beszel-hub
|
||||
msg_ok "Successfully started $APP"
|
||||
msg_ok "Update Successful"
|
||||
exit
|
||||
}
|
||||
|
||||
|
6
ct/headers/inventree
Normal file
6
ct/headers/inventree
Normal file
@ -0,0 +1,6 @@
|
||||
____ ______
|
||||
/ _/___ _ _____ ____/_ __/_______ ___
|
||||
/ // __ \ | / / _ \/ __ \/ / / ___/ _ \/ _ \
|
||||
_/ // / / / |/ / __/ / / / / / / / __/ __/
|
||||
/___/_/ /_/|___/\___/_/ /_/_/ /_/ \___/\___/
|
||||
|
@ -1,6 +1,6 @@
|
||||
__ __ _ __ __ __ __
|
||||
/ /_ ______ __ __/ /____ _____ / | / /___ / /____ / /_ ____ ____ / /__
|
||||
__ / / / / / __ \/ / / / __/ _ \/ ___/ / |/ / __ \/ __/ _ \/ __ \/ __ \/ __ \/ //_/
|
||||
/ /_/ / /_/ / /_/ / /_/ / /_/ __/ / / /| / /_/ / /_/ __/ /_/ / /_/ / /_/ / ,<
|
||||
\____/\__,_/ .___/\__, /\__/\___/_/ /_/ |_/\____/\__/\___/_.___/\____/\____/_/|_|
|
||||
/_/ /____/
|
||||
__ __ _ __ __ __ __
|
||||
/ /_ ______ __ __/ /____ _____/ | / /___ / /____ / /_ ____ ____ / /__
|
||||
__ / / / / / __ \/ / / / __/ _ \/ ___/ |/ / __ \/ __/ _ \/ __ \/ __ \/ __ \/ //_/
|
||||
/ /_/ / /_/ / /_/ / /_/ / /_/ __/ / / /| / /_/ / /_/ __/ /_/ / /_/ / /_/ / ,<
|
||||
\____/\__,_/ .___/\__, /\__/\___/_/ /_/ |_/\____/\__/\___/_.___/\____/\____/_/|_|
|
||||
/_/ /____/
|
||||
|
@ -45,7 +45,8 @@ function update_script() {
|
||||
cp -R Heimdall-${VER}/* /opt/Heimdall
|
||||
cd /opt/Heimdall
|
||||
$STD apt-get install -y composer
|
||||
$STD COMPOSER_ALLOW_SUPERUSER=1 composer dump-autoload
|
||||
export COMPOSER_ALLOW_SUPERUSER=1
|
||||
$STD composer dump-autoload
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated Heimdall Dashboard to ${RELEASE}"
|
||||
msg_info "Restoring Data"
|
||||
|
@ -148,9 +148,12 @@ EOF
|
||||
|
||||
msg_info "Starting Services"
|
||||
systemctl start homarr
|
||||
systemctl restart homarr
|
||||
msg_ok "Started Services"
|
||||
msg_ok "Updated Successfully"
|
||||
read -p "It's recommended to reboot the LXC after an update, would you like to reboot the LXC now ? (y/n): " choice
|
||||
if [[ "$choice" =~ ^[Yy]$ ]]; then
|
||||
reboot
|
||||
fi
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
|
@ -45,8 +45,8 @@ function update_script() {
|
||||
cp -r homepage-${RELEASE}/* /opt/homepage/
|
||||
rm -rf homepage-${RELEASE}
|
||||
cd /opt/homepage
|
||||
$STD npx --yes update-browserslist-db@latest
|
||||
$STD pnpm install
|
||||
$STD npx --yes update-browserslist-db@latest
|
||||
export NEXT_PUBLIC_VERSION="v$RELEASE"
|
||||
export NEXT_PUBLIC_REVISION="source"
|
||||
$STD pnpm build
|
||||
|
45
ct/inventree.sh
Normal file
45
ct/inventree.sh
Normal file
@ -0,0 +1,45 @@
|
||||
#!/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/inventree/InvenTree
|
||||
|
||||
APP="InvenTree"
|
||||
var_tags="inventory"
|
||||
var_cpu="2"
|
||||
var_ram="2048"
|
||||
var_disk="6"
|
||||
var_os="debian"
|
||||
var_version="12"
|
||||
var_unprivileged="1"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -d "/opt/inventree" ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Updating $APP"
|
||||
$STD apt-get update
|
||||
$STD apt-get install --only-upgrade inventree -y
|
||||
msg_ok "Updated $APP"
|
||||
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}${CL}"
|
@ -5,7 +5,7 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://jupyter.org/
|
||||
|
||||
APP="Jupyter Notebook"
|
||||
APP="JupyterNotebook"
|
||||
var_tags="ai;dev-tools"
|
||||
var_cpu="2"
|
||||
var_ram="2048"
|
||||
|
100
ct/kimai.sh
100
ct/kimai.sh
@ -20,52 +20,62 @@ color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /opt/kimai ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /opt/kimai ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -s 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"
|
||||
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
msg_info "Stopping Apache2"
|
||||
systemctl stop apache2
|
||||
msg_ok "Stopped Apache2"
|
||||
|
||||
msg_info "Backing up Kimai configuration and var directory"
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
[ -d /opt/kimai/var ] && cp -r /opt/kimai/var "$BACKUP_DIR/"
|
||||
[ -f /opt/kimai/.env ] && cp /opt/kimai/.env "$BACKUP_DIR/"
|
||||
[ -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}"
|
||||
rm -rf /opt/kimai
|
||||
wget -q "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip"
|
||||
unzip -q ${RELEASE}.zip
|
||||
mv kimai-${RELEASE} /opt/kimai
|
||||
[ -d "$BACKUP_DIR/var" ] && cp -r "$BACKUP_DIR/var" /opt/kimai/
|
||||
[ -f "$BACKUP_DIR/.env" ] && cp "$BACKUP_DIR/.env" /opt/kimai/
|
||||
[ -f "$BACKUP_DIR/local.yaml" ] && cp "$BACKUP_DIR/local.yaml" /opt/kimai/config/packages/
|
||||
rm -rf "$BACKUP_DIR"
|
||||
cd /opt/kimai
|
||||
$STD composer install --no-dev --optimize-autoloader
|
||||
$STD bin/console kimai:update
|
||||
chown -R :www-data .
|
||||
chmod -R g+r .
|
||||
chmod -R g+rw var/
|
||||
chmod -R 777 /opt/kimai/var/
|
||||
chown -R www-data:www-data /opt/kimai
|
||||
chmod -R 755 /opt/kimai
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||
|
||||
msg_info "Starting Apache2"
|
||||
systemctl start apache2
|
||||
msg_ok "Started Apache2"
|
||||
|
||||
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}"
|
||||
fi
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -s https://api.github.com/repos/kimai/kimai/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
msg_info "Stopping Apache2"
|
||||
systemctl stop apache2
|
||||
msg_ok "Stopped Apache2"
|
||||
|
||||
msg_info "Updating ${APP} to ${RELEASE}"
|
||||
cp /opt/kimai/.env /opt/.env
|
||||
[ -f /opt/kimai/config/packages/local.yaml ] && cp /opt/kimai/config/packages/local.yaml /opt/local.yaml
|
||||
rm -rf /opt/kimai
|
||||
wget -q "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip"
|
||||
unzip -q ${RELEASE}.zip
|
||||
mv kimai-${RELEASE} /opt/kimai
|
||||
mv /opt/.env /opt/kimai/.env
|
||||
[ -f /opt/local.yaml ] && mv /opt/local.yaml /opt/kimai/config/packages/local.yaml
|
||||
cd /opt/kimai
|
||||
$STD composer install --no-dev --optimize-autoloader
|
||||
$STD bin/console kimai:update
|
||||
chown -R :www-data .
|
||||
chmod -R g+r .
|
||||
chmod -R g+rw var/
|
||||
chmod -R 777 /opt/kimai/var/
|
||||
chown -R www-data:www-data /opt/kimai
|
||||
chmod -R 755 /opt/kimai
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||
|
||||
msg_info "Starting Apache2"
|
||||
systemctl start apache2
|
||||
msg_ok "Started Apache2"
|
||||
|
||||
msg_info "Cleaning Up"
|
||||
rm -rf ${RELEASE}.zip
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
|
@ -29,6 +29,11 @@ function update_script() {
|
||||
fi
|
||||
msg_info "Updating ${APP} (Patience)"
|
||||
cd /opt/open-webui
|
||||
mkdir /opt/open-webui-backup
|
||||
cp -rf /opt/open-webui/backend/data /opt/open-webui-backup
|
||||
git add -A
|
||||
$STD git stash
|
||||
$STD git reset --hard
|
||||
output=$(git pull --no-rebase)
|
||||
if echo "$output" | grep -q "Already up to date."; then
|
||||
msg_ok "$APP is already up to date."
|
||||
@ -40,6 +45,8 @@ function update_script() {
|
||||
$STD npm run build
|
||||
cd ./backend
|
||||
$STD pip install -r requirements.txt -U
|
||||
cp -rf /opt/open-webui-backup/* /opt/open-webui/backend
|
||||
$STD git stash pop
|
||||
systemctl start open-webui.service
|
||||
msg_ok "Updated Successfully"
|
||||
exit
|
||||
|
@ -20,39 +20,69 @@ color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /opt/wastebin ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /opt/wastebin ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -s https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
# Dirty-Fix 03/2025 for missing APP_version.txt on old installations, set to pre-latest release
|
||||
msg_info "Running Migration"
|
||||
if [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||
echo "2.7.1" >/opt/${APP}_version.txt
|
||||
mkdir -p /opt/wastebin-data
|
||||
cat <<EOF >/opt/wastebin-data/.env
|
||||
WASTEBIN_DATABASE_PATH=/opt/wastebin-data/wastebin.db
|
||||
WASTEBIN_CACHE_SIZE=1024
|
||||
WASTEBIN_HTTP_TIMEOUT=30
|
||||
WASTEBIN_SIGNING_KEY=$(openssl rand -hex 32)
|
||||
WASTEBIN_PASTE_EXPIRATIONS=0,600,3600=d,86400,604800,2419200,29030400
|
||||
EOF
|
||||
systemctl stop wastebin
|
||||
cat <<EOF >/etc/systemd/system/wastebin.service
|
||||
[Unit]
|
||||
Description=Wastebin Service
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/opt/wastebin
|
||||
ExecStart=/opt/wastebin/wastebin
|
||||
EnvironmentFile=/opt/wastebin-data/.env
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl daemon-reload
|
||||
fi
|
||||
msg_ok "Migration Done"
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
msg_info "Stopping Wastebin"
|
||||
systemctl stop wastebin
|
||||
msg_ok "Wastebin Stopped"
|
||||
|
||||
msg_info "Updating Wastebin"
|
||||
temp_file=$(mktemp)
|
||||
wget -q https://github.com/matze/wastebin/releases/download/${RELEASE}/wastebin_${RELEASE}_x86_64-unknown-linux-musl.zip -O $temp_file
|
||||
unzip -o -q $temp_file
|
||||
cp -f wastebin /opt/wastebin/
|
||||
chmod +x /opt/wastebin/wastebin
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated Wastebin"
|
||||
|
||||
msg_info "Starting Wastebin"
|
||||
systemctl start wastebin
|
||||
msg_ok "Started Wastebin"
|
||||
|
||||
msg_info "Cleaning Up"
|
||||
rm -f $temp_file
|
||||
msg_ok "Cleanup Completed"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -s https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
msg_info "Stopping Wastebin"
|
||||
systemctl stop wastebin
|
||||
msg_ok "Wastebin Stopped"
|
||||
|
||||
msg_info "Updating Wastebin"
|
||||
wget -q https://github.com/matze/wastebin/releases/download/${RELEASE}/wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst
|
||||
tar -xf wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst
|
||||
cp -f wastebin /opt/wastebin/
|
||||
chmod +x /opt/wastebin/wastebin
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated Wastebin"
|
||||
|
||||
msg_info "Starting Wastebin"
|
||||
systemctl start wastebin
|
||||
msg_ok "Started Wastebin"
|
||||
|
||||
msg_info "Cleaning Up"
|
||||
rm -rf wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
|
@ -32,8 +32,11 @@ function update_script() {
|
||||
msg_ok "Stopped ${APP}"
|
||||
|
||||
msg_info "Backing up Data"
|
||||
rm -rf ~/data-backup
|
||||
mkdir -p ~/data-backup
|
||||
cp -R /opt/wikijs/{db.sqlite,config.yml,/data} ~/data-backup
|
||||
[ -f /opt/wikijs/db.sqlite ] && cp /opt/wikijs/db.sqlite ~/data-backup
|
||||
[ -f /opt/wikijs/config.yml ] && cp /opt/wikijs/config.yml ~/data-backup
|
||||
[ -d /opt/wikijs/data ] && cp -R /opt/wikijs/data ~/data-backup
|
||||
msg_ok "Backed up Data"
|
||||
|
||||
msg_info "Updating ${APP}"
|
||||
|
46
install/inventree-install.sh
Normal file
46
install/inventree-install.sh
Normal file
@ -0,0 +1,46 @@
|
||||
#!/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/inventree/InvenTree
|
||||
|
||||
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 \
|
||||
curl \
|
||||
sudo \
|
||||
mc \
|
||||
gnupg \
|
||||
sudo
|
||||
temp_file=$(mktemp)
|
||||
wget -q http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb -O $temp_file
|
||||
$STD dpkg -i $temp_file
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Setting up InvenTree Repository"
|
||||
mkdir -p /etc/apt/keyrings
|
||||
curl -fsSL https://dl.packager.io/srv/inventree/InvenTree/key | gpg --dearmor -o /etc/apt/keyrings/inventree.gpg
|
||||
echo "deb [signed-by=/etc/apt/keyrings/inventree.gpg] https://dl.packager.io/srv/deb/inventree/InvenTree/stable/ubuntu 20.04 main" >/etc/apt/sources.list.d/inventree.list
|
||||
msg_ok "Set up InvenTree Repository"
|
||||
|
||||
msg_info "Setup ${APPLICATION} (Patience)"
|
||||
$STD apt-get update
|
||||
$STD apt-get install -y inventree
|
||||
msg_ok "Setup ${APPLICATION}"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -f $temp_file
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
@ -14,13 +14,14 @@ network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y curl
|
||||
$STD apt-get install -y sudo
|
||||
$STD apt-get install -y mc
|
||||
$STD apt-get install -y \
|
||||
curl \
|
||||
sudo \
|
||||
mc
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing NextCloudPi (Patience)"
|
||||
$STD bash <(curl -fsSL https://raw.githubusercontent.com/nextcloud/nextcloudpi/master/install.sh)
|
||||
bash <(curl -fsSL https://raw.githubusercontent.com/nextcloud/nextcloudpi/master/install.sh) >/dev/null 2>&1
|
||||
msg_ok "Installed NextCloudPi"
|
||||
|
||||
motd_ssh
|
||||
|
@ -1,12 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2025 tteck
|
||||
# Author: tteck
|
||||
# Co-Author: MickLesk (Canbiz)
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: MickLesk (Canbiz)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/matze/wastebin
|
||||
|
||||
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
@ -15,19 +14,31 @@ network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y curl
|
||||
$STD apt-get install -y sudo
|
||||
$STD apt-get install -y mc
|
||||
$STD apt-get install -y \
|
||||
curl \
|
||||
sudo \
|
||||
mc
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing Wastebin"
|
||||
temp_file=$(mktemp)
|
||||
RELEASE=$(curl -s https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
wget -q https://github.com/matze/wastebin/releases/download/${RELEASE}/wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst
|
||||
tar -xf wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst
|
||||
rm -rf wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst
|
||||
wget -q https://github.com/matze/wastebin/releases/download/${RELEASE}/wastebin_${RELEASE}_x86_64-unknown-linux-musl.zip -O $temp_file
|
||||
unzip -q $temp_file
|
||||
mkdir -p /opt/wastebin
|
||||
mv wastebin /opt/wastebin/
|
||||
chmod +x /opt/wastebin/wastebin
|
||||
|
||||
mkdir -p /opt/wastebin-data
|
||||
cat <<EOF >/opt/wastebin-data/.env
|
||||
WASTEBIN_DATABASE_PATH=/opt/wastebin-data/wastebin.db
|
||||
WASTEBIN_CACHE_SIZE=1024
|
||||
WASTEBIN_HTTP_TIMEOUT=30
|
||||
WASTEBIN_SIGNING_KEY=$(openssl rand -hex 32)
|
||||
WASTEBIN_PASTE_EXPIRATIONS=0,600,3600=d,86400,604800,2419200,29030400
|
||||
EOF
|
||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
||||
|
||||
msg_ok "Installed Wastebin"
|
||||
|
||||
msg_info "Creating Service"
|
||||
@ -39,17 +50,19 @@ After=network.target
|
||||
[Service]
|
||||
WorkingDirectory=/opt/wastebin
|
||||
ExecStart=/opt/wastebin/wastebin
|
||||
EnvironmentFile=/opt/wastebin-data/.env
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now wastebin.service
|
||||
systemctl enable -q --now wastebin
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -f $temp_file
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
@ -11,7 +11,7 @@
|
||||
"interface_port": 9998,
|
||||
"documentation": null,
|
||||
"website": "https://tika.apache.org/",
|
||||
"logo": "https://tika.apache.org/tika.png",
|
||||
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/apache-tika.svg",
|
||||
"description": "The Apache Tika™ toolkit detects and extracts metadata and text from over a thousand different file types (such as PPT, XLS, and PDF). All of these file types can be parsed through a single interface, making Tika useful for search engine indexing, content analysis, translation, and much more.",
|
||||
"install_methods": [
|
||||
{
|
||||
@ -31,4 +31,4 @@
|
||||
"password": null
|
||||
},
|
||||
"notes": []
|
||||
}
|
||||
}
|
||||
|
39
json/inventree.json
Normal file
39
json/inventree.json
Normal file
@ -0,0 +1,39 @@
|
||||
{
|
||||
"name": "InvenTree",
|
||||
"slug": "inventree",
|
||||
"categories": [
|
||||
25
|
||||
],
|
||||
"date_created": "2025-03-06",
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 80,
|
||||
"documentation": "https://docs.inventree.org/en/latest/",
|
||||
"website": "https://inventree.org",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/inventree.svg",
|
||||
"description": "InvenTree is an open-source inventory management system which provides intuitive parts management and stock control. It is designed to be lightweight and easy to use for SME or hobbyist applications.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/inventree.sh",
|
||||
"resources": {
|
||||
"cpu": 2,
|
||||
"ram": 2048,
|
||||
"hdd": 6,
|
||||
"os": "debian",
|
||||
"version": "12"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": "admin",
|
||||
"password": "`cat /etc/inventree/admin_password.txt`"
|
||||
},
|
||||
"notes": [
|
||||
{
|
||||
"text": "Please read the documentation for your configuration needs.",
|
||||
"type": "info"
|
||||
}
|
||||
]
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Jupyter Notebook",
|
||||
"slug": "jupyter-notebook",
|
||||
"slug": "jupyternotebook",
|
||||
"categories": [
|
||||
20
|
||||
],
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "Nextcloud",
|
||||
"name": "NextcloudPi",
|
||||
"slug": "nextcloudpi",
|
||||
"categories": [
|
||||
2
|
||||
@ -9,7 +9,7 @@
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": 4443,
|
||||
"documentation": null,
|
||||
"documentation": "https://docs.nextcloudpi.com/",
|
||||
"website": "https://github.com/nextcloud/nextcloudpi",
|
||||
"logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/nextcloud.svg",
|
||||
"description": "NextCloudPi is a popular self-hosted solution for file collaboration and data storage. It is built on the NextCloud software, which is an open-source platform for data management.",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Pf2eTools",
|
||||
"slug": "Pf2eTools",
|
||||
"slug": "pf2etools",
|
||||
"categories": [
|
||||
24
|
||||
],
|
||||
|
@ -8,7 +8,7 @@
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 81,
|
||||
"interface_port": 80,
|
||||
"documentation": "https://docs.pi-hole.net/",
|
||||
"website": "https://pi-hole.net/",
|
||||
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/pi-hole.svg",
|
||||
|
@ -11,7 +11,7 @@
|
||||
"interface_port": 9093,
|
||||
"documentation": "https://prometheus.io/docs/alerting/latest/overview/",
|
||||
"website": "https://prometheus.io/",
|
||||
"logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/prometheus.svg",
|
||||
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/prometheus.svg",
|
||||
"description": "Alerting with Prometheus is separated into two parts. Alerting rules in Prometheus servers send alerts to an Alertmanager. The Alertmanager then manages those alerts, including silencing, inhibition, aggregation and sending out notifications via methods such as email, on-call notification systems, and chat platforms.",
|
||||
"install_methods": [
|
||||
{
|
||||
|
@ -11,7 +11,7 @@
|
||||
"interface_port": 9696,
|
||||
"documentation": null,
|
||||
"website": "https://github.com/Prowlarr/Prowlarr",
|
||||
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/radarr.svg",
|
||||
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/prowlarr.svg",
|
||||
"description": "Prowlarr is a software tool designed to integrate with various PVR (Personal Video Recorder) apps. It is built on a popular *arr .net/ReactJS base stack and serves as an indexer manager and proxy. Prowlarr makes it easy to manage and organize TV show and movie collections, by integrating with popular PVR apps and automating the downloading and organizing of media files. The software provides a web-based interface for managing and organizing TV shows and movies, making it easy to search and find content. Prowlarr also supports metadata management, including show and movie information, making it easy for users to keep their media collection organized and up-to-date. The software is designed to be easy to use and provides a simple and intuitive interface for managing and organizing media collections, making it a valuable tool for media enthusiasts who want to keep their collection organized and up-to-date. With Prowlarr, users can enjoy their media collection from anywhere, making it a powerful tool for managing and sharing media files.",
|
||||
"install_methods": [
|
||||
{
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "Trilium",
|
||||
"name": "TriliumNext",
|
||||
"slug": "trilium",
|
||||
"categories": [
|
||||
12
|
||||
@ -12,7 +12,7 @@
|
||||
"documentation": null,
|
||||
"website": "https://github.com/TriliumNext/Notes",
|
||||
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/triliumnext.svg",
|
||||
"description": "Trilium is an open-source note-taking and personal knowledge management application. It allows users to organize and manage their notes, ideas, and information in a single place, using a hierarchical tree-like structure. Trilium offers a range of features, including rich text formatting, links, images, and attachments, making it easy to create and structure notes. The software is designed to be flexible and customizable, with a range of customization options and plugins available, including themes, export options, and more. Trilium is a self-hosted solution, and can be run on a local machine or a cloud-based server, providing users with full control over their notes and information.",
|
||||
"description": "TriliumNext is an newer Fork of Trilium. TriliumNext is an open-source note-taking and personal knowledge management application. It allows users to organize and manage their notes, ideas, and information in a single place, using a hierarchical tree-like structure. Trilium offers a range of features, including rich text formatting, links, images, and attachments, making it easy to create and structure notes. The software is designed to be flexible and customizable, with a range of customization options and plugins available, including themes, export options, and more. Trilium is a self-hosted solution, and can be run on a local machine or a cloud-based server, providing users with full control over their notes and information.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
|
@ -454,7 +454,7 @@ done
|
||||
|
||||
msg_info "Creating a Arch Linux VM"
|
||||
qm create $VMID -agent 1${MACHINE} -tablet 0 -localtime 1 -bios ovmf${CPU_TYPE} -cores $CORE_COUNT -memory $RAM_SIZE \
|
||||
-name $HN -tags community-scripts -net0 virtio,bridge=$BRG,macaddr=$MAC$VLAN$MTU -onboot 1 -ostype l26 -scsihw virtio-scsi-pci
|
||||
-name $HN -tags community-script -net0 virtio,bridge=$BRG,macaddr=$MAC$VLAN$MTU -onboot 1 -ostype l26 -scsihw virtio-scsi-pci
|
||||
pvesm alloc $STORAGE $VMID $DISK0 4M 1>&/dev/null
|
||||
qm importdisk $VMID ${FILE} $STORAGE ${DISK_IMPORT:-} 1>&/dev/null
|
||||
qm set $VMID \
|
||||
|
@ -565,7 +565,7 @@ qm set $VMID \
|
||||
-scsi0 ${DISK1_REF},${DISK_CACHE}${THIN}size=2G \
|
||||
-boot order=scsi0 \
|
||||
-serial0 socket >/dev/null \
|
||||
-tags community-scripts
|
||||
-tags community-script
|
||||
qm resize $VMID scsi0 10G >/dev/null
|
||||
DESCRIPTION=$(cat <<EOF
|
||||
<div align='center'>
|
||||
|
Reference in New Issue
Block a user