Compare commits

..

1 Commits

24 changed files with 330 additions and 246 deletions

View File

@ -18,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
@ -26,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

View File

@ -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
} }

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -27,9 +27,9 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
msg_info "Updating Resilio Sync" msg_info "Updating ${APP} LXC"
$STD apt update $STD apt update
$STD apt upgrade -y $STD apt -y upgrade
msg_ok "Updated successfully!" msg_ok "Updated successfully!"
exit exit
} }

View File

@ -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
} }

View File

@ -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

View File

@ -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"

View File

@ -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": [
{ {

View File

@ -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",

View File

@ -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

View File

@ -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

View File

@ -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 ".*" ".*" ".*"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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}

View File

@ -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"

View File

@ -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}

View File

@ -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