mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-09-30 22:19:41 +00:00
Compare commits
12
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
51fc861b0f | ||
|
|
b6e15d256d | ||
|
|
2cf1457d70 | ||
|
|
7b6c174668 | ||
|
|
d48d21eff8 | ||
|
|
413731eeaf | ||
|
|
f4025da0dd | ||
|
|
2e923bc985 | ||
|
|
800c4a0297 | ||
|
|
f1c82c084b | ||
|
|
f0459bef32 | ||
|
|
311779b75b |
@@ -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
|
||||
|
||||
+2
-3
@@ -54,9 +54,8 @@ function update_script() {
|
||||
$STD uv venv --clear .venv
|
||||
$STD .venv/bin/python -m ensurepip --upgrade
|
||||
fi
|
||||
$STD .venv/bin/python -m pip install --upgrade pip
|
||||
$STD .venv/bin/python -m pip install -r requirements.txt
|
||||
$STD .venv/bin/python -m pip install 'djangorestframework<3.15'
|
||||
$STD uv pip install --python .venv/bin/python -r requirements.txt
|
||||
$STD uv pip install --python .venv/bin/python 'djangorestframework<3.15'
|
||||
$STD .venv/bin/python -m manage collectstatic --noinput
|
||||
$STD .venv/bin/python -m manage migrate
|
||||
|
||||
|
||||
@@ -56,12 +56,11 @@ function update_script() {
|
||||
rm -rf "$VENV_PATH"
|
||||
$STD uv venv --clear "$VENV_PATH"
|
||||
$STD "$VENV_PATH/bin/python" -m ensurepip --upgrade
|
||||
$STD "$VENV_PATH/bin/python" -m pip install --upgrade pip
|
||||
$STD "$VENV_PATH/bin/python" -m pip install changedetection.io playwright
|
||||
$STD uv pip install --python "$VENV_PATH/bin/python" changedetection.io playwright
|
||||
msg_ok "Migrated to uv/venv"
|
||||
else
|
||||
msg_info "Updating ${APP}"
|
||||
$STD "$VENV_PATH/bin/python" -m pip install --upgrade changedetection.io playwright
|
||||
$STD uv pip install --python "$VENV_PATH/bin/python" --upgrade changedetection.io playwright
|
||||
msg_ok "Updated ${APP}"
|
||||
fi
|
||||
|
||||
|
||||
+2
-3
@@ -48,13 +48,12 @@ function update_script() {
|
||||
cd /opt/esphome
|
||||
$STD uv venv --clear "$VENV_PATH"
|
||||
$STD "$VENV_PATH/bin/python" -m ensurepip --upgrade
|
||||
$STD "$VENV_PATH/bin/python" -m pip install --upgrade pip
|
||||
$STD "$VENV_PATH/bin/python" -m pip install esphome esphome-device-builder esptool
|
||||
$STD uv pip install --python "$VENV_PATH/bin/python" esphome esphome-device-builder esptool
|
||||
msg_ok "Migrated to uv/venv"
|
||||
else
|
||||
msg_info "Updating ESPHome Device Builder"
|
||||
PYTHON_VERSION="3.12" setup_uv
|
||||
$STD "$VENV_PATH/bin/python" -m pip install --upgrade esphome esphome-device-builder esptool
|
||||
$STD uv pip install --python "$VENV_PATH/bin/python" --upgrade esphome esphome-device-builder esptool
|
||||
msg_ok "Updated ESPHome Device Builder"
|
||||
fi
|
||||
|
||||
|
||||
+1
-2
@@ -56,8 +56,7 @@ function update_script() {
|
||||
cd /opt/fireshare
|
||||
$STD uv venv --clear
|
||||
$STD .venv/bin/python -m ensurepip --upgrade
|
||||
$STD .venv/bin/python -m pip install --upgrade --break-system-packages pip
|
||||
$STD .venv/bin/python -m pip install --no-cache-dir --break-system-packages --ignore-installed app/server
|
||||
$STD uv pip install --python .venv/bin/python --no-cache --reinstall app/server
|
||||
cp .venv/bin/fireshare /usr/local/bin/fireshare
|
||||
set -a
|
||||
source /opt/fireshare/fireshare.env
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
_____ _ __
|
||||
/ ___/(_) /___
|
||||
\__ \/ / / __ \
|
||||
___/ / / / /_/ /
|
||||
/____/_/_/\____/
|
||||
|
||||
@@ -38,13 +38,12 @@ function update_script() {
|
||||
cd "$INSTALL_DIR"
|
||||
$STD uv venv --clear .venv
|
||||
$STD "$VENV_PYTHON" -m ensurepip --upgrade
|
||||
$STD "$VENV_PYTHON" -m pip install --upgrade pip
|
||||
$STD "$VENV_PYTHON" -m pip install jupyter
|
||||
$STD uv pip install --python "$VENV_PYTHON" jupyter
|
||||
msg_ok "Migrated to uv and installed Jupyter"
|
||||
else
|
||||
PYTHON_VERSION="3.12" setup_uv
|
||||
msg_info "Updating Jupyter"
|
||||
$STD "$VENV_PYTHON" -m pip install --upgrade pip
|
||||
$STD "$VENV_PYTHON" -m pip install --upgrade jupyter
|
||||
$STD uv pip install --python "$VENV_PYTHON" --upgrade jupyter
|
||||
msg_ok "Jupyter updated"
|
||||
fi
|
||||
|
||||
|
||||
@@ -45,13 +45,12 @@ function update_script() {
|
||||
cd /opt/prometheus-pve-exporter
|
||||
$STD uv venv --clear "$PVE_VENV_PATH"
|
||||
$STD "$PVE_VENV_PATH/bin/python" -m ensurepip --upgrade
|
||||
$STD "$PVE_VENV_PATH/bin/python" -m pip install --upgrade pip
|
||||
$STD "$PVE_VENV_PATH/bin/python" -m pip install prometheus-pve-exporter
|
||||
$STD uv pip install --python "$PVE_VENV_PATH/bin/python" prometheus-pve-exporter
|
||||
msg_ok "Migrated to uv/venv"
|
||||
else
|
||||
msg_info "Updating Prometheus Proxmox VE Exporter"
|
||||
PYTHON_VERSION="3.12" setup_uv
|
||||
$STD "$PVE_VENV_PATH/bin/python" -m pip install --upgrade prometheus-pve-exporter
|
||||
$STD uv pip install --python "$PVE_VENV_PATH/bin/python" --upgrade prometheus-pve-exporter
|
||||
msg_ok "Updated Prometheus Proxmox VE Exporter"
|
||||
fi
|
||||
local service_file="/etc/systemd/system/prometheus-pve-exporter.service"
|
||||
|
||||
+1
-2
@@ -42,8 +42,7 @@ function update_script() {
|
||||
cd /opt/scraparr
|
||||
$STD uv venv --clear /opt/scraparr/.venv
|
||||
$STD /opt/scraparr/.venv/bin/python -m ensurepip --upgrade
|
||||
$STD /opt/scraparr/.venv/bin/python -m pip install --upgrade pip
|
||||
$STD /opt/scraparr/.venv/bin/python -m pip install -r /opt/scraparr/src/scraparr/requirements.txt
|
||||
$STD uv pip install --python /opt/scraparr/.venv/bin/python -r /opt/scraparr/src/scraparr/requirements.txt
|
||||
chmod -R 755 /opt/scraparr
|
||||
msg_ok "Updated Scraparr"
|
||||
|
||||
|
||||
+57
@@ -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
@@ -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}"
|
||||
+2
-2
@@ -49,14 +49,14 @@ function update_script() {
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "teslamate" "teslamate-org/teslamate" "tarball"
|
||||
|
||||
msg_info "Building TeslaMate (Patience)"
|
||||
cd /opt/teslamate/elixir
|
||||
cd /opt/teslamate
|
||||
export MIX_ENV=prod
|
||||
$STD mix local.hex --force
|
||||
$STD mix local.rebar --force
|
||||
$STD mix deps.get --only prod
|
||||
$STD npm install --prefix ./assets
|
||||
$STD npm run deploy --prefix ./assets
|
||||
$STD mix do phx.digest, release --overwrite --path /opt/teslamate/_build/prod/rel/teslamate
|
||||
$STD mix do phx.digest, release --overwrite
|
||||
msg_ok "Built TeslaMate"
|
||||
|
||||
msg_info "Starting Service"
|
||||
|
||||
@@ -60,9 +60,8 @@ cd /opt/adventurelog/backend/server
|
||||
mkdir -p /opt/adventurelog/backend/server/media
|
||||
$STD uv venv --clear /opt/adventurelog/backend/server/.venv
|
||||
$STD /opt/adventurelog/backend/server/.venv/bin/python -m ensurepip --upgrade
|
||||
$STD /opt/adventurelog/backend/server/.venv/bin/python -m pip install --upgrade pip
|
||||
$STD /opt/adventurelog/backend/server/.venv/bin/python -m pip install -r requirements.txt
|
||||
$STD /opt/adventurelog/backend/server/.venv/bin/python -m pip install 'djangorestframework<3.15'
|
||||
$STD uv pip install --python /opt/adventurelog/backend/server/.venv/bin/python -r requirements.txt
|
||||
$STD uv pip install --python /opt/adventurelog/backend/server/.venv/bin/python 'djangorestframework<3.15'
|
||||
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage collectstatic --noinput
|
||||
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage migrate
|
||||
$STD /opt/adventurelog/backend/server/.venv/bin/python -m manage download-countries
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -60,8 +60,7 @@ msg_info "Installing Change Detection"
|
||||
mkdir -p /opt/changedetection
|
||||
$STD uv venv --clear /opt/changedetection/.venv
|
||||
$STD /opt/changedetection/.venv/bin/python -m ensurepip --upgrade
|
||||
$STD /opt/changedetection/.venv/bin/python -m pip install --upgrade pip
|
||||
$STD /opt/changedetection/.venv/bin/python -m pip install changedetection.io
|
||||
$STD uv pip install --python /opt/changedetection/.venv/bin/python changedetection.io
|
||||
cat <<EOF >/opt/changedetection/.env
|
||||
WEBDRIVER_URL=http://127.0.0.1:4444/wd/hub
|
||||
PLAYWRIGHT_DRIVER_URL=ws://localhost:3000/chrome?launch=eyJkZWZhdWx0Vmlld3BvcnQiOnsiaGVpZ2h0Ijo3MjAsIndpZHRoIjoxMjgwfSwiaGVhZGxlc3MiOmZhbHNlLCJzdGVhbHRoIjp0cnVlfQ==&blockAds=true
|
||||
@@ -71,7 +70,7 @@ msg_ok "Installed Change Detection"
|
||||
|
||||
msg_info "Installing Browserless & Playwright"
|
||||
mkdir /opt/browserless
|
||||
$STD /opt/changedetection/.venv/bin/python -m pip install playwright
|
||||
$STD uv pip install --python /opt/changedetection/.venv/bin/python playwright
|
||||
$STD git clone https://github.com/browserless/chrome /opt/browserless
|
||||
$STD npm ci --include=optional --include=dev --prefix /opt/browserless
|
||||
$STD npm install --save-exact playwright-core@1.62.1 --prefix /opt/browserless
|
||||
|
||||
@@ -26,8 +26,7 @@ mkdir -p /root/config
|
||||
cd /opt/esphome
|
||||
$STD uv venv --clear /opt/esphome/.venv
|
||||
$STD /opt/esphome/.venv/bin/python -m ensurepip --upgrade
|
||||
$STD /opt/esphome/.venv/bin/python -m pip install --upgrade pip
|
||||
$STD /opt/esphome/.venv/bin/python -m pip install esphome esphome-device-builder esptool
|
||||
$STD uv pip install --python /opt/esphome/.venv/bin/python esphome esphome-device-builder esptool
|
||||
msg_ok "Setup and Installed ESPHome Device Builder"
|
||||
|
||||
msg_info "Linking esphome to /usr/local/bin"
|
||||
|
||||
@@ -98,7 +98,6 @@ mkdir -p /opt/fireshare-{data,videos,images,processed}
|
||||
cd /opt/fireshare
|
||||
$STD uv venv
|
||||
$STD .venv/bin/python -m ensurepip --upgrade
|
||||
$STD .venv/bin/python -m pip install --upgrade --break-system-packages pip
|
||||
ln -sf /usr/local/bin/ffmpeg /usr/bin/ffmpeg
|
||||
ln -sf /usr/local/bin/ffprobe /usr/bin/ffprobe
|
||||
echo "/usr/local/lib" >/etc/ld.so.conf.d/usr-local.conf
|
||||
@@ -106,7 +105,7 @@ echo "/usr/local/cuda/lib64" >>/etc/ld.so.conf.d/usr-local.conf
|
||||
echo "/usr/local/nvidia/lib" >>/etc/ld.so.conf.d/nvidia.conf
|
||||
echo "/usr/local/nvidia/lib64" >>/etc/ld.so.conf.d/nvidia.conf
|
||||
ldconfig
|
||||
$STD .venv/bin/python -m pip install --no-cache-dir --break-system-packages --ignore-installed app/server
|
||||
$STD uv pip install --python .venv/bin/python --no-cache --reinstall app/server
|
||||
cp .venv/bin/fireshare /usr/local/bin/fireshare
|
||||
export FLASK_APP="/opt/fireshare/app/server/fireshare:create_app()"
|
||||
export DATA_DIRECTORY=/opt/fireshare-data
|
||||
|
||||
@@ -20,8 +20,7 @@ mkdir -p /opt/jupyter
|
||||
cd /opt/jupyter
|
||||
$STD uv venv --clear /opt/jupyter/.venv
|
||||
$STD /opt/jupyter/.venv/bin/python -m ensurepip --upgrade
|
||||
$STD /opt/jupyter/.venv/bin/python -m pip install --upgrade pip
|
||||
$STD /opt/jupyter/.venv/bin/python -m pip install jupyter
|
||||
$STD uv pip install --python /opt/jupyter/.venv/bin/python jupyter
|
||||
ln -s /opt/jupyter/.venv/bin/jupyter /usr/local/bin/jupyter
|
||||
ln -s /opt/jupyter/.venv/bin/jupyter-lab /usr/local/bin/jupyter-lab
|
||||
ln -s /opt/jupyter/.venv/bin/jupyter-notebook /usr/local/bin/jupyter-notebook
|
||||
|
||||
@@ -32,8 +32,7 @@ msg_info "Installing Mylar3"
|
||||
mkdir -p /opt/mylar3-data
|
||||
$STD uv venv --clear /opt/mylar3/.venv
|
||||
$STD /opt/mylar3/.venv/bin/python -m ensurepip --upgrade
|
||||
$STD /opt/mylar3/.venv/bin/python -m pip install --upgrade pip
|
||||
$STD /opt/mylar3/.venv/bin/python -m pip install --no-cache-dir -r /opt/mylar3/requirements.txt
|
||||
$STD uv pip install --python /opt/mylar3/.venv/bin/python --no-cache -r /opt/mylar3/requirements.txt
|
||||
msg_ok "Installed Mylar3"
|
||||
|
||||
msg_info "Creating Service"
|
||||
|
||||
@@ -21,8 +21,7 @@ cd /opt/prometheus-pve-exporter
|
||||
|
||||
$STD uv venv --clear /opt/prometheus-pve-exporter/.venv
|
||||
$STD /opt/prometheus-pve-exporter/.venv/bin/python -m ensurepip --upgrade
|
||||
$STD /opt/prometheus-pve-exporter/.venv/bin/python -m pip install --upgrade pip
|
||||
$STD /opt/prometheus-pve-exporter/.venv/bin/python -m pip install prometheus-pve-exporter
|
||||
$STD uv pip install --python /opt/prometheus-pve-exporter/.venv/bin/python prometheus-pve-exporter
|
||||
cat <<EOF >/opt/prometheus-pve-exporter/pve.yml
|
||||
default:
|
||||
user: prometheus@pve
|
||||
|
||||
@@ -20,8 +20,7 @@ msg_info "Installing Scraparr"
|
||||
cd /opt/scraparr
|
||||
$STD uv venv --clear /opt/scraparr/.venv
|
||||
$STD /opt/scraparr/.venv/bin/python -m ensurepip --upgrade
|
||||
$STD /opt/scraparr/.venv/bin/python -m pip install --upgrade pip
|
||||
$STD /opt/scraparr/.venv/bin/python -m pip install -r /opt/scraparr/src/scraparr/requirements.txt
|
||||
$STD uv pip install --python /opt/scraparr/.venv/bin/python -r /opt/scraparr/src/scraparr/requirements.txt
|
||||
chmod -R 755 /opt/scraparr
|
||||
mkdir -p /scraparr/config
|
||||
mv /opt/scraparr/config.yaml /scraparr/config/config.yaml
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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)|" \
|
||||
|
||||
@@ -49,14 +49,14 @@ msg_ok "Installed Grafana"
|
||||
fetch_and_deploy_gh_release "teslamate" "teslamate-org/teslamate" "tarball"
|
||||
|
||||
msg_info "Building TeslaMate (Patience)"
|
||||
cd /opt/teslamate/elixir
|
||||
cd /opt/teslamate
|
||||
export MIX_ENV=prod
|
||||
$STD mix local.hex --force
|
||||
$STD mix local.rebar --force
|
||||
$STD mix deps.get --only prod
|
||||
$STD npm install --prefix ./assets
|
||||
$STD npm run deploy --prefix ./assets
|
||||
$STD mix do phx.digest, release --overwrite --path /opt/teslamate/_build/prod/rel/teslamate
|
||||
$STD mix do phx.digest, release --overwrite
|
||||
msg_ok "Built TeslaMate"
|
||||
|
||||
msg_info "Configuring TeslaMate"
|
||||
|
||||
Reference in New Issue
Block a user