Compare commits

...

26 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
94b51fefeb Update CHANGELOG.md (#928)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-19 16:32:49 +01:00
Michel Roegl-Brunner
6487885f4b Fix: Bookstack Update Function (#844)
* Fix: Bookstack Update Function

* Fixed Formating

* Update Identions and Spaces

* Changes

* Add leadng / to unzip

---------

Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2024-12-19 16:31:30 +01:00
community-scripts-pr-app[bot]
700902ba2e Update CHANGELOG.md (#925)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-19 15:35:28 +01:00
Maximilian Bosche
23d7587f04 mysql not showing ip after install (#924) 2024-12-19 15:09:19 +01:00
CanbiZ
4c04a33a29 Update omada-install.sh 2024-12-19 14:15:25 +01:00
CanbiZ
9da79b9a97 Update omada.sh 2024-12-19 14:15:12 +01:00
community-scripts-pr-app[bot]
785d745b22 Update CHANGELOG.md (#919)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-19 11:45:14 +01:00
CanbiZ
a5d6023da8 Fix Omada - Crawling latest version (#918)
* Fix Update Function Omada

* Fix Omada Install Latest URL

* Fix Dependencies
2024-12-19 11:11:10 +01:00
CanbiZ
773e3ba983 Update add-lxc-iptag.json 2024-12-19 10:15:42 +01:00
community-scripts-pr-app[bot]
ba76b4fe37 Update CHANGELOG.md (#917)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-19 09:50:49 +01:00
EvilBlood
08f6042f65 Update part-db.json (#898)
Fix Typo in Cerds-Filename
2024-12-19 09:49:14 +01:00
CanbiZ
25049290b0 Update add-lxc-iptag.json 2024-12-19 09:36:46 +01:00
CanbiZ
94d81fdf5c Fix - Set Warning LXC-IPTag 2024-12-19 09:27:10 +01:00
community-scripts-pr-app[bot]
c0ac8a7fab Update CHANGELOG.md (#916)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-19 09:18:50 +01:00
Bram Suurd
bda30403da Fix script path formatting in InstallMethod component (#909) 2024-12-19 09:17:21 +01:00
Bram Suurd
6f96aebc27 Enhance Tooltip component by adding CircleHelp icon and fix instructions in script component (#910)
* Enhance Tooltip component by adding CircleHelp icon and adjusting layout. Updated TooltipContent max width for better display.

* Refactor ScriptItem and InstallCommand components to improve conditional rendering based on item type. Updated text to clarify usage instructions for 'misc' type scripts.
2024-12-19 09:16:54 +01:00
community-scripts-pr-app[bot]
a9a640bb75 Update CHANGELOG.md (#905)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-18 15:53:19 +01:00
CanbiZ
056d8902fb Fix Kernel-Clean for Proxmox 8.x (#904) 2024-12-18 15:52:44 +01:00
community-scripts-pr-app[bot]
fe3faccc42 Update CHANGELOG.md (#903)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-18 15:41:53 +01:00
Rémi Bédard-Couture
9236f97009 Remove SSE 4.2 from instruction set supporting OpenVino. Although the docs says it supports it, many users have reported it not working without AVX. (#902) 2024-12-18 15:40:13 +01:00
community-scripts-pr-app[bot]
17eaedf335 Update CHANGELOG.md (#896)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-18 12:09:28 +01:00
bvdberg01
d0f2c71038 New script: Part-DB LXC (#591)
* New script: Part-DB LXC

* Improved based on PR feedback MickLesk

* Migrate header & footer to latest version

* formatting and remove old header

* formatting

* fix json

---------

Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2024-12-18 12:05:30 +01:00
community-scripts-pr-app[bot]
22c0757b4d Update CHANGELOG.md (#892)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-18 09:05:39 +01:00
Paul
cd374c296f Add new category and put coding and ai into it. (#890) 2024-12-18 09:03:41 +01:00
Paul
07508d10d0 Moved webmin to server & networking, it is not a file management tool. (#891) 2024-12-18 09:03:30 +01:00
CanbiZ
29dcf19c04 Fix spaces in TAGS there breaking install 2024-12-18 08:52:27 +01:00
24 changed files with 391 additions and 57 deletions

View File

@@ -16,6 +16,40 @@ All LXC instances created using this repository come pre-installed with Midnight
> [!IMPORTANT] > [!IMPORTANT]
Do not break established syntax in this file, as it is automatically updated by a Github Workflow Do not break established syntax in this file, as it is automatically updated by a Github Workflow
## 2024-12-19
### Changed
### 🚀 Updated Scripts
- Fix: Bookstack Update Function [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#844](https://github.com/community-scripts/ProxmoxVE/pull/844))
- mysql not showing ip after install [@snow2k9](https://github.com/snow2k9) ([#924](https://github.com/community-scripts/ProxmoxVE/pull/924))
- Fix Omada - Crawling latest version [@MickLesk](https://github.com/MickLesk) ([#918](https://github.com/community-scripts/ProxmoxVE/pull/918))
### 🌐 Website
- Fix script path formatting in InstallMethod component [@BramSuurdje](https://github.com/BramSuurdje) ([#909](https://github.com/community-scripts/ProxmoxVE/pull/909))
- Fix Part-DB Docu (cred command) [@EvilBlood](https://github.com/EvilBlood) ([#898](https://github.com/community-scripts/ProxmoxVE/pull/898))
- Enhance Tooltip component by adding CircleHelp icon and fix instructions in script component [@BramSuurdje](https://github.com/BramSuurdje) ([#910](https://github.com/community-scripts/ProxmoxVE/pull/910))
## 2024-12-18
### Changed
### ✨ New Scripts
- New script: Part-DB LXC [@bvdberg01](https://github.com/bvdberg01) ([#591](https://github.com/community-scripts/ProxmoxVE/pull/591))
### 🚀 Updated Scripts
- Fix Kernel-Clean for Proxmox 8.x [@MickLesk](https://github.com/MickLesk) ([#904](https://github.com/community-scripts/ProxmoxVE/pull/904))
- [Frigate] Remove SSE 4.2 from instruction set supporting OpenVino [@remz1337](https://github.com/remz1337) ([#902](https://github.com/community-scripts/ProxmoxVE/pull/902))
### 🌐 Website
- New Metadata Category: "Coding & AI" [@newzealandpaul](https://github.com/newzealandpaul) ([#890](https://github.com/community-scripts/ProxmoxVE/pull/890))
- Moved Webmin to "Server & Networking" [@newzealandpaul](https://github.com/newzealandpaul) ([#891](https://github.com/community-scripts/ProxmoxVE/pull/891))
## 2024-12-17 ## 2024-12-17
### Changed ### Changed

View File

@@ -38,32 +38,41 @@ function update_script() {
systemctl stop apache2 systemctl stop apache2
msg_ok "Services Stopped" msg_ok "Services Stopped"
msg_info "Updating ${APP} to ${RELEASE}" msg_info "Updating ${APP} to v${RELEASE}"
cp /opt/bookstack/.env /opt/.env mv /opt/bookstack /opt/bookstack-backup
wget -q "https://github.com/BookStackApp/BookStack/archive/refs/tags/v${RELEASE}.zip" wget -q --directory-prefix=/opt "https://github.com/BookStackApp/BookStack/archive/refs/tags/v${RELEASE}.zip"
unzip -q v${RELEASE}.zip unzip -q /opt/v${RELEASE}.zip -d /opt
mv BookStack-${RELEASE} /opt/bookstack mv /opt/BookStack-${RELEASE} /opt/bookstack
mv /opt/.env /opt/bookstack/.env cp /opt/bookstack-backup/.env /opt/bookstack/.env
cp -r /opt/bookstack-backup/public/uploads/ /opt/bookstack/public/uploads
cp -r /opt/bookstack-backup/storage/uploads/ /opt/bookstack/storage/uploads
cp -r /opt/bookstack-backup/themes/ /opt/bookstack/themes
cd /opt/bookstack cd /opt/bookstack
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev &>/dev/null COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev &>/dev/null
php artisan key:generate --force &>/dev/null php artisan key:generate --force &>/dev/null
php artisan migrate --force &>/dev/null php artisan migrate --force &>/dev/null
chown www-data:www-data -R /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
chmod -R 755 /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads
chmod -R 640 /opt/bookstack/.env
echo "${RELEASE}" >/opt/${APP}_version.txt echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP}" msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Starting Apache2" msg_info "Starting Apache2"
systemctl start apache2 systemctl start apache2
msg_ok "Started Apache2" msg_ok "Started Apache2"
msg_info "Cleaning Up" msg_info "Cleaning Up"
rm -rf v${RELEASE}.zip rm -rf /opt/bookstack-backup
rm -rf /opt/v${RELEASE}.zip
msg_ok "Cleaned" msg_ok "Cleaned"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
else else
msg_ok "No update required. ${APP} is already at ${RELEASE}" msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi fi
exit exit
} }
start start
build_container build_container
description description

View File

@@ -7,7 +7,7 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# App Default Values # App Default Values
APP="Kimai" APP="Kimai"
var_tags="time tracking" var_tags="time-tracking"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="7" var_disk="7"

View File

@@ -7,7 +7,7 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# App Default Values # App Default Values
APP="MeshCentral" APP="MeshCentral"
var_tags="remote management" var_tags="remote-management"
var_cpu="1" var_cpu="1"
var_ram="512" var_ram="512"
var_disk="2" var_disk="2"

View File

@@ -46,4 +46,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following IP:${CL}" echo -e "${INFO}${YW} Access it using the following IP:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}{IP}:3306${CL}" echo -e "${TAB}${GATEWAY}${BGN}${IP}:3306${CL}"

View File

@@ -32,8 +32,8 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
latest_url=$(curl -fsSL "https://www.tp-link.com/en/support/download/omada-software-controller/" | grep -o 'https://.*x64.deb' | head -n1) latest_url=$(curl -fsSL "https://www.tp-link.com/en/support/download/omada-software-controller/" | grep -oP 'href="([^"]+linux_x64[^"]+\.deb)' | sed 's/href="//' | sort | tail -n 1)
latest_version=$(basename "${latest_url}") latest_version=$(basename "$latest_url")
if [ -z "${latest_version}" ]; then if [ -z "${latest_version}" ]; then
msg_error "It seems that the server (tp-link.com) might be down. Please try again at a later time." msg_error "It seems that the server (tp-link.com) might be down. Please try again at a later time."
exit exit

85
ct/part-db.sh Normal file
View File

@@ -0,0 +1,85 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 community-scripts ORG
# Author: bvdberg01
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://docs.part-db.de/
# App Default Values
APP="Part-DB"
var_tags="inventory;parts"
var_cpu="2"
var_ram="1024"
var_disk="8"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/partdb ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/Part-DB/Part-DB-server/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
msg_info "Stopping Service"
systemctl stop apache2
msg_ok "Stopped Service"
msg_info "Updating $APP to v${RELEASE}"
cd /opt
mv /opt/partdb/ /opt/partdb-backup
wget -q "https://github.com/Part-DB/Part-DB-server/archive/refs/tags/v${RELEASE}.zip"
unzip -q "v${RELEASE}.zip"
mv /opt/Part-DB-server-${RELEASE}/ /opt/partdb
cd /opt/partdb/
cp -r "/opt/partdb-backup/.env.local" /opt/partdb/
cp -r "/opt/partdb-backup/public/media" /opt/partdb/public/
cp -r "/opt/partdb-backup/config/banner.md" /opt/partdb/config/
export COMPOSER_ALLOW_SUPERUSER=1
composer install --no-dev -o --no-interaction &>/dev/null
yarn install &>/dev/null
yarn build &>/dev/null
php bin/console cache:clear &>/dev/null
php bin/console doctrine:migrations:migrate -n &>/dev/null
chown -R www-data:www-data /opt/partdb
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting Service"
systemctl start apache2
msg_ok "Started Service"
msg_info "Cleaning up"
rm -r "/opt/v${RELEASE}.zip"
rm -r /opt/partdb-backup
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${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}${CL}"

View File

@@ -34,7 +34,7 @@ function InstallMethod({
setScript((prev) => { setScript((prev) => {
const method = InstallMethodSchema.parse({ const method = InstallMethodSchema.parse({
type: "default", type: "default",
script: `/${prev.type}/${prev.slug}.sh`, script: `${prev.type}/${prev.slug}.sh`,
resources: { resources: {
cpu: null, cpu: null,
ram: null, ram: null,

View File

@@ -81,7 +81,7 @@ function ScriptItem({
<div className="mt-4 rounded-lg border bg-accent/50"> <div className="mt-4 rounded-lg border bg-accent/50">
<div className="flex gap-3 px-4 py-2"> <div className="flex gap-3 px-4 py-2">
<h2 className="text-lg font-semibold"> <h2 className="text-lg font-semibold">
How to {item.type ? "install" : "use"} How to {item.type == "misc" ? "use" : "install"}
</h2> </h2>
<Tooltips item={item} /> <Tooltips item={item} />
</div> </div>

View File

@@ -28,15 +28,16 @@ export default function InstallCommand({ item }: { item: Script }) {
time and minimal system resource usage. You are also obliged to time and minimal system resource usage. You are also obliged to
adhere to updates provided by the package maintainer. adhere to updates provided by the package maintainer.
</> </>
) : item.type ? ( ) : item.type == "misc" ? (
<> <>
To create a new Proxmox VE {item.name}{" "} To use the {item.name} script, run the command below in the shell.
{getDisplayValueFromType(item.type)}, run the command below in the
Proxmox VE Shell.
</> </>
) : ( ) : (
<> <>
To use the {item.name} script, run the command below in the shell. {" "}
To create a new Proxmox VE {item.name}{" "}
{getDisplayValueFromType(item.type)}, run the command below in the
Proxmox VE Shell.
</> </>
)} )}
</p> </p>

View File

@@ -6,6 +6,7 @@ import {
TooltipTrigger, TooltipTrigger,
} from "@/components/ui/tooltip"; } from "@/components/ui/tooltip";
import { Script } from "@/lib/types"; import { Script } from "@/lib/types";
import { CircleHelp } from "lucide-react";
import React from "react"; import React from "react";
interface TooltipProps { interface TooltipProps {
@@ -18,9 +19,11 @@ const TooltipBadge: React.FC<TooltipProps> = ({ variant, label, content }) => (
<TooltipProvider> <TooltipProvider>
<Tooltip delayDuration={100}> <Tooltip delayDuration={100}>
<TooltipTrigger className="flex items-center"> <TooltipTrigger className="flex items-center">
<Badge variant={variant}>{label}</Badge> <Badge variant={variant} className="flex items-center gap-1">
{label} <CircleHelp className="size-3" />
</Badge>
</TooltipTrigger> </TooltipTrigger>
<TooltipContent side="bottom" className="text-sm"> <TooltipContent side="bottom" className="text-sm max-w-64">
{content} {content}
</TooltipContent> </TooltipContent>
</Tooltip> </Tooltip>

View File

@@ -104,8 +104,8 @@ fi
echo "tmpfs /tmp/cache tmpfs defaults 0 0" >> /etc/fstab echo "tmpfs /tmp/cache tmpfs defaults 0 0" >> /etc/fstab
msg_ok "Installed Frigate $RELEASE" msg_ok "Installed Frigate $RELEASE"
if grep -q -o -m1 -E 'avx[^ ]* | sse4_2' /proc/cpuinfo; then if grep -q -o -m1 -E 'avx[^ ]*' /proc/cpuinfo; then
msg_ok "AVX or SSE 4.2 Support Detected" msg_ok "AVX Support Detected"
msg_info "Installing Openvino Object Detection Model (Resilience)" msg_info "Installing Openvino Object Detection Model (Resilience)"
$STD pip install -r /opt/frigate/docker/main/requirements-ov.txt $STD pip install -r /opt/frigate/docker/main/requirements-ov.txt
cd /opt/frigate/models cd /opt/frigate/models

View File

@@ -14,11 +14,12 @@ network_check
update_os update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y curl $STD apt-get install -y \
$STD apt-get install -y sudo curl \
$STD apt-get install -y mc sudo \
$STD apt-get install -y gnupg mc \
$STD apt-get install -y jsvc gnupg \
jsvc
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Installing Azul Zulu" msg_info "Installing Azul Zulu"
@@ -37,7 +38,7 @@ wget -qL https://repo.mongodb.org/apt/ubuntu/dists/bionic/mongodb-org/3.6/multiv
$STD dpkg -i mongodb-org-server_3.6.23_amd64.deb $STD dpkg -i mongodb-org-server_3.6.23_amd64.deb
msg_ok "Installed MongoDB" msg_ok "Installed MongoDB"
latest_url=$(curl -fsSL "https://www.tp-link.com/en/support/download/omada-software-controller/" | grep -o 'https://.*x64.deb' | head -n1) latest_url=$(curl -fsSL "https://www.tp-link.com/en/support/download/omada-software-controller/" | grep -oP 'href="([^"]+linux_x64[^"]+\.deb)' | sed 's/href="//' | sort | tail -n 1)
latest_version=$(basename "$latest_url") latest_version=$(basename "$latest_url")
msg_info "Installing Omada Controller" msg_info "Installing Omada Controller"

112
install/part-db-install.sh Normal file
View File

@@ -0,0 +1,112 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024 community-scripts ORG
# Author: bvdberg01
# License: MIT
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
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 \
zip \
ca-certificates \
software-properties-common \
apt-transport-https \
lsb-release \
php-{opcache,curl,gd,mbstring,xml,bcmath,intl,zip,xsl,pgsql} \
libapache2-mod-php \
composer \
postgresql
msg_ok "Installed Dependencies"
msg_info "Setting up PostgreSQL"
DB_NAME=partdb
DB_USER=partdb
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)
$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';"
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER TEMPLATE template0;"
{
echo "Part-DB Credentials"
echo "Part-DB Database User: $DB_USER"
echo "Part-DB Database Password: $DB_PASS"
echo "Part-DB Database Name: $DB_NAME"
} >> ~/partdb.creds
msg_ok "Set up PostgreSQL"
msg_info "Setting up Node.js/Yarn"
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
$STD apt-get update
$STD apt-get install -y nodejs
$STD npm install -g npm@latest
$STD npm install -g yarn
msg_ok "Installed Node.js/Yarn"
msg_info "Installing Part-DB (Patience)"
cd /opt
RELEASE=$(curl -s https://api.github.com/repos/Part-DB/Part-DB-server/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
wget -q "https://github.com/Part-DB/Part-DB-server/archive/refs/tags/v${RELEASE}.zip"
unzip -q "v${RELEASE}.zip"
mv /opt/Part-DB-server-${RELEASE}/ /opt/partdb
cd /opt/partdb/
cp .env .env.local
sed -i "s|DATABASE_URL=\"sqlite:///%kernel.project_dir%/var/app.db\"|DATABASE_URL=\"postgresql://${DB_USER}:${DB_PASS}@127.0.0.1:5432/${DB_NAME}?serverVersion=12.19&charset=utf8\"|" .env.local
export COMPOSER_ALLOW_SUPERUSER=1
$STD composer install --no-dev -o --no-interaction
$STD yarn install
$STD yarn build
$STD php bin/console cache:clear
php bin/console doctrine:migrations:migrate -n > ~/database-migration-output
chown -R www-data:www-data /opt/partdb
ADMIN_PASS=$(grep -oP 'The initial password for the "admin" user is: \K\w+' ~/database-migration-output)
{
echo ""
echo "Part-DB Admin User: admin"
echo "Part-DB Admin Password: $ADMIN_PASS"
} >> ~/partdb.creds
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed Part-DB"
msg_info "Creating Service"
cat <<EOF >/etc/apache2/sites-available/partdb.conf
<VirtualHost *:80>
ServerName partdb
DocumentRoot /opt/partdb/public
<Directory /opt/partdb/public>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/apache2/partdb_error.log
CustomLog /var/log/apache2/partdb_access.log combined
</VirtualHost>
EOF
$STD a2ensite partdb
$STD a2enmod rewrite
$STD a2dissite 000-default.conf
$STD systemctl reload apache2
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
rm -rf ~/database-migration-output
rm -rf "/opt/v${RELEASE}.zip"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -33,11 +33,15 @@
"notes": [ "notes": [
{ {
"text": "Execute within the Proxmox shell", "text": "Execute within the Proxmox shell",
"type": "Info" "type": "info"
}, },
{ {
"text": "Configuration: `nano /opt/lxc-iptag/iptag.conf`. iptag.service must be restarted after change.", "text": "Configuration: `nano /opt/lxc-iptag/iptag.conf`. iptag.service must be restarted after change.",
"type": "Info" "type": "info"
},
{
"text": "The Proxmox Node must contain ipcalc and net-tools. `apt-get install -y ipcalc net-tools`",
"type": "warn"
} }
] ]
} }

View File

@@ -2,7 +2,7 @@
"name": "VS Code Server", "name": "VS Code Server",
"slug": "code-server", "slug": "code-server",
"categories": [ "categories": [
16 19
], ],
"date_created": "2024-05-02", "date_created": "2024-05-02",
"type": "misc", "type": "misc",

View File

@@ -2,7 +2,7 @@
"name": "FlowiseAI", "name": "FlowiseAI",
"slug": "flowiseai", "slug": "flowiseai",
"categories": [ "categories": [
0 19
], ],
"date_created": "2024-05-02", "date_created": "2024-05-02",
"type": "ct", "type": "ct",

View File

@@ -2,7 +2,7 @@
"name": "Forgejo", "name": "Forgejo",
"slug": "forgejo", "slug": "forgejo",
"categories": [ "categories": [
16 19
], ],
"date_created": "2024-06-12", "date_created": "2024-06-12",
"type": "ct", "type": "ct",

View File

@@ -2,7 +2,7 @@
"name": "Gitea", "name": "Gitea",
"slug": "gitea", "slug": "gitea",
"categories": [ "categories": [
16 19
], ],
"date_created": "2024-07-26", "date_created": "2024-07-26",
"type": "ct", "type": "ct",

View File

@@ -5,11 +5,12 @@
{"name": "AdBlocker & DNS", "id": 13, "sort_order": 2.0}, {"name": "AdBlocker & DNS", "id": 13, "sort_order": 2.0},
{"name": "*Arr Suite", "id": 18, "sort_order": 3.0}, {"name": "*Arr Suite", "id": 18, "sort_order": 3.0},
{"name": "Automation", "id": 3, "sort_order": 4.0}, {"name": "Automation", "id": 3, "sort_order": 4.0},
{"name": "Coding & AI", "id": 19, "sort_order": 5.0},
{"name": "Dashboards", "id": 15, "sort_order": 5.0}, {"name": "Dashboards", "id": 15, "sort_order": 5.0},
{"name": "Database", "id": 5, "sort_order": 6.0}, {"name": "Database", "id": 5, "sort_order": 6.0},
{"name": "Docker & Kubernetes", "id": 8, "sort_order": 7.0}, {"name": "Docker & Kubernetes", "id": 8, "sort_order": 7.0},
{"name": "Document & Notes", "id": 14, "sort_order": 8.0}, {"name": "Document & Notes", "id": 14, "sort_order": 8.0},
{"name": "File & Code", "id": 16, "sort_order": 9.0}, {"name": "File & Downloads", "id": 16, "sort_order": 9.0},
{"name": "Home Assistant", "id": 2, "sort_order": 10.0}, {"name": "Home Assistant", "id": 2, "sort_order": 10.0},
{"name": "Media & Photo", "id": 12, "sort_order": 11.0}, {"name": "Media & Photo", "id": 12, "sort_order": 11.0},
{"name": "Monitoring & Analytics", "id": 7, "sort_order": 12.0}, {"name": "Monitoring & Analytics", "id": 7, "sort_order": 12.0},

View File

@@ -2,7 +2,7 @@
"name": "Open WebUI", "name": "Open WebUI",
"slug": "openwebui", "slug": "openwebui",
"categories": [ "categories": [
0 19
], ],
"date_created": "2024-10-24", "date_created": "2024-10-24",
"type": "ct", "type": "ct",

39
json/part-db.json Normal file
View File

@@ -0,0 +1,39 @@
{
"name": "Part-DB",
"slug": "part-db",
"categories": [
0
],
"date_created": "2024-12-18",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 80,
"documentation": "https://docs.part-db.de/",
"website": "https://github.com/Part-DB/Part-DB-server",
"logo": "https://avatars.githubusercontent.com/u/36010898?s=48&v=4",
"description": "Part-DB is an Open source inventory management system for your electronic components",
"install_methods": [
{
"type": "default",
"script": "ct/part-db.sh",
"resources": {
"cpu": 2,
"ram": 1024,
"hdd": 8,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Show login and database credentials: `cat partdb.creds`",
"type": "info"
}
]
}

View File

@@ -2,7 +2,7 @@
"name": "Webmin System Administration", "name": "Webmin System Administration",
"slug": "webmin", "slug": "webmin",
"categories": [ "categories": [
16 11
], ],
"date_created": "2024-05-02", "date_created": "2024-05-02",
"type": "misc", "type": "misc",

View File

@@ -16,6 +16,8 @@ function header_info {
EOF EOF
} }
# Color variables for output
YW=$(echo "\033[33m") YW=$(echo "\033[33m")
RD=$(echo "\033[01;31m") RD=$(echo "\033[01;31m")
GN=$(echo "\033[1;92m") GN=$(echo "\033[1;92m")
@@ -23,10 +25,8 @@ CL=$(echo "\033[m")
BFR="\\r\\033[K" BFR="\\r\\033[K"
HOLD="-" HOLD="-"
CM="${GN}${CL}" CM="${GN}${CL}"
current_kernel=$(uname -r)
available_kernels=$(dpkg --list | grep 'kernel-.*-pve' | awk '{print $2}' | grep -v "$current_kernel" | sort -V)
header_info
# Functions for logging messages
function msg_info() { function msg_info() {
local msg="$1" local msg="$1"
echo -ne " ${HOLD} ${YW}${msg}..." echo -ne " ${HOLD} ${YW}${msg}..."
@@ -37,39 +37,84 @@ function msg_ok() {
echo -e "${BFR} ${CM} ${GN}${msg}${CL}" echo -e "${BFR} ${CM} ${GN}${msg}${CL}"
} }
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Proxmox VE Kernel Clean" --yesno "This will Clean Unused Kernel Images, USE AT YOUR OWN RISK. Proceed?" 10 68 || exit # Detect current kernel
current_kernel=$(uname -r)
# Detect all installed kernels except the current one
available_kernels=$(dpkg --list | grep 'kernel-.*-pve' | awk '{print $2}' | grep -v "$current_kernel" | sort -V)
header_info
# If no old kernels are available, exit with a message
if [ -z "$available_kernels" ]; then if [ -z "$available_kernels" ]; then
whiptail --backtitle "Proxmox VE Helper Scripts" --title "No Old Kernels" --msgbox "It appears there are no old Kernels on your system. \nCurrent kernel ($current_kernel)." 10 68 whiptail --backtitle "Proxmox VE Helper Scripts" --title "No Old Kernels" \
--msgbox "It appears there are no old kernels on your system.\nCurrent kernel: $current_kernel" 10 68
echo "Exiting..." echo "Exiting..."
sleep 2 sleep 2
clear clear
exit exit
fi fi
KERNEL_MENU=()
MSG_MAX_LENGTH=0 # Prepare kernel options for selection
KERNEL_MENU=()
while read -r TAG ITEM; do while read -r TAG ITEM; do
OFFSET=2 OFFSET=2
((${#ITEM} + OFFSET > MSG_MAX_LENGTH)) && MSG_MAX_LENGTH=${#ITEM}+OFFSET MSG_MAX_LENGTH=$((MSG_MAX_LENGTH < ${#ITEM} + OFFSET ? ${#ITEM} + OFFSET : MSG_MAX_LENGTH))
KERNEL_MENU+=("$TAG" "$ITEM " "OFF") KERNEL_MENU+=("$TAG" "$ITEM " "OFF")
done < <(echo "$available_kernels") done < <(echo "$available_kernels")
remove_kernels=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Current Kernel $current_kernel" --checklist "\nSelect Kernels to remove:\n" 16 $((MSG_MAX_LENGTH + 58)) 6 "${KERNEL_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"') || exit # Display checklist to select kernels for removal
remove_kernels=$(whiptail --backtitle "Proxmox VE Helper Scripts" \
--title "Current Kernel: $current_kernel" \
--checklist "\nSelect kernels to remove:\n" \
16 $((MSG_MAX_LENGTH + 58)) 6 "${KERNEL_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"') || exit
# Exit if no kernel was selected
[ -z "$remove_kernels" ] && { [ -z "$remove_kernels" ] && {
whiptail --backtitle "Proxmox VE Helper Scripts" --title "No Kernel Selected" --msgbox "It appears that no Kernel was selected" 10 68 whiptail --backtitle "Proxmox VE Helper Scripts" --title "No Kernel Selected" \
--msgbox "It appears no kernel was selected." 10 68
echo "Exiting..." echo "Exiting..."
sleep 2 sleep 2
clear clear
exit exit
} }
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Remove Kernels" --yesno "Would you like to remove the $(echo $remove_kernels | awk '{print NF}') previously selected Kernels?" 10 68 || exit
msg_info "Removing ${CL}${RD}$(echo $remove_kernels | awk '{print NF}') ${CL}${YW}old Kernels${CL}" # Confirm removal
/usr/bin/apt purge -y $remove_kernels >/dev/null 2>&1 whiptail --backtitle "Proxmox VE Helper Scripts" --title "Remove Kernels" \
msg_ok "Successfully Removed Kernels" --yesno "Would you like to remove the $(echo $remove_kernels | awk '{print NF}') selected kernels?" 10 68 || exit
# Process kernel removal
msg_info "Removing ${RD}$(echo $remove_kernels | awk '{print NF}') ${YW}old kernels${CL}"
for kernel in $remove_kernels; do
if [[ $kernel == *"-signed" ]]; then
# Handle signed kernels with dependencies
touch /please-remove-proxmox-ve # Temporarily bypass Proxmox warnings
if sudo apt-get purge -y "$kernel" >/dev/null 2>&1; then
msg_ok "Removed kernel: $kernel"
else
msg_info "Failed to remove kernel: $kernel. Check dependencies or manual removal."
fi
rm -f /please-remove-proxmox-ve # Clean up bypass file
else
# Standard kernel removal
if sudo apt-get purge -y "$kernel" >/dev/null 2>&1; then
msg_ok "Removed kernel: $kernel"
else
msg_info "Failed to remove kernel: $kernel. Check dependencies or manual removal."
fi
fi
sleep 1
done
# Update GRUB configuration
msg_info "Updating GRUB" msg_info "Updating GRUB"
/usr/sbin/update-grub >/dev/null 2>&1 if /usr/sbin/update-grub >/dev/null 2>&1; then
msg_ok "Successfully Updated GRUB" msg_ok "GRUB updated successfully"
else
msg_info "Failed to update GRUB"
fi
# Completion message
msg_info "Exiting" msg_info "Exiting"
sleep 2 sleep 2
msg_ok "Finished" msg_ok "Finished"