mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-12-18 05:03:30 +01:00
Compare commits
1 Commits
github-act
...
MickLesk-p
| Author | SHA1 | Date | |
|---|---|---|---|
| 29d93fc622 |
22
CHANGELOG.md
22
CHANGELOG.md
@ -10,14 +10,6 @@
|
|||||||
> [!CAUTION]
|
> [!CAUTION]
|
||||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
||||||
|
|
||||||
## 2025-12-18
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- [HOTFIX] Fix Scanopy release check [@vhsdream](https://github.com/vhsdream) ([#10097](https://github.com/community-scripts/ProxmoxVE/pull/10097))
|
|
||||||
|
|
||||||
## 2025-12-17
|
## 2025-12-17
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
### 🚀 Updated Scripts
|
||||||
@ -26,7 +18,6 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
- Semaphore: Fix release binary package fetching [@tremor021](https://github.com/tremor021) ([#10055](https://github.com/community-scripts/ProxmoxVE/pull/10055))
|
|
||||||
- update github repo for endurain [@johanngrobe](https://github.com/johanngrobe) ([#10074](https://github.com/community-scripts/ProxmoxVE/pull/10074))
|
- update github repo for endurain [@johanngrobe](https://github.com/johanngrobe) ([#10074](https://github.com/community-scripts/ProxmoxVE/pull/10074))
|
||||||
|
|
||||||
- #### ✨ New Features
|
- #### ✨ New Features
|
||||||
@ -34,19 +25,6 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
- use setup_hwaccel for robust hardware acceleration [@MickLesk](https://github.com/MickLesk) ([#10054](https://github.com/community-scripts/ProxmoxVE/pull/10054))
|
- use setup_hwaccel for robust hardware acceleration [@MickLesk](https://github.com/MickLesk) ([#10054](https://github.com/community-scripts/ProxmoxVE/pull/10054))
|
||||||
- add hardware acceleration support for 17 additional apps [@MickLesk](https://github.com/MickLesk) ([#10061](https://github.com/community-scripts/ProxmoxVE/pull/10061))
|
- add hardware acceleration support for 17 additional apps [@MickLesk](https://github.com/MickLesk) ([#10061](https://github.com/community-scripts/ProxmoxVE/pull/10061))
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- Telegraf: Small refactor [@tremor021](https://github.com/tremor021) ([#10056](https://github.com/community-scripts/ProxmoxVE/pull/10056))
|
|
||||||
- Refactor: Salt [@tremor021](https://github.com/tremor021) ([#10057](https://github.com/community-scripts/ProxmoxVE/pull/10057))
|
|
||||||
- Refactor: Resilio Sync [@tremor021](https://github.com/tremor021) ([#10058](https://github.com/community-scripts/ProxmoxVE/pull/10058))
|
|
||||||
- Refactor: Reitti [@tremor021](https://github.com/tremor021) ([#10059](https://github.com/community-scripts/ProxmoxVE/pull/10059))
|
|
||||||
- Refactor: Redis [@tremor021](https://github.com/tremor021) ([#10060](https://github.com/community-scripts/ProxmoxVE/pull/10060))
|
|
||||||
- Refactor: Reactive-Resume [@tremor021](https://github.com/tremor021) ([#10062](https://github.com/community-scripts/ProxmoxVE/pull/10062))
|
|
||||||
- Refactor: RDTClient [@tremor021](https://github.com/tremor021) ([#10064](https://github.com/community-scripts/ProxmoxVE/pull/10064))
|
|
||||||
- Refactor: RabbitMQ [@tremor021](https://github.com/tremor021) ([#10065](https://github.com/community-scripts/ProxmoxVE/pull/10065))
|
|
||||||
- Qdrant: Code cleanup [@tremor021](https://github.com/tremor021) ([#10066](https://github.com/community-scripts/ProxmoxVE/pull/10066))
|
|
||||||
- Refactor: Pterodactyl Wings [@tremor021](https://github.com/tremor021) ([#10069](https://github.com/community-scripts/ProxmoxVE/pull/10069))
|
|
||||||
|
|
||||||
## 2025-12-16
|
## 2025-12-16
|
||||||
|
|
||||||
### 🆕 New Scripts
|
### 🆕 New Scripts
|
||||||
|
|||||||
@ -23,23 +23,29 @@ function update_script() {
|
|||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -x /usr/local/bin/wings ]]; then
|
if [[ ! -f /usr/local/bin/wings ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/pterodactyl/wings/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
if check_for_gh_release "wings" "pterodactyl/wings"; then
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop wings
|
systemctl stop wings
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
msg_info "Updating ${APP} to v${RELEASE}"
|
||||||
rm /usr/local/bin/wings
|
rm /usr/local/bin/wings
|
||||||
fetch_and_deploy_gh_release "wings" "pterodactyl/wings" "singlefile" "latest" "/usr/local/bin" "wings_linux_amd64"
|
curl -fsSL "https://github.com/pterodactyl/wings/releases/download/v${RELEASE}/wings_linux_amd64" -o "/usr/local/bin/wings"
|
||||||
|
chmod u+x /usr/local/bin/wings
|
||||||
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
|
msg_ok "Updated $APP to v${RELEASE}"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start wings
|
systemctl start wings
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,11 +29,16 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
if grep -q "dl.cloudsmith.io" /etc/apt/sources.list.d/rabbitmq.list; then
|
if grep -q "dl.cloudsmith.io" /etc/apt/sources.list.d/rabbitmq.list; then
|
||||||
rm -f /etc/apt/sources.list.d/rabbitmq.list
|
rm -f /etc/apt/sources.list.d/rabbitmq.list
|
||||||
setup_deb822_repo \
|
cat <<EOF >/etc/apt/sources.list.d/rabbitmq.list
|
||||||
"rabbitmq" \
|
## Modern Erlang/OTP releases
|
||||||
"https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" \
|
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb1.rabbitmq.com/rabbitmq-erlang/debian/trixie trixie main
|
||||||
"https://deb1.rabbitmq.com/rabbitmq-server/debian/trixie" \
|
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb2.rabbitmq.com/rabbitmq-erlang/debian/trixie trixie main
|
||||||
"trixie"
|
|
||||||
|
## Provides modern RabbitMQ releases
|
||||||
|
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb1.rabbitmq.com/rabbitmq-server/debian/trixie trixie main
|
||||||
|
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb2.rabbitmq.com/rabbitmq-server/debian/trixie trixie main
|
||||||
|
EOF
|
||||||
|
$STD apt update
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
|
|||||||
@ -41,7 +41,7 @@ function update_script() {
|
|||||||
cp -R /opt/rdtc-backup/appsettings.json /opt/rdtc/
|
cp -R /opt/rdtc-backup/appsettings.json /opt/rdtc/
|
||||||
if dpkg-query -W dotnet-sdk-8.0 >/dev/null 2>&1; then
|
if dpkg-query -W dotnet-sdk-8.0 >/dev/null 2>&1; then
|
||||||
$STD apt remove --purge -y dotnet-sdk-8.0
|
$STD apt remove --purge -y dotnet-sdk-8.0
|
||||||
$STD apt install -y aspnetcore-runtime-9.0
|
$STD apt install -y dotnet-sdk-9.0
|
||||||
fi
|
fi
|
||||||
rm -rf /opt/rdtc-backup
|
rm -rf /opt/rdtc-backup
|
||||||
|
|
||||||
|
|||||||
@ -33,11 +33,12 @@ function update_script() {
|
|||||||
systemctl stop Reactive-Resume
|
systemctl stop Reactive-Resume
|
||||||
msg_ok "Stopped services"
|
msg_ok "Stopped services"
|
||||||
|
|
||||||
cp /opt/Reactive-Resume/.env /opt/rxresume.env
|
cp /opt/"$APP"/.env /opt/rxresume.env
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "Reactive-Resume" "lazy-media/Reactive-Resume" "tarball" "latest" "/opt/Reactive-Resume"
|
fetch_and_deploy_gh_release "Reactive-Resume" "lazy-media/Reactive-Resume" "tarball" "latest" "/opt/Reactive-Resume"
|
||||||
|
|
||||||
msg_info "Updating Reactive-Resume"
|
msg_info "Updating $APP"
|
||||||
cd /opt/Reactive-Resume
|
cd /opt/"$APP"
|
||||||
export PUPPETEER_SKIP_DOWNLOAD="true"
|
export PUPPETEER_SKIP_DOWNLOAD="true"
|
||||||
export NEXT_TELEMETRY_DISABLED=1
|
export NEXT_TELEMETRY_DISABLED=1
|
||||||
export CI="true"
|
export CI="true"
|
||||||
@ -45,8 +46,8 @@ function update_script() {
|
|||||||
$STD pnpm install --frozen-lockfile
|
$STD pnpm install --frozen-lockfile
|
||||||
$STD pnpm run build
|
$STD pnpm run build
|
||||||
$STD pnpm run prisma:generate
|
$STD pnpm run prisma:generate
|
||||||
mv /opt/rxresume.env /opt/Reactive-Resume/.env
|
mv /opt/rxresume.env /opt/"$APP"/.env
|
||||||
msg_ok "Updated Reactive-Resume"
|
msg_ok "Updated $APP"
|
||||||
|
|
||||||
msg_info "Updating Minio"
|
msg_info "Updating Minio"
|
||||||
systemctl stop minio
|
systemctl stop minio
|
||||||
|
|||||||
@ -27,10 +27,9 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_info "Updating $APP LXC"
|
msg_info "Updating $APP LXC"
|
||||||
$STD apt update
|
$STD apt update
|
||||||
$STD apt upgrade -y
|
$STD apt -y upgrade
|
||||||
msg_ok "Updated $APP LXC"
|
msg_ok "Updated $APP LXC"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
exit
|
exit
|
||||||
|
|||||||
@ -20,18 +20,18 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /var/lib/resilio-sync ]]; then
|
if [[ ! -d /var/lib/resilio-sync ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
msg_info "Updating ${APP} LXC"
|
||||||
|
$STD apt update
|
||||||
|
$STD apt -y upgrade
|
||||||
|
msg_ok "Updated successfully!"
|
||||||
exit
|
exit
|
||||||
fi
|
|
||||||
msg_info "Updating Resilio Sync"
|
|
||||||
$STD apt update
|
|
||||||
$STD apt upgrade -y
|
|
||||||
msg_ok "Updated successfully!"
|
|
||||||
exit
|
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
|
|||||||
@ -29,14 +29,16 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
RELEASE=$(get_latest_github_release "saltstack/salt")
|
RELEASE=$(curl -fsSL https://api.github.com/repos/saltstack/salt/releases/latest | jq -r .tag_name | sed 's/^v//')
|
||||||
if check_for_gh_release "salt" "saltstack/salt"; then
|
if [[ ! -f /~.salt ]] || [[ "${RELEASE}" != "$(cat /~.salt)" ]]; then
|
||||||
msg_info "Updating Salt"
|
msg_info "Updating $APP to ${RELEASE}"
|
||||||
sed -i "s/^\(Pin: version \).*/\1${RELEASE}/" /etc/apt/preferences.d/salt-pin-1001
|
sed -i "s/^\(Pin: version \).*/\1${RELEASE}/" /etc/apt/preferences.d/salt-pin-1001
|
||||||
$STD apt update
|
$STD apt update
|
||||||
$STD apt upgrade -y
|
$STD apt upgrade -y
|
||||||
echo "${RELEASE}" >/~.salt
|
echo "${RELEASE}" >/~.salt
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
|
else
|
||||||
|
msg_ok "${APP} is already up to date (${RELEASE})"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,7 +29,7 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if check_for_gh_release "scanopy" "scanopy/scanopy"; then
|
if check_for_gh_release "scanopy" "scanopy-io/scanopy"; then
|
||||||
msg_info "Stopping services"
|
msg_info "Stopping services"
|
||||||
systemctl stop scanopy-daemon scanopy-server
|
systemctl stop scanopy-daemon scanopy-server
|
||||||
msg_ok "Stopped services"
|
msg_ok "Stopped services"
|
||||||
|
|||||||
@ -33,7 +33,7 @@ function update_script() {
|
|||||||
systemctl stop semaphore
|
systemctl stop semaphore
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "semaphore" "semaphoreui/semaphore" "binary" "latest" "/opt/semaphore" "semaphore_*_linux_amd64.deb"
|
fetch_and_deploy_gh_release "semaphore" "semaphoreui/semaphore" "binary"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start semaphore
|
systemctl start semaphore
|
||||||
|
|||||||
@ -34,7 +34,7 @@ function update_script() {
|
|||||||
|
|
||||||
msg_info "Updating Telegraf"
|
msg_info "Updating Telegraf"
|
||||||
$STD apt update
|
$STD apt update
|
||||||
$STD apt upgrade -y telegraf
|
$STD apt upgrade telegraf -y
|
||||||
msg_ok "Updated Telegraf"
|
msg_ok "Updated Telegraf"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
|
|||||||
@ -12,7 +12,7 @@
|
|||||||
"documentation": "https://pterodactyl.io/wings/1.0/installing.html",
|
"documentation": "https://pterodactyl.io/wings/1.0/installing.html",
|
||||||
"website": "https://pterodactyl.io",
|
"website": "https://pterodactyl.io",
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/pterodactyl.webp",
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/pterodactyl.webp",
|
||||||
"config_path": "/etc/pterodactyl/config.yml",
|
"config_path": "",
|
||||||
"description": "Pterodactyl Wings is Pterodactyl's server control plane, built for the rapidly changing gaming industry and designed to be highly performant and secure. Wings provides an HTTP API allowing you to interface directly with running server instances, fetch server logs, generate backups, and control all aspects of the server lifecycle.",
|
"description": "Pterodactyl Wings is Pterodactyl's server control plane, built for the rapidly changing gaming industry and designed to be highly performant and secure. Wings provides an HTTP API allowing you to interface directly with running server instances, fetch server logs, generate backups, and control all aspects of the server lifecycle.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,103 +1,8 @@
|
|||||||
[
|
[
|
||||||
{
|
|
||||||
"name": "javedh-dev/tracktor",
|
|
||||||
"version": "1.0.1",
|
|
||||||
"date": "2025-12-17T23:14:39Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "goauthentik/authentik",
|
|
||||||
"version": "version/2025.12.0-rc2",
|
|
||||||
"date": "2025-12-17T22:03:04Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "ollama/ollama",
|
|
||||||
"version": "v0.13.5-rc0",
|
|
||||||
"date": "2025-12-17T21:13:55Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "fccview/jotty",
|
|
||||||
"version": "1.14.0",
|
|
||||||
"date": "2025-12-17T20:26:22Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "emqx/emqx",
|
|
||||||
"version": "6.1.0-alpha.2",
|
|
||||||
"date": "2025-12-17T20:15:23Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "influxdata/influxdb",
|
|
||||||
"version": "v2.8.0",
|
|
||||||
"date": "2025-12-12T20:25:00Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "HydroshieldMKII/Guardian",
|
|
||||||
"version": "v1.3.2",
|
|
||||||
"date": "2025-12-17T19:31:10Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "coder/code-server",
|
|
||||||
"version": "v4.107.0",
|
|
||||||
"date": "2025-12-17T18:59:21Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "metabase/metabase",
|
|
||||||
"version": "v0.57.7",
|
|
||||||
"date": "2025-12-17T18:16:59Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "immich-app/immich",
|
|
||||||
"version": "v2.4.0",
|
|
||||||
"date": "2025-12-17T17:44:24Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "BerriAI/litellm",
|
|
||||||
"version": "v1.80.10.rc.4",
|
|
||||||
"date": "2025-12-17T17:43:28Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "openobserve/openobserve",
|
|
||||||
"version": "v0.30.1",
|
|
||||||
"date": "2025-12-17T17:34:52Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "comfyanonymous/ComfyUI",
|
|
||||||
"version": "v0.5.0",
|
|
||||||
"date": "2025-12-17T16:48:33Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "scanopy/scanopy",
|
|
||||||
"version": "v0.12.2",
|
|
||||||
"date": "2025-12-17T16:01:43Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "semaphoreui/semaphore",
|
|
||||||
"version": "v2.16.47",
|
|
||||||
"date": "2025-12-17T15:36:28Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "NodeBB/NodeBB",
|
|
||||||
"version": "v4.7.1",
|
|
||||||
"date": "2025-12-17T15:18:55Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "n8n-io/n8n",
|
|
||||||
"version": "n8n@1.123.7",
|
|
||||||
"date": "2025-12-17T14:01:25Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "zabbix/zabbix",
|
"name": "zabbix/zabbix",
|
||||||
"version": "7.2.15",
|
"version": "7.0.22",
|
||||||
"date": "2025-12-17T13:25:42Z"
|
"date": "2025-12-17T10:10:49Z"
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "chrisbenincasa/tunarr",
|
|
||||||
"version": "v1.0.5",
|
|
||||||
"date": "2025-12-17T12:48:30Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "bunkerity/bunkerweb",
|
|
||||||
"version": "testing",
|
|
||||||
"date": "2025-12-16T11:13:20Z"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "traefik/traefik",
|
"name": "traefik/traefik",
|
||||||
@ -119,6 +24,11 @@
|
|||||||
"version": "v1.2.2",
|
"version": "v1.2.2",
|
||||||
"date": "2025-12-17T09:07:12Z"
|
"date": "2025-12-17T09:07:12Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "bunkerity/bunkerweb",
|
||||||
|
"version": "v1.6.7-rc1",
|
||||||
|
"date": "2025-12-17T08:57:07Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "zitadel/zitadel",
|
"name": "zitadel/zitadel",
|
||||||
"version": "v4.7.6",
|
"version": "v4.7.6",
|
||||||
@ -130,9 +40,9 @@
|
|||||||
"date": "2025-12-17T08:48:52Z"
|
"date": "2025-12-17T08:48:52Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "meilisearch/meilisearch",
|
"name": "comfyanonymous/ComfyUI",
|
||||||
"version": "prototype-v1.30.1-rebuild-hannoy-graph.0",
|
"version": "v0.5.0",
|
||||||
"date": "2025-12-17T08:38:38Z"
|
"date": "2025-12-17T08:46:11Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "passbolt/passbolt_api",
|
"name": "passbolt/passbolt_api",
|
||||||
@ -149,6 +59,11 @@
|
|||||||
"version": "v11.9.0",
|
"version": "v11.9.0",
|
||||||
"date": "2025-12-17T08:26:50Z"
|
"date": "2025-12-17T08:26:50Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "BerriAI/litellm",
|
||||||
|
"version": "v1.80.10.rc.3",
|
||||||
|
"date": "2025-12-17T07:48:43Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "firefly-iii/firefly-iii",
|
"name": "firefly-iii/firefly-iii",
|
||||||
"version": "v6.4.14",
|
"version": "v6.4.14",
|
||||||
@ -169,6 +84,11 @@
|
|||||||
"version": "v1.0.16",
|
"version": "v1.0.16",
|
||||||
"date": "2025-12-17T04:47:13Z"
|
"date": "2025-12-17T04:47:13Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "metabase/metabase",
|
||||||
|
"version": "v0.58.0-beta",
|
||||||
|
"date": "2025-12-17T03:57:33Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "9001/copyparty",
|
"name": "9001/copyparty",
|
||||||
"version": "v1.19.23",
|
"version": "v1.19.23",
|
||||||
@ -219,16 +139,31 @@
|
|||||||
"version": "v4.4.8",
|
"version": "v4.4.8",
|
||||||
"date": "2025-12-09T16:29:50Z"
|
"date": "2025-12-09T16:29:50Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "goauthentik/authentik",
|
||||||
|
"version": "version/2025.10.3",
|
||||||
|
"date": "2025-12-16T18:00:53Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "crafty-controller/crafty-4",
|
"name": "crafty-controller/crafty-4",
|
||||||
"version": "v4.6.2",
|
"version": "v4.6.2",
|
||||||
"date": "2025-12-16T17:54:19Z"
|
"date": "2025-12-16T17:54:19Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "chrisbenincasa/tunarr",
|
||||||
|
"version": "v1.0.4",
|
||||||
|
"date": "2025-12-16T17:31:11Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "fuma-nama/fumadocs",
|
"name": "fuma-nama/fumadocs",
|
||||||
"version": "fumadocs-mdx@14.1.1",
|
"version": "fumadocs-mdx@14.1.1",
|
||||||
"date": "2025-12-16T15:32:59Z"
|
"date": "2025-12-16T15:32:59Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "meilisearch/meilisearch",
|
||||||
|
"version": "prototype-v1.30.0-support-aws-irsa.2",
|
||||||
|
"date": "2025-12-16T14:35:14Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "jenkinsci/jenkins",
|
"name": "jenkinsci/jenkins",
|
||||||
"version": "jenkins-2.542",
|
"version": "jenkins-2.542",
|
||||||
@ -249,6 +184,11 @@
|
|||||||
"version": "v4.36.2",
|
"version": "v4.36.2",
|
||||||
"date": "2025-12-03T22:46:29Z"
|
"date": "2025-12-03T22:46:29Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "n8n-io/n8n",
|
||||||
|
"version": "n8n@1.123.6",
|
||||||
|
"date": "2025-12-15T14:22:59Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "sabnzbd/sabnzbd",
|
"name": "sabnzbd/sabnzbd",
|
||||||
"version": "4.5.5",
|
"version": "4.5.5",
|
||||||
@ -259,11 +199,26 @@
|
|||||||
"version": "v1.5.3",
|
"version": "v1.5.3",
|
||||||
"date": "2025-09-20T12:12:33Z"
|
"date": "2025-09-20T12:12:33Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "ollama/ollama",
|
||||||
|
"version": "v0.13.4-rc2",
|
||||||
|
"date": "2025-12-16T02:57:20Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "Stirling-Tools/Stirling-PDF",
|
"name": "Stirling-Tools/Stirling-PDF",
|
||||||
"version": "v2.1.4",
|
"version": "v2.1.4",
|
||||||
"date": "2025-12-16T00:02:18Z"
|
"date": "2025-12-16T00:02:18Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "scanopy/scanopy",
|
||||||
|
"version": "v0.12.1",
|
||||||
|
"date": "2025-12-15T22:21:36Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "semaphoreui/semaphore",
|
||||||
|
"version": "v2.16.46",
|
||||||
|
"date": "2025-12-15T22:07:08Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "azukaar/Cosmos-Server",
|
"name": "azukaar/Cosmos-Server",
|
||||||
"version": "v0.19.0",
|
"version": "v0.19.0",
|
||||||
@ -462,18 +417,28 @@
|
|||||||
{
|
{
|
||||||
"name": "mealie-recipes/mealie",
|
"name": "mealie-recipes/mealie",
|
||||||
"version": "v3.7.0",
|
"version": "v3.7.0",
|
||||||
"date": "2025-12-13T01:21:07Z"
|
"date": "2025-12-13T01:20:58Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "paperless-ngx/paperless-ngx",
|
"name": "paperless-ngx/paperless-ngx",
|
||||||
"version": "v2.20.2",
|
"version": "v2.20.2",
|
||||||
"date": "2025-12-12T23:47:48Z"
|
"date": "2025-12-12T23:47:48Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "fccview/jotty",
|
||||||
|
"version": "1.13.1",
|
||||||
|
"date": "2025-12-12T21:34:22Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "mongodb/mongo",
|
"name": "mongodb/mongo",
|
||||||
"version": "r7.0.27",
|
"version": "r7.0.27",
|
||||||
"date": "2025-12-12T20:54:32Z"
|
"date": "2025-12-12T20:54:32Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "influxdata/influxdb",
|
||||||
|
"version": "v2.8.0",
|
||||||
|
"date": "2025-12-12T20:25:00Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "homarr-labs/homarr",
|
"name": "homarr-labs/homarr",
|
||||||
"version": "v1.46.0",
|
"version": "v1.46.0",
|
||||||
@ -494,6 +459,11 @@
|
|||||||
"version": "4.1.2",
|
"version": "4.1.2",
|
||||||
"date": "2025-12-03T16:12:05Z"
|
"date": "2025-12-03T16:12:05Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "openobserve/openobserve",
|
||||||
|
"version": "v0.30.0",
|
||||||
|
"date": "2025-12-12T14:03:52Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "ventoy/Ventoy",
|
"name": "ventoy/Ventoy",
|
||||||
"version": "v1.1.09",
|
"version": "v1.1.09",
|
||||||
@ -514,6 +484,11 @@
|
|||||||
"version": "v8.3.7",
|
"version": "v8.3.7",
|
||||||
"date": "2025-12-12T09:13:40Z"
|
"date": "2025-12-12T09:13:40Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "coder/code-server",
|
||||||
|
"version": "v4.106.3",
|
||||||
|
"date": "2025-12-01T22:06:12Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "theonedev/onedev",
|
"name": "theonedev/onedev",
|
||||||
"version": "v13.1.5",
|
"version": "v13.1.5",
|
||||||
@ -729,6 +704,11 @@
|
|||||||
"version": "v3.3.0",
|
"version": "v3.3.0",
|
||||||
"date": "2025-12-06T06:18:23Z"
|
"date": "2025-12-06T06:18:23Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "HydroshieldMKII/Guardian",
|
||||||
|
"version": "v1.3.1",
|
||||||
|
"date": "2025-12-05T19:12:48Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "community-scripts/ProxmoxVE-Local",
|
"name": "community-scripts/ProxmoxVE-Local",
|
||||||
"version": "v0.5.2",
|
"version": "v0.5.2",
|
||||||
@ -739,6 +719,11 @@
|
|||||||
"version": "flowise@3.0.12",
|
"version": "flowise@3.0.12",
|
||||||
"date": "2025-12-05T15:02:01Z"
|
"date": "2025-12-05T15:02:01Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "emqx/emqx",
|
||||||
|
"version": "e6.1.0-streams.1",
|
||||||
|
"date": "2025-12-05T12:27:36Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "transmission/transmission",
|
"name": "transmission/transmission",
|
||||||
"version": "4.0.1-beta.1",
|
"version": "4.0.1-beta.1",
|
||||||
@ -949,6 +934,11 @@
|
|||||||
"version": "v0.9.101",
|
"version": "v0.9.101",
|
||||||
"date": "2025-11-26T17:14:35Z"
|
"date": "2025-11-26T17:14:35Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "NodeBB/NodeBB",
|
||||||
|
"version": "v4.7.0",
|
||||||
|
"date": "2025-11-26T16:59:45Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "NLnetLabs/unbound",
|
"name": "NLnetLabs/unbound",
|
||||||
"version": "release-1.24.2",
|
"version": "release-1.24.2",
|
||||||
@ -1049,6 +1039,11 @@
|
|||||||
"version": "5.12.0",
|
"version": "5.12.0",
|
||||||
"date": "2025-11-20T06:18:58Z"
|
"date": "2025-11-20T06:18:58Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "immich-app/immich",
|
||||||
|
"version": "v2.3.1",
|
||||||
|
"date": "2025-11-20T03:10:27Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "nextcloud/nextcloudpi",
|
"name": "nextcloud/nextcloudpi",
|
||||||
"version": "v1.56.0",
|
"version": "v1.56.0",
|
||||||
@ -1184,6 +1179,11 @@
|
|||||||
"version": "v0.9.1",
|
"version": "v0.9.1",
|
||||||
"date": "2025-11-06T02:26:53Z"
|
"date": "2025-11-06T02:26:53Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "javedh-dev/tracktor",
|
||||||
|
"version": "0.5.1",
|
||||||
|
"date": "2025-11-05T16:14:37Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "getumbrel/umbrel",
|
"name": "getumbrel/umbrel",
|
||||||
"version": "1.5.0",
|
"version": "1.5.0",
|
||||||
|
|||||||
@ -21,8 +21,13 @@ $STD sh <(curl -fsSL https://get.docker.com)
|
|||||||
systemctl enable -q --now docker
|
systemctl enable -q --now docker
|
||||||
msg_ok "Installed Docker"
|
msg_ok "Installed Docker"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "wings" "pterodactyl/wings" "singlefile" "latest" "/usr/local/bin" "wings_linux_amd64"
|
msg_info "Installing Pterodactyl Wings"
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/pterodactyl/wings/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
curl -fsSL "https://github.com/pterodactyl/wings/releases/download/v${RELEASE}/wings_linux_amd64" -o "/usr/local/bin/wings"
|
||||||
|
chmod u+x /usr/local/bin/wings
|
||||||
mkdir -p /etc/pterodactyl
|
mkdir -p /etc/pterodactyl
|
||||||
|
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||||
|
msg_ok "Installed Pterodactyl Wings"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/systemd/system/wings.service
|
cat <<EOF >/etc/systemd/system/wings.service
|
||||||
|
|||||||
@ -16,12 +16,13 @@ update_os
|
|||||||
fetch_and_deploy_gh_release "qdrant" "qdrant/qdrant" "binary" "latest" "/usr/bin/qdrant"
|
fetch_and_deploy_gh_release "qdrant" "qdrant/qdrant" "binary" "latest" "/usr/bin/qdrant"
|
||||||
|
|
||||||
msg_info "Creating Qdrant Configuration"
|
msg_info "Creating Qdrant Configuration"
|
||||||
|
mkdir -p /var/lib/qdrant/storage
|
||||||
|
mkdir -p /var/lib/qdrant/snapshots
|
||||||
mkdir -p /etc/qdrant
|
mkdir -p /etc/qdrant
|
||||||
mkdir -p /var/lib/qdrant/{storage,snapshots}
|
|
||||||
chown -R root:root /var/lib/qdrant
|
chown -R root:root /var/lib/qdrant
|
||||||
chmod -R 755 /var/lib/qdrant
|
chmod -R 755 /var/lib/qdrant
|
||||||
|
|
||||||
cat <<EOF >/etc/qdrant/config.yaml
|
cat >/etc/qdrant/config.yaml <<EOF
|
||||||
log_level: INFO
|
log_level: INFO
|
||||||
|
|
||||||
storage:
|
storage:
|
||||||
@ -37,7 +38,7 @@ EOF
|
|||||||
msg_ok "Created Qdrant Configuration"
|
msg_ok "Created Qdrant Configuration"
|
||||||
|
|
||||||
msg_info "Creating Qdrant Service"
|
msg_info "Creating Qdrant Service"
|
||||||
cat <<EOF >/etc/systemd/system/qdrant.service
|
cat >/etc/systemd/system/qdrant.service <<EOF
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Qdrant Vector Search Engine
|
Description=Qdrant Vector Search Engine
|
||||||
After=network-online.target
|
After=network-online.target
|
||||||
|
|||||||
@ -15,34 +15,51 @@ network_check
|
|||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt install -y apt-transport-https
|
$STD apt install -y \
|
||||||
|
lsb-release \
|
||||||
|
apt-transport-https \
|
||||||
|
make
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
setup_deb822_repo \
|
msg_info "Adding RabbitMQ signing key"
|
||||||
"rabbitmq" \
|
curl -fsSL "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" | gpg --dearmor >/usr/share/keyrings/com.rabbitmq.team.gpg
|
||||||
"https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" \
|
msg_ok "Signing keys added"
|
||||||
"https://deb1.rabbitmq.com/rabbitmq-server/debian/trixie" \
|
|
||||||
"trixie"
|
|
||||||
|
|
||||||
msg_info "Setting up RabbitMQ"
|
msg_info "Adding RabbitMQ repository"
|
||||||
$STD apt install -y \
|
cat <<EOF >/etc/apt/sources.list.d/rabbitmq.list
|
||||||
erlang-base erlang-asn1 erlang-crypto erlang-eldap erlang-ftp \
|
## Modern Erlang/OTP releases
|
||||||
erlang-inets erlang-mnesia erlang-os-mon erlang-parsetools \
|
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb1.rabbitmq.com/rabbitmq-erlang/debian/bookworm bookworm main
|
||||||
erlang-public-key erlang-runtime-tools erlang-snmp erlang-ssl \
|
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb2.rabbitmq.com/rabbitmq-erlang/debian/bookworm bookworm main
|
||||||
erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl
|
|
||||||
$STD apt install -y --fix-missing rabbitmq-server
|
|
||||||
msg_ok "Setup RabbitMQ "
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
## Provides modern RabbitMQ releases
|
||||||
|
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb1.rabbitmq.com/rabbitmq-server/debian/bookworm bookworm main
|
||||||
|
deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb2.rabbitmq.com/rabbitmq-server/debian/bookworm bookworm main
|
||||||
|
EOF
|
||||||
|
msg_ok "RabbitMQ repository added"
|
||||||
|
|
||||||
|
msg_info "Updating package list"
|
||||||
|
$STD apt update -y
|
||||||
|
msg_ok "Package list updated"
|
||||||
|
|
||||||
|
msg_info "Installing Erlang & RabbitMQ server"
|
||||||
|
$STD apt install -y erlang-base \
|
||||||
|
erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets \
|
||||||
|
erlang-mnesia erlang-os-mon erlang-parsetools erlang-public-key \
|
||||||
|
erlang-runtime-tools erlang-snmp erlang-ssl \
|
||||||
|
erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl \
|
||||||
|
rabbitmq-server
|
||||||
|
msg_ok "RabbitMQ server installed"
|
||||||
|
|
||||||
|
msg_info "Starting RabbitMQ service"
|
||||||
systemctl enable -q --now rabbitmq-server
|
systemctl enable -q --now rabbitmq-server
|
||||||
msg_ok "Started Service"
|
msg_ok "RabbitMQ service started"
|
||||||
|
|
||||||
msg_info "Enabling RabbitMQ Management Plugin"
|
msg_info "Enabling RabbitMQ management plugin"
|
||||||
$STD rabbitmq-plugins enable rabbitmq_management
|
$STD rabbitmq-plugins enable rabbitmq_management
|
||||||
$STD rabbitmqctl enable_feature_flag all
|
$STD rabbitmqctl enable_feature_flag all
|
||||||
msg_ok "Enabled RabbitMQ Management Plugin"
|
msg_ok "RabbitMQ management plugin enabled"
|
||||||
|
|
||||||
msg_info "Creating User"
|
msg_info "Create User"
|
||||||
$STD rabbitmqctl add_user proxmox proxmox
|
$STD rabbitmqctl add_user proxmox proxmox
|
||||||
$STD rabbitmqctl set_user_tags proxmox administrator
|
$STD rabbitmqctl set_user_tags proxmox administrator
|
||||||
$STD rabbitmqctl set_permissions -p / proxmox ".*" ".*" ".*"
|
$STD rabbitmqctl set_permissions -p / proxmox ".*" ".*" ".*"
|
||||||
|
|||||||
@ -13,21 +13,20 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing ASP.NET Core Runtime"
|
||||||
setup_deb822_repo \
|
curl -fsSL "https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb" -o packages-microsoft-prod.deb
|
||||||
"microsoft" \
|
$STD dpkg -i packages-microsoft-prod.deb
|
||||||
"https://packages.microsoft.com/keys/microsoft-2025.asc" \
|
$STD apt update
|
||||||
"https://packages.microsoft.com/debian/13/prod/" \
|
$STD apt install -y dotnet-sdk-9.0
|
||||||
"trixie"
|
msg_ok "Installed ASP.NET Core Runtime"
|
||||||
$STD apt install -y aspnetcore-runtime-9.0
|
|
||||||
msg_ok "Installed Dependencies"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "rdt-client" "rogerfar/rdt-client" "prebuild" "latest" "/opt/rdtc" "RealDebridClient.zip"
|
fetch_and_deploy_gh_release "rdt-client" "rogerfar/rdt-client" "prebuild" "latest" "/opt/rdtc" "RealDebridClient.zip"
|
||||||
|
|
||||||
msg_info "Setting up rdtclient"
|
msg_info "Configuring rdtclient"
|
||||||
cd /opt/rdtc
|
cd /opt/rdtc
|
||||||
mkdir -p data/{db,downloads}
|
mkdir -p data/{db,downloads}
|
||||||
sed -i 's#/data/db/#/opt/rdtc&#g' /opt/rdtc/appsettings.json
|
sed -i 's#/data/db/#/opt/rdtc&#g' /opt/rdtc/appsettings.json
|
||||||
|
rm -f ~/packages-microsoft-prod.deb
|
||||||
msg_ok "Configured rdtclient"
|
msg_ok "Configured rdtclient"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
@ -44,7 +43,7 @@ User=root
|
|||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
systemctl enable -q --now rdtc
|
$STD systemctl enable -q --now rdtc
|
||||||
msg_ok "Created Service"
|
msg_ok "Created Service"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
|
|||||||
@ -19,19 +19,30 @@ curl -fsSL https://dl.min.io/server/minio/release/linux-amd64/minio.deb -o minio
|
|||||||
$STD dpkg -i minio.deb
|
$STD dpkg -i minio.deb
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
import_local_ip
|
|
||||||
PG_VERSION="16" setup_postgresql
|
PG_VERSION="16" setup_postgresql
|
||||||
PG_DB_NAME="rxresume" PG_DB_USER="rxresume" PG_DB_GRANT_SUPERUSER="true" setup_postgresql_db
|
NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs
|
||||||
NODE_VERSION="24" NODE_MODULE="pnpm@latest" setup_nodejs
|
|
||||||
fetch_and_deploy_gh_release "Reactive-Resume" "lazy-media/Reactive-Resume"
|
msg_info "Setting up Database"
|
||||||
|
DB_USER="rxresume"
|
||||||
|
DB_NAME="rxresume"
|
||||||
|
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
||||||
|
$STD sudo -u postgres psql -c "CREATE USER $DB_USER WITH ENCRYPTED PASSWORD '$DB_PASS';"
|
||||||
|
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;"
|
||||||
|
$STD sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE $DB_NAME to $DB_USER;"
|
||||||
|
$STD sudo -u postgres psql -c "ALTER USER $DB_USER WITH SUPERUSER;"
|
||||||
|
msg_ok "Set up Database"
|
||||||
|
|
||||||
msg_info "Setting up Reactive-Resume"
|
|
||||||
MINIO_PASS=$(openssl rand -base64 48)
|
MINIO_PASS=$(openssl rand -base64 48)
|
||||||
ACCESS_TOKEN=$(openssl rand -base64 48)
|
ACCESS_TOKEN=$(openssl rand -base64 48)
|
||||||
REFRESH_TOKEN=$(openssl rand -base64 48)
|
REFRESH_TOKEN=$(openssl rand -base64 48)
|
||||||
CHROME_TOKEN=$(openssl rand -hex 32)
|
CHROME_TOKEN=$(openssl rand -hex 32)
|
||||||
|
LOCAL_IP=$(hostname -I | awk '{print $1}')
|
||||||
TAG=$(curl -fsSL https://api.github.com/repos/browserless/browserless/tags?per_page=1 | grep "name" | awk '{print substr($2, 3, length($2)-4) }')
|
TAG=$(curl -fsSL https://api.github.com/repos/browserless/browserless/tags?per_page=1 | grep "name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
cd /opt/Reactive-Resume
|
|
||||||
|
fetch_and_deploy_gh_release "Reactive-Resume" "lazy-media/Reactive-Resume"
|
||||||
|
|
||||||
|
msg_info "Installing $APPLICATION"
|
||||||
|
cd /opt/"$APPLICATION"
|
||||||
export CI="true"
|
export CI="true"
|
||||||
export PUPPETEER_SKIP_DOWNLOAD="true"
|
export PUPPETEER_SKIP_DOWNLOAD="true"
|
||||||
export NODE_ENV="production"
|
export NODE_ENV="production"
|
||||||
@ -39,7 +50,7 @@ export NEXT_TELEMETRY_DISABLED=1
|
|||||||
$STD pnpm install --frozen-lockfile
|
$STD pnpm install --frozen-lockfile
|
||||||
$STD pnpm run build
|
$STD pnpm run build
|
||||||
$STD pnpm run prisma:generate
|
$STD pnpm run prisma:generate
|
||||||
msg_ok "Setup Reactive-Resume"
|
msg_ok "Installed $APPLICATION"
|
||||||
|
|
||||||
msg_info "Installing Browserless (Patience)"
|
msg_info "Installing Browserless (Patience)"
|
||||||
cd /tmp
|
cd /tmp
|
||||||
@ -65,14 +76,13 @@ MINIO_ROOT_PASSWORD="${MINIO_PASS}"
|
|||||||
MINIO_VOLUMES=/opt/minio
|
MINIO_VOLUMES=/opt/minio
|
||||||
MINIO_OPTS="--address :9000 --console-address 127.0.0.1:9001"
|
MINIO_OPTS="--address :9000 --console-address 127.0.0.1:9001"
|
||||||
EOF
|
EOF
|
||||||
|
cat <<EOF >/opt/"$APPLICATION"/.env
|
||||||
cat <<EOF >/opt/Reactive-Resume/.env
|
|
||||||
NODE_ENV=production
|
NODE_ENV=production
|
||||||
PORT=3000
|
PORT=3000
|
||||||
# for use behind a reverse proxy, use your FQDN for PUBLIC_URL and STORAGE_URL
|
# for use behind a reverse proxy, use your FQDN for PUBLIC_URL and STORAGE_URL
|
||||||
PUBLIC_URL=http://${LOCAL_IP}:3000
|
PUBLIC_URL=http://${LOCAL_IP}:3000
|
||||||
STORAGE_URL=http://${LOCAL_IP}:9000/rxresume
|
STORAGE_URL=http://${LOCAL_IP}:9000/rxresume
|
||||||
DATABASE_URL=postgresql://${PG_DB_USER}:${PG_DB_PASS}@localhost:5432/${PG_DB_NAME}?schema=public
|
DATABASE_URL=postgresql://${DB_USER}:${DB_PASS}@localhost:5432/${DB_NAME}?schema=public
|
||||||
ACCESS_TOKEN_SECRET=${ACCESS_TOKEN}
|
ACCESS_TOKEN_SECRET=${ACCESS_TOKEN}
|
||||||
REFRESH_TOKEN_SECRET=${REFRESH_TOKEN}
|
REFRESH_TOKEN_SECRET=${REFRESH_TOKEN}
|
||||||
CHROME_PORT=8080
|
CHROME_PORT=8080
|
||||||
@ -100,13 +110,19 @@ STORAGE_SKIP_BUCKET_CHECK=false
|
|||||||
# GOOGLE_CLIENT_SECRET=
|
# GOOGLE_CLIENT_SECRET=
|
||||||
# GOOGLE_CALLBACK_URL=http://localhost:5173/api/auth/google/callback
|
# GOOGLE_CALLBACK_URL=http://localhost:5173/api/auth/google/callback
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
cat <<EOF >/opt/browserless/.env
|
cat <<EOF >/opt/browserless/.env
|
||||||
DEBUG=browserless*,-**:verbose
|
DEBUG=browserless*,-**:verbose
|
||||||
HOST=localhost
|
HOST=localhost
|
||||||
PORT=8080
|
PORT=8080
|
||||||
TOKEN=${CHROME_TOKEN}
|
TOKEN=${CHROME_TOKEN}
|
||||||
EOF
|
EOF
|
||||||
|
{
|
||||||
|
echo "${APPLICATION} Credentials"
|
||||||
|
echo "Database User: $DB_USER"
|
||||||
|
echo "Database Password: $DB_PASS"
|
||||||
|
echo "Database Name: $DB_NAME"
|
||||||
|
echo "Minio Root Password: ${MINIO_PASS}"
|
||||||
|
} >>~/"$APPLICATION".creds
|
||||||
rm -f /tmp/v"$TAG".zip
|
rm -f /tmp/v"$TAG".zip
|
||||||
rm -f /tmp/minio.deb
|
rm -f /tmp/minio.deb
|
||||||
msg_ok "Configured applications"
|
msg_ok "Configured applications"
|
||||||
@ -121,15 +137,15 @@ WorkingDirectory=/usr/local/bin
|
|||||||
EnvironmentFile=/opt/minio/.env
|
EnvironmentFile=/opt/minio/.env
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
cat <<EOF >/etc/systemd/system/Reactive-Resume.service
|
cat <<EOF >/etc/systemd/system/"$APPLICATION".service
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Reactive-Resume Service
|
Description=${APPLICATION} Service
|
||||||
After=network.target postgresql.service minio.service
|
After=network.target postgresql.service minio.service
|
||||||
Wants=postgresql.service minio.service
|
Wants=postgresql.service minio.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
WorkingDirectory=/opt/Reactive-Resume
|
WorkingDirectory=/opt/${APPLICATION}
|
||||||
EnvironmentFile=/opt/Reactive-Resume/.env
|
EnvironmentFile=/opt/${APPLICATION}/.env
|
||||||
ExecStart=/usr/bin/pnpm run start
|
ExecStart=/usr/bin/pnpm run start
|
||||||
Restart=always
|
Restart=always
|
||||||
|
|
||||||
@ -140,7 +156,7 @@ EOF
|
|||||||
cat <<EOF >/etc/systemd/system/browserless.service
|
cat <<EOF >/etc/systemd/system/browserless.service
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Browserless service
|
Description=Browserless service
|
||||||
After=network.target Reactive-Resume.service
|
After=network.target ${APPLICATION}.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
WorkingDirectory=/opt/browserless
|
WorkingDirectory=/opt/browserless
|
||||||
@ -152,7 +168,7 @@ Restart=unless-stopped
|
|||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
systemctl enable -q --now minio.service Reactive-Resume.service browserless.service
|
systemctl enable -q --now minio.service "$APPLICATION".service browserless.service
|
||||||
msg_ok "Created Services"
|
msg_ok "Created Services"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
|
|||||||
@ -14,22 +14,25 @@ network_check
|
|||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt install -y apt-transport-https
|
$STD apt install -y \
|
||||||
|
apt-transport-https \
|
||||||
|
lsb-release
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Setting up Redis Repository"
|
msg_info "Installing Redis"
|
||||||
setup_deb822_repo \
|
curl -fsSL "https://packages.redis.io/gpg" | gpg --dearmor >/usr/share/keyrings/redis-archive-keyring.gpg
|
||||||
"redis" \
|
cat <<EOF >/etc/apt/sources.list.d/redis.sources
|
||||||
"https://packages.redis.io/gpg" \
|
Types: deb
|
||||||
"https://packages.redis.io/deb" \
|
URIs: https://packages.redis.io/deb
|
||||||
"trixie"
|
Suites: $(lsb_release -cs)
|
||||||
msg_ok "Setup Redis Repository"
|
Components: main
|
||||||
|
Signed-By: /usr/share/keyrings/redis-archive-keyring.gpg
|
||||||
msg_info "Setting up Redis"
|
EOF
|
||||||
|
$STD apt update
|
||||||
$STD apt install -y redis
|
$STD apt install -y redis
|
||||||
sed -i 's/^bind .*/bind 0.0.0.0/' /etc/redis/redis.conf
|
sed -i 's/^bind .*/bind 0.0.0.0/' /etc/redis/redis.conf
|
||||||
systemctl enable -q --now redis-server
|
systemctl enable -q --now redis-server
|
||||||
msg_ok "Setup Redis"
|
msg_ok "Installed Redis"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
|
|||||||
@ -23,7 +23,25 @@ msg_ok "Installed Dependencies"
|
|||||||
|
|
||||||
JAVA_VERSION="24" setup_java
|
JAVA_VERSION="24" setup_java
|
||||||
PG_VERSION="17" PG_MODULES="postgis" setup_postgresql
|
PG_VERSION="17" PG_MODULES="postgis" setup_postgresql
|
||||||
PG_DB_NAME="reitti_db" PG_DB_USER="reitti" setup_postgresql_db
|
|
||||||
|
msg_info "Setting up PostgreSQL"
|
||||||
|
DB_NAME="reitti_db"
|
||||||
|
DB_USER="reitti"
|
||||||
|
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 ENCODING 'UTF8' TEMPLATE template0;"
|
||||||
|
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';"
|
||||||
|
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';"
|
||||||
|
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC';"
|
||||||
|
$STD sudo -u postgres psql -d "$DB_NAME" -c "CREATE EXTENSION IF NOT EXISTS postgis;"
|
||||||
|
$STD sudo -u postgres psql -d "$DB_NAME" -c "CREATE EXTENSION IF NOT EXISTS postgis_topology;"
|
||||||
|
{
|
||||||
|
echo "Reitti Credentials"
|
||||||
|
echo "Database Name: $DB_NAME"
|
||||||
|
echo "Database User: $DB_USER"
|
||||||
|
echo "Database Password: $DB_PASS"
|
||||||
|
} >>~/reitti.creds
|
||||||
|
msg_ok "PostgreSQL Setup Completed"
|
||||||
|
|
||||||
msg_info "Configuring RabbitMQ"
|
msg_info "Configuring RabbitMQ"
|
||||||
RABBIT_USER="reitti"
|
RABBIT_USER="reitti"
|
||||||
@ -53,9 +71,9 @@ cat <<EOF >/opt/reitti/application.properties
|
|||||||
reitti.server.advertise-uri=http://127.0.0.1:8080
|
reitti.server.advertise-uri=http://127.0.0.1:8080
|
||||||
|
|
||||||
# PostgreSQL Database Connection
|
# PostgreSQL Database Connection
|
||||||
spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/$PG_DB_NAME
|
spring.datasource.url=jdbc:postgresql://127.0.0.1:5432/$DB_NAME
|
||||||
spring.datasource.username=$PG_DB_USER
|
spring.datasource.username=$DB_USER
|
||||||
spring.datasource.password=$PG_DB_PASS
|
spring.datasource.password=$DB_PASS
|
||||||
spring.datasource.driver-class-name=org.postgresql.Driver
|
spring.datasource.driver-class-name=org.postgresql.Driver
|
||||||
|
|
||||||
# Flyway Database Migrations
|
# Flyway Database Migrations
|
||||||
@ -114,7 +132,7 @@ Restart=on-failure
|
|||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
cat <<EOF >/etc/systemd/system/photon.service
|
cat <<'EOF' >/etc/systemd/system/photon.service
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Photon Geocoding Service (Germany, OpenSearch)
|
Description=Photon Geocoding Service (Germany, OpenSearch)
|
||||||
After=network.target
|
After=network.target
|
||||||
|
|||||||
@ -14,13 +14,16 @@ network_check
|
|||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Setting up Resilio Sync Repository"
|
msg_info "Setting up Resilio Sync Repository"
|
||||||
setup_deb822_repo \
|
curl -fsSL "https://linux-packages.resilio.com/resilio-sync/key.asc" >/usr/share/keyrings/resilio-sync-archive-keyring.asc
|
||||||
"resilio" \
|
cat <<EOF >/etc/apt/sources.list.d/resilio-sync.sources
|
||||||
"https://linux-packages.resilio.com/resilio-sync/key.asc" \
|
Types: deb
|
||||||
"http://linux-packages.resilio.com/resilio-sync/deb" \
|
URIs: http://linux-packages.resilio.com/resilio-sync/deb
|
||||||
"resilio-sync" \
|
Suites: resilio-sync
|
||||||
"non-free"
|
Components: non-free
|
||||||
msg_ok "Setup Resilio Sync Repository"
|
Signed-By: /usr/share/keyrings/resilio-sync-archive-keyring.asc
|
||||||
|
EOF
|
||||||
|
$STD apt update
|
||||||
|
msg_ok "Resilio Sync Repository Setup"
|
||||||
|
|
||||||
msg_info "Installing Resilio Sync"
|
msg_info "Installing Resilio Sync"
|
||||||
$STD apt install -y resilio-sync
|
$STD apt install -y resilio-sync
|
||||||
|
|||||||
@ -13,16 +13,19 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Setting up Salt Repo"
|
msg_info "Installing Dependencies"
|
||||||
setup_deb822_repo \
|
$STD apt install -y jq
|
||||||
"salt" \
|
msg_ok "Installed Dependencies"
|
||||||
"https://packages.broadcom.com/artifactory/api/security/keypair/SaltProjectKey/public" \
|
|
||||||
"https://packages.broadcom.com/artifactory/saltproject-deb" \
|
msg_info "Setup Salt Repo"
|
||||||
"stable"
|
mkdir -p /etc/apt/keyrings
|
||||||
|
curl -fsSL https://packages.broadcom.com/artifactory/api/security/keypair/SaltProjectKey/public -o /etc/apt/keyrings/salt-archive-keyring.pgp
|
||||||
|
curl -fsSL https://github.com/saltstack/salt-install-guide/releases/latest/download/salt.sources -o /etc/apt/sources.list.d/salt.sources
|
||||||
|
$STD apt update
|
||||||
msg_ok "Setup Salt Repo"
|
msg_ok "Setup Salt Repo"
|
||||||
|
|
||||||
msg_info "Installing Salt"
|
msg_info "Installing Salt"
|
||||||
RELEASE=$(get_latest_github_release "saltstack/salt")
|
RELEASE=$(curl -fsSL https://api.github.com/repos/saltstack/salt/releases/latest | jq -r .tag_name | sed 's/^v//')
|
||||||
cat <<EOF >/etc/apt/preferences.d/salt-pin-1001
|
cat <<EOF >/etc/apt/preferences.d/salt-pin-1001
|
||||||
Package: salt-*
|
Package: salt-*
|
||||||
Pin: version ${RELEASE}
|
Pin: version ${RELEASE}
|
||||||
|
|||||||
@ -15,15 +15,22 @@ update_os
|
|||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
$STD apt install -y git
|
$STD apt install -y git
|
||||||
setup_deb822_repo \
|
|
||||||
"ansible" \
|
|
||||||
"https://keyserver.ubuntu.com/pks/lookup?fingerprint=on&op=get&search=0x6125E2A8C77F2818FB7BD15B93C4A3FD7BB9C367" \
|
|
||||||
"http://ppa.launchpad.net/ansible/ansible/ubuntu" \
|
|
||||||
"jammy"
|
|
||||||
$STD apt install -y ansible
|
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "semaphore" "semaphoreui/semaphore" "binary" "latest" "/opt/semaphore" "semaphore_*_linux_amd64.deb"
|
msg_info "Setting up Ansible"
|
||||||
|
curl -fsSL "https://keyserver.ubuntu.com/pks/lookup?fingerprint=on&op=get&search=0x6125E2A8C77F2818FB7BD15B93C4A3FD7BB9C367" | gpg --dearmor -o /usr/share/keyrings/ansible-archive-keyring.gpg
|
||||||
|
cat <<EOF >/etc/apt/sources.list.d/ansible.sources
|
||||||
|
Types: deb
|
||||||
|
URIs: http://ppa.launchpad.net/ansible/ansible/ubuntu
|
||||||
|
Suites: jammy
|
||||||
|
Components: main
|
||||||
|
Signed-By: /usr/share/keyrings/ansible-archive-keyring.gpg
|
||||||
|
EOF
|
||||||
|
$STD apt update
|
||||||
|
$STD apt install -y ansible
|
||||||
|
msg_ok "Set up Ansible"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "semaphore" "semaphoreui/semaphore" "binary"
|
||||||
|
|
||||||
msg_info "Configuring Semaphore"
|
msg_info "Configuring Semaphore"
|
||||||
mkdir -p /opt/semaphore
|
mkdir -p /opt/semaphore
|
||||||
@ -63,6 +70,7 @@ RestartSec=10s
|
|||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
systemctl enable -q --now semaphore
|
systemctl enable -q --now semaphore
|
||||||
msg_ok "Created Service"
|
msg_ok "Created Service"
|
||||||
|
|
||||||
|
|||||||
@ -71,6 +71,8 @@ SESSION_LIFETIME=120
|
|||||||
|
|
||||||
SPEEDTEST_SCHEDULE="0 */6 * * *"
|
SPEEDTEST_SCHEDULE="0 */6 * * *"
|
||||||
SPEEDTEST_SERVERS=
|
SPEEDTEST_SERVERS=
|
||||||
|
SPEEDTEST_EXTERNAL_IP_URL=https://ipecho.net/plain
|
||||||
|
SPEEDTEST_INTERNET_CHECK_HOSTNAME=1.1.1.1
|
||||||
PRUNE_RESULTS_OLDER_THAN=0
|
PRUNE_RESULTS_OLDER_THAN=0
|
||||||
|
|
||||||
DISPLAY_TIMEZONE=${TIMEZONE}
|
DISPLAY_TIMEZONE=${TIMEZONE}
|
||||||
|
|||||||
@ -13,17 +13,27 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Setting up Telegraf repository"
|
msg_info "Adding Telegraf key and repository"
|
||||||
setup_deb822_repo \
|
curl -fsSL -O https://repos.influxdata.com/influxdata-archive.key
|
||||||
"telegraf" \
|
gpg --show-keys --with-fingerprint --with-colons ./influxdata-archive.key 2>&1 |
|
||||||
"https://repos.influxdata.com/influxdata-archive.key" \
|
grep -q '^fpr:\+24C975CBA61A024EE1B631787C3D57159FC2F927:$' &&
|
||||||
"https://repos.influxdata.com/debian" \
|
cat influxdata-archive.key |
|
||||||
"stable"
|
gpg --dearmor |
|
||||||
msg_ok "Setup Telegraf Repository"
|
tee /etc/apt/keyrings/influxdata-archive.gpg >/dev/null
|
||||||
|
cat <<EOF | sudo tee /etc/apt/sources.list.d/influxdata.sources >/dev/null
|
||||||
|
Types: deb
|
||||||
|
URIs: https://repos.influxdata.com/debian
|
||||||
|
Suites: stable
|
||||||
|
Components: main
|
||||||
|
Signed-By: /etc/apt/keyrings/influxdata-archive.gpg
|
||||||
|
EOF
|
||||||
|
msg_ok "Added Telegraf Repository"
|
||||||
|
|
||||||
msg_info "Setting up Telegraf"
|
msg_info "Installing Telegraf"
|
||||||
$STD apt install -y telegraf
|
$STD apt update
|
||||||
msg_ok "Setup Telegraf"
|
$STD apt install telegraf -y
|
||||||
|
rm /influxdata-archive.key
|
||||||
|
msg_ok "Installed Telegraf"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
|
|||||||
Reference in New Issue
Block a user