cleanuip
This commit is contained in:
@@ -1,59 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: CopilotAssistant (community-scripts)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://github.com/coredns/coredns
|
||||
|
||||
APP="Alpine-CoreDNS"
|
||||
var_tags="${var_tags:-dns;network;alpine}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-256}"
|
||||
var_disk="${var_disk:-1}"
|
||||
var_os="${var_os:-alpine}"
|
||||
var_version="${var_version:-3.23}"
|
||||
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/local/bin/coredns ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "coredns" "coredns/coredns"; then
|
||||
msg_info "Stopping Service"
|
||||
rc-service coredns stop
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
ARCH=$(uname -m)
|
||||
[[ "$ARCH" == "x86_64" ]] && ARCH="amd64"
|
||||
[[ "$ARCH" == "aarch64" ]] && ARCH="arm64"
|
||||
fetch_and_deploy_gh_release "coredns" "coredns/coredns" "prebuild" "latest" "/usr/local/bin" \
|
||||
"coredns_.*_linux_${ARCH}\.tgz"
|
||||
chmod +x /usr/local/bin/coredns
|
||||
|
||||
msg_info "Starting Service"
|
||||
rc-service coredns start
|
||||
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} CoreDNS is listening on port 53 (DNS)${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}dns://${IP}${CL}"
|
||||
155
ct/authentik.sh
155
ct/authentik.sh
@@ -1,155 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: Thieneret
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://github.com/goauthentik/authentik
|
||||
|
||||
APP="authentik"
|
||||
var_tags="${var_tags:-auth}"
|
||||
var_cpu="${var_cpu:-4}"
|
||||
var_ram="${var_ram:-4096}"
|
||||
var_disk="${var_disk:-16}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
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/authentik ]]; then
|
||||
msg_error "No authentik Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
NODE_VERSION="24" setup_nodejs
|
||||
setup_go
|
||||
UV_PYTHON_INSTALL_DIR="/usr/local/bin" PYTHON_VERSION="3.14.3" setup_uv
|
||||
setup_rust
|
||||
|
||||
AUTHENTIK_VERSION="version/2026.2.2"
|
||||
XMLSEC_VERSION="1.3.11"
|
||||
|
||||
if check_for_gh_release "geoipupdate" "maxmind/geoipupdate"; then
|
||||
fetch_and_deploy_gh_release "geoipupdate" "maxmind/geoipupdate" "binary"
|
||||
fi
|
||||
|
||||
if check_for_gh_release "xmlsec" "lsh123/xmlsec" "${XMLSEC_VERSION}"; then
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "xmlsec" "lsh123/xmlsec" "tarball" "${XMLSEC_VERSION}" "/opt/xmlsec"
|
||||
|
||||
msg_info "Updating xmlsec"
|
||||
cd /opt/xmlsec
|
||||
$STD ./autogen.sh
|
||||
$STD make -j $(nproc)
|
||||
$STD make check
|
||||
$STD make install
|
||||
$STD ldconfig
|
||||
msg_ok "Updated xmlsec"
|
||||
fi
|
||||
|
||||
if check_for_gh_release "authentik" "goauthentik/authentik" "${AUTHENTIK_VERSION}"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop authentik-server authentik-worker
|
||||
if [[ $(systemctl is-active authentik-ldap) == active ]]; then
|
||||
systemctl stop authentik-ldap
|
||||
fi
|
||||
if [[ $(systemctl is-active authentik-rac) == active ]]; then
|
||||
systemctl stop authentik-rac
|
||||
fi
|
||||
if [[ $(systemctl is-active authentik-radius) == active ]]; then
|
||||
systemctl stop authentik-radius
|
||||
fi
|
||||
msg_ok "Stopped Services"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "authentik" "goauthentik/authentik" "tarball" "${AUTHENTIK_VERSION}" "/opt/authentik"
|
||||
|
||||
msg_info "Updating web"
|
||||
cd /opt/authentik/web
|
||||
export NODE_ENV="production"
|
||||
$STD npm install
|
||||
$STD npm run build
|
||||
$STD npm run build:sfe
|
||||
msg_ok "Updated web"
|
||||
|
||||
msg_info "Updating go proxy"
|
||||
cd /opt/authentik
|
||||
export CGO_ENABLED="1"
|
||||
$STD go mod download
|
||||
$STD go build -o /opt/authentik/authentik-server ./cmd/server
|
||||
$STD go build -o /opt/authentik/ldap ./cmd/ldap
|
||||
$STD go build -o /opt/authentik/rac ./cmd/rac
|
||||
$STD go build -o /opt/authentik/radius ./cmd/radius
|
||||
msg_ok "Updated go proxy"
|
||||
|
||||
msg_info "Updating python server"
|
||||
export UV_NO_BINARY_PACKAGE="cryptography lxml python-kadmin-rs xmlsec"
|
||||
export UV_COMPILE_BYTECODE="1"
|
||||
export UV_LINK_MODE="copy"
|
||||
export UV_NATIVE_TLS="1"
|
||||
export RUSTUP_PERMIT_COPY_RENAME="true"
|
||||
export UV_PYTHON_INSTALL_DIR="/usr/local/bin"
|
||||
cd /opt/authentik
|
||||
$STD uv sync --frozen --no-install-project --no-dev
|
||||
chown -R authentik:authentik /opt/authentik
|
||||
msg_ok "Updated python server"
|
||||
fi
|
||||
|
||||
msg_info "Starting Services"
|
||||
systemctl start authentik-server authentik-worker
|
||||
if [[ $(systemctl is-enabled authentik-ldap) == enabled ]]; then
|
||||
systemctl start authentik-ldap
|
||||
fi
|
||||
if [[ $(systemctl is-enabled authentik-rac) == enabled ]]; then
|
||||
systemctl start authentik-rac
|
||||
fi
|
||||
if [[ $(systemctl is-enabled authentik-radius) == enabled ]]; then
|
||||
systemctl start authentik-radius
|
||||
fi
|
||||
msg_ok "Started Services"
|
||||
msg_ok "Updated successfully!"
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
|
||||
msg_info "Attaching data storage volume"
|
||||
$STD pct stop "$CTID"
|
||||
if [ "${PROTECT_CT:-}" == "1" ] || [ "${PROTECT_CT:-}" == "yes" ]; then
|
||||
$STD pct set "$CTID" --protection 0
|
||||
$STD pct set "$CTID" -mp0 "${CONTAINER_STORAGE}":1,mp=/opt/authentik-data,backup=1
|
||||
$STD pct set "$CTID" --protection 1
|
||||
else
|
||||
$STD pct set "$CTID" -mp0 "${CONTAINER_STORAGE}":1,mp=/opt/authentik-data,backup=1
|
||||
fi
|
||||
$STD pct start "$CTID"
|
||||
for i in {1..10}; do
|
||||
pct status "$CTID" | grep -q "status: running" && break
|
||||
sleep 1
|
||||
done
|
||||
$STD pct exec "$CTID" -- bash -c "mkdir -p /opt/authentik-data/{certs,media,geoip,templates}; \
|
||||
cp /opt/authentik/tests/GeoLite2-ASN-Test.mmdb /opt/authentik-data/geoip/GeoLite2-ASN.mmdb; \
|
||||
cp /opt/authentik/tests/GeoLite2-City-Test.mmdb /opt/authentik-data/geoip/GeoLite2-City.mmdb; \
|
||||
chown authentik:authentik /opt/authentik-data; \
|
||||
chown -R authentik:authentik /opt/authentik-data/{certs,media,geoip,templates}"
|
||||
msg_ok "Attached data storage volume"
|
||||
|
||||
msg_info "Starting Services"
|
||||
pct exec "$CTID" -- systemctl enable -q --now authentik-server authentik-worker
|
||||
msg_ok "Started Services"
|
||||
|
||||
description
|
||||
|
||||
msg_ok "Completed successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} Initial setup URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9000/if/flow/initial-setup/${CL}"
|
||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9000${CL}"
|
||||
73
ct/degoog.sh
73
ct/degoog.sh
@@ -1,73 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: vhsdream
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://github.com/fccview/degoog
|
||||
|
||||
APP="degoog"
|
||||
var_tags="${var_tags:-search;privacy;plugins}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-6}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
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/degoog ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "degoog" "fccview/degoog"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop degoog
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Backing up Configuration & Data"
|
||||
[[ -f /opt/degoog/.env ]] && cp /opt/degoog/.env /opt/degoog.env.bak
|
||||
[[ -d /opt/degoog/data ]] && mv /opt/degoog/data /opt/degoog_data_backup
|
||||
msg_ok "Backed up Configuration & Data"
|
||||
|
||||
if ! command -v bun >/dev/null 2>&1; then
|
||||
msg_info "Installing Bun"
|
||||
export BUN_INSTALL="/root/.bun"
|
||||
curl -fsSL https://bun.sh/install | $STD bash
|
||||
ln -sf /root/.bun/bin/bun /usr/local/bin/bun
|
||||
ln -sf /root/.bun/bin/bunx /usr/local/bin/bunx
|
||||
msg_ok "Installed Bun"
|
||||
fi
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "degoog" "fccview/degoog" "prebuild" "latest" "/opt/degoog" "degoog_*_prebuild.tar.gz"
|
||||
|
||||
msg_info "Restoring Configuration & Data"
|
||||
[[ -f /opt/degoog.env.bak ]] && mv /opt/degoog.env.bak /opt/degoog/.env
|
||||
[[ -d /opt/degoog_data_backup ]] && mv /opt/degoog_data_backup /opt/degoog/data
|
||||
msg_ok "Restored Configuration & Data"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start degoog
|
||||
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 "${TAB}${GATEWAY}${BGN}http://${IP}:4444${CL}"
|
||||
@@ -1,173 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: ekke85 | MickLesk
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://github.com/Dispatcharr/Dispatcharr
|
||||
|
||||
APP="Dispatcharr"
|
||||
var_tags="${var_tags:-media;arr}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-8}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
var_gpu="${var_gpu:-yes}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d "/opt/dispatcharr" ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
setup_uv
|
||||
NODE_VERSION="24" setup_nodejs
|
||||
|
||||
# Fix for nginx not allowing large files
|
||||
if ! grep -q "client_max_body_size 100M;" /etc/nginx/sites-available/dispatcharr.conf; then
|
||||
sed -i '/server_name _;/a \ client_max_body_size 100M;' /etc/nginx/sites-available/dispatcharr.conf
|
||||
systemctl reload nginx
|
||||
fi
|
||||
|
||||
ensure_dependencies vlc-bin vlc-plugin-base
|
||||
|
||||
if check_for_gh_release "Dispatcharr" "Dispatcharr/Dispatcharr"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop dispatcharr-celery
|
||||
systemctl stop dispatcharr-celerybeat
|
||||
systemctl stop dispatcharr-daphne
|
||||
systemctl stop dispatcharr
|
||||
msg_ok "Stopped Services"
|
||||
|
||||
msg_info "Creating Backup"
|
||||
if [[ -f /opt/dispatcharr/.env ]]; then
|
||||
cp /opt/dispatcharr/.env /opt/dispatcharr.env.bak
|
||||
fi
|
||||
if [[ -f /opt/dispatcharr/start-gunicorn.sh ]]; then
|
||||
rm -f /opt/dispatcharr/start-gunicorn.sh
|
||||
fi
|
||||
if [[ -f /opt/dispatcharr/start-celery.sh ]]; then
|
||||
cp /opt/dispatcharr/start-celery.sh /opt/start-celery.sh.bak
|
||||
fi
|
||||
if [[ -f /opt/dispatcharr/start-celerybeat.sh ]]; then
|
||||
cp /opt/dispatcharr/start-celerybeat.sh /opt/start-celerybeat.sh.bak
|
||||
fi
|
||||
if [[ -f /opt/dispatcharr/start-daphne.sh ]]; then
|
||||
cp /opt/dispatcharr/start-daphne.sh /opt/start-daphne.sh.bak
|
||||
fi
|
||||
if [[ -f /opt/dispatcharr/.env ]]; then
|
||||
set -o allexport
|
||||
source /opt/dispatcharr/.env
|
||||
set +o allexport
|
||||
if [[ -n "$POSTGRES_DB" ]] && [[ -n "$POSTGRES_USER" ]] && [[ -n "$POSTGRES_PASSWORD" ]]; then
|
||||
PGPASSWORD=$POSTGRES_PASSWORD pg_dump -U "$POSTGRES_USER" -h "${POSTGRES_HOST:-localhost}" -p "${POSTGRES_PORT:-5432}" "$POSTGRES_DB" >/opt/dispatcharr_db_$(date +%F).sql
|
||||
fi
|
||||
fi
|
||||
msg_ok "Created Backup"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dispatcharr" "Dispatcharr/Dispatcharr" "tarball"
|
||||
|
||||
msg_info "Restoring Configuration"
|
||||
if [[ -f /opt/dispatcharr.env.bak ]]; then
|
||||
mv /opt/dispatcharr.env.bak /opt/dispatcharr/.env
|
||||
fi
|
||||
if [[ -f /opt/start-celery.sh.bak ]]; then
|
||||
mv /opt/start-celery.sh.bak /opt/dispatcharr/start-celery.sh
|
||||
fi
|
||||
if [[ -f /opt/start-celerybeat.sh.bak ]]; then
|
||||
mv /opt/start-celerybeat.sh.bak /opt/dispatcharr/start-celerybeat.sh
|
||||
fi
|
||||
if [[ -f /opt/start-daphne.sh.bak ]]; then
|
||||
mv /opt/start-daphne.sh.bak /opt/dispatcharr/start-daphne.sh
|
||||
fi
|
||||
|
||||
if ! grep -q "DJANGO_SECRET_KEY" /opt/dispatcharr/.env; then
|
||||
DJANGO_SECRET=$(openssl rand -base64 48 | tr -dc 'a-zA-Z0-9' | cut -c1-50)
|
||||
echo "DJANGO_SECRET_KEY=$DJANGO_SECRET" >>/opt/dispatcharr/.env
|
||||
fi
|
||||
msg_ok "Restored Configuration"
|
||||
|
||||
msg_info "Updating Python Environment"
|
||||
cd /opt/dispatcharr
|
||||
rm -rf .venv
|
||||
$STD uv venv --clear
|
||||
$STD uv sync
|
||||
$STD uv pip install uwsgi gevent celery redis daphne
|
||||
cat <<'UWSGI_EOF' >/opt/dispatcharr/start-uwsgi.sh
|
||||
#!/usr/bin/env bash
|
||||
cd /opt/dispatcharr
|
||||
set -a
|
||||
source .env
|
||||
set +a
|
||||
exec .venv/bin/uwsgi \
|
||||
--chdir=/opt/dispatcharr \
|
||||
--module=dispatcharr.wsgi:application \
|
||||
--master \
|
||||
--workers=4 \
|
||||
--gevent=400 \
|
||||
--http=0.0.0.0:5656 \
|
||||
--http-keepalive=1 \
|
||||
--http-timeout=600 \
|
||||
--socket-timeout=600 \
|
||||
--buffer-size=65536 \
|
||||
--post-buffering=4096 \
|
||||
--lazy-apps \
|
||||
--thunder-lock \
|
||||
--die-on-term \
|
||||
--vacuum
|
||||
UWSGI_EOF
|
||||
chmod +x /opt/dispatcharr/start-uwsgi.sh
|
||||
if grep -q 'start-gunicorn.sh' /etc/systemd/system/dispatcharr.service; then
|
||||
sed -i 's|start-gunicorn.sh|start-uwsgi.sh|g' /etc/systemd/system/dispatcharr.service
|
||||
systemctl daemon-reload
|
||||
fi
|
||||
msg_ok "Updated Python Environment"
|
||||
|
||||
msg_info "Building Frontend"
|
||||
cd /opt/dispatcharr/frontend
|
||||
node -e "const p=require('./package.json');p.overrides=p.overrides||{};p.overrides['webworkify-webpack']='2.1.3';require('fs').writeFileSync('package.json',JSON.stringify(p,null,2));"
|
||||
rm -f package-lock.json
|
||||
$STD npm install --no-audit --progress=false
|
||||
$STD npm run build
|
||||
msg_ok "Built Frontend"
|
||||
|
||||
msg_info "Running Database Migrations"
|
||||
cd /opt/dispatcharr
|
||||
if [[ -f .env ]]; then
|
||||
set -o allexport
|
||||
source .env
|
||||
set +o allexport
|
||||
fi
|
||||
$STD uv run python manage.py migrate --noinput
|
||||
$STD uv run python manage.py collectstatic --noinput
|
||||
rm -f /opt/dispatcharr_db_*.sql
|
||||
msg_ok "Ran Database Migrations"
|
||||
|
||||
msg_info "Starting Services"
|
||||
systemctl start dispatcharr
|
||||
systemctl start dispatcharr-celery
|
||||
systemctl start dispatcharr-celerybeat
|
||||
systemctl start dispatcharr-daphne
|
||||
msg_ok "Started Services"
|
||||
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 "${TAB}${GATEWAY}${BGN}http://${IP}:9191${CL}"
|
||||
@@ -1,84 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://www.docuseal.com/
|
||||
|
||||
APP="DocuSeal"
|
||||
var_tags="${var_tags:-document;esignature;pdf}"
|
||||
var_cpu="${var_cpu:-4}"
|
||||
var_ram="${var_ram:-4096}"
|
||||
var_disk="${var_disk:-10}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
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/docuseal ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "docuseal" "docusealco/docuseal"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop docuseal docuseal-sidekiq
|
||||
msg_ok "Stopped Services"
|
||||
|
||||
msg_info "Backing up Data"
|
||||
cp /opt/docuseal/.env /opt/docuseal.env.bak
|
||||
[[ -d /opt/docuseal/data ]] && mv /opt/docuseal/data /opt/docuseal_data.bak
|
||||
msg_ok "Backed up Data"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "docuseal" "docusealco/docuseal" "tarball"
|
||||
|
||||
msg_info "Restoring Data"
|
||||
mv /opt/docuseal.env.bak /opt/docuseal/.env
|
||||
[[ -d /opt/docuseal_data.bak ]] && mv /opt/docuseal_data.bak /opt/docuseal/data
|
||||
msg_ok "Restored Data"
|
||||
|
||||
msg_info "Building Application"
|
||||
cd /opt/docuseal
|
||||
export PATH="$HOME/.rbenv/bin:$HOME/.rbenv/shims:$PATH"
|
||||
eval "$(rbenv init - bash)" 2>/dev/null || true
|
||||
export RAILS_ENV=production
|
||||
export NODE_ENV=production
|
||||
export SECRET_KEY_BASE_DUMMY=1
|
||||
set -a
|
||||
source /opt/docuseal/.env
|
||||
set +a
|
||||
$STD bundle config set --local deployment 'true'
|
||||
$STD bundle config set --local without 'development:test'
|
||||
$STD bundle install -j"$(nproc)"
|
||||
$STD yarn install --network-timeout 1000000
|
||||
$STD ./bin/shakapacker
|
||||
$STD bundle exec rails db:migrate
|
||||
$STD bundle exec bootsnap precompile -j 1 --gemfile app/ lib/
|
||||
chown -R docuseal:docuseal /opt/docuseal
|
||||
msg_ok "Built Application"
|
||||
|
||||
msg_info "Starting Services"
|
||||
systemctl start docuseal docuseal-sidekiq
|
||||
msg_ok "Started Services"
|
||||
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 "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
||||
@@ -1,49 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: community-scripts
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://github.com/frappe/erpnext
|
||||
|
||||
APP="ERPNext"
|
||||
var_tags="${var_tags:-erp;business;accounting}"
|
||||
var_cpu="${var_cpu:-4}"
|
||||
var_ram="${var_ram:-4096}"
|
||||
var_disk="${var_disk:-20}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
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/frappe-bench ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
msg_info "Updating ERPNext"
|
||||
$STD sudo -u frappe bash -c 'export PATH="$HOME/.local/bin:$PATH"; cd /opt/frappe-bench && bench update --reset'
|
||||
msg_ok "Updated ERPNext"
|
||||
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 "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
|
||||
echo -e "${INFO}${YW} Credentials:${CL}"
|
||||
echo -e "${TAB}${BGN}Username: Administrator${CL}"
|
||||
echo -e "${TAB}${BGN}Password: see ~/erpnext.creds${CL}"
|
||||
@@ -1,55 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
COMMUNITY_SCRIPTS_URL="${COMMUNITY_SCRIPTS_URL:-https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main}"
|
||||
source <(curl -fsSL "$COMMUNITY_SCRIPTS_URL/misc/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: John Lombardo
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://github.com/thelastoutpostworkshop/ESPConnect
|
||||
|
||||
APP="ESPConnect"
|
||||
var_tags="${var_tags:-iot;esp32;flash}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-512}"
|
||||
var_disk="${var_disk:-4}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
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/espconnect ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "espconnect" "thelastoutpostworkshop/ESPConnect"; then
|
||||
msg_info "Stopping Nginx"
|
||||
systemctl stop nginx
|
||||
msg_ok "Stopped Nginx"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "espconnect" "thelastoutpostworkshop/ESPConnect" "prebuild" "latest" "/opt/espconnect" "dist.zip"
|
||||
|
||||
msg_info "Starting Nginx"
|
||||
systemctl start nginx
|
||||
msg_ok "Started Nginx"
|
||||
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 "${TAB}${GATEWAY}${BGN}https://${IP}${CL}"
|
||||
@@ -1,65 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: kkroboth
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://fileflows.com/
|
||||
|
||||
APP="FileFlows"
|
||||
var_tags="${var_tags:-media;automation}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-8}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
var_gpu="${var_gpu:-yes}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -d /opt/fileflows ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
update_available=$(curl -fsSL -X 'GET' "http://localhost:19200/api/status/update-available" -H 'accept: application/json' | jq .UpdateAvailable)
|
||||
if [[ "${update_available}" == "true" ]]; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop fileflows*
|
||||
msg_info "Stopped Service"
|
||||
|
||||
msg_info "Creating Backup"
|
||||
ls /opt/*.tar.gz &>/dev/null && rm -f /opt/*.tar.gz
|
||||
backup_filename="/opt/${APP}_backup_$(date +%F).tar.gz"
|
||||
tar -czf "$backup_filename" -C /opt/fileflows Data
|
||||
msg_ok "Backup Created"
|
||||
|
||||
fetch_and_deploy_from_url "https://fileflows.com/downloads/zip" "/opt/fileflows"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start fileflows*
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated successfully!"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at latest version"
|
||||
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 "${TAB}${GATEWAY}${BGN}http://${IP}:19200${CL}"
|
||||
101
ct/librechat.sh
101
ct/librechat.sh
@@ -1,101 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://github.com/danny-avila/LibreChat
|
||||
|
||||
APP="LibreChat"
|
||||
var_tags="${var_tags:-ai;chat}"
|
||||
var_cpu="${var_cpu:-4}"
|
||||
var_ram="${var_ram:-6144}"
|
||||
var_disk="${var_disk:-20}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
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/librechat ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_tag "librechat" "danny-avila/LibreChat" "v"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop librechat rag-api
|
||||
msg_ok "Stopped Services"
|
||||
|
||||
msg_info "Backing up Configuration"
|
||||
cp /opt/librechat/.env /opt/librechat.env.bak
|
||||
msg_ok "Backed up Configuration"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_tag "librechat" "danny-avila/LibreChat"
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
cd /opt/librechat
|
||||
$STD npm ci
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Building Frontend"
|
||||
$STD npm run frontend
|
||||
$STD npm prune --production
|
||||
$STD npm cache clean --force
|
||||
msg_ok "Built Frontend"
|
||||
|
||||
msg_info "Restoring Configuration"
|
||||
cp /opt/librechat.env.bak /opt/librechat/.env
|
||||
rm -f /opt/librechat.env.bak
|
||||
msg_ok "Restored Configuration"
|
||||
|
||||
msg_info "Starting Services"
|
||||
systemctl start rag-api librechat
|
||||
msg_ok "Started Services"
|
||||
msg_ok "Updated LibreChat Successfully!"
|
||||
fi
|
||||
|
||||
if check_for_gh_release "rag-api" "danny-avila/rag_api"; then
|
||||
msg_info "Stopping RAG API"
|
||||
systemctl stop rag-api
|
||||
msg_ok "Stopped RAG API"
|
||||
|
||||
msg_info "Backing up RAG API Configuration"
|
||||
cp /opt/rag-api/.env /opt/rag-api.env.bak
|
||||
msg_ok "Backed up RAG API Configuration"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "rag-api" "danny-avila/rag_api" "tarball"
|
||||
|
||||
msg_info "Updating RAG API Dependencies"
|
||||
cd /opt/rag-api
|
||||
$STD .venv/bin/pip install -r requirements.lite.txt
|
||||
msg_ok "Updated RAG API Dependencies"
|
||||
|
||||
msg_info "Restoring RAG API Configuration"
|
||||
cp /opt/rag-api.env.bak /opt/rag-api/.env
|
||||
rm -f /opt/rag-api.env.bak
|
||||
msg_ok "Restored RAG API Configuration"
|
||||
|
||||
msg_info "Starting RAG API"
|
||||
systemctl start rag-api
|
||||
msg_ok "Started RAG API"
|
||||
msg_ok "Updated RAG API 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 "${TAB}${GATEWAY}${BGN}http://${IP}:3080${CL}"
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://github.com/lobehub/lobehub
|
||||
|
||||
APP="LobeHub"
|
||||
var_tags="${var_tags:-ai;chat}"
|
||||
var_cpu="${var_cpu:-6}"
|
||||
var_ram="${var_ram:-10240}"
|
||||
var_disk="${var_disk:-15}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
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/lobehub ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "lobehub" "lobehub/lobehub"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop lobehub
|
||||
msg_ok "Stopped Services"
|
||||
|
||||
msg_info "Backing up Data"
|
||||
cp /opt/lobehub/.env /opt/lobehub.env.bak
|
||||
msg_ok "Backed up Data"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "lobehub" "lobehub/lobehub" "tarball"
|
||||
|
||||
msg_info "Restoring Configuration"
|
||||
cp /opt/lobehub.env.bak /opt/lobehub/.env
|
||||
rm -f /opt/lobehub.env.bak
|
||||
msg_ok "Restored Configuration"
|
||||
|
||||
msg_info "Building Application"
|
||||
cd /opt/lobehub
|
||||
export NODE_OPTIONS="--max-old-space-size=8192"
|
||||
$STD pnpm install
|
||||
$STD pnpm run build:docker
|
||||
unset NODE_OPTIONS
|
||||
msg_ok "Built Application"
|
||||
|
||||
msg_info "Running Database Migrations"
|
||||
cd /opt/lobehub
|
||||
set -a && source /opt/lobehub/.env && set +a
|
||||
$STD node /opt/lobehub/.next/standalone/docker.cjs
|
||||
msg_ok "Ran Database Migrations"
|
||||
|
||||
msg_info "Starting Services"
|
||||
systemctl start lobehub
|
||||
msg_ok "Started Services"
|
||||
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 "${TAB}${GATEWAY}${BGN}http://${IP}:3210${CL}"
|
||||
73
ct/lychee.sh
73
ct/lychee.sh
@@ -1,73 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://github.com/LycheeOrg/Lychee
|
||||
|
||||
APP="Lychee"
|
||||
var_tags="${var_tags:-media;photos;gallery}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-8}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
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/lychee ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "lychee" "LycheeOrg/Lychee"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop caddy
|
||||
msg_ok "Stopped Services"
|
||||
|
||||
msg_info "Backing up Data"
|
||||
cp /opt/lychee/.env /opt/lychee.env.bak
|
||||
cp -r /opt/lychee/storage /opt/lychee_storage_backup
|
||||
msg_ok "Backed up Data"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "lychee" "LycheeOrg/Lychee" "prebuild" "latest" "/opt/lychee" "Lychee.zip"
|
||||
|
||||
msg_info "Restoring Data"
|
||||
cp /opt/lychee.env.bak /opt/lychee/.env
|
||||
rm -f /opt/lychee.env.bak
|
||||
cp -r /opt/lychee_storage_backup/. /opt/lychee/storage
|
||||
rm -rf /opt/lychee_storage_backup
|
||||
msg_ok "Restored Data"
|
||||
|
||||
msg_info "Updating Application"
|
||||
cd /opt/lychee
|
||||
$STD php artisan migrate --force
|
||||
$STD php artisan optimize:clear
|
||||
chmod -R 775 /opt/lychee/storage /opt/lychee/bootstrap/cache
|
||||
msg_ok "Updated Application"
|
||||
|
||||
msg_info "Starting Services"
|
||||
systemctl start caddy
|
||||
msg_ok "Started Services"
|
||||
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 "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"
|
||||
90
ct/matomo.sh
90
ct/matomo.sh
@@ -1,90 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://matomo.org/
|
||||
|
||||
APP="Matomo"
|
||||
var_tags="${var_tags:-analytics;tracking;privacy}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-16}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function flatten_matomo_layout() {
|
||||
if [[ -d /opt/matomo/matomo ]]; then
|
||||
msg_info "Migrating Legacy Layout"
|
||||
rm -rf /opt/matomo/tmp "/opt/matomo/How to install Matomo.html"
|
||||
find /opt/matomo/matomo -mindepth 1 -maxdepth 1 -exec mv -t /opt/matomo {} +
|
||||
rm -rf /opt/matomo/matomo
|
||||
msg_ok "Migrated Legacy Layout"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -d /opt/matomo ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "matomo" "matomo-org/matomo"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop caddy
|
||||
msg_ok "Stopped Services"
|
||||
|
||||
flatten_matomo_layout
|
||||
|
||||
msg_info "Backing up Data"
|
||||
[[ -f /opt/matomo/config/config.ini.php ]] && cp /opt/matomo/config/config.ini.php /opt/matomo_config.bak
|
||||
[[ -d /opt/matomo/misc/user ]] && cp -r /opt/matomo/misc/user /opt/matomo_user_backup
|
||||
[[ -f /root/matomo.creds ]] && cp /root/matomo.creds /opt/matomo_db_creds.bak
|
||||
msg_ok "Backed up Data"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "matomo" "matomo-org/matomo" "prebuild" "latest" "/opt/matomo" "matomo-*.zip"
|
||||
|
||||
flatten_matomo_layout
|
||||
|
||||
msg_info "Restoring Data"
|
||||
if [[ -f /opt/matomo_config.bak ]]; then
|
||||
mkdir -p /opt/matomo/config
|
||||
cp /opt/matomo_config.bak /opt/matomo/config/config.ini.php
|
||||
fi
|
||||
if [[ -d /opt/matomo_user_backup ]]; then
|
||||
mkdir -p /opt/matomo/misc/user
|
||||
cp -r /opt/matomo_user_backup/. /opt/matomo/misc/user
|
||||
fi
|
||||
[[ -f /opt/matomo_db_creds.bak ]] && cp /opt/matomo_db_creds.bak /root/matomo.creds
|
||||
rm -f /opt/matomo_config.bak /opt/matomo_db_creds.bak
|
||||
rm -rf /opt/matomo_user_backup
|
||||
chown -R www-data:www-data /opt/matomo
|
||||
msg_ok "Restored Data"
|
||||
|
||||
msg_info "Starting Services"
|
||||
systemctl start caddy
|
||||
msg_ok "Started Services"
|
||||
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 "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
|
||||
90
ct/nagios.sh
90
ct/nagios.sh
@@ -1,90 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://github.com/NagiosEnterprises/nagioscore
|
||||
|
||||
APP="Nagios"
|
||||
var_tags="${var_tags:-monitoring;alerts;infrastructure}"
|
||||
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_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/local/nagios/etc/nagios.cfg ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
msg_info "Backing up Configuration"
|
||||
cp -a /usr/local/nagios/etc /opt/nagios-etc-backup
|
||||
msg_ok "Backed up Configuration"
|
||||
|
||||
if check_for_gh_release "nagios" "NagiosEnterprises/nagioscore"; then
|
||||
msg_info "Stopping Nagios"
|
||||
systemctl stop nagios
|
||||
msg_ok "Stopped Nagios"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "nagios" "NagiosEnterprises/nagioscore" "tarball"
|
||||
|
||||
msg_info "Building Nagios Core"
|
||||
cd /opt/nagios
|
||||
$STD ./configure --with-httpd-conf=/etc/apache2/sites-enabled
|
||||
$STD make all
|
||||
$STD make install-groups-users
|
||||
usermod -a -G nagios www-data
|
||||
$STD make install
|
||||
$STD make install-daemoninit
|
||||
$STD make install-commandmode
|
||||
$STD make install-webconf
|
||||
$STD a2enmod rewrite
|
||||
$STD a2enmod cgi
|
||||
msg_ok "Built Nagios Core"
|
||||
|
||||
msg_info "Starting Nagios"
|
||||
systemctl restart apache2
|
||||
systemctl start nagios
|
||||
msg_ok "Started Nagios"
|
||||
fi
|
||||
|
||||
if check_for_gh_release "nagios-plugins" "nagios-plugins/nagios-plugins"; then
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "nagios-plugins" "nagios-plugins/nagios-plugins" "tarball"
|
||||
msg_info "Building Nagios Plugins"
|
||||
cd /opt/nagios-plugins
|
||||
$STD ./tools/setup
|
||||
$STD ./configure
|
||||
$STD make
|
||||
$STD make install
|
||||
msg_ok "Built Nagios Plugins"
|
||||
fi
|
||||
|
||||
msg_info "Restoring Configuration"
|
||||
rm -rf /usr/local/nagios/etc
|
||||
cp -a /opt/nagios-etc-backup /usr/local/nagios/etc
|
||||
rm -rf /opt/nagios-etc-backup
|
||||
msg_ok "Restored Configuration"
|
||||
msg_ok "Updated successfully!"
|
||||
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 "${TAB}${GATEWAY}${BGN}http://${IP}/nagios${CL}"
|
||||
78
ct/neko.sh
78
ct/neko.sh
@@ -1,78 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: CanbiZ (MickLesk)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://neko.m1k1o.net/
|
||||
|
||||
APP="Neko"
|
||||
var_tags="${var_tags:-virtual-browser;webrtc;streaming}"
|
||||
var_cpu="${var_cpu:-4}"
|
||||
var_ram="${var_ram:-4096}"
|
||||
var_disk="${var_disk:-12}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-12}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
var_gpu="${var_gpu:-yes}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -d /opt/neko ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "neko" "m1k1o/neko"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop neko
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Backing up Data"
|
||||
cp /etc/neko/neko.yaml /opt/neko.yaml.bak
|
||||
msg_ok "Backed up Data"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "neko" "m1k1o/neko" "tarball"
|
||||
|
||||
msg_info "Building Client"
|
||||
cd /opt/neko/client
|
||||
$STD npm install
|
||||
$STD npm run build
|
||||
cp -r /opt/neko/client/dist/* /var/www/
|
||||
msg_ok "Built Client"
|
||||
|
||||
msg_info "Building Server"
|
||||
cd /opt/neko/server
|
||||
$STD ./build
|
||||
cp /opt/neko/server/bin/neko /usr/bin/neko
|
||||
cp -r /opt/neko/server/bin/plugins/* /etc/neko/plugins/ 2>/dev/null || true
|
||||
msg_ok "Built Server"
|
||||
|
||||
msg_info "Restoring Data"
|
||||
cp /opt/neko.yaml.bak /etc/neko/neko.yaml
|
||||
rm -f /opt/neko.yaml.bak
|
||||
msg_ok "Restored Data"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start neko
|
||||
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 "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"
|
||||
@@ -1,55 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://netbird.io
|
||||
|
||||
APP="NetBird"
|
||||
var_tags="${var_tags:-network;vpn;connectivity}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-512}"
|
||||
var_disk="${var_disk:-4}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
var_unprivileged="${var_unprivileged:-0}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if ! command -v netbird &>/dev/null; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop netbird
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Updating ${APP}"
|
||||
$STD apt update
|
||||
$STD apt install -y --only-upgrade netbird
|
||||
msg_ok "Updated ${APP}"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start netbird
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated successfully!"
|
||||
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} Connect this peer to your NetBird network:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}netbird up --setup-key <YOUR_SETUP_KEY>${CL}"
|
||||
113
ct/profilarr.sh
113
ct/profilarr.sh
@@ -1,113 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: michelroegl-brunner
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/Dictionarry-Hub/profilarr
|
||||
|
||||
APP="Profilarr"
|
||||
var_tags="${var_tags:-arr;radarr;sonarr;config}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-4096}"
|
||||
var_disk="${var_disk:-8}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
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/profilarr ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [[ -d /opt/profilarr/backend ]]; then
|
||||
msg_error "Profilarr v1 detected!"
|
||||
echo -e "\nProfilarr v2 is a complete rewrite and is NOT compatible with v1."
|
||||
echo -e "There is no migration path. Please create a new LXC container for v2.\n"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "deno" "denoland/deno"; then
|
||||
ARCH=$(uname -m)
|
||||
fetch_and_deploy_gh_release "deno" "denoland/deno" "prebuild" "latest" "/usr/local/bin" "deno-${ARCH}-unknown-linux-gnu.zip"
|
||||
fi
|
||||
|
||||
if check_for_gh_release "profilarr" "Dictionarry-Hub/profilarr"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop profilarr
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "profilarr" "Dictionarry-Hub/profilarr" "tarball"
|
||||
PROFILARR_VERSION=$(cat ~/.profilarr)
|
||||
|
||||
msg_info "Building Profilarr v${PROFILARR_VERSION} (Patience)"
|
||||
cd /opt/profilarr
|
||||
cat >src/lib/shared/build.ts <<EOF
|
||||
// Generated at update time. Do not hand-edit.
|
||||
export type Channel = 'stable' | 'develop' | 'dev';
|
||||
|
||||
export interface BuildInfo {
|
||||
readonly version: string;
|
||||
readonly channel: Channel;
|
||||
readonly commit: string | null;
|
||||
readonly builtAt: string | null;
|
||||
}
|
||||
|
||||
export const build: BuildInfo = {
|
||||
version: '${PROFILARR_VERSION}',
|
||||
channel: 'stable',
|
||||
commit: null,
|
||||
builtAt: '$(date -u +"%Y-%m-%dT%H:%M:%SZ")'
|
||||
};
|
||||
EOF
|
||||
$STD deno install --node-modules-dir
|
||||
export APP_BASE_PATH=/opt/profilarr/dist/build
|
||||
export VITE_CHANNEL=stable
|
||||
$STD deno run -A npm:vite build
|
||||
DENO_TARGET="${ARCH}-unknown-linux-gnu"
|
||||
$STD deno compile \
|
||||
--no-check \
|
||||
--allow-net \
|
||||
--allow-read \
|
||||
--allow-write \
|
||||
--allow-env \
|
||||
--allow-ffi \
|
||||
--allow-run \
|
||||
--allow-sys \
|
||||
--target "$DENO_TARGET" \
|
||||
--output dist/build/profilarr \
|
||||
dist/build/mod.ts
|
||||
msg_ok "Built Profilarr"
|
||||
|
||||
msg_info "Updating Profilarr"
|
||||
cp dist/build/profilarr /opt/profilarr/app/profilarr
|
||||
cp dist/build/server.js /opt/profilarr/app/server.js
|
||||
cp -r dist/build/static /opt/profilarr/app/static
|
||||
chmod +x /opt/profilarr/app/profilarr
|
||||
msg_ok "Updated Profilarr"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start profilarr
|
||||
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 "${TAB}${GATEWAY}${BGN}http://${IP}:6868${CL}"
|
||||
@@ -1,77 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://www.solidtime.io/
|
||||
|
||||
APP="SolidTime"
|
||||
var_tags="${var_tags:-time-tracking;productivity;business}"
|
||||
var_cpu="${var_cpu:-4}"
|
||||
var_ram="${var_ram:-4096}"
|
||||
var_disk="${var_disk:-8}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
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/solidtime ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "solidtime" "solidtime-io/solidtime"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop caddy
|
||||
msg_ok "Stopped Services"
|
||||
|
||||
msg_info "Backing up Data"
|
||||
cp /opt/solidtime/.env /opt/solidtime.env.bak
|
||||
cp -r /opt/solidtime/storage /opt/solidtime_storage_backup
|
||||
msg_ok "Backed up Data"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "solidtime" "solidtime-io/solidtime" "tarball"
|
||||
|
||||
msg_info "Restoring Data"
|
||||
cp /opt/solidtime.env.bak /opt/solidtime/.env
|
||||
rm -f /opt/solidtime.env.bak
|
||||
cp -r /opt/solidtime_storage_backup/. /opt/solidtime/storage
|
||||
rm -rf /opt/solidtime_storage_backup
|
||||
msg_ok "Restored Data"
|
||||
|
||||
msg_info "Updating Application"
|
||||
cd /opt/solidtime
|
||||
$STD composer install --no-dev --optimize-autoloader
|
||||
$STD npm install
|
||||
$STD npm run build
|
||||
$STD php artisan migrate --force
|
||||
$STD php artisan optimize:clear
|
||||
chown -R www-data:www-data /opt/solidtime
|
||||
msg_ok "Updated Application"
|
||||
|
||||
msg_info "Starting Services"
|
||||
systemctl start caddy
|
||||
msg_ok "Started Services"
|
||||
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 "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
|
||||
echo -e "${INFO}${YW}HTTPS is not enabled by default (use domain + reverse proxy/TLS if needed).${CL}"
|
||||
@@ -1,68 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://github.com/Nezreka/SoulSync
|
||||
|
||||
APP="SoulSync"
|
||||
var_tags="${var_tags:-music;automation;media}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-8}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
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 ~/.soulsync ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "soulsync" "Nezreka/SoulSync"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop soulsync
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Backing up Data"
|
||||
mv /opt/soulsync/config /opt/soulsync-config.bak
|
||||
mv /opt/soulsync/data /opt/soulsync-data.bak
|
||||
msg_ok "Backed up Data"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "soulsync" "Nezreka/SoulSync" "tarball"
|
||||
|
||||
msg_info "Updating Python Dependencies"
|
||||
cd /opt/soulsync
|
||||
$STD uv venv --clear /opt/soulsync/.venv --python 3.11
|
||||
$STD /opt/soulsync/.venv/bin/pip install -r requirements-webui.txt
|
||||
msg_ok "Updated Python Dependencies"
|
||||
|
||||
mv /opt/soulsync-config.bak /opt/soulsync/config
|
||||
mv /opt/soulsync-data.bak /opt/soulsync/data
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start soulsync
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated ${APP}"
|
||||
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 "${TAB}${GATEWAY}${BGN}http://${IP}:8008${CL}"
|
||||
@@ -1,85 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://gitlab.com/storyteller-platform/storyteller
|
||||
|
||||
APP="Storyteller"
|
||||
var_tags="${var_tags:-media;ebook;audiobook}"
|
||||
var_cpu="${var_cpu:-4}"
|
||||
var_ram="${var_ram:-10240}"
|
||||
var_disk="${var_disk:-20}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
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/storyteller ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gl_release "storyteller" "storyteller-platform/storyteller"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop storyteller
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Backing up Data"
|
||||
cp /opt/storyteller/.env /opt/storyteller_env.bak
|
||||
msg_ok "Backed up Data"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gl_release "storyteller" "storyteller-platform/storyteller" "tarball" "latest" "/opt/storyteller"
|
||||
|
||||
msg_info "Restoring Configuration"
|
||||
mv /opt/storyteller_env.bak /opt/storyteller/.env
|
||||
msg_ok "Restored Configuration"
|
||||
|
||||
msg_info "Rebuilding Storyteller"
|
||||
cd /opt/storyteller
|
||||
export NODE_OPTIONS="--max-old-space-size=4096"
|
||||
$STD yarn install --network-timeout 600000
|
||||
$STD gcc -g -fPIC -rdynamic -shared web/sqlite/uuid.c -o web/sqlite/uuid.c.so
|
||||
export CI=1
|
||||
export NODE_ENV=production
|
||||
export NEXT_TELEMETRY_DISABLED=1
|
||||
export SQLITE_NATIVE_BINDING=/opt/storyteller/node_modules/better-sqlite3/build/Release/better_sqlite3.node
|
||||
$STD yarn workspaces foreach -Rpt --from @storyteller-platform/web --exclude @storyteller-platform/eslint run build
|
||||
mkdir -p /opt/storyteller/web/.next/standalone/web/.next/static
|
||||
cp -rT /opt/storyteller/web/.next/static /opt/storyteller/web/.next/standalone/web/.next/static
|
||||
if [[ -d /opt/storyteller/web/public ]]; then
|
||||
mkdir -p /opt/storyteller/web/.next/standalone/web/public
|
||||
cp -rT /opt/storyteller/web/public /opt/storyteller/web/.next/standalone/web/public
|
||||
fi
|
||||
mkdir -p /opt/storyteller/web/.next/standalone/web/migrations
|
||||
cp -rT /opt/storyteller/web/migrations /opt/storyteller/web/.next/standalone/web/migrations
|
||||
mkdir -p /opt/storyteller/web/.next/standalone/web/sqlite
|
||||
cp -rT /opt/storyteller/web/sqlite /opt/storyteller/web/.next/standalone/web/sqlite
|
||||
ln -sf /opt/storyteller/.env /opt/storyteller/web/.next/standalone/web/.env
|
||||
msg_ok "Rebuilt Storyteller"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start storyteller
|
||||
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 "${TAB}${GATEWAY}${BGN}http://${IP}:8001${CL}"
|
||||
82
ct/teable.sh
82
ct/teable.sh
@@ -1,82 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: community-scripts
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://github.com/teableio/teable
|
||||
|
||||
APP="Teable"
|
||||
var_tags="${var_tags:-database;no-code;spreadsheet}"
|
||||
var_cpu="${var_cpu:-4}"
|
||||
var_ram="${var_ram:-10240}"
|
||||
var_disk="${var_disk:-25}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
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/teable ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "teable" "teableio/teable"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop teable
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Backing up Configuration"
|
||||
cp /opt/teable/.env /opt/teable.env.bak
|
||||
msg_ok "Backed up Configuration"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "teable" "teableio/teable" "tarball"
|
||||
|
||||
msg_info "Restoring Configuration"
|
||||
mv /opt/teable.env.bak /opt/teable/.env
|
||||
msg_ok "Restored Configuration"
|
||||
|
||||
msg_info "Rebuilding Teable"
|
||||
cd /opt/teable
|
||||
TEABLE_VERSION=$(cat ~/.teable)
|
||||
echo "NEXT_PUBLIC_BUILD_VERSION=\"${TEABLE_VERSION}\"" >>apps/nextjs-app/.env
|
||||
export HUSKY=0
|
||||
export NODE_OPTIONS="--max-old-space-size=8192"
|
||||
$STD pnpm install --frozen-lockfile
|
||||
$STD pnpm -F @teable/db-main-prisma prisma-generate --schema ./prisma/postgres/schema.prisma
|
||||
NODE_ENV=production NEXT_BUILD_ENV_TYPECHECK=false \
|
||||
$STD pnpm -r --filter '!playground' run build
|
||||
msg_ok "Rebuilt Teable"
|
||||
|
||||
msg_info "Running Database Migrations"
|
||||
source /opt/teable/.env
|
||||
$STD pnpm -F @teable/db-main-prisma prisma-migrate deploy --schema ./prisma/postgres/schema.prisma
|
||||
msg_ok "Ran Database Migrations"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start teable
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated successfully!"
|
||||
else
|
||||
msg_ok "No update available."
|
||||
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 "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
||||
@@ -1,87 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: community-scripts
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://github.com/tubearchivist/tubearchivist
|
||||
|
||||
APP="Tube Archivist"
|
||||
var_tags="${var_tags:-media;youtube;archiving}"
|
||||
var_cpu="${var_cpu:-4}"
|
||||
var_ram="${var_ram:-6144}"
|
||||
var_disk="${var_disk:-30}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
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/tubearchivist ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "tubearchivist" "tubearchivist/tubearchivist"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop tubearchivist tubearchivist-celery tubearchivist-beat
|
||||
msg_ok "Stopped Services"
|
||||
|
||||
msg_info "Backing up Data"
|
||||
cp /opt/tubearchivist/.env /opt/tubearchivist_env.bak
|
||||
msg_ok "Backed up Data"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "tubearchivist" "tubearchivist/tubearchivist" "tarball" "latest" "/opt/tubearchivist"
|
||||
|
||||
msg_info "Rebuilding Tube Archivist"
|
||||
cd /opt/tubearchivist/frontend
|
||||
$STD npm install
|
||||
$STD npm run build:deploy
|
||||
mkdir -p /opt/tubearchivist/backend/static
|
||||
cp -r /opt/tubearchivist/frontend/dist/* /opt/tubearchivist/backend/static/
|
||||
cp /opt/tubearchivist/docker_assets/backend_start.py /opt/tubearchivist/backend/
|
||||
$STD uv pip install --python /opt/tubearchivist/.venv/bin/python -r /opt/tubearchivist/backend/requirements.txt
|
||||
if [[ -f /opt/tubearchivist/backend/requirements.plugins.txt ]]; then
|
||||
mkdir -p /opt/yt_plugins/bgutil
|
||||
$STD uv pip install --python /opt/tubearchivist/.venv/bin/python --target /opt/yt_plugins/bgutil -r /opt/tubearchivist/backend/requirements.plugins.txt
|
||||
fi
|
||||
msg_ok "Rebuilt Tube Archivist"
|
||||
|
||||
msg_info "Restoring Configuration"
|
||||
mv /opt/tubearchivist_env.bak /opt/tubearchivist/.env
|
||||
sed -i 's|^TA_APP_DIR=/opt/tubearchivist$|TA_APP_DIR=/opt/tubearchivist/backend|' /opt/tubearchivist/.env
|
||||
sed -i 's|^TA_CACHE_DIR=/opt/tubearchivist/cache$|TA_CACHE_DIR=/cache|' /opt/tubearchivist/.env
|
||||
sed -i 's|^TA_MEDIA_DIR=/opt/tubearchivist/media$|TA_MEDIA_DIR=/youtube|' /opt/tubearchivist/.env
|
||||
ln -sf /opt/tubearchivist/cache /cache
|
||||
ln -sf /opt/tubearchivist/media /youtube
|
||||
ln -sf /opt/tubearchivist/.env /opt/tubearchivist/backend/.env
|
||||
msg_ok "Restored Configuration"
|
||||
|
||||
msg_info "Starting Services"
|
||||
systemctl start tubearchivist tubearchivist-celery tubearchivist-beat
|
||||
systemctl reload nginx
|
||||
msg_ok "Started Services"
|
||||
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 "${TAB}${GATEWAY}${BGN}http://${IP}:8000${CL}"
|
||||
echo -e "${INFO}${YW} Credentials:${CL}"
|
||||
echo -e "${TAB}${BGN}Username: admin${CL}"
|
||||
echo -e "${TAB}${BGN}Password: see ~/tubearchivist.creds${CL}"
|
||||
@@ -1,65 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: sudofly
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://webtrees.net/
|
||||
|
||||
APP="Webtrees"
|
||||
var_tags="${var_tags:-genealogy;cms}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-8}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
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/webtrees ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "webtrees" "fisharebest/webtrees"; then
|
||||
msg_info "Stopping Service"
|
||||
PHP_VER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;')
|
||||
systemctl stop caddy php${PHP_VER}-fpm
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Backing up Data"
|
||||
cp -r /opt/webtrees/data /opt/webtrees_data_backup
|
||||
msg_ok "Backed up Data"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "webtrees" "fisharebest/webtrees" "prebuild" "latest" "/opt/webtrees" "webtrees-*.zip"
|
||||
|
||||
msg_info "Restoring Data"
|
||||
cp -r /opt/webtrees_data_backup/. /opt/webtrees/data
|
||||
rm -rf /opt/webtrees_data_backup
|
||||
chown -R www-data:www-data /opt/webtrees
|
||||
msg_ok "Restored Data"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start caddy php${PHP_VER}-fpm
|
||||
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 "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
|
||||
Reference in New Issue
Block a user