Compare commits

...

11 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
b6e15d256d Update CHANGELOG.md (#17619)
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-30 17:41:11 +00:00
push-app-to-main[bot]
2cf1457d70 Add shoko (ct) (#17617)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2026-09-30 19:40:34 +02:00
community-scripts-pr-app[bot]
7b6c174668 Update .app files (#17615)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-09-30 19:35:39 +02:00
community-scripts-pr-app[bot]
d48d21eff8 Update CHANGELOG.md (#17616)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-30 17:33:42 +00:00
push-app-to-main[bot]
413731eeaf Add silo (ct) (#17614)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2026-09-30 19:33:13 +02:00
community-scripts-pr-app[bot]
f4025da0dd Update CHANGELOG.md (#17613)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-30 17:30:07 +00:00
community-scripts-pr-app[bot]
2e923bc985 Update CHANGELOG.md (#17611)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-30 17:24:24 +00:00
community-scripts-pr-app[bot]
800c4a0297 Update CHANGELOG.md (#17609)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-30 17:15:33 +00:00
community-scripts-pr-app[bot]
f1c82c084b Update CHANGELOG.md (#17608)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-30 17:15:10 +00:00
Fidel Ramos
f0459bef32 fix(blocky): restart on failure and wait for network-online (#17601)
The systemd service unit created by install/blocky-install.sh has
After=network.target and no restart policy. On a container where blocky
binds to a static IP and the interface is not yet configured when the
unit starts, blocky exits once with "bind: cannot assign requested
address" and stays dead. This was observed on Debian 13 LXC / PVE 9
after a host reboot: internal DNS was down until a manual restart.

Two fixes:

1. [Unit] After=/Wants=network-online.target: standard ordering,
prevents the start before the network is usable where a wait-online
provider exists.

2. [Service] Restart=on-failure + RestartSec=5: matches the existing
Restart=on-failure in install/traefik-install.sh; the 5s spacing also
overrides systemd's default start-rate limit (5 starts / 10 s) from
ending retries.

Verification:

1. Container reboot → blocky active with no manual intervention

2. SIGKILL → auto-restart within the restart interval

Co-authored-by: Fidel Ramos <contact.gyldd@8shield.net>
2026-09-30 19:15:06 +02:00
Tom Frenzel
311779b75b SparkyFitness: update sed replacement (#17604)
* fix(sparkyfitness): update sed replacement

* fix(sparkyfitness): remove custom backup/upload directory
2026-09-30 19:14:35 +02:00
8 changed files with 243 additions and 9 deletions

View File

@@ -549,6 +549,25 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
</details>
## 2026-09-30
### 🆕 New Scripts
- Shoko ([#17617](https://github.com/community-scripts/ProxmoxVE/pull/17617))
- SIlo ([#17614](https://github.com/community-scripts/ProxmoxVE/pull/17614))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- fix(blocky): restart on failure and wait for network-online [@haplo](https://github.com/haplo) ([#17601](https://github.com/community-scripts/ProxmoxVE/pull/17601))
- SparkyFitness: update sed replacement [@tomfrenzel](https://github.com/tomfrenzel) ([#17604](https://github.com/community-scripts/ProxmoxVE/pull/17604))
### 💾 Core
- vm: autologin on the serial console for images without cloud-init [@MickLesk](https://github.com/MickLesk) ([core#80](https://github.com/community-scripts/core/pull/80))
- download_gpg_key: make dearmored keyrings world-readable [@MickLesk](https://github.com/MickLesk) ([core#79](https://github.com/community-scripts/core/pull/79))
## 2026-09-29
### 🆕 New Scripts

6
ct/headers/silo Normal file
View File

@@ -0,0 +1,6 @@
_____ _ __
/ ___/(_) /___
\__ \/ / / __ \
___/ / / / /_/ /
/____/_/_/\____/

57
ct/shoko.sh Normal file
View File

@@ -0,0 +1,57 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/ShokoAnime/ShokoServer
APP="Shoko"
var_tags="${var_tags:-media;anime}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-10}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-no}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/shoko ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "shoko" "ShokoAnime/ShokoServer"; then
msg_info "Stopping Service"
systemctl stop shoko
msg_ok "Stopped Service"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "shoko" "ShokoAnime/ShokoServer" "prebuild" "latest" "/opt/shoko" "Shoko.CLI_Framework_any-x64.zip"
chmod +x /opt/shoko/Shoko.CLI
msg_info "Starting Service"
systemctl start shoko
msg_ok "Started Service"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW}Access it using the following URL:${CL}"
echo -e "${GATEWAY}${BGN}http://${IP}:8111${CL}"

57
ct/silo.sh Normal file
View File

@@ -0,0 +1,57 @@
#!/usr/bin/env bash
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/pgsty/silo
APP="Silo"
var_tags="${var_tags:-storage;s3}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-20}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-yes}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /usr/bin/silo ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "silo" "pgsty/silo"; then
msg_info "Stopping Silo"
systemctl stop silo
msg_ok "Stopped Silo"
DPKG_FORCE_CONFOLD=1 fetch_and_deploy_gh_release "silo" "pgsty/silo" "binary"
msg_info "Starting Silo"
systemctl start silo
msg_ok "Started Silo"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW}Console:${CL}"
echo -e "${GATEWAY}${BGN}http://${IP}:9001${CL}"
echo -e "${INFO}${YW}S3 API on port 9000 - root credentials are in /etc/default/silo${CL}"

View File

@@ -67,11 +67,16 @@ msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/blocky.service
[Unit]
Description=Blocky
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
User=root
WorkingDirectory=/opt/blocky
Restart=on-failure
RestartSec=5
ExecStart=/opt/blocky/./blocky --config config.yml
[Install]
WantedBy=multi-user.target
EOF

53
install/shoko-install.sh Normal file
View File

@@ -0,0 +1,53 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/ShokoAnime/ShokoServer
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y \
mediainfo \
"$(apt-cache show librhash1 &>/dev/null && echo librhash1 || echo librhash0)"
msg_ok "Installed Dependencies"
DOTNET_VERSION="8" DOTNET_TYPE="aspnetcore" setup_dotnet
fetch_and_deploy_gh_release "shoko" "ShokoAnime/ShokoServer" "prebuild" "latest" "/opt/shoko" "Shoko.CLI_Framework_any-x64.zip"
msg_info "Creating Service"
mkdir -p /opt/shoko_data
chmod +x /opt/shoko/Shoko.CLI
cat <<EOF >/etc/systemd/system/shoko.service
[Unit]
Description=Shoko Server
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/shoko
Environment=HOME=/opt/shoko_data
Environment=DOTNET_CLI_TELEMETRY_OPTOUT=1
ExecStart=/opt/shoko/Shoko.CLI
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now shoko
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc

37
install/silo-install.sh Normal file
View File

@@ -0,0 +1,37 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/pgsty/silo
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
fetch_and_deploy_gh_release "silo" "pgsty/silo" "binary"
msg_info "Configuring Silo"
mkdir -p /opt/silo_data
chown silo:silo /opt/silo_data
SILO_ROOT_PASSWORD=$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | head -c 32)
cat <<EOF >/etc/default/silo
MINIO_VOLUMES="/opt/silo_data"
MINIO_OPTS="--console-address :9001"
MINIO_ROOT_USER="silo-admin"
MINIO_ROOT_PASSWORD="${SILO_ROOT_PASSWORD}"
EOF
chmod 600 /etc/default/silo
msg_ok "Configured Silo"
msg_info "Starting Silo"
systemctl enable -q --now silo
msg_ok "Started Silo"
motd_ssh
customize
cleanup_lxc

View File

@@ -26,19 +26,19 @@ PNPM_VERSION="$(jq -r '.packageManager | split("@")[1]' /opt/sparkyfitness/packa
NODE_VERSION="25" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
msg_info "Configuring Sparky Fitness"
mkdir -p "/etc/sparkyfitness" "/var/lib/sparkyfitness/uploads" "/var/lib/sparkyfitness/backup" "/var/www/sparkyfitness"
mkdir -p "/etc/sparkyfitness" "/var/www/sparkyfitness"
cp "/opt/sparkyfitness/docker/.env.example" "/etc/sparkyfitness/.env"
sed \
-i \
-e "s|^#\?SPARKY_FITNESS_DB_HOST=.*|SPARKY_FITNESS_DB_HOST=localhost|" \
-e "s|^#\?SPARKY_FITNESS_DB_PORT=.*|SPARKY_FITNESS_DB_PORT=5432|" \
-e "s|^SPARKY_FITNESS_DB_NAME=.*|SPARKY_FITNESS_DB_NAME=sparkyfitness|" \
-e "s|^# SPARKY_FITNESS_DB_HOST=.*|SPARKY_FITNESS_DB_HOST=localhost|" \
-e "s|^# SPARKY_FITNESS_DB_PORT=.*|SPARKY_FITNESS_DB_PORT=5432|" \
-e "s|^# SPARKY_FITNESS_DB_NAME=.*|SPARKY_FITNESS_DB_NAME=sparkyfitness|" \
-e "s|^SPARKY_FITNESS_DB_USER=.*|SPARKY_FITNESS_DB_USER=sparky|" \
-e "s|^SPARKY_FITNESS_DB_PASSWORD=.*|SPARKY_FITNESS_DB_PASSWORD=${PG_DB_PASS}|" \
-e "s|^SPARKY_FITNESS_APP_DB_USER=.*|SPARKY_FITNESS_APP_DB_USER=sparky_app|" \
-e "s|^SPARKY_FITNESS_APP_DB_PASSWORD=.*|SPARKY_FITNESS_APP_DB_PASSWORD=$(openssl rand -base64 24 | tr -dc 'a-zA-Z0-9' | head -c20)|" \
-e "s|^SPARKY_FITNESS_SERVER_HOST=.*|SPARKY_FITNESS_SERVER_HOST=localhost|" \
-e "s|^SPARKY_FITNESS_SERVER_PORT=.*|SPARKY_FITNESS_SERVER_PORT=3010|" \
-e "s|^# SPARKY_FITNESS_APP_DB_USER=.*|SPARKY_FITNESS_APP_DB_USER=sparky_app|" \
-e "s|^# SPARKY_FITNESS_APP_DB_PASSWORD=.*|SPARKY_FITNESS_APP_DB_PASSWORD=$(openssl rand -base64 24 | tr -dc 'a-zA-Z0-9' | head -c20)|" \
-e "s|^# SPARKY_FITNESS_SERVER_HOST=.*|SPARKY_FITNESS_SERVER_HOST=localhost|" \
-e "s|^# SPARKY_FITNESS_SERVER_PORT=.*|SPARKY_FITNESS_SERVER_PORT=3010|" \
-e "s|^SPARKY_FITNESS_FRONTEND_URL=.*|SPARKY_FITNESS_FRONTEND_URL=http://${LOCAL_IP}:80|" \
-e "s|^GARMIN_MICROSERVICE_URL=.*|GARMIN_MICROSERVICE_URL=http://${LOCAL_IP}:8000|" \
-e "s|^SPARKY_FITNESS_API_ENCRYPTION_KEY=.*|SPARKY_FITNESS_API_ENCRYPTION_KEY=$(openssl rand -hex 32)|" \