mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-02-03 20:03:25 +01:00
Compare commits
14 Commits
2026-01-21
...
2026-01-22
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0fcc2dd3f3 | ||
|
|
49fef798d3 | ||
|
|
04ed636dd9 | ||
|
|
1d1c2beaa4 | ||
|
|
46ffe4bb16 | ||
|
|
4f794d2b2c | ||
|
|
07d6942144 | ||
|
|
c07ecd0008 | ||
|
|
23b48f08ae | ||
|
|
1131dd8430 | ||
|
|
9fc7ed32d2 | ||
|
|
efe17a5e63 | ||
|
|
e69cb6f20c | ||
|
|
d95a273753 |
21
CHANGELOG.md
21
CHANGELOG.md
@@ -10,8 +10,29 @@
|
||||
> [!CAUTION]
|
||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
||||
|
||||
## 2026-01-23
|
||||
|
||||
## 2026-01-22
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Loki | Alpine-Loki ([#11048](https://github.com/community-scripts/ProxmoxVE/pull/11048))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- Immich: Increase RAM to 6GB [@vhsdream](https://github.com/vhsdream) ([#10965](https://github.com/community-scripts/ProxmoxVE/pull/10965))
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Jotty: Increase default disk size from 6 to 8 [@tremor021](https://github.com/tremor021) ([#11056](https://github.com/community-scripts/ProxmoxVE/pull/11056))
|
||||
- Fix tags in several scripts [@s4dmach1ne](https://github.com/s4dmach1ne) ([#11050](https://github.com/community-scripts/ProxmoxVE/pull/11050))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- tools: use distro packages for MariaDB by default [@MickLesk](https://github.com/MickLesk) ([#11049](https://github.com/community-scripts/ProxmoxVE/pull/11049))
|
||||
|
||||
## 2026-01-21
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
||||
# Source: https://komo.do
|
||||
|
||||
APP="Alpine-Komodo"
|
||||
var_tags="${var_tags:-docker,alpine}"
|
||||
var_tags="${var_tags:-docker;alpine}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-1024}"
|
||||
var_disk="${var_disk:-10}"
|
||||
|
||||
71
ct/alpine-loki.sh
Normal file
71
ct/alpine-loki.sh
Normal file
@@ -0,0 +1,71 @@
|
||||
#!/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: hoholms
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/grafana/loki
|
||||
|
||||
APP="Alpine-Loki"
|
||||
var_tags="${var_tags:-alpine;monitoring}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-256}"
|
||||
var_disk="${var_disk:-1}"
|
||||
var_os="${var_os:-alpine}"
|
||||
var_version="${var_version:-3.23}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
if ! apk -e info newt >/dev/null 2>&1; then
|
||||
apk add -q newt
|
||||
fi
|
||||
LXCIP=$(ip a s dev eth0 | awk '/inet / {print $2}' | cut -d/ -f1)
|
||||
while true; do
|
||||
CHOICE=$(
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --menu "Select option" 11 58 3 \
|
||||
"1" "Check for Loki Updates" \
|
||||
"2" "Allow 0.0.0.0 for listening" \
|
||||
"3" "Allow only ${LXCIP} for listening" 3>&2 2>&1 1>&3
|
||||
)
|
||||
exit_status=$?
|
||||
if [ $exit_status == 1 ]; then
|
||||
clear
|
||||
exit-script
|
||||
fi
|
||||
header_info
|
||||
case $CHOICE in
|
||||
1)
|
||||
$STD apk -U upgrade
|
||||
msg_ok "Updated successfully!"
|
||||
exit
|
||||
;;
|
||||
2)
|
||||
sed -i -e "s/cfg:server.http_addr=.*/cfg:server.http_addr=0.0.0.0/g" /etc/conf.d/loki
|
||||
service loki restart
|
||||
msg_ok "Allowed listening on all interfaces!"
|
||||
exit
|
||||
;;
|
||||
3)
|
||||
sed -i -e "s/cfg:server.http_addr=.*/cfg:server.http_addr=$LXCIP/g" /etc/conf.d/loki
|
||||
service loki restart
|
||||
msg_ok "Allowed listening only on ${LXCIP}!"
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
done
|
||||
exit 0
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${APP} should be reachable by going to the following URL.
|
||||
${BL}http://${IP}:3100${CL} \n"
|
||||
echo -e "Promtail should be reachable by going to the following URL.
|
||||
${BL}http://${IP}:9080${CL} \n"
|
||||
@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
||||
# Source: https://fluidcalendar.com
|
||||
|
||||
APP="fluid-calendar"
|
||||
var_tags="${var_tags:-calendar,tasks}"
|
||||
var_tags="${var_tags:-calendar;tasks}"
|
||||
var_cpu="${var_cpu:-3}"
|
||||
var_ram="${var_ram:-4096}"
|
||||
var_disk="${var_disk:-7}"
|
||||
|
||||
6
ct/headers/alpine-loki
Normal file
6
ct/headers/alpine-loki
Normal file
@@ -0,0 +1,6 @@
|
||||
___ __ _ __ __ _
|
||||
/ | / /___ (_)___ ___ / / ____ / /__(_)
|
||||
/ /| | / / __ \/ / __ \/ _ \______/ / / __ \/ //_/ /
|
||||
/ ___ |/ / /_/ / / / / / __/_____/ /___/ /_/ / ,< / /
|
||||
/_/ |_/_/ .___/_/_/ /_/\___/ /_____/\____/_/|_/_/
|
||||
/_/
|
||||
6
ct/headers/loki
Normal file
6
ct/headers/loki
Normal file
@@ -0,0 +1,6 @@
|
||||
__ __ _
|
||||
/ / ____ / /__(_)
|
||||
/ / / __ \/ //_/ /
|
||||
/ /___/ /_/ / ,< / /
|
||||
/_____/\____/_/|_/_/
|
||||
|
||||
@@ -9,7 +9,7 @@ APP="immich"
|
||||
var_tags="${var_tags:-photos}"
|
||||
var_disk="${var_disk:-20}"
|
||||
var_cpu="${var_cpu:-4}"
|
||||
var_ram="${var_ram:-4096}"
|
||||
var_ram="${var_ram:-6144}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
@@ -9,7 +9,7 @@ APP="jotty"
|
||||
var_tags="${var_tags:-tasks;notes}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-4096}"
|
||||
var_disk="${var_disk:-6}"
|
||||
var_disk="${var_disk:-8}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
103
ct/loki.sh
Normal file
103
ct/loki.sh
Normal file
@@ -0,0 +1,103 @@
|
||||
#!/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: hoholms
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/grafana/loki
|
||||
|
||||
APP="Loki"
|
||||
var_tags="${var_tags:-monitoring;logs}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-512}"
|
||||
var_disk="${var_disk:-2}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if ! dpkg -s loki >/dev/null 2>&1; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
while true; do
|
||||
CHOICE=$(
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --menu "Select option" 11 58 3 \
|
||||
"1" "Update Loki & Promtail" \
|
||||
"2" "Allow 0.0.0.0 for listening" \
|
||||
"3" "Allow only ${LOCAL_IP} for listening" 3>&2 2>&1 1>&3
|
||||
)
|
||||
exit_status=$?
|
||||
if [ $exit_status == 1 ]; then
|
||||
clear
|
||||
exit-script
|
||||
fi
|
||||
header_info
|
||||
case $CHOICE in
|
||||
1)
|
||||
msg_info "Stopping Loki"
|
||||
systemctl stop loki
|
||||
if systemctl is-active --quiet promtail 2>/dev/null || dpkg -s promtail >/dev/null 2>&1; then
|
||||
systemctl stop promtail
|
||||
fi
|
||||
msg_ok "Stopped Loki"
|
||||
|
||||
msg_info "Updating Loki"
|
||||
$STD apt update
|
||||
$STD apt install -y --only-upgrade loki
|
||||
if dpkg -s promtail >/dev/null 2>&1; then
|
||||
$STD apt install -y --only-upgrade promtail
|
||||
fi
|
||||
msg_ok "Updated Loki"
|
||||
|
||||
msg_info "Starting Loki"
|
||||
systemctl start loki
|
||||
if dpkg -s promtail >/dev/null 2>&1; then
|
||||
systemctl start promtail
|
||||
fi
|
||||
msg_ok "Started Loki"
|
||||
msg_ok "Updated successfully!"
|
||||
exit
|
||||
;;
|
||||
2)
|
||||
msg_info "Configuring Loki to listen on 0.0.0.0"
|
||||
sed -i 's/http_listen_address:.*/http_listen_address: 0.0.0.0/' /etc/loki/config.yml
|
||||
sed -i 's/http_listen_port:.*/http_listen_port: 3100/' /etc/loki/config.yml
|
||||
systemctl restart loki
|
||||
msg_ok "Configured Loki to listen on 0.0.0.0"
|
||||
exit
|
||||
;;
|
||||
3)
|
||||
msg_info "Configuring Loki to listen on ${LOCAL_IP}"
|
||||
sed -i "s/http_listen_address:.*/http_listen_address: $LOCAL_IP/" /etc/loki/config.yml
|
||||
sed -i 's/http_listen_port:.*/http_listen_port: 3100/' /etc/loki/config.yml
|
||||
systemctl restart loki
|
||||
msg_ok "Configured Loki to listen on ${LOCAL_IP}"
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
done
|
||||
exit 0
|
||||
}
|
||||
|
||||
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 loki using the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3100${CL}\n"
|
||||
if dpkg -s promtail >/dev/null 2>&1; then
|
||||
echo -e "${INFO}${YW} Access promtail using the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9080${CL}"
|
||||
fi
|
||||
@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
||||
# Source: https://github.com/opf/openproject
|
||||
|
||||
APP="OpenProject"
|
||||
var_tags="${var_tags:-project-management,erp}"
|
||||
var_tags="${var_tags:-project-management;erp}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-4096}"
|
||||
var_disk="${var_disk:-8}"
|
||||
|
||||
@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
||||
# Source: https://github.com/plankanban/planka
|
||||
|
||||
APP="PLANKA"
|
||||
var_tags="${var_tags:-Todo,kanban}"
|
||||
var_tags="${var_tags:-Todo;kanban}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-1024}"
|
||||
var_disk="${var_disk:-4}"
|
||||
|
||||
@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
||||
# Source: https://github.com/rcourtman/Pulse
|
||||
|
||||
APP="Pulse"
|
||||
var_tags="${var_tags:-monitoring,proxmox}"
|
||||
var_tags="${var_tags:-monitoring;proxmox}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-1024}"
|
||||
var_disk="${var_disk:-4}"
|
||||
|
||||
@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
||||
# Source: https://github.com/CrazyWolf13/streamlink-webui
|
||||
|
||||
APP="streamlink-webui"
|
||||
var_tags="${var_tags:-download,streaming}"
|
||||
var_tags="${var_tags:-download;streaming}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-10}"
|
||||
|
||||
@@ -544,7 +544,8 @@ network_check
|
||||
update_os
|
||||
|
||||
PHP_VERSION="8.4" PHP_MODULE="bcmath,curl,pdo_mysql" setup_php
|
||||
MARIADB_VERSION="11.4" setup_mariadb
|
||||
setup_mariadb # Uses distribution packages (recommended)
|
||||
# Or for specific version: MARIADB_VERSION="11.4" setup_mariadb
|
||||
|
||||
# Database setup
|
||||
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
||||
|
||||
@@ -85,7 +85,8 @@ pkg_install curl wget git
|
||||
```bash
|
||||
setup_nodejs "20"
|
||||
setup_php "8.3"
|
||||
setup_mariadb "11"
|
||||
setup_mariadb # Uses distribution packages (recommended)
|
||||
# MARIADB_VERSION="11.4" setup_mariadb # For specific version
|
||||
```
|
||||
|
||||
### Phase 4: Application Download
|
||||
|
||||
@@ -75,7 +75,8 @@ Complete reference of environment variables and configuration options.
|
||||
```bash
|
||||
setup_nodejs "20" # Install Node.js v20
|
||||
setup_php "8.2" # Install PHP 8.2
|
||||
setup_mariadb "11" # Install MariaDB 11
|
||||
setup_mariadb # Install MariaDB (distribution packages)
|
||||
# MARIADB_VERSION="11.4" setup_mariadb # Specific version from official repo
|
||||
```
|
||||
|
||||
### Safe Package Operations
|
||||
|
||||
@@ -24,7 +24,7 @@ Complete alphabetical reference of all functions in tools.func with parameters,
|
||||
- `setup_golang(VERSION)` - Install Go programming language
|
||||
|
||||
**Databases**:
|
||||
- `setup_mariadb(VERSION)` - Install MariaDB server
|
||||
- `setup_mariadb()` - Install MariaDB server (distro packages by default)
|
||||
- `setup_postgresql(VERSION)` - Install PostgreSQL
|
||||
- `setup_mongodb(VERSION)` - Install MongoDB
|
||||
- `setup_redis(VERSION)` - Install Redis cache
|
||||
@@ -238,17 +238,20 @@ setup_php "8.3"
|
||||
|
||||
---
|
||||
|
||||
### setup_mariadb(VERSION)
|
||||
### setup_mariadb()
|
||||
|
||||
Install MariaDB server and client utilities.
|
||||
|
||||
**Signature**:
|
||||
```bash
|
||||
setup_mariadb VERSION
|
||||
setup_mariadb # Uses distribution packages (recommended)
|
||||
MARIADB_VERSION="11.4" setup_mariadb # Uses official MariaDB repository
|
||||
```
|
||||
|
||||
**Parameters**:
|
||||
- `VERSION` - MariaDB version (e.g., "10.6", "11.0")
|
||||
**Variables**:
|
||||
- `MARIADB_VERSION` - (optional) Specific MariaDB version
|
||||
- Not set or `"latest"`: Uses distribution packages (most reliable, avoids mirror issues)
|
||||
- Specific version (e.g., `"11.4"`, `"12.2"`): Uses official MariaDB repository
|
||||
|
||||
**Returns**:
|
||||
- `0` - Installation successful
|
||||
@@ -259,7 +262,11 @@ setup_mariadb VERSION
|
||||
|
||||
**Example**:
|
||||
```bash
|
||||
setup_mariadb "11.0"
|
||||
# Recommended: Use distribution packages (stable, no mirror issues)
|
||||
setup_mariadb
|
||||
|
||||
# Specific version from official repository
|
||||
MARIADB_VERSION="11.4" setup_mariadb
|
||||
```
|
||||
|
||||
---
|
||||
@@ -441,7 +448,7 @@ source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
|
||||
pkg_update # Update package lists
|
||||
setup_nodejs "20" # Install Node.js
|
||||
setup_mariadb "11" # Install MariaDB
|
||||
setup_mariadb # Install MariaDB (distribution packages)
|
||||
|
||||
# ... application installation ...
|
||||
|
||||
@@ -460,7 +467,7 @@ source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
pkg_update
|
||||
setup_nginx
|
||||
setup_php "8.3"
|
||||
setup_mariadb "11"
|
||||
setup_mariadb # Uses distribution packages
|
||||
setup_composer
|
||||
```
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ pkg_update
|
||||
|
||||
setup_nginx
|
||||
setup_php "8.3"
|
||||
setup_mariadb "11"
|
||||
setup_mariadb # Uses distribution packages (recommended)
|
||||
setup_composer
|
||||
|
||||
msg_ok "Web stack installed"
|
||||
@@ -388,7 +388,7 @@ pkg_install package-name
|
||||
# Chain multiple tools together
|
||||
setup_nodejs "20"
|
||||
setup_php "8.3"
|
||||
setup_mariadb "11"
|
||||
setup_mariadb # Distribution packages (recommended)
|
||||
|
||||
# Check command success
|
||||
if ! setup_docker; then
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"script": "ct/immich.sh",
|
||||
"resources": {
|
||||
"cpu": 4,
|
||||
"ram": 4096,
|
||||
"ram": 6144,
|
||||
"hdd": 20,
|
||||
"os": "Debian",
|
||||
"version": "13"
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"resources": {
|
||||
"cpu": 2,
|
||||
"ram": 4096,
|
||||
"hdd": 6,
|
||||
"hdd": 8,
|
||||
"os": "debian",
|
||||
"version": "13"
|
||||
}
|
||||
|
||||
51
frontend/public/json/loki.json
Normal file
51
frontend/public/json/loki.json
Normal file
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"name": "Loki",
|
||||
"slug": "loki",
|
||||
"categories": [
|
||||
9
|
||||
],
|
||||
"date_created": "2026-01-22",
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 3100,
|
||||
"documentation": "https://grafana.com/docs/loki/latest/",
|
||||
"website": "https://github.com/grafana/loki",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/loki.webp",
|
||||
"config_path": "Debian: /etc/loki/config.yml | Alpine: /etc/loki/loki-local-config.yaml",
|
||||
"description": "Grafana Loki is a set of open source components that can be composed into a fully featured logging stack. A small index and highly compressed chunks simplifies the operation and significantly lowers the cost of Loki.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/loki.sh",
|
||||
"resources": {
|
||||
"cpu": 1,
|
||||
"ram": 512,
|
||||
"hdd": 2,
|
||||
"os": "debian",
|
||||
"version": "13"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "alpine",
|
||||
"script": "ct/alpine-loki.sh",
|
||||
"resources": {
|
||||
"cpu": 1,
|
||||
"ram": 256,
|
||||
"hdd": 1,
|
||||
"os": "alpine",
|
||||
"version": "3.23"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": [
|
||||
{
|
||||
"text": "Promtail can be optionally installed during setup to collect and ship logs to Loki.",
|
||||
"type": "info"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,48 +1,218 @@
|
||||
[
|
||||
{
|
||||
"name": "Stirling-Tools/Stirling-PDF",
|
||||
"version": "v2.3.0",
|
||||
"date": "2026-01-15T19:29:02Z"
|
||||
"name": "esphome/esphome",
|
||||
"version": "2026.1.1",
|
||||
"date": "2026-01-22T23:19:21Z"
|
||||
},
|
||||
{
|
||||
"name": "ollama/ollama",
|
||||
"version": "v0.14.3-rc3",
|
||||
"date": "2026-01-20T20:20:53Z"
|
||||
"name": "fosrl/pangolin",
|
||||
"version": "1.15.0-s.0",
|
||||
"date": "2026-01-22T23:18:27Z"
|
||||
},
|
||||
{
|
||||
"name": "BerriAI/litellm",
|
||||
"version": "v1.81.0.rc.4",
|
||||
"date": "2026-01-21T21:43:55Z"
|
||||
"name": "plexguide/Huntarr.io",
|
||||
"version": "8.2.16",
|
||||
"date": "2026-01-22T23:05:35Z"
|
||||
},
|
||||
{
|
||||
"name": "Infisical/infisical",
|
||||
"version": "v0.156.2",
|
||||
"date": "2026-01-21T21:02:11Z"
|
||||
"name": "booklore-app/booklore",
|
||||
"version": "v1.18.2",
|
||||
"date": "2026-01-22T20:54:05Z"
|
||||
},
|
||||
{
|
||||
"name": "crafty-controller/crafty-4",
|
||||
"version": "v4.8.0",
|
||||
"date": "2026-01-22T20:08:17Z"
|
||||
},
|
||||
{
|
||||
"name": "chrisbenincasa/tunarr",
|
||||
"version": "v1.1.5",
|
||||
"date": "2026-01-22T19:08:18Z"
|
||||
},
|
||||
{
|
||||
"name": "tailscale/tailscale",
|
||||
"version": "v1.94.1",
|
||||
"date": "2026-01-22T19:07:16Z"
|
||||
},
|
||||
{
|
||||
"name": "fccview/jotty",
|
||||
"version": "develop",
|
||||
"date": "2026-01-22T18:59:33Z"
|
||||
},
|
||||
{
|
||||
"name": "runtipi/runtipi",
|
||||
"version": "v4.7.0",
|
||||
"date": "2026-01-22T18:41:40Z"
|
||||
},
|
||||
{
|
||||
"name": "metabase/metabase",
|
||||
"version": "v0.58.x",
|
||||
"date": "2026-01-22T17:18:07Z"
|
||||
},
|
||||
{
|
||||
"name": "redis/redis",
|
||||
"version": "8.4.0",
|
||||
"date": "2025-11-18T15:06:37Z"
|
||||
},
|
||||
{
|
||||
"name": "Leantime/leantime",
|
||||
"version": "latest",
|
||||
"date": "2026-01-22T15:16:09Z"
|
||||
},
|
||||
{
|
||||
"name": "n8n-io/n8n",
|
||||
"version": "n8n@2.4.5",
|
||||
"date": "2026-01-22T14:32:55Z"
|
||||
},
|
||||
{
|
||||
"name": "prometheus/prometheus",
|
||||
"version": "v3.5.1",
|
||||
"date": "2026-01-22T13:50:27Z"
|
||||
},
|
||||
{
|
||||
"name": "endurain-project/endurain",
|
||||
"version": "v0.17.1",
|
||||
"date": "2026-01-22T13:45:46Z"
|
||||
},
|
||||
{
|
||||
"name": "TuroYT/snowshare",
|
||||
"version": "v1.2.11",
|
||||
"date": "2026-01-22T13:26:11Z"
|
||||
},
|
||||
{
|
||||
"name": "inventree/InvenTree",
|
||||
"version": "1.1.10",
|
||||
"date": "2026-01-22T13:09:53Z"
|
||||
},
|
||||
{
|
||||
"name": "verdaccio/verdaccio",
|
||||
"version": "@verdaccio/web@8.1.0-next-8.29",
|
||||
"date": "2026-01-22T13:01:04Z"
|
||||
},
|
||||
{
|
||||
"name": "louislam/uptime-kuma",
|
||||
"version": "2.0.2",
|
||||
"date": "2025-10-22T17:03:54Z"
|
||||
},
|
||||
{
|
||||
"name": "crowdsecurity/crowdsec",
|
||||
"version": "v1.7.5",
|
||||
"date": "2026-01-22T12:08:54Z"
|
||||
},
|
||||
{
|
||||
"name": "plankanban/planka",
|
||||
"version": "planka-1.1.2",
|
||||
"date": "2026-01-22T11:54:21Z"
|
||||
},
|
||||
{
|
||||
"name": "zitadel/zitadel",
|
||||
"version": "v4.9.2",
|
||||
"date": "2026-01-22T10:49:06Z"
|
||||
},
|
||||
{
|
||||
"name": "healthchecks/healthchecks",
|
||||
"version": "v4.0",
|
||||
"date": "2026-01-22T10:21:35Z"
|
||||
},
|
||||
{
|
||||
"name": "ZoeyVid/NPMplus",
|
||||
"version": "2026-01-22-r1",
|
||||
"date": "2026-01-22T10:20:04Z"
|
||||
},
|
||||
{
|
||||
"name": "eclipse-mosquitto/mosquitto",
|
||||
"version": "v2.1.0rc2",
|
||||
"date": "2026-01-22T09:42:43Z"
|
||||
},
|
||||
{
|
||||
"name": "OliveTin/OliveTin",
|
||||
"version": "3000.9.2",
|
||||
"date": "2026-01-22T09:41:15Z"
|
||||
},
|
||||
{
|
||||
"name": "dgtlmoon/changedetection.io",
|
||||
"version": "0.52.9",
|
||||
"date": "2026-01-22T09:30:49Z"
|
||||
},
|
||||
{
|
||||
"name": "juanfont/headscale",
|
||||
"version": "v0.27.1",
|
||||
"date": "2025-11-11T19:32:29Z"
|
||||
},
|
||||
{
|
||||
"name": "cross-seed/cross-seed",
|
||||
"version": "v7.0.0-7",
|
||||
"date": "2026-01-22T06:46:13Z"
|
||||
},
|
||||
{
|
||||
"name": "Jackett/Jackett",
|
||||
"version": "v0.24.900",
|
||||
"date": "2026-01-22T05:57:44Z"
|
||||
},
|
||||
{
|
||||
"name": "rabbitmq/rabbitmq-server",
|
||||
"version": "v4.2.3",
|
||||
"date": "2026-01-22T03:57:50Z"
|
||||
},
|
||||
{
|
||||
"name": "BerriAI/litellm",
|
||||
"version": "v1.81.0.rc.5",
|
||||
"date": "2026-01-22T03:30:46Z"
|
||||
},
|
||||
{
|
||||
"name": "go-gitea/gitea",
|
||||
"version": "v1.25.4",
|
||||
"date": "2026-01-22T01:43:42Z"
|
||||
},
|
||||
{
|
||||
"name": "Infisical/infisical",
|
||||
"version": "v0.156.3",
|
||||
"date": "2026-01-22T00:44:20Z"
|
||||
},
|
||||
{
|
||||
"name": "steveiliop56/tinyauth",
|
||||
"version": "v4.1.0",
|
||||
"date": "2025-11-23T12:13:34Z"
|
||||
},
|
||||
{
|
||||
"name": "jeedom/core",
|
||||
"version": "4.5.2",
|
||||
"date": "2026-01-22T00:27:04Z"
|
||||
},
|
||||
{
|
||||
"name": "Stirling-Tools/Stirling-PDF",
|
||||
"version": "v2.3.1",
|
||||
"date": "2026-01-21T22:50:25Z"
|
||||
},
|
||||
{
|
||||
"name": "ollama/ollama",
|
||||
"version": "v0.14.3",
|
||||
"date": "2026-01-20T21:01:52Z"
|
||||
},
|
||||
{
|
||||
"name": "influxdata/influxdb",
|
||||
"version": "v2.8.0",
|
||||
"date": "2025-12-12T20:25:00Z"
|
||||
},
|
||||
{
|
||||
"name": "livebook-dev/livebook",
|
||||
"version": "nightly",
|
||||
"date": "2026-01-20T21:10:15Z"
|
||||
"date": "2026-01-21T20:40:02Z"
|
||||
},
|
||||
{
|
||||
"name": "Comfy-Org/ComfyUI",
|
||||
"version": "v0.10.0",
|
||||
"date": "2026-01-21T19:22:04Z"
|
||||
},
|
||||
{
|
||||
"name": "fccview/jotty",
|
||||
"version": "1.18.1",
|
||||
"date": "2026-01-21T19:16:44Z"
|
||||
},
|
||||
{
|
||||
"name": "firefly-iii/firefly-iii",
|
||||
"version": "v6.4.16",
|
||||
"date": "2026-01-17T07:54:15Z"
|
||||
},
|
||||
{
|
||||
"name": "metabase/metabase",
|
||||
"version": "v0.57.x",
|
||||
"date": "2026-01-21T17:54:29Z"
|
||||
"name": "keycloak/keycloak",
|
||||
"version": "26.4.8",
|
||||
"date": "2026-01-15T13:52:29Z"
|
||||
},
|
||||
{
|
||||
"name": "openobserve/openobserve",
|
||||
@@ -69,11 +239,6 @@
|
||||
"version": "4.1.3",
|
||||
"date": "2026-01-07T16:24:23Z"
|
||||
},
|
||||
{
|
||||
"name": "prometheus/prometheus",
|
||||
"version": "v3.5.1",
|
||||
"date": "2026-01-21T13:28:57Z"
|
||||
},
|
||||
{
|
||||
"name": "apache/tomcat",
|
||||
"version": "10.1.51",
|
||||
@@ -92,12 +257,7 @@
|
||||
{
|
||||
"name": "javedh-dev/tracktor",
|
||||
"version": "1.2.1",
|
||||
"date": "2026-01-21T11:12:28Z"
|
||||
},
|
||||
{
|
||||
"name": "endurain-project/endurain",
|
||||
"version": "v0.17.0",
|
||||
"date": "2026-01-21T10:55:33Z"
|
||||
"date": "2026-01-21T09:31:18Z"
|
||||
},
|
||||
{
|
||||
"name": "emqx/emqx",
|
||||
@@ -114,16 +274,6 @@
|
||||
"version": "v0.108.0",
|
||||
"date": "2026-01-21T06:45:16Z"
|
||||
},
|
||||
{
|
||||
"name": "rabbitmq/rabbitmq-server",
|
||||
"version": "v4.2.2",
|
||||
"date": "2025-12-15T18:25:36Z"
|
||||
},
|
||||
{
|
||||
"name": "Jackett/Jackett",
|
||||
"version": "v0.24.898",
|
||||
"date": "2026-01-21T05:50:19Z"
|
||||
},
|
||||
{
|
||||
"name": "9001/copyparty",
|
||||
"version": "v1.20.3",
|
||||
@@ -134,51 +284,26 @@
|
||||
"version": "v0.1.70-beta.1",
|
||||
"date": "2026-01-21T05:35:05Z"
|
||||
},
|
||||
{
|
||||
"name": "esphome/esphome",
|
||||
"version": "2026.1.0",
|
||||
"date": "2026-01-21T03:43:09Z"
|
||||
},
|
||||
{
|
||||
"name": "jeedom/core",
|
||||
"version": "4.5.2",
|
||||
"date": "2026-01-21T00:27:05Z"
|
||||
},
|
||||
{
|
||||
"name": "steveiliop56/tinyauth",
|
||||
"version": "v4.1.0",
|
||||
"date": "2025-11-23T12:13:34Z"
|
||||
},
|
||||
{
|
||||
"name": "paperless-ngx/paperless-ngx",
|
||||
"version": "v2.20.5",
|
||||
"date": "2026-01-21T00:12:33Z"
|
||||
},
|
||||
{
|
||||
"name": "keycloak/keycloak",
|
||||
"version": "26.4.8",
|
||||
"date": "2026-01-15T13:52:29Z"
|
||||
},
|
||||
{
|
||||
"name": "ZoeyVid/NPMplus",
|
||||
"version": "2026-01-20-r2",
|
||||
"date": "2026-01-20T22:28:54Z"
|
||||
},
|
||||
{
|
||||
"name": "seerr-team/seerr",
|
||||
"version": "preview-availability-sync-fix",
|
||||
"date": "2026-01-20T22:11:24Z"
|
||||
},
|
||||
{
|
||||
"name": "chrisbenincasa/tunarr",
|
||||
"version": "v1.2.0-dev.1",
|
||||
"date": "2026-01-20T21:46:14Z"
|
||||
},
|
||||
{
|
||||
"name": "rcourtman/Pulse",
|
||||
"version": "v5.0.17",
|
||||
"date": "2026-01-20T19:07:30Z"
|
||||
},
|
||||
{
|
||||
"name": "wazuh/wazuh",
|
||||
"version": "coverity-w4-4.14.3",
|
||||
"date": "2026-01-20T19:50:07Z"
|
||||
},
|
||||
{
|
||||
"name": "netbox-community/netbox",
|
||||
"version": "v4.5.1",
|
||||
@@ -229,16 +354,6 @@
|
||||
"version": "v0.23.0-rc.1",
|
||||
"date": "2026-01-20T14:19:56Z"
|
||||
},
|
||||
{
|
||||
"name": "n8n-io/n8n",
|
||||
"version": "n8n@2.3.6",
|
||||
"date": "2026-01-16T15:00:42Z"
|
||||
},
|
||||
{
|
||||
"name": "dgtlmoon/changedetection.io",
|
||||
"version": "0.52.8",
|
||||
"date": "2026-01-20T12:36:05Z"
|
||||
},
|
||||
{
|
||||
"name": "lazy-media/reactive-resume",
|
||||
"version": "v1.2.7",
|
||||
@@ -284,16 +399,6 @@
|
||||
"version": "v2.16.0",
|
||||
"date": "2026-01-19T23:40:31Z"
|
||||
},
|
||||
{
|
||||
"name": "inventree/InvenTree",
|
||||
"version": "1.1.9",
|
||||
"date": "2026-01-19T20:51:19Z"
|
||||
},
|
||||
{
|
||||
"name": "livebook-dev/livebook",
|
||||
"version": "nightly",
|
||||
"date": "2026-01-19T18:03:38Z"
|
||||
},
|
||||
{
|
||||
"name": "ghostfolio/ghostfolio",
|
||||
"version": "2.232.0",
|
||||
@@ -319,21 +424,11 @@
|
||||
"version": "pmm-6401-v1.134.0",
|
||||
"date": "2026-01-19T13:31:08Z"
|
||||
},
|
||||
{
|
||||
"name": "crowdsecurity/crowdsec",
|
||||
"version": "v1.7.4",
|
||||
"date": "2025-12-04T13:56:39Z"
|
||||
},
|
||||
{
|
||||
"name": "home-assistant/operating-system",
|
||||
"version": "17.0",
|
||||
"date": "2026-01-19T11:11:37Z"
|
||||
},
|
||||
{
|
||||
"name": "TuroYT/snowshare",
|
||||
"version": "v1.2.10",
|
||||
"date": "2026-01-19T10:13:52Z"
|
||||
},
|
||||
{
|
||||
"name": "AlexxIT/go2rtc",
|
||||
"version": "v1.9.14",
|
||||
@@ -349,11 +444,6 @@
|
||||
"version": "v10.11.6",
|
||||
"date": "2026-01-19T01:03:03Z"
|
||||
},
|
||||
{
|
||||
"name": "eclipse-mosquitto/mosquitto",
|
||||
"version": "2.1.0rc1",
|
||||
"date": "2026-01-19T00:48:21Z"
|
||||
},
|
||||
{
|
||||
"name": "Kareadita/Kavita",
|
||||
"version": "v0.8.9.1",
|
||||
@@ -419,11 +509,6 @@
|
||||
"version": "v14.0.1",
|
||||
"date": "2026-01-17T07:14:19Z"
|
||||
},
|
||||
{
|
||||
"name": "cross-seed/cross-seed",
|
||||
"version": "v6.13.6",
|
||||
"date": "2025-11-04T13:35:35Z"
|
||||
},
|
||||
{
|
||||
"name": "coder/code-server",
|
||||
"version": "v4.108.1",
|
||||
@@ -454,11 +539,6 @@
|
||||
"version": "v4.0.0-beta.462",
|
||||
"date": "2026-01-16T11:05:11Z"
|
||||
},
|
||||
{
|
||||
"name": "wazuh/wazuh",
|
||||
"version": "v4.14.2",
|
||||
"date": "2026-01-15T11:19:35Z"
|
||||
},
|
||||
{
|
||||
"name": "garethgeorge/backrest",
|
||||
"version": "v1.11.1",
|
||||
@@ -500,19 +580,9 @@
|
||||
"date": "2026-01-15T11:18:58Z"
|
||||
},
|
||||
{
|
||||
"name": "zitadel/zitadel",
|
||||
"version": "v4.9.1",
|
||||
"date": "2026-01-14T10:37:28Z"
|
||||
},
|
||||
{
|
||||
"name": "fosrl/pangolin",
|
||||
"version": "1.14.1-s.3",
|
||||
"date": "2026-01-15T06:09:56Z"
|
||||
},
|
||||
{
|
||||
"name": "tailscale/tailscale",
|
||||
"version": "v1.95.0-pre",
|
||||
"date": "2026-01-14T22:24:18Z"
|
||||
"name": "grafana/grafana",
|
||||
"version": "pkg/promlib/v0.0.9",
|
||||
"date": "2026-01-14T23:50:10Z"
|
||||
},
|
||||
{
|
||||
"name": "icereed/paperless-gpt",
|
||||
@@ -554,21 +624,11 @@
|
||||
"version": "4.11.1",
|
||||
"date": "2026-01-14T08:40:47Z"
|
||||
},
|
||||
{
|
||||
"name": "Whisparr/Whisparr",
|
||||
"version": "v3.1.0.2116",
|
||||
"date": "2026-01-14T05:56:17Z"
|
||||
},
|
||||
{
|
||||
"name": "NginxProxyManager/nginx-proxy-manager",
|
||||
"version": "v2.13.6",
|
||||
"date": "2026-01-14T05:04:11Z"
|
||||
},
|
||||
{
|
||||
"name": "louislam/uptime-kuma",
|
||||
"version": "2.0.2",
|
||||
"date": "2025-10-22T17:03:54Z"
|
||||
},
|
||||
{
|
||||
"name": "Dispatcharr/Dispatcharr",
|
||||
"version": "v0.17.0",
|
||||
@@ -604,11 +664,6 @@
|
||||
"version": "26.1.1",
|
||||
"date": "2026-01-12T23:26:02Z"
|
||||
},
|
||||
{
|
||||
"name": "influxdata/influxdb",
|
||||
"version": "v2.8.0",
|
||||
"date": "2025-12-12T20:25:00Z"
|
||||
},
|
||||
{
|
||||
"name": "influxdata/telegraf",
|
||||
"version": "v1.37.1",
|
||||
@@ -639,11 +694,6 @@
|
||||
"version": "1.1.15",
|
||||
"date": "2026-01-12T05:38:30Z"
|
||||
},
|
||||
{
|
||||
"name": "OliveTin/OliveTin",
|
||||
"version": "3000.9.0",
|
||||
"date": "2026-01-12T00:37:54Z"
|
||||
},
|
||||
{
|
||||
"name": "hargata/lubelog",
|
||||
"version": "v1.5.7",
|
||||
@@ -709,11 +759,6 @@
|
||||
"version": "v3.6.0",
|
||||
"date": "2026-01-10T06:56:46Z"
|
||||
},
|
||||
{
|
||||
"name": "booklore-app/booklore",
|
||||
"version": "v1.17.0",
|
||||
"date": "2026-01-09T22:48:21Z"
|
||||
},
|
||||
{
|
||||
"name": "dani-garcia/vaultwarden",
|
||||
"version": "1.35.2",
|
||||
@@ -754,11 +799,6 @@
|
||||
"version": "4.9.3.0",
|
||||
"date": "2026-01-08T16:08:34Z"
|
||||
},
|
||||
{
|
||||
"name": "plexguide/Huntarr.io",
|
||||
"version": "8.2.11",
|
||||
"date": "2026-01-08T15:10:01Z"
|
||||
},
|
||||
{
|
||||
"name": "openhab/openhab-core",
|
||||
"version": "5.1.1",
|
||||
@@ -882,7 +922,7 @@
|
||||
{
|
||||
"name": "mealie-recipes/mealie",
|
||||
"version": "v3.9.2",
|
||||
"date": "2026-01-02T19:40:19Z"
|
||||
"date": "2026-01-02T19:40:09Z"
|
||||
},
|
||||
{
|
||||
"name": "gotify/server",
|
||||
@@ -924,11 +964,6 @@
|
||||
"version": "v2.13.5",
|
||||
"date": "2025-12-28T09:15:51Z"
|
||||
},
|
||||
{
|
||||
"name": "crafty-controller/crafty-4",
|
||||
"version": "v4.7.0",
|
||||
"date": "2025-12-27T20:37:54Z"
|
||||
},
|
||||
{
|
||||
"name": "matze/wastebin",
|
||||
"version": "3.4.0",
|
||||
@@ -1034,26 +1069,11 @@
|
||||
"version": "v1.19.5",
|
||||
"date": "2025-09-27T20:59:46Z"
|
||||
},
|
||||
{
|
||||
"name": "go-gitea/gitea",
|
||||
"version": "v1.25.3",
|
||||
"date": "2025-12-18T18:11:48Z"
|
||||
},
|
||||
{
|
||||
"name": "juanfont/headscale",
|
||||
"version": "v0.27.1",
|
||||
"date": "2025-11-11T19:32:29Z"
|
||||
},
|
||||
{
|
||||
"name": "zabbix/zabbix",
|
||||
"version": "7.4.6",
|
||||
"date": "2025-12-18T07:00:26Z"
|
||||
},
|
||||
{
|
||||
"name": "grafana/grafana",
|
||||
"version": "v12.3.1",
|
||||
"date": "2025-12-16T21:58:21Z"
|
||||
},
|
||||
{
|
||||
"name": "opencloud-eu/opencloud",
|
||||
"version": "v4.1.0",
|
||||
@@ -1184,11 +1204,6 @@
|
||||
"version": "6.9",
|
||||
"date": "2025-12-02T18:36:17Z"
|
||||
},
|
||||
{
|
||||
"name": "verdaccio/verdaccio",
|
||||
"version": "v6.2.4",
|
||||
"date": "2025-12-02T17:47:52Z"
|
||||
},
|
||||
{
|
||||
"name": "OctoPrint/OctoPrint",
|
||||
"version": "1.11.5",
|
||||
@@ -1209,11 +1224,6 @@
|
||||
"version": "0.11.1",
|
||||
"date": "2025-11-30T14:54:03Z"
|
||||
},
|
||||
{
|
||||
"name": "healthchecks/healthchecks",
|
||||
"version": "v3.13",
|
||||
"date": "2025-11-30T08:52:20Z"
|
||||
},
|
||||
{
|
||||
"name": "authelia/authelia",
|
||||
"version": "v4.39.15",
|
||||
@@ -1289,11 +1299,6 @@
|
||||
"version": "2025.5",
|
||||
"date": "2025-11-19T14:48:47Z"
|
||||
},
|
||||
{
|
||||
"name": "redis/redis",
|
||||
"version": "8.4.0",
|
||||
"date": "2025-11-18T15:06:37Z"
|
||||
},
|
||||
{
|
||||
"name": "Hosteroid/domain-monitor",
|
||||
"version": "v1.1.1",
|
||||
@@ -1374,11 +1379,6 @@
|
||||
"version": "v3.0.9",
|
||||
"date": "2025-11-04T07:28:45Z"
|
||||
},
|
||||
{
|
||||
"name": "plankanban/planka",
|
||||
"version": "planka-1.1.1",
|
||||
"date": "2025-10-31T12:38:47Z"
|
||||
},
|
||||
{
|
||||
"name": "sassanix/Warracker",
|
||||
"version": "1.0.2",
|
||||
@@ -1539,11 +1539,6 @@
|
||||
"version": "v0.8.3",
|
||||
"date": "2025-08-17T06:24:54Z"
|
||||
},
|
||||
{
|
||||
"name": "Leantime/leantime",
|
||||
"version": "latest",
|
||||
"date": "2025-08-15T15:33:51Z"
|
||||
},
|
||||
{
|
||||
"name": "swapplications/uhf-server-dist",
|
||||
"version": "1.5.1",
|
||||
@@ -1748,5 +1743,10 @@
|
||||
"name": "deepch/RTSPtoWeb",
|
||||
"version": "v2.4.3",
|
||||
"date": "2023-03-29T12:05:02Z"
|
||||
},
|
||||
{
|
||||
"name": "Shinobi-Systems/Shinobi",
|
||||
"version": "furrykitten-3",
|
||||
"date": "2022-07-15T05:20:17Z"
|
||||
}
|
||||
]
|
||||
|
||||
86
install/alpine-loki-install.sh
Normal file
86
install/alpine-loki-install.sh
Normal file
@@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: hoholms
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/grafana/loki
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Loki"
|
||||
$STD apk add loki
|
||||
$STD sed -i '/http_addr/s/127.0.0.1/0.0.0.0/g' /etc/conf.d/loki
|
||||
mkdir -p /var/lib/loki/{chunks,boltdb-shipper-active,boltdb-shipper-cache}
|
||||
chown -R loki:grafana /var/lib/loki
|
||||
mkdir -p /var/log/loki
|
||||
chown -R loki:grafana /var/log/loki
|
||||
cat <<EOF >/etc/loki/loki-local-config.yaml
|
||||
auth_enabled: false
|
||||
|
||||
server:
|
||||
http_listen_port: 3100
|
||||
log_level: info
|
||||
|
||||
common:
|
||||
instance_addr: 127.0.0.1
|
||||
path_prefix: /var/lib/loki
|
||||
storage:
|
||||
filesystem:
|
||||
chunks_directory: /var/lib/loki/chunks
|
||||
rules_directory: /var/lib/loki/rules
|
||||
replication_factor: 1
|
||||
ring:
|
||||
kvstore:
|
||||
store: inmemory
|
||||
|
||||
schema_config:
|
||||
configs:
|
||||
- from: 2020-10-24
|
||||
store: tsdb
|
||||
object_store: filesystem
|
||||
schema: v13
|
||||
index:
|
||||
prefix: index_
|
||||
period: 24h
|
||||
|
||||
query_range:
|
||||
results_cache:
|
||||
cache:
|
||||
embedded_cache:
|
||||
enabled: true
|
||||
max_size_mb: 100
|
||||
|
||||
limits_config:
|
||||
metric_aggregation_enabled: true
|
||||
|
||||
ruler:
|
||||
alertmanager_url: http://localhost:9093
|
||||
EOF
|
||||
chown loki:grafana /etc/loki/loki-local-config.yaml
|
||||
chmod 644 /etc/loki/loki-local-config.yaml
|
||||
echo "output_log=\"\${output_log:-/var/log/loki/output.log}\"" >> /etc/init.d/loki
|
||||
echo "error_log=\"\${error_log:-/var/log/loki/error.log}\"" >> /etc/init.d/loki
|
||||
echo "start_stop_daemon_args=\"\${SSD_OPTS} -1 \${output_log} -2 \${error_log}\"" >> /etc/init.d/loki
|
||||
$STD rc-update add loki default
|
||||
$STD rc-service loki start
|
||||
msg_ok "Installed Loki"
|
||||
|
||||
read -rp "Would you like to install Promtail? (y/N): " INSTALL_PROMTAIL
|
||||
if [[ "${INSTALL_PROMTAIL,,}" =~ ^(y|yes)$ ]]; then
|
||||
msg_info "Installing Promtail"
|
||||
$STD apk add loki-promtail
|
||||
$STD sed -i '/http_addr/s/127.0.0.1/0.0.0.0/g' /etc/conf.d/loki-promtail
|
||||
$STD rc-update add loki-promtail default
|
||||
$STD rc-service loki-promtail start
|
||||
msg_ok "Installed Promtail"
|
||||
fi
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
cleanup_lxc
|
||||
83
install/loki-install.sh
Normal file
83
install/loki-install.sh
Normal file
@@ -0,0 +1,83 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: bysinka-95
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/grafana/loki
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
setup_deb822_repo \
|
||||
"grafana" \
|
||||
"https://apt.grafana.com/gpg.key" \
|
||||
"https://apt.grafana.com" \
|
||||
"stable" \
|
||||
"main"
|
||||
|
||||
msg_info "Installing Loki"
|
||||
$STD apt install -y loki
|
||||
mkdir -p /var/lib/loki/{chunks,boltdb-shipper-active,boltdb-shipper-cache}
|
||||
chown -R loki /var/lib/loki
|
||||
cat <<EOF >/etc/loki/config.yml
|
||||
auth_enabled: false
|
||||
|
||||
server:
|
||||
http_listen_port: 3100
|
||||
log_level: info
|
||||
|
||||
common:
|
||||
instance_addr: 127.0.0.1
|
||||
path_prefix: /var/lib/loki
|
||||
storage:
|
||||
filesystem:
|
||||
chunks_directory: /var/lib/loki/chunks
|
||||
rules_directory: /var/lib/loki/rules
|
||||
replication_factor: 1
|
||||
ring:
|
||||
kvstore:
|
||||
store: inmemory
|
||||
|
||||
schema_config:
|
||||
configs:
|
||||
- from: 2020-10-24
|
||||
store: tsdb
|
||||
object_store: filesystem
|
||||
schema: v13
|
||||
index:
|
||||
prefix: index_
|
||||
period: 24h
|
||||
|
||||
query_range:
|
||||
results_cache:
|
||||
cache:
|
||||
embedded_cache:
|
||||
enabled: true
|
||||
max_size_mb: 100
|
||||
|
||||
limits_config:
|
||||
metric_aggregation_enabled: true
|
||||
|
||||
ruler:
|
||||
alertmanager_url: http://localhost:9093
|
||||
EOF
|
||||
chown loki /etc/loki/config.yml
|
||||
systemctl enable -q --now loki
|
||||
msg_ok "Installed Loki"
|
||||
|
||||
read -rp "Would you like to install Promtail? (y/N): " INSTALL_PROMTAIL
|
||||
if [[ "${INSTALL_PROMTAIL,,}" =~ ^(y|yes)$ ]]; then
|
||||
msg_info "Installing Promtail"
|
||||
$STD apt install -y promtail
|
||||
systemctl enable -q --now promtail
|
||||
msg_ok "Installed Promtail"
|
||||
fi
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
cleanup_lxc
|
||||
189
misc/tools.func
189
misc/tools.func
@@ -3601,57 +3601,37 @@ EOF
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Installs or updates MariaDB from official repo.
|
||||
# Installs or updates MariaDB.
|
||||
#
|
||||
# Description:
|
||||
# - Uses Debian/Ubuntu distribution packages by default (most reliable)
|
||||
# - Only uses official MariaDB repository when a specific version is requested
|
||||
# - Detects current MariaDB version and replaces it if necessary
|
||||
# - Preserves existing database data
|
||||
# - Dynamically determines latest GA version if "latest" is given
|
||||
#
|
||||
# Variables:
|
||||
# MARIADB_VERSION - MariaDB version to install (e.g. 10.11, latest) (default: latest)
|
||||
# MARIADB_VERSION - MariaDB version to install (optional)
|
||||
# - Not set or "latest": Uses distribution packages (recommended)
|
||||
# - Specific version (e.g. "11.4", "12.2"): Uses MariaDB official repo
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
setup_mariadb() {
|
||||
local MARIADB_VERSION="${MARIADB_VERSION:-latest}"
|
||||
local USE_DISTRO_PACKAGES=false
|
||||
|
||||
# Ensure non-interactive mode for all apt operations
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
export NEEDRESTART_MODE=a
|
||||
export NEEDRESTART_SUSPEND=1
|
||||
|
||||
# Resolve "latest" to actual version
|
||||
if [[ "$MARIADB_VERSION" == "latest" ]]; then
|
||||
if ! curl -fsI --max-time 10 http://mirror.mariadb.org/repo/ >/dev/null 2>&1; then
|
||||
msg_warn "MariaDB mirror not reachable - trying mariadb_repo_setup fallback"
|
||||
# Try using official mariadb_repo_setup script as fallback
|
||||
if curl -fsSL --max-time 15 https://r.mariadb.com/downloads/mariadb_repo_setup 2>/dev/null | bash -s -- --skip-verify >/dev/null 2>&1; then
|
||||
msg_ok "MariaDB repository configured via mariadb_repo_setup"
|
||||
# Extract version from configured repo
|
||||
MARIADB_VERSION=$(grep -oP 'repo/\K[0-9]+\.[0-9]+\.[0-9]+' /etc/apt/sources.list.d/mariadb.list 2>/dev/null | head -n1 || echo "12.2")
|
||||
else
|
||||
msg_warn "mariadb_repo_setup failed - using hardcoded fallback version"
|
||||
MARIADB_VERSION="12.2"
|
||||
fi
|
||||
else
|
||||
MARIADB_VERSION=$(curl -fsSL --max-time 15 http://mirror.mariadb.org/repo/ 2>/dev/null |
|
||||
grep -Eo '[0-9]+\.[0-9]+\.[0-9]+/' |
|
||||
grep -vE 'rc/|rolling/' |
|
||||
sed 's|/||' |
|
||||
sort -Vr |
|
||||
head -n1 || echo "")
|
||||
|
||||
if [[ -z "$MARIADB_VERSION" ]]; then
|
||||
msg_warn "Could not parse latest GA MariaDB version from mirror - trying mariadb_repo_setup"
|
||||
if curl -fsSL --max-time 15 https://r.mariadb.com/downloads/mariadb_repo_setup 2>/dev/null | bash -s -- --skip-verify >/dev/null 2>&1; then
|
||||
msg_ok "MariaDB repository configured via mariadb_repo_setup"
|
||||
MARIADB_VERSION=$(grep -oP 'repo/\K[0-9]+\.[0-9]+\.[0-9]+' /etc/apt/sources.list.d/mariadb.list 2>/dev/null | head -n1 || echo "12.2")
|
||||
else
|
||||
msg_warn "mariadb_repo_setup failed - using hardcoded fallback version"
|
||||
MARIADB_VERSION="12.2"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
# Determine installation method:
|
||||
# - "latest" or empty: Use distribution packages (avoids mirror issues)
|
||||
# - Specific version: Use MariaDB official repository
|
||||
if [[ "$MARIADB_VERSION" == "latest" || -z "$MARIADB_VERSION" ]]; then
|
||||
USE_DISTRO_PACKAGES=true
|
||||
msg_info "Setup MariaDB (distribution packages)"
|
||||
else
|
||||
msg_info "Setup MariaDB $MARIADB_VERSION (official repository)"
|
||||
fi
|
||||
|
||||
# Get currently installed version
|
||||
@@ -3659,17 +3639,105 @@ setup_mariadb() {
|
||||
CURRENT_VERSION=$(is_tool_installed "mariadb" 2>/dev/null) || true
|
||||
|
||||
# Pre-configure debconf to prevent any interactive prompts during install/upgrade
|
||||
local MARIADB_MAJOR_MINOR
|
||||
MARIADB_MAJOR_MINOR=$(echo "$MARIADB_VERSION" | awk -F. '{print $1"."$2}')
|
||||
if [[ -n "$MARIADB_MAJOR_MINOR" ]]; then
|
||||
debconf-set-selections <<EOF
|
||||
mariadb-server-$MARIADB_MAJOR_MINOR mariadb-server/feedback boolean false
|
||||
mariadb-server-$MARIADB_MAJOR_MINOR mariadb-server/root_password password
|
||||
mariadb-server-$MARIADB_MAJOR_MINOR mariadb-server/root_password_again password
|
||||
debconf-set-selections <<EOF
|
||||
mariadb-server mariadb-server/feedback boolean false
|
||||
mariadb-server mariadb-server/root_password password
|
||||
mariadb-server mariadb-server/root_password_again password
|
||||
EOF
|
||||
|
||||
# If specific version requested, also configure version-specific debconf
|
||||
if [[ "$USE_DISTRO_PACKAGES" == "false" ]]; then
|
||||
local MARIADB_MAJOR_MINOR
|
||||
MARIADB_MAJOR_MINOR=$(echo "$MARIADB_VERSION" | awk -F. '{print $1"."$2}')
|
||||
if [[ -n "$MARIADB_MAJOR_MINOR" ]]; then
|
||||
debconf-set-selections <<EOF
|
||||
mariadb-server-$MARIADB_MAJOR_MINOR mariadb-server/feedback boolean false
|
||||
mariadb-server-$MARIADB_MAJOR_MINOR mariadb-server/root_password password
|
||||
mariadb-server-$MARIADB_MAJOR_MINOR mariadb-server/root_password_again password
|
||||
EOF
|
||||
fi
|
||||
fi
|
||||
|
||||
# ============================================================================
|
||||
# DISTRIBUTION PACKAGES PATH (default, most reliable)
|
||||
# ============================================================================
|
||||
if [[ "$USE_DISTRO_PACKAGES" == "true" ]]; then
|
||||
# Check if MariaDB was previously installed from official repo
|
||||
local HAD_MARIADB_REPO=false
|
||||
if [[ -f /etc/apt/sources.list.d/mariadb.sources ]] || [[ -f /etc/apt/sources.list.d/mariadb.list ]]; then
|
||||
HAD_MARIADB_REPO=true
|
||||
msg_info "Removing MariaDB official repository (switching to distribution packages)"
|
||||
fi
|
||||
|
||||
# Clean up any existing MariaDB repository files to avoid conflicts
|
||||
cleanup_old_repo_files "mariadb"
|
||||
|
||||
# If we had a repo, we need to refresh APT cache
|
||||
if [[ "$HAD_MARIADB_REPO" == "true" ]]; then
|
||||
$STD apt update || msg_warn "APT update had issues, continuing..."
|
||||
fi
|
||||
|
||||
# Ensure APT is working
|
||||
ensure_apt_working || return 1
|
||||
|
||||
# Check if installed version is from official repo and higher than distro version
|
||||
# In this case, we keep the existing installation to avoid data issues
|
||||
if [[ -n "$CURRENT_VERSION" ]]; then
|
||||
# Get available distro version
|
||||
local DISTRO_VERSION=""
|
||||
DISTRO_VERSION=$(apt-cache policy mariadb-server 2>/dev/null | grep -E "Candidate:" | awk '{print $2}' | grep -oP '^\d+:\K\d+\.\d+\.\d+' || echo "")
|
||||
|
||||
if [[ -n "$DISTRO_VERSION" ]]; then
|
||||
# Compare versions - if current is higher, keep it
|
||||
local CURRENT_MAJOR DISTRO_MAJOR
|
||||
CURRENT_MAJOR=$(echo "$CURRENT_VERSION" | awk -F. '{print $1}')
|
||||
DISTRO_MAJOR=$(echo "$DISTRO_VERSION" | awk -F. '{print $1}')
|
||||
|
||||
if [[ "$CURRENT_MAJOR" -gt "$DISTRO_MAJOR" ]]; then
|
||||
msg_warn "MariaDB $CURRENT_VERSION is already installed (higher than distro $DISTRO_VERSION)"
|
||||
msg_warn "Keeping existing installation to preserve data integrity"
|
||||
msg_warn "To use distribution packages, manually remove MariaDB first"
|
||||
_setup_mariadb_runtime_dir
|
||||
cache_installed_version "mariadb" "$CURRENT_VERSION"
|
||||
msg_ok "Setup MariaDB $CURRENT_VERSION (existing installation kept)"
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Install or upgrade MariaDB from distribution packages
|
||||
if ! install_packages_with_retry "mariadb-server" "mariadb-client"; then
|
||||
msg_error "Failed to install MariaDB packages from distribution"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Get installed version for caching
|
||||
local INSTALLED_VERSION=""
|
||||
INSTALLED_VERSION=$(mariadb --version 2>/dev/null | grep -oP '\d+\.\d+\.\d+' | head -n1 || echo "distro")
|
||||
|
||||
# Configure runtime directory and finish
|
||||
_setup_mariadb_runtime_dir
|
||||
cache_installed_version "mariadb" "$INSTALLED_VERSION"
|
||||
msg_ok "Setup MariaDB $INSTALLED_VERSION (distribution packages)"
|
||||
return 0
|
||||
fi
|
||||
|
||||
# ============================================================================
|
||||
# OFFICIAL REPOSITORY PATH (only when specific version requested)
|
||||
# ============================================================================
|
||||
|
||||
# First, check if there's an old/broken repository that needs cleanup
|
||||
if [[ -f /etc/apt/sources.list.d/mariadb.sources ]] || [[ -f /etc/apt/sources.list.d/mariadb.list ]]; then
|
||||
local OLD_REPO_VERSION=""
|
||||
OLD_REPO_VERSION=$(grep -oP 'repo/\K[0-9]+\.[0-9]+(\.[0-9]+)?' /etc/apt/sources.list.d/mariadb.sources 2>/dev/null || \
|
||||
grep -oP 'repo/\K[0-9]+\.[0-9]+(\.[0-9]+)?' /etc/apt/sources.list.d/mariadb.list 2>/dev/null || echo "")
|
||||
|
||||
# Check if old repo points to a different version
|
||||
if [[ -n "$OLD_REPO_VERSION" ]] && [[ "${OLD_REPO_VERSION%.*}" != "${MARIADB_VERSION%.*}" ]]; then
|
||||
msg_info "Cleaning up old MariaDB repository (was: $OLD_REPO_VERSION, requested: $MARIADB_VERSION)"
|
||||
cleanup_old_repo_files "mariadb"
|
||||
$STD apt update || msg_warn "APT update had issues, continuing..."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Scenario 1: Already installed at target version - just update packages
|
||||
@@ -3710,9 +3778,7 @@ EOF
|
||||
remove_old_tool_version "mariadb"
|
||||
fi
|
||||
|
||||
# Scenario 3: Fresh install or version change
|
||||
msg_info "Setup MariaDB $MARIADB_VERSION"
|
||||
|
||||
# Scenario 3: Fresh install or version change with specific version
|
||||
# Prepare repository (cleanup + validation)
|
||||
prepare_repository_setup "mariadb" || {
|
||||
msg_error "Failed to prepare MariaDB repository"
|
||||
@@ -3740,21 +3806,37 @@ EOF
|
||||
|
||||
# Install packages with retry logic
|
||||
if ! install_packages_with_retry "mariadb-server" "mariadb-client"; then
|
||||
# Fallback: try without specific version
|
||||
msg_warn "Failed to install MariaDB packages from upstream repo, trying distro fallback..."
|
||||
# Fallback: try distribution packages
|
||||
msg_warn "Failed to install MariaDB $MARIADB_VERSION from official repo, falling back to distribution packages..."
|
||||
cleanup_old_repo_files "mariadb"
|
||||
$STD apt update || {
|
||||
msg_warn "APT update also failed, continuing with cache"
|
||||
}
|
||||
install_packages_with_retry "mariadb-server" "mariadb-client" || {
|
||||
msg_error "Failed to install MariaDB packages (both upstream and distro)"
|
||||
if install_packages_with_retry "mariadb-server" "mariadb-client"; then
|
||||
local FALLBACK_VERSION=""
|
||||
FALLBACK_VERSION=$(mariadb --version 2>/dev/null | grep -oP '\d+\.\d+\.\d+' | head -n1 || echo "distro")
|
||||
msg_warn "Installed MariaDB $FALLBACK_VERSION from distribution instead of requested $MARIADB_VERSION"
|
||||
_setup_mariadb_runtime_dir
|
||||
cache_installed_version "mariadb" "$FALLBACK_VERSION"
|
||||
msg_ok "Setup MariaDB $FALLBACK_VERSION (fallback to distribution packages)"
|
||||
return 0
|
||||
else
|
||||
msg_error "Failed to install MariaDB packages (both official repo and distribution)"
|
||||
return 1
|
||||
}
|
||||
fi
|
||||
fi
|
||||
|
||||
_setup_mariadb_runtime_dir
|
||||
cache_installed_version "mariadb" "$MARIADB_VERSION"
|
||||
msg_ok "Setup MariaDB $MARIADB_VERSION"
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Helper function: Configure MariaDB runtime directory persistence
|
||||
# ------------------------------------------------------------------------------
|
||||
_setup_mariadb_runtime_dir() {
|
||||
# Configure tmpfiles.d to ensure /run/mysqld directory is created on boot
|
||||
# This fixes the issue where MariaDB fails to start after container reboot
|
||||
msg_info "Configuring MariaDB runtime directory persistence"
|
||||
|
||||
# Create tmpfiles.d configuration with error handling
|
||||
if ! printf '# Ensure /run/mysqld directory exists with correct permissions for MariaDB\nd /run/mysqld 0755 mysql mysql -\n' >/etc/tmpfiles.d/mariadb.conf; then
|
||||
@@ -3774,11 +3856,6 @@ EOF
|
||||
msg_warn "mysql user not found - directory created with correct permissions but ownership not set"
|
||||
fi
|
||||
fi
|
||||
|
||||
msg_ok "Configured MariaDB runtime directory persistence"
|
||||
|
||||
cache_installed_version "mariadb" "$MARIADB_VERSION"
|
||||
msg_ok "Setup MariaDB $MARIADB_VERSION"
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user