Compare commits

..

15 Commits

Author SHA1 Message Date
3881c4e8da Update itsm-ng-install.sh 2025-07-01 18:31:23 +02:00
792e677db1 Update itsm-ng-install.sh 2025-07-01 18:22:05 +02:00
592de315a1 'Add new script' 2025-07-01 13:13:48 +00:00
7b5dd6cd69 Update versions.json (#5613)
Some checks failed
Create Changelog Pull Request / update-changelog-pull-request (push) Has been cancelled
Close Discussion on PR Merge / close-discussion (push) Has been cancelled
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
Sync to Gitea / sync (push) Has been cancelled
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-01 14:07:45 +02:00
28c779ef86 Update CHANGELOG.md (#5612)
Some checks failed
Create Changelog Pull Request / update-changelog-pull-request (push) Has been cancelled
Close Discussion on PR Merge / close-discussion (push) Has been cancelled
Sync to Gitea / sync (push) Has been cancelled
Crawl Versions from newreleases.io / crawl-versions (push) Has been cancelled
Auto Update .app-files / update-app-files (push) Has been cancelled
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-01 11:31:43 +01:00
8c1dac0583 Update tools.func (#5608) 2025-07-01 12:31:06 +02:00
2db514f666 Update CHANGELOG.md (#5610)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-01 08:46:41 +01:00
0232dbd89d Update openwebui.sh (#5601) 2025-07-01 09:46:07 +02:00
70f43cb904 Update CHANGELOG.md (#5606)
Some checks failed
Auto Update .app-files / update-app-files (push) Has been cancelled
Create Changelog Pull Request / update-changelog-pull-request (push) Has been cancelled
Close Discussion on PR Merge / close-discussion (push) Has been cancelled
Sync to Gitea / sync (push) Has been cancelled
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-01 01:17:34 +01:00
05e06d0782 Update versions.json (#5605)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-07-01 02:17:00 +02:00
89c39783b4 Update CHANGELOG.md (#5602)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-30 21:36:52 +01:00
3f3278b022 Fixing Cloudflare DDNS - lack of resources (#5600) 2025-06-30 22:36:11 +02:00
bda9f482c1 Update CHANGELOG.md (#5599)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-30 21:09:58 +01:00
7292dbb8c6 Update .app files (#5597)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-06-30 21:46:06 +02:00
2bdf85db39 Update CHANGELOG.md (#5596)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-30 20:23:55 +01:00
10 changed files with 268 additions and 95 deletions

View File

@ -14,15 +14,26 @@ 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-07-01
### 🚀 Updated Scripts
- [tools]: increase fetch_and_deploy with dns pre check [@MickLesk](https://github.com/MickLesk) ([#5608](https://github.com/community-scripts/ProxmoxVE/pull/5608))
- #### 🐞 Bug Fixes
- Open WebUI: Fix Ollama update procedure [@tremor021](https://github.com/tremor021) ([#5601](https://github.com/community-scripts/ProxmoxVE/pull/5601))
## 2025-06-30
### 🆕 New Scripts
- Kapowarr ([#5584](https://github.com/community-scripts/ProxmoxVE/pull/5584))
- Alpine Syncthing [@MickLesk](https://github.com/MickLesk) ([#5586](https://github.com/community-scripts/ProxmoxVE/pull/5586))
- Kapowarr ([#5584](https://github.com/community-scripts/ProxmoxVE/pull/5584))
### 🚀 Updated Scripts
- tools.func: optimize binary installs with fetch_and_deploy helper [@MickLesk](https://github.com/MickLesk) ([#5588](https://github.com/community-scripts/ProxmoxVE/pull/5588))
- Fixing Cloudflare DDNS - lack of resources [@meszolym](https://github.com/meszolym) ([#5600](https://github.com/community-scripts/ProxmoxVE/pull/5600))
- #### 🐞 Bug Fixes
@ -31,6 +42,7 @@ All LXC instances created using this repository come pre-installed with Midnight
- #### ✨ New Features
- tools.func: optimize binary installs with fetch_and_deploy helper [@MickLesk](https://github.com/MickLesk) ([#5588](https://github.com/community-scripts/ProxmoxVE/pull/5588))
- [core]: add ipv6 configuration support [@MickLesk](https://github.com/MickLesk) ([#5575](https://github.com/community-scripts/ProxmoxVE/pull/5575))
## 2025-06-29

View File

@ -7,8 +7,8 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
APP="Cloudflare-DDNS"
var_tags="${var_tags:-network}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-3}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"

6
ct/headers/itsm-ng Normal file
View File

@ -0,0 +1,6 @@
_______________ __ ___ _ ________
/ _/_ __/ ___// |/ / / | / / ____/
/ / / / \__ \/ /|_/ /_____/ |/ / / __
_/ / / / ___/ / / / /_____/ /| / /_/ /
/___/ /_/ /____/_/ /_/ /_/ |_/\____/

47
ct/itsm-ng.sh Normal file
View File

@ -0,0 +1,47 @@
#!/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: Florianb63
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://itsm-ng.com/
APP="ITSM-NG"
var_tags="${var_tags:-asset-management;foss}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-10}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/itsm-ng/config_db.php ]]; then
msg_error "No ${APP} Installation Found!"
exit 1
fi
msg_info "Updating ${APP} LXC"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated Successfully"
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

@ -30,11 +30,11 @@ function update_script() {
if [ -x "/usr/bin/ollama" ]; then
msg_info "Updating Ollama"
rm -rf /usr/lib/ollama
rm -rf /usr/bin/ollama
OLLAMA_VERSION=$(ollama -v | awk '{print $NF}')
RELEASE=$(curl -s https://api.github.com/repos/ollama/ollama/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
if [ "$OLLAMA_VERSION" != "$RELEASE" ]; then
rm -rf /usr/lib/ollama
rm -rf /usr/bin/ollama
curl -fsSLO https://ollama.com/download/ollama-linux-amd64.tgz
tar -C /usr -xzf ollama-linux-amd64.tgz
rm -rf ollama-linux-amd64.tgz

View File

@ -19,8 +19,8 @@
"type": "default",
"script": "ct/cloudflare-ddns.sh",
"resources": {
"cpu": 1,
"ram": 512,
"cpu": 2,
"ram": 1024,
"hdd": 2,
"os": "Debian",
"version": "12"

35
frontend/public/json/itsm-ng.json generated Normal file
View File

@ -0,0 +1,35 @@
{
"name": "ITSM-NG",
"slug": "itsm-ng",
"categories": [
25
],
"date_created": "2025-06-20",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 80,
"documentation": "https://wiki.itsm-ng.org/en/home",
"website": "https://itsm-ng.com",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/itsm-ng.svg",
"config_path": "/etc/itsm-ng",
"description": "ITSM-NG is a powerful, open-source IT Service Management (ITSM) solution designed for managing IT assets, software, licenses, and support processes in accordance with ITIL best practices. It offers integrated features for asset inventory, incident tracking, problem management, change requests, and service desk workflows.",
"install_methods": [
{
"type": "default",
"script": "ct/itsm-ng.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 10,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": "itsm",
"password": "itsm"
},
"notes": []
}

View File

@ -1,8 +1,88 @@
[
{
"name": "syncthing/syncthing",
"version": "v1.30.0",
"date": "2025-07-01T11:29:11Z"
},
{
"name": "keycloak/keycloak",
"version": "26.3.0",
"date": "2025-07-01T10:32:30Z"
},
{
"name": "rcourtman/Pulse",
"version": "v3.33.1",
"date": "2025-06-30T11:29:32Z"
"version": "v99.99.99",
"date": "2025-07-01T08:26:41Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.2101",
"date": "2025-07-01T05:56:59Z"
},
{
"name": "Checkmk/checkmk",
"version": "v2.4.0p6-rc1",
"date": "2025-07-01T05:41:26Z"
},
{
"name": "zabbix/zabbix",
"version": "7.4.0",
"date": "2025-07-01T04:36:51Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.15.0-rc3",
"date": "2025-07-01T04:09:37Z"
},
{
"name": "NginxProxyManager/nginx-proxy-manager",
"version": "v2.12.4",
"date": "2025-07-01T01:45:42Z"
},
{
"name": "MagicMirrorOrg/MagicMirror",
"version": "v2.32.0",
"date": "2025-06-30T22:12:48Z"
},
{
"name": "mongodb/mongo",
"version": "r8.0.11",
"date": "2025-06-30T20:30:31Z"
},
{
"name": "docker/compose",
"version": "v2.38.1",
"date": "2025-06-30T20:07:35Z"
},
{
"name": "home-assistant/core",
"version": "2025.6.3",
"date": "2025-06-24T13:00:12Z"
},
{
"name": "jhuckaby/Cronicle",
"version": "v0.9.81",
"date": "2025-06-30T16:40:33Z"
},
{
"name": "ollama/ollama",
"version": "v0.9.4-rc5",
"date": "2025-06-30T15:59:03Z"
},
{
"name": "prometheus/prometheus",
"version": "v2.53.5",
"date": "2025-06-30T11:01:12Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.100.0",
"date": "2025-06-23T12:48:35Z"
},
{
"name": "jupyter/notebook",
"version": "v7.4.4",
"date": "2025-06-30T13:04:22Z"
},
{
"name": "Graylog2/graylog2-server",
@ -14,11 +94,6 @@
"version": "v8.1.17",
"date": "2025-06-30T11:26:27Z"
},
{
"name": "prometheus/prometheus",
"version": "v2.53.5",
"date": "2025-06-30T11:01:12Z"
},
{
"name": "documenso/documenso",
"version": "v1.12.0-rc.8",
@ -39,11 +114,6 @@
"version": "preview-v0.1",
"date": "2025-06-27T14:35:47Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.2097",
"date": "2025-06-30T05:53:30Z"
},
{
"name": "typesense/typesense",
"version": "v29.0",
@ -54,11 +124,6 @@
"version": "v6.2.19",
"date": "2025-06-28T06:53:45Z"
},
{
"name": "keycloak/keycloak",
"version": "26.2.5",
"date": "2025-05-28T06:49:43Z"
},
{
"name": "sysadminsmedia/homebox",
"version": "v0.20.0",
@ -79,11 +144,6 @@
"version": "v11.11.2",
"date": "2025-06-29T01:40:39Z"
},
{
"name": "home-assistant/core",
"version": "2025.6.3",
"date": "2025-06-24T13:00:12Z"
},
{
"name": "linkwarden/linkwarden",
"version": "v2.11.2",
@ -124,11 +184,6 @@
"version": "v1.26.0",
"date": "2025-06-27T19:15:24Z"
},
{
"name": "ollama/ollama",
"version": "v0.9.4-rc1",
"date": "2025-06-27T18:45:33Z"
},
{
"name": "goauthentik/authentik",
"version": "version/2025.6.3",
@ -159,11 +214,6 @@
"version": "341.1",
"date": "2025-06-27T08:50:16Z"
},
{
"name": "zabbix/zabbix",
"version": "7.2.10",
"date": "2025-06-27T06:40:00Z"
},
{
"name": "MediaBrowser/Emby.Releases",
"version": "4.9.1.2",
@ -214,11 +264,6 @@
"version": "18.0.7",
"date": "2025-06-26T09:16:33Z"
},
{
"name": "mongodb/mongo",
"version": "r8.1.2-rc1",
"date": "2025-06-25T22:42:04Z"
},
{
"name": "gristlabs/grist-core",
"version": "v1.6.1",
@ -249,11 +294,6 @@
"version": "testing",
"date": "2025-06-16T18:10:42Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.100.0",
"date": "2025-06-23T12:48:35Z"
},
{
"name": "moghtech/komodo",
"version": "v1.18.4",
@ -284,16 +324,6 @@
"version": "v1.132.0",
"date": "2025-06-17T13:49:30Z"
},
{
"name": "docker/compose",
"version": "v2.37.3",
"date": "2025-06-24T14:05:33Z"
},
{
"name": "Checkmk/checkmk",
"version": "v2.4.0p5",
"date": "2025-06-24T13:06:53Z"
},
{
"name": "fallenbagel/jellyseerr",
"version": "preview-fix-proxy-axios",
@ -379,11 +409,6 @@
"version": "v4.0.15.2941",
"date": "2025-06-20T17:20:54Z"
},
{
"name": "syncthing/syncthing",
"version": "2.0.0-rc.19",
"date": "2025-06-02T17:56:25Z"
},
{
"name": "benzino77/tasmocompiler",
"version": "v12.7.0",
@ -604,11 +629,6 @@
"version": "v3.4.1",
"date": "2025-06-11T07:53:44Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.15.0-rc2",
"date": "2025-06-11T04:29:22Z"
},
{
"name": "OctoPrint/OctoPrint",
"version": "1.11.2",
@ -789,11 +809,6 @@
"version": "1.34.1",
"date": "2025-05-26T21:40:54Z"
},
{
"name": "jupyter/notebook",
"version": "v7.4.3",
"date": "2025-05-26T14:27:27Z"
},
{
"name": "stonith404/pingvin-share",
"version": "v1.13.0",
@ -924,11 +939,6 @@
"version": "v1.13.5",
"date": "2025-05-03T09:48:44Z"
},
{
"name": "jhuckaby/Cronicle",
"version": "v0.9.80",
"date": "2025-05-02T16:48:15Z"
},
{
"name": "WordPress/WordPress",
"version": "6.8.1",
@ -1044,11 +1054,6 @@
"version": "2.3",
"date": "2025-04-05T18:05:36Z"
},
{
"name": "MagicMirrorOrg/MagicMirror",
"version": "v2.31.0",
"date": "2025-04-01T18:12:45Z"
},
{
"name": "Kometa-Team/Kometa",
"version": "v2.2.0",
@ -1209,11 +1214,6 @@
"version": "v25.2.1",
"date": "2025-02-06T20:41:28Z"
},
{
"name": "NginxProxyManager/nginx-proxy-manager",
"version": "v2.12.3",
"date": "2025-02-06T11:07:07Z"
},
{
"name": "AmruthPillai/Reactive-Resume",
"version": "v4.4.4",

View File

@ -0,0 +1,68 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Florianb63
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://itsm-ng.com/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
setup_mariadb
msg_info "Setting up database"
DB_NAME=itsmng_db
DB_USER=itsmng
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
mariadb-tzinfo-to-sql /usr/share/zoneinfo | mariadb mysql
mariadb -u root -e "CREATE DATABASE $DB_NAME;"
mariadb -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
mariadb -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost';"
mariadb -u root -e "GRANT SELECT ON \`mysql\`.\`time_zone_name\` TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
{
echo "ITSM-NG Database Credentials"
echo "Database: $DB_NAME"
echo "Username: $DB_USER"
echo "Password: $DB_PASS"
} >>~/itsmng_db.creds
msg_ok "Set up database"
msg_info "Setup ITSM-NG Repository"
curl -fsSL http://deb.itsm-ng.org/pubkey.gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/itsm-ng-keyring.gpg
echo "deb http://deb.itsm-ng.org/$(. /etc/os-release && echo "$ID")/ $(. /etc/os-release && echo "$VERSION_CODENAME") main" >/etc/apt/sources.list.d/itsm-ng.list
$STD apt-get update
msg_ok "Setup ITSM-NG Repository"
msg_info "Installing ITSM-NG"
$STD apt install -y itsm-ng
cd /usr/share/itsm-ng
$STD php bin/console db:install --db-name=$DB_NAME --db-user=$DB_USER --db-password=$DB_PASS --no-interaction
$STD a2dissite 000-default.conf
echo "* * * * * php /usr/share/itsm-ng/front/cron.php" | crontab -
msg_ok "Installed ITSM-NG"
msg_info "Configuring PHP"
PHP_VERSION=$(ls /etc/php/ | grep -E '^[0-9]+\.[0-9]+$' | head -n 1)
PHP_INI="/etc/php/$PHP_VERSION/apache2/php.ini"
sed -i 's/^upload_max_filesize = .*/upload_max_filesize = 20M/' $PHP_INI
sed -i 's/^post_max_size = .*/post_max_size = 20M/' $PHP_INI
sed -i 's/^max_execution_time = .*/max_execution_time = 60/' $PHP_INI
sed -i 's/^[;]*max_input_vars *=.*/max_input_vars = 5000/' "$PHP_INI"
sed -i 's/^memory_limit = .*/memory_limit = 256M/' $PHP_INI
sed -i 's/^;\?\s*session.cookie_httponly\s*=.*/session.cookie_httponly = On/' $PHP_INI
systemctl restart apache2
msg_ok "Configured PHP"
motd_ssh
customize
msg_info "Cleaning up"
rm -rf /usr/share/itsm-ng/install
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@ -761,7 +761,7 @@ function fetch_and_deploy_gh_release() {
local app_lc=$(echo "${app,,}" | tr -d ' ')
local version_file="$HOME/.${app_lc}"
local api_timeout="--connect-timeout 5 --max-time 30"
local api_timeout="--connect-timeout 10 --max-time 60"
local download_timeout="--connect-timeout 15 --max-time 900"
local current_version=""
@ -776,6 +776,14 @@ function fetch_and_deploy_gh_release() {
local header=()
[[ -n "${GITHUB_TOKEN:-}" ]] && header=(-H "Authorization: token $GITHUB_TOKEN")
# dns pre check
local gh_host
gh_host=$(awk -F/ '{print $3}' <<<"$api_url")
if ! getent hosts "$gh_host" &>/dev/null; then
msg_error "DNS resolution failed for $gh_host check /etc/resolv.conf or networking"
return 1
fi
local max_retries=3 retry_delay=2 attempt=1 success=false resp http_code
while ((attempt <= max_retries)); do
@ -785,7 +793,7 @@ function fetch_and_deploy_gh_release() {
done
if ! $success; then
msg_error "Failed to fetch release metadata after $max_retries attempts"
msg_error "Failed to fetch release metadata from $api_url after $max_retries attempts"
return 1
fi
@ -840,14 +848,12 @@ function fetch_and_deploy_gh_release() {
local assets url_match=""
assets=$(echo "$json" | jq -r '.assets[].browser_download_url')
# If explicit filename pattern is provided (param $6), match that first
if [[ -n "$6" ]]; then
for u in $assets; do
[[ "$u" =~ $6 || "$u" == *"$6" ]] && url_match="$u" && break
done
fi
# If no match via explicit pattern, fall back to architecture heuristic
if [[ -z "$url_match" ]]; then
for u in $assets; do
if [[ "$u" =~ ($arch|amd64|x86_64|aarch64|arm64).*\.deb$ ]]; then
@ -857,7 +863,6 @@ function fetch_and_deploy_gh_release() {
done
fi
# Fallback: any .deb file
if [[ -z "$url_match" ]]; then
for u in $assets; do
[[ "$u" =~ \.deb$ ]] && url_match="$u" && break