mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-09-23 10:50:57 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
96b31040ee |
+1
-19
@@ -546,15 +546,6 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
## 2026-09-23
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- Decide console autologin from the image, not USE_CLOUD_INIT [@MickLesk](https://github.com/MickLesk) ([core#63](https://github.com/community-scripts/core/pull/63))
|
|
||||||
- tools: raise pnpm/yarn fetch timeout and lower network concurrency [@MickLesk](https://github.com/MickLesk) ([core#59](https://github.com/community-scripts/core/pull/59))
|
|
||||||
- Stop discarding cloud-init error messages | report failed image steps and restore tty1 autologin without cloud-init [@MickLesk](https://github.com/MickLesk) ([core#62](https://github.com/community-scripts/core/pull/62))
|
|
||||||
- VM-Core: stop discarding cloud-init error messages [@MickLesk](https://github.com/MickLesk) ([core#60](https://github.com/community-scripts/core/pull/60))
|
|
||||||
|
|
||||||
## 2026-09-22
|
## 2026-09-22
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
### 🚀 Updated Scripts
|
||||||
@@ -565,24 +556,15 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
- fix(alpine-it-tools): write the version file after a successful update [@Houtek](https://github.com/Houtek) ([#17421](https://github.com/community-scripts/ProxmoxVE/pull/17421))
|
- fix(alpine-it-tools): write the version file after a successful update [@Houtek](https://github.com/Houtek) ([#17421](https://github.com/community-scripts/ProxmoxVE/pull/17421))
|
||||||
- Umami: Align pnpm with engines.pnpm on update [@ReneNulschDE](https://github.com/ReneNulschDE) ([#17404](https://github.com/community-scripts/ProxmoxVE/pull/17404))
|
- Umami: Align pnpm with engines.pnpm on update [@ReneNulschDE](https://github.com/ReneNulschDE) ([#17404](https://github.com/community-scripts/ProxmoxVE/pull/17404))
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- several scripts: let uv see the project before syncing it | refactor some scripts that use uv [@MickLesk](https://github.com/MickLesk) ([#17436](https://github.com/community-scripts/ProxmoxVE/pull/17436))
|
|
||||||
|
|
||||||
### 💾 Core
|
### 💾 Core
|
||||||
|
|
||||||
- setup_uv: honour a project's required-version pin [@MickLesk](https://github.com/MickLesk) ([core#58](https://github.com/community-scripts/core/pull/58))
|
- fix(motd): repair legacy 00_lxc-details.sh header and dead color placeholders [@BadFlo](https://github.com/BadFlo) ([core#53](https://github.com/community-scripts/core/pull/53))
|
||||||
- fix(motd): repair legacy 00_lxc-details.sh header and dead color placeholders [@BadFlo](https://github.com/BadFlo) ([core#53](https://github.com/community-scripts/core/pull/53))
|
|
||||||
- meilisearch: take the raw binary, not the .deb [@MickLesk](https://github.com/MickLesk) ([core#57](https://github.com/community-scripts/core/pull/57))
|
- meilisearch: take the raw binary, not the .deb [@MickLesk](https://github.com/MickLesk) ([core#57](https://github.com/community-scripts/core/pull/57))
|
||||||
|
|
||||||
### 📚 Documentation
|
### 📚 Documentation
|
||||||
|
|
||||||
- github: Stop generating header filenames with a newline in them [@MickLesk](https://github.com/MickLesk) ([#17435](https://github.com/community-scripts/ProxmoxVE/pull/17435))
|
- github: Stop generating header filenames with a newline in them [@MickLesk](https://github.com/MickLesk) ([#17435](https://github.com/community-scripts/ProxmoxVE/pull/17435))
|
||||||
|
|
||||||
### ❔ Uncategorized
|
|
||||||
|
|
||||||
- chore(ct): sync cloudflare-ddns defaults with PocketBase [@github-actions[bot]](https://github.com/github-actions[bot]) ([#17446](https://github.com/community-scripts/ProxmoxVE/pull/17446))
|
|
||||||
|
|
||||||
## 2026-09-21
|
## 2026-09-21
|
||||||
|
|
||||||
### 🆕 New Scripts
|
### 🆕 New Scripts
|
||||||
|
|||||||
+1
-1
@@ -45,6 +45,7 @@ function update_script() {
|
|||||||
|
|
||||||
NODE_VERSION="26" NODE_MODULE=pnpm@12 setup_nodejs
|
NODE_VERSION="26" NODE_MODULE=pnpm@12 setup_nodejs
|
||||||
$STD uv cache clean
|
$STD uv cache clean
|
||||||
|
UV_PYTHON_INSTALL_DIR="/usr/local/bin" PYTHON_VERSION="3.14.7" setup_uv
|
||||||
RUST_PROFILE="minimal" RUST_TOOLCHAIN="stable" setup_rust
|
RUST_PROFILE="minimal" RUST_TOOLCHAIN="stable" setup_rust
|
||||||
setup_yq
|
setup_yq
|
||||||
|
|
||||||
@@ -94,7 +95,6 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "authentik" "goauthentik/authentik" "tarball" "${AUTHENTIK_VERSION}" "/opt/authentik"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "authentik" "goauthentik/authentik" "tarball" "${AUTHENTIK_VERSION}" "/opt/authentik"
|
||||||
UV_PYTHON_INSTALL_DIR="/usr/local/bin" PYTHON_VERSION="3.14.7" UV_PROJECT_DIR="/opt/authentik" setup_uv
|
|
||||||
GO_VERSION="$(grep -m1 '^go ' /opt/authentik/go.mod | awk '{print $2}')" setup_go
|
GO_VERSION="$(grep -m1 '^go ' /opt/authentik/go.mod | awk '{print $2}')" setup_go
|
||||||
|
|
||||||
msg_info "Configuring rust"
|
msg_info "Configuring rust"
|
||||||
|
|||||||
+2
-1
@@ -31,6 +31,8 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
setup_uv
|
||||||
|
|
||||||
RELEASE=$(get_latest_codeberg_release "gelbphoenix/autocaliweb")
|
RELEASE=$(get_latest_codeberg_release "gelbphoenix/autocaliweb")
|
||||||
if check_for_codeberg_release "autocaliweb" "gelbphoenix/autocaliweb"; then
|
if check_for_codeberg_release "autocaliweb" "gelbphoenix/autocaliweb"; then
|
||||||
msg_info "Stopping Services"
|
msg_info "Stopping Services"
|
||||||
@@ -41,7 +43,6 @@ function update_script() {
|
|||||||
export VIRTUAL_ENV="${INSTALL_DIR}/venv"
|
export VIRTUAL_ENV="${INSTALL_DIR}/venv"
|
||||||
$STD tar -cf ~/autocaliweb_bkp.tar "$INSTALL_DIR"/{metadata_change_logs,dirs.json,.env,scripts/ingest_watcher.sh,scripts/auto_zipper_wrapper.sh,scripts/metadata_change_detector_wrapper.sh}
|
$STD tar -cf ~/autocaliweb_bkp.tar "$INSTALL_DIR"/{metadata_change_logs,dirs.json,.env,scripts/ingest_watcher.sh,scripts/auto_zipper_wrapper.sh,scripts/metadata_change_detector_wrapper.sh}
|
||||||
fetch_and_deploy_codeberg_release "autocaliweb" "gelbphoenix/autocaliweb" "tarball" "latest" "/opt/autocaliweb"
|
fetch_and_deploy_codeberg_release "autocaliweb" "gelbphoenix/autocaliweb" "tarball" "latest" "/opt/autocaliweb"
|
||||||
setup_uv $INSTALL_DIR
|
|
||||||
|
|
||||||
msg_info "Updating Autocaliweb"
|
msg_info "Updating Autocaliweb"
|
||||||
cd "$INSTALL_DIR"
|
cd "$INSTALL_DIR"
|
||||||
|
|||||||
@@ -39,7 +39,6 @@ function update_script() {
|
|||||||
|
|
||||||
create_backup /opt/baserow/.env
|
create_backup /opt/baserow/.env
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "baserow" "baserow/baserow" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "baserow" "baserow/baserow" "tarball"
|
||||||
UV_PROJECT_DIR="/opt/baserow/backend" setup_uv
|
|
||||||
restore_backup
|
restore_backup
|
||||||
|
|
||||||
msg_info "Configuring Baserow"
|
msg_info "Configuring Baserow"
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ function update_script() {
|
|||||||
create_backup /opt/beaverhabits/.user
|
create_backup /opt/beaverhabits/.user
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "beaverhabits" "daya0576/beaverhabits" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "beaverhabits" "daya0576/beaverhabits" "tarball"
|
||||||
PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/beaverhabits" setup_uv
|
|
||||||
|
|
||||||
msg_info "Syncing Dependencies"
|
msg_info "Syncing Dependencies"
|
||||||
cd /opt/beaverhabits
|
cd /opt/beaverhabits
|
||||||
|
|||||||
@@ -37,7 +37,6 @@ function update_script() {
|
|||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Byparr" "ThePhaseless/Byparr" "tarball" "latest"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Byparr" "ThePhaseless/Byparr" "tarball" "latest"
|
||||||
UV_PROJECT_DIR="/opt/Byparr" setup_uv
|
|
||||||
|
|
||||||
if ! dpkg -l | grep -q ffmpeg; then
|
if ! dpkg -l | grep -q ffmpeg; then
|
||||||
msg_info "Installing dependencies"
|
msg_info "Installing dependencies"
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_
|
|||||||
|
|
||||||
APP="Cloudflare-DDNS"
|
APP="Cloudflare-DDNS"
|
||||||
var_tags="${var_tags:-network}"
|
var_tags="${var_tags:-network}"
|
||||||
var_cpu="${var_cpu:-1}"
|
var_cpu="${var_cpu:-2}"
|
||||||
var_ram="${var_ram:-512}"
|
var_ram="${var_ram:-1024}"
|
||||||
var_disk="${var_disk:-3}"
|
var_disk="${var_disk:-3}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
|
|||||||
+1
-1
@@ -32,6 +32,7 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
setup_uv
|
||||||
NODE_VERSION="24" setup_nodejs
|
NODE_VERSION="24" setup_nodejs
|
||||||
if [[ -f "/etc/nginx/sites-available/dispatcharr.conf" ]] && ! grep -q "real_forwarded_proto" "/etc/nginx/sites-available/dispatcharr.conf"; then
|
if [[ -f "/etc/nginx/sites-available/dispatcharr.conf" ]] && ! grep -q "real_forwarded_proto" "/etc/nginx/sites-available/dispatcharr.conf"; then
|
||||||
msg_info "Migrating Nginx Configuration"
|
msg_info "Migrating Nginx Configuration"
|
||||||
@@ -145,7 +146,6 @@ EOF
|
|||||||
msg_ok "Backup created: $BACKUP_FILE"
|
msg_ok "Backup created: $BACKUP_FILE"
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dispatcharr" "Dispatcharr/Dispatcharr" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dispatcharr" "Dispatcharr/Dispatcharr" "tarball"
|
||||||
UV_PROJECT_DIR="/opt/dispatcharr" setup_uv
|
|
||||||
|
|
||||||
restore_backup
|
restore_backup
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,6 @@ function update_script() {
|
|||||||
|
|
||||||
create_backup /opt/fireshare/fireshare.env
|
create_backup /opt/fireshare/fireshare.env
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "fireshare" "ShaneIsrael/fireshare" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "fireshare" "ShaneIsrael/fireshare" "tarball"
|
||||||
UV_PROJECT_DIR="/opt/fireshare" setup_uv
|
|
||||||
restore_backup
|
restore_backup
|
||||||
rm -f /usr/local/bin/fireshare
|
rm -f /usr/local/bin/fireshare
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -38,10 +38,10 @@ function update_script() {
|
|||||||
|
|
||||||
create_backup /opt/flatnotes/.env /opt/flatnotes/data
|
create_backup /opt/flatnotes/.env /opt/flatnotes/data
|
||||||
|
|
||||||
|
PYTHON_VERSION="3.13" setup_uv
|
||||||
NODE_VERSION="24" setup_nodejs
|
NODE_VERSION="24" setup_nodejs
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "flatnotes" "dullage/flatnotes" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "flatnotes" "dullage/flatnotes" "tarball"
|
||||||
PYTHON_VERSION="3.13" UV_PROJECT_DIR="/opt/flatnotes" setup_uv
|
|
||||||
|
|
||||||
restore_backup
|
restore_backup
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,6 @@ function update_script() {
|
|||||||
msg_ok "Stopped Services"
|
msg_ok "Stopped Services"
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "journiv" "journiv/journiv-app" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "journiv" "journiv/journiv-app" "tarball"
|
||||||
UV_PROJECT_DIR="/opt/journiv" setup_uv
|
|
||||||
|
|
||||||
msg_info "Updating Python Environment"
|
msg_info "Updating Python Environment"
|
||||||
cd /opt/journiv
|
cd /opt/journiv
|
||||||
|
|||||||
@@ -42,7 +42,6 @@ function update_script() {
|
|||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "kitchenowl" "TomBursch/kitchenowl" "tarball" "latest" "/opt/kitchenowl"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "kitchenowl" "TomBursch/kitchenowl" "tarball" "latest" "/opt/kitchenowl"
|
||||||
rm -rf /opt/kitchenowl/web
|
rm -rf /opt/kitchenowl/web
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "kitchenowl-web" "TomBursch/kitchenowl" "prebuild" "latest" "/opt/kitchenowl/web" "kitchenowl_Web.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "kitchenowl-web" "TomBursch/kitchenowl" "prebuild" "latest" "/opt/kitchenowl/web" "kitchenowl_Web.tar.gz"
|
||||||
PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/kitchenowl/backend" setup_uv
|
|
||||||
|
|
||||||
restore_backup
|
restore_backup
|
||||||
sed -i 's/default=True/default=False/' /opt/kitchenowl/backend/wsgi.py
|
sed -i 's/default=True/default=False/' /opt/kitchenowl/backend/wsgi.py
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ function update_script() {
|
|||||||
create_backup /opt/linkding/data /opt/linkding/.env
|
create_backup /opt/linkding/data /opt/linkding/.env
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "linkding" "sissbruecker/linkding" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "linkding" "sissbruecker/linkding" "tarball"
|
||||||
UV_PROJECT_DIR="/opt/linkding" setup_uv
|
|
||||||
|
|
||||||
restore_backup
|
restore_backup
|
||||||
ln -sf /usr/lib/$(arch_resolve "x86_64-linux-gnu" "aarch64-linux-gnu")/mod_icu.so /opt/linkding/libicu.so
|
ln -sf /usr/lib/$(arch_resolve "x86_64-linux-gnu" "aarch64-linux-gnu")/mod_icu.so /opt/linkding/libicu.so
|
||||||
|
|||||||
+1
-1
@@ -32,6 +32,7 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
if check_for_gh_release "mealie" "mealie-recipes/mealie"; then
|
if check_for_gh_release "mealie" "mealie-recipes/mealie"; then
|
||||||
|
PYTHON_VERSION="3.12" setup_uv
|
||||||
|
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop mealie
|
systemctl stop mealie
|
||||||
@@ -43,7 +44,6 @@ function update_script() {
|
|||||||
msg_ok "Backup completed"
|
msg_ok "Backup completed"
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "mealie" "mealie-recipes/mealie" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "mealie" "mealie-recipes/mealie" "tarball"
|
||||||
PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/mealie" setup_uv
|
|
||||||
|
|
||||||
msg_info "Restoring Configuration"
|
msg_info "Restoring Configuration"
|
||||||
mv -f /opt/mealie.env /opt/mealie/mealie.env
|
mv -f /opt/mealie.env /opt/mealie/mealie.env
|
||||||
|
|||||||
+2
-1
@@ -31,13 +31,14 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
setup_uv
|
||||||
|
|
||||||
if check_for_gh_release "mediamanager" "maxdorninger/MediaManager"; then
|
if check_for_gh_release "mediamanager" "maxdorninger/MediaManager"; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop mediamanager
|
systemctl stop mediamanager
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "MediaManager" "maxdorninger/MediaManager" "tarball" "latest" "/opt/mediamanager"
|
fetch_and_deploy_gh_release "MediaManager" "maxdorninger/MediaManager" "tarball" "latest" "/opt/mediamanager"
|
||||||
UV_PROJECT_DIR="/opt/mediamanager" setup_uv
|
|
||||||
msg_info "Updating MediaManager"
|
msg_info "Updating MediaManager"
|
||||||
MM_DIR="/opt/mm"
|
MM_DIR="/opt/mm"
|
||||||
export CONFIG_DIR="${MM_DIR}/config"
|
export CONFIG_DIR="${MM_DIR}/config"
|
||||||
|
|||||||
@@ -53,7 +53,6 @@ function update_script() {
|
|||||||
create_backup /opt/metube/.env
|
create_backup /opt/metube/.env
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "metube" "alexta69/metube" "tarball" "latest"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "metube" "alexta69/metube" "tarball" "latest"
|
||||||
UV_PROJECT_DIR="/opt/metube" setup_uv
|
|
||||||
|
|
||||||
restore_backup
|
restore_backup
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ function update_script() {
|
|||||||
create_backup /opt/notediscovery/data /opt/notediscovery/config.yaml
|
create_backup /opt/notediscovery/data /opt/notediscovery/config.yaml
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "notediscovery" "gamosoft/NoteDiscovery" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "notediscovery" "gamosoft/NoteDiscovery" "tarball"
|
||||||
UV_PROJECT_DIR="/opt/notediscovery" setup_uv
|
|
||||||
|
|
||||||
msg_info "Syncing Dependencies"
|
msg_info "Syncing Dependencies"
|
||||||
cd /opt/notediscovery
|
cd /opt/notediscovery
|
||||||
|
|||||||
+1
-1
@@ -83,13 +83,13 @@ function update_script() {
|
|||||||
[[ -f /opt/paperless/paperless.conf ]] && cp /opt/paperless/paperless.conf "$BACKUP_DIR/"
|
[[ -f /opt/paperless/paperless.conf ]] && cp /opt/paperless/paperless.conf "$BACKUP_DIR/"
|
||||||
msg_ok "Backup completed to $BACKUP_DIR"
|
msg_ok "Backup completed to $BACKUP_DIR"
|
||||||
|
|
||||||
|
PYTHON_VERSION="3.13" setup_uv
|
||||||
if ((BRIDGE_UPDATE)); then
|
if ((BRIDGE_UPDATE)); then
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "paperless" "paperless-ngx/paperless-ngx" "prebuild" "v2.20.15" "/opt/paperless" "paperless*tar.xz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "paperless" "paperless-ngx/paperless-ngx" "prebuild" "v2.20.15" "/opt/paperless" "paperless*tar.xz"
|
||||||
else
|
else
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "paperless" "paperless-ngx/paperless-ngx" "prebuild" "latest" "/opt/paperless" "paperless*tar.xz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "paperless" "paperless-ngx/paperless-ngx" "prebuild" "latest" "/opt/paperless" "paperless*tar.xz"
|
||||||
fi
|
fi
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "jbig2enc" "ie13/jbig2enc" "tarball" "latest" "/opt/jbig2enc"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "jbig2enc" "ie13/jbig2enc" "tarball" "latest" "/opt/jbig2enc"
|
||||||
PYTHON_VERSION="3.13" UV_PROJECT_DIR="/opt/paperless" setup_uv
|
|
||||||
|
|
||||||
. /etc/os-release
|
. /etc/os-release
|
||||||
if [ "$VERSION_CODENAME" = "bookworm" ]; then
|
if [ "$VERSION_CODENAME" = "bookworm" ]; then
|
||||||
|
|||||||
@@ -51,7 +51,6 @@ function update_script() {
|
|||||||
/opt/romm/frontend/dist/assets/ruffle
|
/opt/romm/frontend/dist/assets/ruffle
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "romm" "rommapp/romm" "tarball" "latest" "/opt/romm"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "romm" "rommapp/romm" "tarball" "latest" "/opt/romm"
|
||||||
PYTHON_VERSION="3.13" UV_PROJECT_DIR="/opt/romm" setup_uv
|
|
||||||
echo "__version__ = \"$(cat ~/.romm)\"" >/opt/romm/backend/__version__.py
|
echo "__version__ = \"$(cat ~/.romm)\"" >/opt/romm/backend/__version__.py
|
||||||
|
|
||||||
find /opt/romm/backend/alembic/versions -maxdepth 1 -type f -name '1.*.py' -delete 2>/dev/null || true
|
find /opt/romm/backend/alembic/versions -maxdepth 1 -type f -name '1.*.py' -delete 2>/dev/null || true
|
||||||
|
|||||||
+42
-23
@@ -32,42 +32,61 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if check_for_gh_release "semaphore" "semaphoreui/semaphore"; then
|
# Outside the release check on purpose: a container left behind by the old
|
||||||
if [[ -f /opt/semaphore/semaphore_db.bolt ]]; then
|
# order already carries the newest version, so the check would skip it.
|
||||||
msg_warn "WARNING: Due to bugs with BoltDB database, update script will move your application"
|
local migrated=0
|
||||||
msg_warn "to use SQLite database instead. Make sure you have a backup of your data!"
|
if [[ -f /opt/semaphore/semaphore_db.bolt ]]; then
|
||||||
echo ""
|
msg_warn "WARNING: Due to bugs with BoltDB database, update script will move your application"
|
||||||
read -r -p "${TAB3}Do you want to continue? (y/N): " CONFIRM
|
msg_warn "to use SQLite database instead. Make sure you have a backup of your data!"
|
||||||
if [[ ! "$CONFIRM" =~ ^[Yy]$ ]]; then
|
echo ""
|
||||||
exit 0
|
read -r -p "${TAB3}Do you want to continue? (y/N): " CONFIRM
|
||||||
else
|
if [[ ! "$CONFIRM" =~ ^[Yy]$ ]]; then
|
||||||
msg_info "Moving from BoltDB to SQLite"
|
exit 0
|
||||||
sed -i \
|
|
||||||
-e 's|"bolt": {|"sqlite": {|' \
|
|
||||||
-e 's|/semaphore_db.bolt"|/database.sqlite"|' \
|
|
||||||
-e '/semaphore_db.bolt/d' \
|
|
||||||
-e '/"dialect"/d' \
|
|
||||||
-e '/^ },$/a\ "dialect": "sqlite",' \
|
|
||||||
/opt/semaphore/config.json
|
|
||||||
msg_ok "Moved from BoltDB to SQLite"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
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_$(arch_resolve).deb"
|
msg_info "Moving from BoltDB to SQLite"
|
||||||
|
sed -i \
|
||||||
|
-e 's|"bolt": {|"sqlite": {|' \
|
||||||
|
-e 's|/semaphore_db.bolt"|/database.sqlite"|' \
|
||||||
|
-e '/semaphore_db.bolt/d' \
|
||||||
|
-e '/"dialect"/d' \
|
||||||
|
-e '/^ },$/a\ "dialect": "sqlite",' \
|
||||||
|
/opt/semaphore/config.json
|
||||||
|
msg_ok "Moved from BoltDB to SQLite"
|
||||||
|
|
||||||
if [[ -f /opt/semaphore/semaphore_db.bolt ]]; then
|
# 2.19 dropped BoltDB along with the migration flag, so this has to run on
|
||||||
$STD semaphore migrate --from-boltdb /opt/semaphore/semaphore_db.bolt --config /opt/semaphore/config.json
|
# the last release that still has it.
|
||||||
rm -f /opt/semaphore/semaphore_db.bolt
|
fetch_and_deploy_gh_release "semaphore" "semaphoreui/semaphore" "binary" "v2.18.30" "/opt/semaphore" "semaphore_*_linux_$(arch_resolve).deb"
|
||||||
|
|
||||||
|
msg_info "Migrating BoltDB to SQLite"
|
||||||
|
if ! $STD semaphore migrate --from-boltdb /opt/semaphore/semaphore_db.bolt --config /opt/semaphore/config.json; then
|
||||||
|
msg_error "Migration failed - semaphore_db.bolt was kept, run the update again to retry"
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
rm -f /opt/semaphore/semaphore_db.bolt
|
||||||
|
msg_ok "Migrated BoltDB to SQLite"
|
||||||
|
migrated=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if check_for_gh_release "semaphore" "semaphoreui/semaphore"; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop semaphore
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "semaphore" "semaphoreui/semaphore" "binary" "latest" "/opt/semaphore" "semaphore_*_linux_$(arch_resolve).deb"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start semaphore
|
systemctl start semaphore
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
|
elif ((migrated)); then
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start semaphore
|
||||||
|
msg_ok "Started Service"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -33,6 +33,7 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
NODE_VERSION="24" setup_nodejs
|
NODE_VERSION="24" setup_nodejs
|
||||||
|
PYTHON_VERSION="3.14" setup_uv
|
||||||
|
|
||||||
if check_for_gh_release "shelfmark" "calibrain/shelfmark"; then
|
if check_for_gh_release "shelfmark" "calibrain/shelfmark"; then
|
||||||
msg_info "Stopping Service(s)"
|
msg_info "Stopping Service(s)"
|
||||||
@@ -67,7 +68,6 @@ function update_script() {
|
|||||||
$STD apt remove -y chromium-driver
|
$STD apt remove -y chromium-driver
|
||||||
fi
|
fi
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "shelfmark" "calibrain/shelfmark" "tarball" "latest" "/opt/shelfmark"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "shelfmark" "calibrain/shelfmark" "tarball" "latest" "/opt/shelfmark"
|
||||||
PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/shelfmark" setup_uv
|
|
||||||
restore_backup
|
restore_backup
|
||||||
RELEASE_VERSION=$(cat "$HOME/.shelfmark")
|
RELEASE_VERSION=$(cat "$HOME/.shelfmark")
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -31,6 +31,8 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
PYTHON_VERSION="3.14" setup_uv
|
||||||
|
|
||||||
if check_for_gh_release "spoolman" "Donkie/Spoolman"; then
|
if check_for_gh_release "spoolman" "Donkie/Spoolman"; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop spoolman
|
systemctl stop spoolman
|
||||||
@@ -39,7 +41,6 @@ function update_script() {
|
|||||||
create_backup /opt/spoolman/.env
|
create_backup /opt/spoolman/.env
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "spoolman" "Donkie/Spoolman" "prebuild" "latest" "/opt/spoolman" "spoolman.zip"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "spoolman" "Donkie/Spoolman" "prebuild" "latest" "/opt/spoolman" "spoolman.zip"
|
||||||
PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/spoolman" setup_uv
|
|
||||||
|
|
||||||
restore_backup
|
restore_backup
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -32,6 +32,8 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
setup_uv
|
||||||
|
|
||||||
if check_for_gh_release "wizarr" "wizarrrr/wizarr"; then
|
if check_for_gh_release "wizarr" "wizarrrr/wizarr"; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop wizarr
|
systemctl stop wizarr
|
||||||
@@ -44,7 +46,6 @@ function update_script() {
|
|||||||
msg_ok "Backup Created"
|
msg_ok "Backup Created"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "wizarr" "wizarrrr/wizarr" "tarball"
|
fetch_and_deploy_gh_release "wizarr" "wizarrrr/wizarr" "tarball"
|
||||||
UV_PROJECT_DIR="/opt/wizarr" setup_uv
|
|
||||||
|
|
||||||
msg_info "Updating Wizarr"
|
msg_info "Updating Wizarr"
|
||||||
cd /opt/wizarr
|
cd /opt/wizarr
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ function update_script() {
|
|||||||
create_backup /opt/yamtrack/src/.env
|
create_backup /opt/yamtrack/src/.env
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "yamtrack" "FuzzyGrim/Yamtrack" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "yamtrack" "FuzzyGrim/Yamtrack" "tarball"
|
||||||
PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/yamtrack" setup_uv
|
|
||||||
|
|
||||||
restore_backup
|
restore_backup
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ function update_script() {
|
|||||||
msg_ok "Stopped Services"
|
msg_ok "Stopped Services"
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "yubal" "guillevc/yubal" "tarball" "latest" "/opt/yubal"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "yubal" "guillevc/yubal" "tarball" "latest" "/opt/yubal"
|
||||||
PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/yubal" setup_uv
|
|
||||||
|
|
||||||
msg_info "Building Frontend"
|
msg_info "Building Frontend"
|
||||||
cd /opt/yubal/web
|
cd /opt/yubal/web
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ $STD apt install -y \
|
|||||||
python3-dev
|
python3-dev
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
PYTHON_VERSION="3.12" setup_uv
|
UV_PYTHON="3.12" setup_uv
|
||||||
PG_VERSION="16" setup_postgresql
|
PG_VERSION="16" setup_postgresql
|
||||||
PG_DB_NAME="airflow" PG_DB_USER="airflow" setup_postgresql_db
|
PG_DB_NAME="airflow" PG_DB_USER="airflow" setup_postgresql_db
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ msg_ok "Installed Dependencies"
|
|||||||
|
|
||||||
PG_VERSION="16" setup_postgresql
|
PG_VERSION="16" setup_postgresql
|
||||||
PG_DB_NAME="audiomuse" PG_DB_USER="audiomuse" setup_postgresql_db
|
PG_DB_NAME="audiomuse" PG_DB_USER="audiomuse" setup_postgresql_db
|
||||||
PYTHON_VERSION="3.12" setup_uv
|
UV_PYTHON="3.12" setup_uv
|
||||||
setup_hwaccel
|
setup_hwaccel
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "audiomuse-ai" "NeptuneHub/AudioMuse-AI" "tarball"
|
fetch_and_deploy_gh_release "audiomuse-ai" "NeptuneHub/AudioMuse-AI" "tarball"
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ msg_ok "Installed Dependencies"
|
|||||||
NODE_VERSION="26" NODE_MODULE=pnpm@12 setup_nodejs
|
NODE_VERSION="26" NODE_MODULE=pnpm@12 setup_nodejs
|
||||||
setup_yq
|
setup_yq
|
||||||
RUST_PROFILE="minimal" RUST_TOOLCHAIN="stable" setup_rust
|
RUST_PROFILE="minimal" RUST_TOOLCHAIN="stable" setup_rust
|
||||||
|
UV_PYTHON_INSTALL_DIR="/usr/local/bin" PYTHON_VERSION="3.14.7" setup_uv
|
||||||
PG_VERSION="17" setup_postgresql
|
PG_VERSION="17" setup_postgresql
|
||||||
PG_DB_NAME="authentik" PG_DB_USER="authentik" PG_DB_GRANT_SUPERUSER="true" setup_postgresql_db
|
PG_DB_NAME="authentik" PG_DB_USER="authentik" PG_DB_GRANT_SUPERUSER="true" setup_postgresql_db
|
||||||
|
|
||||||
@@ -62,7 +63,6 @@ fetch_and_deploy_gh_release "xmlsec" "lsh123/xmlsec" "tarball" "${XMLSEC_VERSION
|
|||||||
fetch_and_deploy_gh_release "authentik" "goauthentik/authentik" "tarball" "${AUTHENTIK_VERSION}" "/opt/authentik"
|
fetch_and_deploy_gh_release "authentik" "goauthentik/authentik" "tarball" "${AUTHENTIK_VERSION}" "/opt/authentik"
|
||||||
GO_VERSION="$(grep -m1 '^go ' /opt/authentik/go.mod | awk '{print $2}')" setup_go
|
GO_VERSION="$(grep -m1 '^go ' /opt/authentik/go.mod | awk '{print $2}')" setup_go
|
||||||
fetch_and_deploy_gh_release "geoipupdate" "maxmind/geoipupdate" "binary"
|
fetch_and_deploy_gh_release "geoipupdate" "maxmind/geoipupdate" "binary"
|
||||||
UV_PYTHON_INSTALL_DIR="/usr/local/bin" PYTHON_VERSION="3.14.7" UV_PROJECT_DIR="/opt/authentik" setup_uv
|
|
||||||
|
|
||||||
msg_info "Setting up xmlsec"
|
msg_info "Setting up xmlsec"
|
||||||
cd /opt/xmlsec
|
cd /opt/xmlsec
|
||||||
|
|||||||
@@ -54,8 +54,9 @@ $STD /opt/calibre/calibre_postinstall
|
|||||||
CALIBRE_VERSION=$(cat ~/.calibre)
|
CALIBRE_VERSION=$(cat ~/.calibre)
|
||||||
msg_ok "Installed Calibre"
|
msg_ok "Installed Calibre"
|
||||||
|
|
||||||
|
setup_uv
|
||||||
|
|
||||||
fetch_and_deploy_codeberg_release "autocaliweb" "gelbphoenix/autocaliweb" "tarball" "latest" "/opt/autocaliweb"
|
fetch_and_deploy_codeberg_release "autocaliweb" "gelbphoenix/autocaliweb" "tarball" "latest" "/opt/autocaliweb"
|
||||||
setup_uv $INSTALL_DIR
|
|
||||||
|
|
||||||
msg_info "Configuring Autocaliweb"
|
msg_info "Configuring Autocaliweb"
|
||||||
INSTALL_DIR="/opt/autocaliweb"
|
INSTALL_DIR="/opt/autocaliweb"
|
||||||
|
|||||||
@@ -33,9 +33,9 @@ msg_ok "Installed Dependencies"
|
|||||||
PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql
|
PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql
|
||||||
PG_DB_NAME="baserow" PG_DB_USER="baserow" setup_postgresql_db
|
PG_DB_NAME="baserow" PG_DB_USER="baserow" setup_postgresql_db
|
||||||
NODE_VERSION="24" setup_nodejs
|
NODE_VERSION="24" setup_nodejs
|
||||||
|
setup_uv
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "baserow" "baserow/baserow" "tarball"
|
fetch_and_deploy_gh_release "baserow" "baserow/baserow" "tarball"
|
||||||
UV_PROJECT_DIR="/opt/baserow/backend" setup_uv
|
|
||||||
|
|
||||||
msg_info "Installing Backend Dependencies"
|
msg_info "Installing Backend Dependencies"
|
||||||
cd /opt/baserow/backend
|
cd /opt/baserow/backend
|
||||||
|
|||||||
@@ -13,8 +13,9 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
|
PYTHON_VERSION="3.14" setup_uv
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "beaverhabits" "daya0576/beaverhabits" "tarball"
|
fetch_and_deploy_gh_release "beaverhabits" "daya0576/beaverhabits" "tarball"
|
||||||
PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/beaverhabits" setup_uv
|
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
cd /opt/beaverhabits
|
cd /opt/beaverhabits
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ $STD apt install -y \
|
|||||||
sshpass
|
sshpass
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
PYTHON_VERSION="3.12" setup_uv
|
UV_PYTHON="3.12" setup_uv
|
||||||
NODE_VERSION="22" setup_nodejs
|
NODE_VERSION="22" setup_nodejs
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "borg-ui" "karanhudia/borg-ui" "tarball"
|
fetch_and_deploy_gh_release "borg-ui" "karanhudia/borg-ui" "tarball"
|
||||||
|
|||||||
@@ -52,8 +52,8 @@ $STD apt -y install --no-install-recommends \
|
|||||||
fonts-tlwg-loma-otf
|
fonts-tlwg-loma-otf
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
setup_uv
|
||||||
fetch_and_deploy_gh_release "Byparr" "ThePhaseless/Byparr" "tarball" "latest"
|
fetch_and_deploy_gh_release "Byparr" "ThePhaseless/Byparr" "tarball" "latest"
|
||||||
UV_PROJECT_DIR="/opt/Byparr" setup_uv
|
|
||||||
|
|
||||||
msg_info "Configuring Byparr"
|
msg_info "Configuring Byparr"
|
||||||
cd /opt/Byparr
|
cd /opt/Byparr
|
||||||
|
|||||||
@@ -34,12 +34,12 @@ $STD apt install -y \
|
|||||||
libswscale-dev
|
libswscale-dev
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
setup_uv
|
||||||
NODE_VERSION="24" setup_nodejs
|
NODE_VERSION="24" setup_nodejs
|
||||||
PG_VERSION="16" setup_postgresql
|
PG_VERSION="16" setup_postgresql
|
||||||
PG_DB_NAME="dispatcharr_db" PG_DB_USER="dispatcharr_usr" setup_postgresql_db
|
PG_DB_NAME="dispatcharr_db" PG_DB_USER="dispatcharr_usr" setup_postgresql_db
|
||||||
fetch_and_deploy_gh_release "dispatcharr" "Dispatcharr/Dispatcharr" "tarball"
|
fetch_and_deploy_gh_release "dispatcharr" "Dispatcharr/Dispatcharr" "tarball"
|
||||||
fetch_and_deploy_gh_release "Comskip" "erikkaashoek/Comskip" "tarball"
|
fetch_and_deploy_gh_release "Comskip" "erikkaashoek/Comskip" "tarball"
|
||||||
UV_PROJECT_DIR="/opt/dispatcharr" setup_uv
|
|
||||||
|
|
||||||
msg_info "Compiling Comskip"
|
msg_info "Compiling Comskip"
|
||||||
cd /opt/Comskip
|
cd /opt/Comskip
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ $STD apt install -y \
|
|||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs
|
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs
|
||||||
PYTHON_VERSION="3.14" setup_uv
|
UV_PYTHON="3.14" setup_uv
|
||||||
setup_mariadb
|
setup_mariadb
|
||||||
|
|
||||||
msg_info "Configuring MariaDB for ERPNext"
|
msg_info "Configuring MariaDB for ERPNext"
|
||||||
|
|||||||
@@ -44,7 +44,6 @@ NODE_VERSION=24 setup_nodejs
|
|||||||
PYTHON_VERSION=3.14 setup_uv
|
PYTHON_VERSION=3.14 setup_uv
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "fireshare" "ShaneIsrael/fireshare" "tarball"
|
fetch_and_deploy_gh_release "fireshare" "ShaneIsrael/fireshare" "tarball"
|
||||||
UV_PROJECT_DIR="/opt/fireshare" setup_uv
|
|
||||||
|
|
||||||
msg_info "Compiling SVT-AV1 (Patience)"
|
msg_info "Compiling SVT-AV1 (Patience)"
|
||||||
cd /tmp
|
cd /tmp
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ network_check
|
|||||||
update_os
|
update_os
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "flatnotes" "dullage/flatnotes" "tarball"
|
fetch_and_deploy_gh_release "flatnotes" "dullage/flatnotes" "tarball"
|
||||||
UV_PROJECT_DIR="/opt/flatnotes" setup_uv
|
|
||||||
PYTHON_VERSION="3.13" setup_uv
|
PYTHON_VERSION="3.13" setup_uv
|
||||||
NODE_VERSION="24" setup_nodejs
|
NODE_VERSION="24" setup_nodejs
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ $STD apt install -y \
|
|||||||
caddy
|
caddy
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
PYTHON_VERSION="3.13" setup_uv
|
UV_PYTHON="3.13" setup_uv
|
||||||
NODE_VERSION="20" setup_nodejs
|
NODE_VERSION="20" setup_nodejs
|
||||||
fetch_and_deploy_gh_release "homelable" "Pouzor/homelable" "tarball" "latest" "/opt/homelable"
|
fetch_and_deploy_gh_release "homelable" "Pouzor/homelable" "tarball" "latest" "/opt/homelable"
|
||||||
|
|
||||||
|
|||||||
@@ -30,9 +30,9 @@ msg_ok "Installed Dependencies"
|
|||||||
setup_ffmpeg
|
setup_ffmpeg
|
||||||
PG_VERSION="17" setup_postgresql
|
PG_VERSION="17" setup_postgresql
|
||||||
PG_DB_NAME="journiv" PG_DB_USER="journiv" setup_postgresql_db
|
PG_DB_NAME="journiv" PG_DB_USER="journiv" setup_postgresql_db
|
||||||
|
UV_PYTHON="3.12" setup_uv
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "journiv" "journiv/journiv-app" "tarball"
|
fetch_and_deploy_gh_release "journiv" "journiv/journiv-app" "tarball"
|
||||||
PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/journiv" setup_uv
|
|
||||||
|
|
||||||
msg_info "Setting up Python Environment"
|
msg_info "Setting up Python Environment"
|
||||||
cd /opt/journiv
|
cd /opt/journiv
|
||||||
|
|||||||
@@ -38,10 +38,10 @@ $STD apt install -y \
|
|||||||
libicu-dev
|
libicu-dev
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
PYTHON_VERSION="3.14" setup_uv
|
||||||
fetch_and_deploy_gh_release "kitchenowl" "TomBursch/kitchenowl" "tarball" "latest" "/opt/kitchenowl"
|
fetch_and_deploy_gh_release "kitchenowl" "TomBursch/kitchenowl" "tarball" "latest" "/opt/kitchenowl"
|
||||||
rm -rf /opt/kitchenowl/web
|
rm -rf /opt/kitchenowl/web
|
||||||
fetch_and_deploy_gh_release "kitchenowl-web" "TomBursch/kitchenowl" "prebuild" "latest" "/opt/kitchenowl/web" "kitchenowl_Web.tar.gz"
|
fetch_and_deploy_gh_release "kitchenowl-web" "TomBursch/kitchenowl" "prebuild" "latest" "/opt/kitchenowl/web" "kitchenowl_Web.tar.gz"
|
||||||
PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/kitchenowl/backend" setup_uv
|
|
||||||
|
|
||||||
msg_info "Setting up KitchenOwl"
|
msg_info "Setting up KitchenOwl"
|
||||||
cd /opt/kitchenowl/backend
|
cd /opt/kitchenowl/backend
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ setup_meilisearch
|
|||||||
PG_VERSION="17" PG_MODULES="pgvector" setup_postgresql
|
PG_VERSION="17" PG_MODULES="pgvector" setup_postgresql
|
||||||
PG_DB_NAME="ragapi" PG_DB_USER="ragapi" PG_DB_EXTENSIONS="vector" setup_postgresql_db
|
PG_DB_NAME="ragapi" PG_DB_USER="ragapi" PG_DB_EXTENSIONS="vector" setup_postgresql_db
|
||||||
NODE_VERSION="24" setup_nodejs
|
NODE_VERSION="24" setup_nodejs
|
||||||
PYTHON_VERSION="3.12" setup_uv
|
UV_PYTHON="3.12" setup_uv
|
||||||
|
|
||||||
fetch_and_deploy_gh_tag "librechat" "danny-avila/LibreChat"
|
fetch_and_deploy_gh_tag "librechat" "danny-avila/LibreChat"
|
||||||
fetch_and_deploy_gh_release "rag-api" "danny-avila/rag_api" "tarball"
|
fetch_and_deploy_gh_release "rag-api" "danny-avila/rag_api" "tarball"
|
||||||
|
|||||||
@@ -26,8 +26,8 @@ $STD apt install -y \
|
|||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
NODE_VERSION="22" setup_nodejs
|
NODE_VERSION="22" setup_nodejs
|
||||||
|
setup_uv
|
||||||
fetch_and_deploy_gh_release "linkding" "sissbruecker/linkding" "tarball"
|
fetch_and_deploy_gh_release "linkding" "sissbruecker/linkding" "tarball"
|
||||||
UV_PROJECT_DIR="/opt/linkding" setup_uv
|
|
||||||
|
|
||||||
msg_info "Building Frontend"
|
msg_info "Building Frontend"
|
||||||
cd /opt/linkding
|
cd /opt/linkding
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ $STD apt install -y \
|
|||||||
iproute2
|
iproute2
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
PYTHON_VERSION="3.12" setup_uv
|
UV_PYTHON="3.12" setup_uv
|
||||||
|
|
||||||
msg_info "Setting up Matter Server"
|
msg_info "Setting up Matter Server"
|
||||||
mkdir -p /opt/matter-server/data/credentials
|
mkdir -p /opt/matter-server/data/credentials
|
||||||
|
|||||||
@@ -27,9 +27,9 @@ $STD apt install -y \
|
|||||||
iproute2
|
iproute2
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
PYTHON_VERSION="3.12" setup_uv
|
||||||
PG_VERSION="16" setup_postgresql
|
PG_VERSION="16" setup_postgresql
|
||||||
fetch_and_deploy_gh_release "mealie" "mealie-recipes/mealie" "tarball"
|
fetch_and_deploy_gh_release "mealie" "mealie-recipes/mealie" "tarball"
|
||||||
PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/mealie" setup_uv
|
|
||||||
PG_DB_NAME="mealie_db" PG_DB_USER="mealie_user" PG_DB_GRANT_SUPERUSER="true" setup_postgresql_db
|
PG_DB_NAME="mealie_db" PG_DB_USER="mealie_user" PG_DB_GRANT_SUPERUSER="true" setup_postgresql_db
|
||||||
|
|
||||||
if [[ -f /opt/mealie/frontend/pnpm-lock.yaml ]]; then
|
if [[ -f /opt/mealie/frontend/pnpm-lock.yaml ]]; then
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ fi
|
|||||||
|
|
||||||
setup_yq
|
setup_yq
|
||||||
NODE_VERSION="24" setup_nodejs
|
NODE_VERSION="24" setup_nodejs
|
||||||
|
setup_uv
|
||||||
PG_VERSION="17" setup_postgresql
|
PG_VERSION="17" setup_postgresql
|
||||||
|
|
||||||
msg_info "Setting up PostgreSQL"
|
msg_info "Setting up PostgreSQL"
|
||||||
@@ -38,7 +39,6 @@ EOF
|
|||||||
msg_ok "Set up PostgreSQL"
|
msg_ok "Set up PostgreSQL"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "MediaManager" "maxdorninger/MediaManager" "tarball" "latest" "/opt/mediamanager"
|
fetch_and_deploy_gh_release "MediaManager" "maxdorninger/MediaManager" "tarball" "latest" "/opt/mediamanager"
|
||||||
UV_PROJECT_DIR="/opt/mediamanager" setup_uv
|
|
||||||
|
|
||||||
msg_info "Configuring MediaManager"
|
msg_info "Configuring MediaManager"
|
||||||
MM_DIR="/opt/mm"
|
MM_DIR="/opt/mm"
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ $STD apt install -y \
|
|||||||
ffmpeg
|
ffmpeg
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
PYTHON_VERSION="3.13" setup_uv
|
||||||
NODE_VERSION="24" NODE_MODULE="corepack,pnpm" setup_nodejs
|
NODE_VERSION="24" NODE_MODULE="corepack,pnpm" setup_nodejs
|
||||||
|
|
||||||
msg_info "Installing Deno"
|
msg_info "Installing Deno"
|
||||||
@@ -33,7 +34,6 @@ curl -fsSL https://deno.land/install.sh | $STD sh -s -- -y
|
|||||||
msg_ok "Installed Deno"
|
msg_ok "Installed Deno"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "metube" "alexta69/metube" "tarball" "latest"
|
fetch_and_deploy_gh_release "metube" "alexta69/metube" "tarball" "latest"
|
||||||
PYTHON_VERSION="3.13" UV_PROJECT_DIR="/opt/metube" setup_uv
|
|
||||||
|
|
||||||
msg_info "Installing MeTube"
|
msg_info "Installing MeTube"
|
||||||
cd /opt/metube/ui
|
cd /opt/metube/ui
|
||||||
|
|||||||
@@ -13,8 +13,9 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
|
setup_uv
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "notediscovery" "gamosoft/NoteDiscovery" "tarball"
|
fetch_and_deploy_gh_release "notediscovery" "gamosoft/NoteDiscovery" "tarball"
|
||||||
UV_PROJECT_DIR="/opt/notediscovery" setup_uv
|
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
msg_info "Installing Dependencies"
|
||||||
cd /opt/notediscovery
|
cd /opt/notediscovery
|
||||||
|
|||||||
@@ -45,8 +45,8 @@ msg_ok "Installed Dependencies"
|
|||||||
|
|
||||||
PG_VERSION="18" setup_postgresql
|
PG_VERSION="18" setup_postgresql
|
||||||
PG_DB_NAME="paperlessdb" PG_DB_USER="paperless" setup_postgresql_db
|
PG_DB_NAME="paperlessdb" PG_DB_USER="paperless" setup_postgresql_db
|
||||||
|
PYTHON_VERSION="3.13" setup_uv
|
||||||
fetch_and_deploy_gh_release "paperless" "paperless-ngx/paperless-ngx" "prebuild" "latest" "/opt/paperless" "paperless*tar.xz"
|
fetch_and_deploy_gh_release "paperless" "paperless-ngx/paperless-ngx" "prebuild" "latest" "/opt/paperless" "paperless*tar.xz"
|
||||||
PYTHON_VERSION="3.13" UV_PROJECT_DIR="/opt/paperless" setup_uv
|
|
||||||
|
|
||||||
msg_info "Setup Paperless-ngx"
|
msg_info "Setup Paperless-ngx"
|
||||||
cd /opt/paperless
|
cd /opt/paperless
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ $STD apt install -y \
|
|||||||
tesseract-ocr
|
tesseract-ocr
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
PYTHON_VERSION="3.13" setup_uv
|
UV_PYTHON="3.13" setup_uv
|
||||||
|
|
||||||
msg_info "Setting up pyLoad"
|
msg_info "Setting up pyLoad"
|
||||||
mkdir -p /opt/pyload_data/{userdir,downloads}
|
mkdir -p /opt/pyload_data/{userdir,downloads}
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ function decodeBase64(r) {
|
|||||||
export default { decodeBase64 };
|
export default { decodeBase64 };
|
||||||
EOF
|
EOF
|
||||||
msg_ok "Installed Angie with mod_zip and njs modules"
|
msg_ok "Installed Angie with mod_zip and njs modules"
|
||||||
|
PYTHON_VERSION="3.13" setup_uv
|
||||||
NODE_VERSION="24" setup_nodejs
|
NODE_VERSION="24" setup_nodejs
|
||||||
setup_mariadb
|
setup_mariadb
|
||||||
MARIADB_DB_NAME="romm" MARIADB_DB_USER="romm" setup_mariadb_db
|
MARIADB_DB_NAME="romm" MARIADB_DB_USER="romm" setup_mariadb_db
|
||||||
@@ -160,7 +161,6 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "romm" "rommapp/romm" "tarball"
|
fetch_and_deploy_gh_release "romm" "rommapp/romm" "tarball"
|
||||||
PYTHON_VERSION="3.13" UV_PROJECT_DIR="/opt/romm" setup_uv
|
|
||||||
echo "__version__ = \"$(cat ~/.romm)\"" >/opt/romm/backend/__version__.py
|
echo "__version__ = \"$(cat ~/.romm)\"" >/opt/romm/backend/__version__.py
|
||||||
|
|
||||||
msg_info "Creating environment file"
|
msg_info "Creating environment file"
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ msg_ok "Installed Dependencies"
|
|||||||
PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql
|
PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql
|
||||||
PG_DB_NAME="securo" PG_DB_USER="securo" PG_DB_EXTENSIONS="vector" setup_postgresql_db
|
PG_DB_NAME="securo" PG_DB_USER="securo" PG_DB_EXTENSIONS="vector" setup_postgresql_db
|
||||||
NODE_VERSION="22" setup_nodejs
|
NODE_VERSION="22" setup_nodejs
|
||||||
PYTHON_VERSION="3.12" setup_uv
|
UV_PYTHON="3.12" setup_uv
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "securo" "securo-finance/securo" "tarball"
|
fetch_and_deploy_gh_release "securo" "securo-finance/securo" "tarball"
|
||||||
|
|
||||||
|
|||||||
@@ -121,9 +121,9 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
NODE_VERSION="24" setup_nodejs
|
NODE_VERSION="24" setup_nodejs
|
||||||
|
PYTHON_VERSION="3.14" setup_uv
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "shelfmark" "calibrain/shelfmark" "tarball" "latest" "/opt/shelfmark"
|
fetch_and_deploy_gh_release "shelfmark" "calibrain/shelfmark" "tarball" "latest" "/opt/shelfmark"
|
||||||
PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/shelfmark" setup_uv
|
|
||||||
RELEASE_VERSION=$(cat "$HOME/.shelfmark")
|
RELEASE_VERSION=$(cat "$HOME/.shelfmark")
|
||||||
|
|
||||||
msg_info "Building Shelfmark frontend"
|
msg_info "Building Shelfmark frontend"
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ $STD apt install -y \
|
|||||||
ffmpeg
|
ffmpeg
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
PYTHON_VERSION="3.11" setup_uv
|
UV_PYTHON="3.11" setup_uv
|
||||||
NODE_VERSION="24" setup_nodejs
|
NODE_VERSION="24" setup_nodejs
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "soulsync" "Nezreka/SoulSync" "tarball"
|
fetch_and_deploy_gh_release "soulsync" "Nezreka/SoulSync" "tarball"
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ $STD apt install -y \
|
|||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "spoolman" "Donkie/Spoolman" "prebuild" "latest" "/opt/spoolman" "spoolman.zip"
|
fetch_and_deploy_gh_release "spoolman" "Donkie/Spoolman" "prebuild" "latest" "/opt/spoolman" "spoolman.zip"
|
||||||
UV_PROJECT_DIR="/opt/spoolman" setup_uv
|
|
||||||
PYTHON_VERSION="3.14" setup_uv
|
PYTHON_VERSION="3.14" setup_uv
|
||||||
|
|
||||||
msg_info "Setting up Spoolman"
|
msg_info "Setting up Spoolman"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ msg_info "Installing Dependencies"
|
|||||||
$STD apt install -y build-essential
|
$STD apt install -y build-essential
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
PYTHON_VERSION="3.12" setup_uv
|
UV_PYTHON="3.12" setup_uv
|
||||||
NODE_VERSION="22" setup_nodejs
|
NODE_VERSION="22" setup_nodejs
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "suggestarr" "giuseppe99barchetta/SuggestArr" "tarball"
|
fetch_and_deploy_gh_release "suggestarr" "giuseppe99barchetta/SuggestArr" "tarball"
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
PYTHON_VERSION="3.13" setup_uv
|
UV_PYTHON="3.13" setup_uv
|
||||||
NODE_VERSION="25" setup_nodejs
|
NODE_VERSION="25" setup_nodejs
|
||||||
setup_ffmpeg
|
setup_ffmpeg
|
||||||
setup_gs
|
setup_gs
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ $STD apt install -y \
|
|||||||
pkg-config
|
pkg-config
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
PYTHON_VERSION="3.13" setup_uv
|
UV_PYTHON="3.13" setup_uv
|
||||||
NODE_VERSION="24" setup_nodejs
|
NODE_VERSION="24" setup_nodejs
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "deno" "denoland/deno" "prebuild" "latest" "/usr/local/bin" "deno-$(arch_resolve "x86_64" "aarch64")-unknown-linux-gnu.zip"
|
fetch_and_deploy_gh_release "deno" "denoland/deno" "prebuild" "latest" "/usr/local/bin" "deno-$(arch_resolve "x86_64" "aarch64")-unknown-linux-gnu.zip"
|
||||||
|
|||||||
@@ -17,10 +17,10 @@ msg_info "Installing Dependencies"
|
|||||||
$STD apt install -y sqlite3
|
$STD apt install -y sqlite3
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
setup_uv
|
||||||
NODE_VERSION="22" setup_nodejs
|
NODE_VERSION="22" setup_nodejs
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "wizarr" "wizarrrr/wizarr" "tarball"
|
fetch_and_deploy_gh_release "wizarr" "wizarrrr/wizarr" "tarball"
|
||||||
UV_PROJECT_DIR="/opt/wizarr" setup_uv
|
|
||||||
|
|
||||||
msg_info "Configure Wizarr"
|
msg_info "Configure Wizarr"
|
||||||
cd /opt/wizarr
|
cd /opt/wizarr
|
||||||
|
|||||||
@@ -21,9 +21,9 @@ msg_ok "Installed Dependencies"
|
|||||||
|
|
||||||
PG_VERSION="16" setup_postgresql
|
PG_VERSION="16" setup_postgresql
|
||||||
PG_DB_NAME="yamtrack" PG_DB_USER="yamtrack" setup_postgresql_db
|
PG_DB_NAME="yamtrack" PG_DB_USER="yamtrack" setup_postgresql_db
|
||||||
|
PYTHON_VERSION="3.12" setup_uv
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "yamtrack" "FuzzyGrim/Yamtrack" "tarball"
|
fetch_and_deploy_gh_release "yamtrack" "FuzzyGrim/Yamtrack" "tarball"
|
||||||
PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/yamtrack" setup_uv
|
|
||||||
|
|
||||||
msg_info "Installing Python Dependencies"
|
msg_info "Installing Python Dependencies"
|
||||||
cd /opt/yamtrack
|
cd /opt/yamtrack
|
||||||
|
|||||||
@@ -30,6 +30,8 @@ ln -sf /opt/bun/bin/bun /usr/local/bin/bun
|
|||||||
ln -sf /opt/bun/bin/bunx /usr/local/bin/bunx
|
ln -sf /opt/bun/bin/bunx /usr/local/bin/bunx
|
||||||
msg_ok "Installed Bun"
|
msg_ok "Installed Bun"
|
||||||
|
|
||||||
|
UV_VERSION="0.7.19" PYTHON_VERSION="3.12" setup_uv
|
||||||
|
|
||||||
msg_info "Installing Deno"
|
msg_info "Installing Deno"
|
||||||
$STD sh -c "curl -fsSL https://deno.land/install.sh | DENO_INSTALL=/usr/local sh -s -- -y"
|
$STD sh -c "curl -fsSL https://deno.land/install.sh | DENO_INSTALL=/usr/local sh -s -- -y"
|
||||||
msg_ok "Installed Deno"
|
msg_ok "Installed Deno"
|
||||||
@@ -41,7 +43,6 @@ mkdir -p /opt/yubal \
|
|||||||
msg_ok "Created directories"
|
msg_ok "Created directories"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "yubal" "guillevc/yubal" "tarball" "latest" "/opt/yubal"
|
fetch_and_deploy_gh_release "yubal" "guillevc/yubal" "tarball" "latest" "/opt/yubal"
|
||||||
PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/yubal" setup_uv
|
|
||||||
|
|
||||||
msg_info "Building Frontend"
|
msg_info "Building Frontend"
|
||||||
cd /opt/yubal/web
|
cd /opt/yubal/web
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
___ __ __ _
|
|
||||||
/ | / /___ ___ ____ _/ / (_)___ __ ___ __
|
|
||||||
/ /| | / / __ `__ \/ __ `/ / / / __ \/ / / / |/_/
|
|
||||||
/ ___ |/ / / / / / / /_/ / /___/ / / / / /_/ /> <
|
|
||||||
/_/ |_/_/_/ /_/ /_/\__,_/_____/_/_/ /_/\__,_/_/|_|
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
____ __ _
|
|
||||||
/ __ \___ / /_ (_)___ _____
|
|
||||||
/ / / / _ \/ __ \/ / __ `/ __ \
|
|
||||||
/ /_/ / __/ /_/ / / /_/ / / / /
|
|
||||||
/_____/\___/_.___/_/\__,_/_/ /_/
|
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
__ ____ __
|
|
||||||
/ / / / /_ __ ______ / /___ __
|
|
||||||
/ / / / __ \/ / / / __ \/ __/ / / /
|
|
||||||
/ /_/ / /_/ / /_/ / / / / /_/ /_/ /
|
|
||||||
\____/_.___/\__,_/_/ /_/\__/\__,_/
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user