cleanup
This commit is contained in:
parent
95cb20c634
commit
5eecfb5366
@ -1,64 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
|
||||||
# Author: tremor021 (Slaviša Arežina)
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://teamspeak.com/en/
|
|
||||||
|
|
||||||
APP="Alpine-TeamSpeak-Server"
|
|
||||||
var_tags="${var_tags:-alpine;communication}"
|
|
||||||
var_cpu="${var_cpu:-1}"
|
|
||||||
var_ram="${var_ram:-256}"
|
|
||||||
var_disk="${var_disk:-2}"
|
|
||||||
var_os="${var_os:-alpine}"
|
|
||||||
var_version="${var_version:-3.22}"
|
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
|
||||||
|
|
||||||
header_info "$APP"
|
|
||||||
variables
|
|
||||||
color
|
|
||||||
catch_errors
|
|
||||||
|
|
||||||
function update_script() {
|
|
||||||
header_info
|
|
||||||
|
|
||||||
if [[ ! -d /opt/teamspeak-server ]]; then
|
|
||||||
msg_error "No ${APP} installation found!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# define custom command to scrape version
|
|
||||||
local CUSTOM_CMD="curl -fsSL https://teamspeak.com/en/downloads/#server \
|
|
||||||
| sed -n '/teamspeak3-server_linux_amd64-/ { s/.*teamspeak3-server_linux_amd64-\([0-9]\+\.[0-9]\+\.[0-9]\+\).*/\1/p; q }'"
|
|
||||||
|
|
||||||
if check_for_update "${APP}" "${CUSTOM_CMD}"; then
|
|
||||||
local release="$CHECK_UPDATE_RELEASE"
|
|
||||||
|
|
||||||
msg_info "Updating ${APP} LXC to v${release}"
|
|
||||||
$STD apk -U upgrade
|
|
||||||
$STD service teamspeak stop
|
|
||||||
|
|
||||||
curl -fsSL "https://files.teamspeak-services.com/releases/server/${release}/teamspeak3-server_linux_amd64-${release}.tar.bz2" -o ts3server.tar.bz2
|
|
||||||
tar -xf ts3server.tar.bz2
|
|
||||||
cp -ru teamspeak3-server_linux_amd64/* /opt/teamspeak-server/
|
|
||||||
|
|
||||||
rm -f ts3server.tar.bz2
|
|
||||||
rm -rf teamspeak3-server_linux_amd64
|
|
||||||
|
|
||||||
echo "${release}" >~/.teamspeak-server
|
|
||||||
|
|
||||||
$STD service teamspeak start
|
|
||||||
msg_ok "Updated ${APP} successfully to v${release}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
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 IP:${CL}"
|
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}${IP}:9987${CL}"
|
|
@ -1,73 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
source <(curl -fsSL https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/build.func)
|
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
|
||||||
# Author: MickLesk (CanbiZ)
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://github.com/danielbrendel/hortusfox-web
|
|
||||||
|
|
||||||
APP="HortusFox"
|
|
||||||
var_tags="${var_tags:-plants}"
|
|
||||||
var_cpu="${var_cpu:-2}"
|
|
||||||
var_ram="${var_ram:-2048}"
|
|
||||||
var_disk="${var_disk:-5}"
|
|
||||||
var_os="${var_os:-debian}"
|
|
||||||
var_version="${var_version:-12}"
|
|
||||||
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/hortusfox ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/danielbrendel/hortusfox-web/releases/latest | jq -r .tag_name | sed 's/^v//')
|
|
||||||
if [[ ! -f ~/.hortusfox ]] || [[ "${RELEASE}" != "$(cat ~/.hortusfox)" ]]; then
|
|
||||||
msg_info "Stopping Service"
|
|
||||||
systemctl stop apache2
|
|
||||||
msg_ok "Stopped Service"
|
|
||||||
|
|
||||||
msg_info "Backing up current HortusFox installation"
|
|
||||||
cd /opt
|
|
||||||
mv /opt/hortusfox/ /opt/hortusfox-backup
|
|
||||||
msg_ok "Backed up current HortusFox installation"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "hortusfox" "danielbrendel/hortusfox-web"
|
|
||||||
|
|
||||||
msg_info "Updating HortusFox"
|
|
||||||
cd /opt/hortusfox
|
|
||||||
mv /opt/hortusfox-backup/.env /opt/hortusfox/.env
|
|
||||||
$STD composer install --no-dev --optimize-autoloader
|
|
||||||
php asatru migrate --no-interaction
|
|
||||||
php asatru plants:attributes
|
|
||||||
php asatru calendar:classes
|
|
||||||
msg_ok "Updated HortusFox"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
|
||||||
systemctl start apache2
|
|
||||||
msg_ok "Started Service"
|
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
|
||||||
rm -r /opt/hortusfox-backup
|
|
||||||
msg_ok "Cleaned"
|
|
||||||
msg_ok "Updated Successfully"
|
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
|
||||||
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}"
|
|
46
ct/jeedom.sh
46
ct/jeedom.sh
@ -1,46 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
|
||||||
# Author: Mips2648
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://jeedom.com/
|
|
||||||
|
|
||||||
APP="Jeedom"
|
|
||||||
var_tags="${var_tags:-automation;smarthome}"
|
|
||||||
var_cpu="${var_cpu:-2}"
|
|
||||||
var_ram="${var_ram:-2048}"
|
|
||||||
var_disk="${var_disk:-16}"
|
|
||||||
var_os="${var_os:-debian}"
|
|
||||||
var_version="${var_version:-12}"
|
|
||||||
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 /var/www/html/core/config/version ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
msg_info "Updating OS"
|
|
||||||
$STD apt-get update
|
|
||||||
$STD apt-get -y upgrade
|
|
||||||
msg_ok "OS updated, you can now update Jeedom from the Web UI."
|
|
||||||
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}"
|
|
79
ct/palmr.sh
79
ct/palmr.sh
@ -1,79 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
|
||||||
# Author: vhsdream
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://github.com/kyantech/Palmr
|
|
||||||
|
|
||||||
APP="Palmr"
|
|
||||||
var_tags="${var_tags:-files}"
|
|
||||||
var_cpu="${var_cpu:-4}"
|
|
||||||
var_ram="${var_ram:-4096}"
|
|
||||||
var_disk="${var_disk:-6}"
|
|
||||||
var_os="${var_os:-debian}"
|
|
||||||
var_version="${var_version:-12}"
|
|
||||||
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/palmr_data ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/kyantech/palmr/releases/latest | jq '.tag_name' | sed 's/^v//')
|
|
||||||
if [[ "${RELEASE}" != "$(cat ~/.palmr 2>/dev/null)" ]] || [[ ! -f ~/.palmr ]]; then
|
|
||||||
msg_info "Stopping Services"
|
|
||||||
systemctl stop palmr-frontend palmr-backend
|
|
||||||
msg_ok "Stopped Services"
|
|
||||||
|
|
||||||
cp /opt/palmr/apps/server/.env /opt/palmr.env
|
|
||||||
rm -rf /opt/palmr
|
|
||||||
fetch_and_deploy_gh_release "Palmr" "kyantech/Palmr" "tarball" "latest" "/opt/palmr"
|
|
||||||
msg_info "Updating ${APP}"
|
|
||||||
PNPM="$(jq -r '.packageManager' /opt/palmr/package.json)"
|
|
||||||
NODE_VERSION="20" NODE_MODULE="$PNPM" setup_nodejs
|
|
||||||
cd /opt/palmr/apps/server
|
|
||||||
PALMR_DIR="/opt/palmr_data"
|
|
||||||
$STD pnpm install
|
|
||||||
mv /opt/palmr.env ./.env
|
|
||||||
$STD pnpm dlx prisma generate
|
|
||||||
$STD pnpm dlx prisma migrate deploy
|
|
||||||
$STD pnpm dlx prisma db push
|
|
||||||
$STD pnpm build
|
|
||||||
|
|
||||||
cd /opt/palmr/apps/web
|
|
||||||
export NODE_ENV=production
|
|
||||||
export NEXT_TELEMETRY_DISABLED=1
|
|
||||||
mv ./.env.example ./.env
|
|
||||||
$STD pnpm install
|
|
||||||
$STD pnpm build
|
|
||||||
chown -R palmr:palmr "$PALMR_DIR" /opt/palmr
|
|
||||||
msg_ok "Updated $APP"
|
|
||||||
|
|
||||||
msg_info "Starting Services"
|
|
||||||
systemctl start palmr-backend palmr-frontend
|
|
||||||
msg_ok "Started Services"
|
|
||||||
|
|
||||||
msg_ok "Updated Successfully"
|
|
||||||
else
|
|
||||||
msg_ok "Already up to date"
|
|
||||||
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,92 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
|
||||||
# Author: MickLesk (Canbiz)
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://tandoor.dev/
|
|
||||||
|
|
||||||
APP="Tandoor"
|
|
||||||
var_tags="${var_tags:-recipes}"
|
|
||||||
var_cpu="${var_cpu:-4}"
|
|
||||||
var_ram="${var_ram:-4096}"
|
|
||||||
var_disk="${var_disk:-10}"
|
|
||||||
var_os="${var_os:-debian}"
|
|
||||||
var_version="${var_version:-12}"
|
|
||||||
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/tandoor ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ! -f ~/.tandoor ]]; then
|
|
||||||
msg_error "v1 Installation found, please export your data and create an new LXC."
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/TandoorRecipes/recipes/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
|
||||||
if [[ "${RELEASE}" != "$(cat ~/.tandoor 2>/dev/null)" ]] || [[ ! -f ~/.tandoor ]]; then
|
|
||||||
msg_info "Stopping $APP"
|
|
||||||
systemctl stop tandoor
|
|
||||||
msg_ok "Stopped $APP"
|
|
||||||
|
|
||||||
msg_info "Creating Backup"
|
|
||||||
mv /opt/tandoor /opt/tandoor.bak
|
|
||||||
msg_ok "Backup Created"
|
|
||||||
|
|
||||||
NODE_VERSION="20" NODE_MODULE="yarn" setup_nodejs
|
|
||||||
PYTHON_VERSION="3.13" setup_uv
|
|
||||||
fetch_and_deploy_gh_release "tandoor" "TandoorRecipes/recipes" "tarball" "latest" "/opt/tandoor"
|
|
||||||
|
|
||||||
msg_info "Updating $APP to ${RELEASE}"
|
|
||||||
cp -r /opt/tandoor.bak/{config,api,mediafiles,staticfiles} /opt/tandoor/
|
|
||||||
mv /opt/.env /opt/tandoor/.env
|
|
||||||
cd /opt/tandoor
|
|
||||||
$STD uv venv .venv --python=python3
|
|
||||||
$STD uv pip install -r requirements.txt --python .venv/bin/python
|
|
||||||
cd /opt/tandoor/vue3
|
|
||||||
$STD yarn install
|
|
||||||
$STD yarn build
|
|
||||||
TANDOOR_VERSION="$(curl -fsSL https://api.github.com/repos/TandoorRecipes/recipes/releases/latest | jq -r .tag_name)"
|
|
||||||
cat <<EOF >/opt/tandoor/cookbook/version_info.py
|
|
||||||
TANDOOR_VERSION = "$TANDOOR_VERSION"
|
|
||||||
TANDOOR_REF = "bare-metal"
|
|
||||||
VERSION_INFO = []
|
|
||||||
EOF
|
|
||||||
cd /opt/tandoor
|
|
||||||
$STD /opt/tandoor/.venv/bin/python manage.py migrate
|
|
||||||
$STD /opt/tandoor/.venv/bin/python manage.py collectstatic --no-input
|
|
||||||
msg_ok "Updated $APP to ${RELEASE}"
|
|
||||||
|
|
||||||
msg_info "Starting $APP"
|
|
||||||
systemctl start tandoor
|
|
||||||
systemctl reload nginx
|
|
||||||
msg_ok "Started $APP"
|
|
||||||
|
|
||||||
msg_info "Cleaning Up"
|
|
||||||
rm -rf /opt/tandoor.bak
|
|
||||||
msg_ok "Cleanup Completed"
|
|
||||||
msg_ok "Update Successful"
|
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
|
||||||
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}:8002${CL}"
|
|
@ -1,66 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
|
||||||
# Author: Slaviša Arežina (tremor021)
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://github.com/VictoriaMetrics/VictoriaMetrics
|
|
||||||
|
|
||||||
APP="VictoriaMetrics"
|
|
||||||
var_tags="${var_tags:-database}"
|
|
||||||
var_cpu="${var_cpu:-2}"
|
|
||||||
var_ram="${var_ram:-2048}"
|
|
||||||
var_disk="${var_disk:-16}"
|
|
||||||
var_os="${var_os:-debian}"
|
|
||||||
var_version="${var_version:-12}"
|
|
||||||
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/victoriametrics ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/VictoriaMetrics/VictoriaMetrics/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
|
||||||
if [[ ! -f ~/.victoriametrics ]] || [[ "${RELEASE}" != "$(cat ~/.victoriametrics)" ]]; then
|
|
||||||
msg_info "Stopping $APP"
|
|
||||||
systemctl stop victoriametrics
|
|
||||||
[[ -f /etc/systemd/system/victoriametrics-logs.service ]] && systemctl stop victoriametrics-logs
|
|
||||||
msg_ok "Stopped $APP"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "victoriametrics" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "victoria-metrics-linux-amd64-v+([0-9.]).tar.gz"
|
|
||||||
fetch_and_deploy_gh_release "vmutils" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "vmutils-linux-amd64-v+([0-9.]).tar.gz"
|
|
||||||
|
|
||||||
if [[ -f /etc/systemd/system/victoriametrics-logs.service ]]; then
|
|
||||||
fetch_and_deploy_gh_release "victorialogs" "VictoriaMetrics/VictoriaLogs" "prebuild" "latest" "/opt/victoriametrics" "victoria-logs-linux-amd64*.tar.gz"
|
|
||||||
fetch_and_deploy_gh_release "vlutils" "VictoriaMetrics/VictoriaLogs" "prebuild" "latest" "/opt/victoriametrics" "vlutils-linux-amd64*.tar.gz"
|
|
||||||
fi
|
|
||||||
chmod +x /opt/victoriametrics/*
|
|
||||||
|
|
||||||
msg_info "Starting $APP"
|
|
||||||
systemctl start victoriametrics
|
|
||||||
[[ -f /etc/systemd/system/victoriametrics-logs.service ]] && systemctl start victoriametrics-logs
|
|
||||||
msg_ok "Started $APP"
|
|
||||||
|
|
||||||
msg_ok "Updated Successfully"
|
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
|
||||||
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}:8428/vmui${CL}"
|
|
@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "HortusFox",
|
|
||||||
"slug": "hortusfox",
|
|
||||||
"categories": [
|
|
||||||
21,
|
|
||||||
26
|
|
||||||
],
|
|
||||||
"type": "ct",
|
|
||||||
"updateable": true,
|
|
||||||
"privileged": false,
|
|
||||||
"date_created": "2025-08-04",
|
|
||||||
"config_path": "/opt/hortusfox/.env",
|
|
||||||
"interface_port": 80,
|
|
||||||
"documentation": "https://github.com/danielbrendel/hortusfox-web",
|
|
||||||
"website": "https://www.hortusfox.com/",
|
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/hortusfox.webp",
|
|
||||||
"description": "HortusFox is a collaborative plant management system for plant enthusiasts. Manage, document and track your entire plant collection – self-hosted and privacy-friendly.",
|
|
||||||
"install_methods": [
|
|
||||||
{
|
|
||||||
"type": "default",
|
|
||||||
"script": "ct/hortusfox.sh",
|
|
||||||
"resources": {
|
|
||||||
"cpu": 2,
|
|
||||||
"ram": 2048,
|
|
||||||
"hdd": 6,
|
|
||||||
"os": "Debian",
|
|
||||||
"version": "12"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"default_credentials": {
|
|
||||||
"username": "admin@example.com",
|
|
||||||
"password": null
|
|
||||||
},
|
|
||||||
"notes": [
|
|
||||||
{
|
|
||||||
"text": "Initial password is generated and saved in ~/hortusfox.creds after install.",
|
|
||||||
"type": "info"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"text": "After installation, access the web UI on http://<CT-IP>/ and log in as admin@example.com with the generated password.",
|
|
||||||
"type": "info"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,44 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "Jeedom",
|
|
||||||
"slug": "jeedom",
|
|
||||||
"categories": [
|
|
||||||
16
|
|
||||||
],
|
|
||||||
"date_created": "2025-03-06",
|
|
||||||
"type": "ct",
|
|
||||||
"updateable": false,
|
|
||||||
"privileged": false,
|
|
||||||
"interface_port": 80,
|
|
||||||
"documentation": "https://doc.jeedom.com",
|
|
||||||
"config_path": "",
|
|
||||||
"website": "https://jeedom.com/",
|
|
||||||
"logo": "https://jeedom.com/_next/image?url=%2Fassets%2Fimg%2Flogo.png&w=256&q=75",
|
|
||||||
"description": "Jeedom is a home automation system that is free, open, and cloudless. It allows users to manage and automate various aspects of their homes by creating objects, installing plugins for added functionalities, and connecting to a Market account for services. It also supports direct access URLs and user management.",
|
|
||||||
"install_methods": [
|
|
||||||
{
|
|
||||||
"type": "default",
|
|
||||||
"script": "ct/jeedom.sh",
|
|
||||||
"resources": {
|
|
||||||
"cpu": 2,
|
|
||||||
"ram": 2048,
|
|
||||||
"hdd": 16,
|
|
||||||
"os": "Debian",
|
|
||||||
"version": "12"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"default_credentials": {
|
|
||||||
"username": "admin",
|
|
||||||
"password": "admin"
|
|
||||||
},
|
|
||||||
"notes": [
|
|
||||||
{
|
|
||||||
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
|
|
||||||
"type": "warning"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"text": "Only OS packages are updateable. To update Jeedom, please use the web interface.",
|
|
||||||
"type": "info"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,44 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "Palmr",
|
|
||||||
"slug": "palmr",
|
|
||||||
"categories": [
|
|
||||||
11
|
|
||||||
],
|
|
||||||
"date_created": "2025-08-03",
|
|
||||||
"type": "ct",
|
|
||||||
"updateable": true,
|
|
||||||
"privileged": false,
|
|
||||||
"interface_port": 3000,
|
|
||||||
"documentation": "https://palmr.kyantech.com.br/docs/3.1-beta",
|
|
||||||
"config_path": "/opt/palmr/apps/server/.env, /opt/palmr/apps/web/.env",
|
|
||||||
"website": "https://palmr.kyantech.com.br/",
|
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/palmr.webp",
|
|
||||||
"description": "Palmr is a fast and secure platform for sharing files, built with performance and privacy in mind.",
|
|
||||||
"install_methods": [
|
|
||||||
{
|
|
||||||
"type": "default",
|
|
||||||
"script": "ct/palmr.sh",
|
|
||||||
"resources": {
|
|
||||||
"cpu": 4,
|
|
||||||
"ram": 4096,
|
|
||||||
"hdd": 6,
|
|
||||||
"os": "Debian",
|
|
||||||
"version": "12"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"default_credentials": {
|
|
||||||
"username": null,
|
|
||||||
"password": null
|
|
||||||
},
|
|
||||||
"notes": [
|
|
||||||
{
|
|
||||||
"text": "To use a bind mount for storage, create symlinks to your mount for both `uploads` and `temp-uploads` in `/opt/palmr_data`",
|
|
||||||
"type": "info"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"text": "To use Palmr with a reverse proxy, uncomment `SECURE_SITE` in `/opt/palmr/apps/server/.env`",
|
|
||||||
"type": "info"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,40 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "Teamspeak-Server",
|
|
||||||
"slug": "teamspeak-server",
|
|
||||||
"categories": [
|
|
||||||
24
|
|
||||||
],
|
|
||||||
"date_created": "2025-07-21",
|
|
||||||
"type": "ct",
|
|
||||||
"updateable": true,
|
|
||||||
"privileged": false,
|
|
||||||
"interface_port": 9987,
|
|
||||||
"documentation": "https://support.teamspeak.com/hc/en-us/categories/360000302017-TeamSpeak-3",
|
|
||||||
"website": "https://teamspeak.com/",
|
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/teamspeak-light.webp",
|
|
||||||
"config_path": "",
|
|
||||||
"description": "TeamSpeak is a voice over IP (VoIP) application, primarily used by gamers and teams to chat in real time on dedicated servers. It delivers crystal‑clear, low‑latency voice communication.",
|
|
||||||
"install_methods": [
|
|
||||||
{
|
|
||||||
"type": "alpine",
|
|
||||||
"script": "ct/alpine-teamspeak-server.sh",
|
|
||||||
"resources": {
|
|
||||||
"cpu": 1,
|
|
||||||
"ram": 256,
|
|
||||||
"hdd": 2,
|
|
||||||
"os": "alpine",
|
|
||||||
"version": "3.22"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"default_credentials": {
|
|
||||||
"username": null,
|
|
||||||
"password": null
|
|
||||||
},
|
|
||||||
"notes": [
|
|
||||||
{
|
|
||||||
"text": "Use `journalctl -u teamspeak-server.service` inside LXC console to check for admin credentials!",
|
|
||||||
"type": "info"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,103 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
|
||||||
# Author: MickLesk (CanbiZ)
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://github.com/danielbrendel/hortusfox-web
|
|
||||||
|
|
||||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
|
||||||
color
|
|
||||||
verb_ip6
|
|
||||||
catch_errors
|
|
||||||
setting_up_container
|
|
||||||
network_check
|
|
||||||
update_os
|
|
||||||
|
|
||||||
msg_info "Installing Dependencies"
|
|
||||||
$STD apt-get install -y apache2
|
|
||||||
msg_ok "Installed Dependencies"
|
|
||||||
|
|
||||||
PHP_MODULE="exif,mysql" PHP_APACHE="YES" PHP_FPM="NO" PHP_VERSION="8.3" setup_php
|
|
||||||
setup_mariadb
|
|
||||||
setup_composer
|
|
||||||
|
|
||||||
msg_info "Setting up database"
|
|
||||||
DB_NAME=hortusfox
|
|
||||||
DB_USER=hortusfox
|
|
||||||
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
|
||||||
$STD mariadb -u root -e "CREATE DATABASE $DB_NAME;"
|
|
||||||
$STD mariadb -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
|
|
||||||
$STD mariadb -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
|
||||||
{
|
|
||||||
echo "HortusFox Database Credentials"
|
|
||||||
echo "Database: $DB_NAME"
|
|
||||||
echo "Username: $DB_USER"
|
|
||||||
echo "Password: $DB_PASS"
|
|
||||||
} >>~/hortusfox.creds
|
|
||||||
msg_ok "Set up database"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "hortusfox" "danielbrendel/hortusfox-web"
|
|
||||||
|
|
||||||
msg_info "Configuring .env"
|
|
||||||
cp /opt/hortusfox/.env.example /opt/hortusfox/.env
|
|
||||||
sed -i "s|^DB_HOST=.*|DB_HOST=localhost|" /opt/hortusfox/.env
|
|
||||||
sed -i "s|^DB_USER=.*|DB_USER=$DB_USER|" /opt/hortusfox/.env
|
|
||||||
sed -i "s|^DB_PASSWORD=.*|DB_PASSWORD=$DB_PASS|" /opt/hortusfox/.env
|
|
||||||
sed -i "s|^DB_DATABASE=.*|DB_DATABASE=$DB_NAME|" /opt/hortusfox/.env
|
|
||||||
sed -i "s|^DB_ENABLE=.*|DB_ENABLE=true|" /opt/hortusfox/.env
|
|
||||||
sed -i "s|^APP_TIMEZONE=.*|APP_TIMEZONE=Europe/Berlin|" /opt/hortusfox/.env
|
|
||||||
msg_ok ".env configured"
|
|
||||||
|
|
||||||
msg_info "Installing Composer dependencies"
|
|
||||||
cd /opt/hortusfox
|
|
||||||
$STD composer install --no-dev --optimize-autoloader
|
|
||||||
msg_ok "Composer dependencies installed"
|
|
||||||
|
|
||||||
msg_info "Running DB migration"
|
|
||||||
php asatru migrate:fresh
|
|
||||||
msg_ok "Migration finished"
|
|
||||||
|
|
||||||
msg_info "Setting up HortusFox"
|
|
||||||
$STD mariadb -u root -D $DB_NAME -e "INSERT IGNORE INTO AppModel (workspace, language, created_at) VALUES ('Default Workspace', 'en', NOW());"
|
|
||||||
php asatru plants:attributes
|
|
||||||
php asatru calendar:classes
|
|
||||||
ADMIN_EMAIL="admin@example.com"
|
|
||||||
ADMIN_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)"
|
|
||||||
ADMIN_HASH=$(php -r "echo password_hash('$ADMIN_PASS', PASSWORD_BCRYPT);")
|
|
||||||
$STD mariadb -u root -D $DB_NAME -e "INSERT IGNORE INTO UserModel (name, email, password, admin) VALUES ('Admin', '$ADMIN_EMAIL', '$ADMIN_HASH', 1);"
|
|
||||||
{
|
|
||||||
echo ""
|
|
||||||
echo "HortusFox-Admin-Creds:"
|
|
||||||
echo "E-Mail: $ADMIN_EMAIL"
|
|
||||||
echo "Passwort: $ADMIN_PASS"
|
|
||||||
} >>~/hortusfox.creds
|
|
||||||
$STD mariadb -u root -D $DB_NAME -e "INSERT IGNORE INTO LocationsModel (name, active, created_at) VALUES ('Home', 1, NOW());"
|
|
||||||
msg_ok "Set up HortusFox"
|
|
||||||
|
|
||||||
msg_info "Configuring Apache vHost"
|
|
||||||
cat <<EOF >/etc/apache2/sites-available/hortusfox.conf
|
|
||||||
<VirtualHost *:80>
|
|
||||||
ServerAdmin webmaster@localhost
|
|
||||||
DocumentRoot /opt/hortusfox/public
|
|
||||||
<Directory /opt/hortusfox/public>
|
|
||||||
Options Indexes FollowSymLinks
|
|
||||||
AllowOverride All
|
|
||||||
Require all granted
|
|
||||||
</Directory>
|
|
||||||
ErrorLog \${APACHE_LOG_DIR}/hortusfox_error.log
|
|
||||||
CustomLog \${APACHE_LOG_DIR}/hortusfox_access.log combined
|
|
||||||
</VirtualHost>
|
|
||||||
EOF
|
|
||||||
$STD a2dissite 000-default
|
|
||||||
$STD a2ensite hortusfox
|
|
||||||
$STD a2enmod rewrite
|
|
||||||
systemctl restart apache2
|
|
||||||
msg_ok "Apache configured"
|
|
||||||
|
|
||||||
motd_ssh
|
|
||||||
customize
|
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
|
||||||
$STD apt-get -y autoremove
|
|
||||||
$STD apt-get -y autoclean
|
|
||||||
msg_ok "Cleaned"
|
|
@ -1,97 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Copyright (c) 2025 Community Scripts ORG
|
|
||||||
# Author: vhsdream
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://github.com/kyantech/Palmr
|
|
||||||
|
|
||||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
|
||||||
color
|
|
||||||
verb_ip6
|
|
||||||
catch_errors
|
|
||||||
setting_up_container
|
|
||||||
network_check
|
|
||||||
update_os
|
|
||||||
|
|
||||||
msg_info "Installing dependencies"
|
|
||||||
$STD apt-get install yq -y
|
|
||||||
msg_ok "Installed dependencies"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "Palmr" "kyantech/Palmr" "tarball" "latest" "/opt/palmr"
|
|
||||||
PNPM="$(jq -r '.packageManager' /opt/palmr/package.json)"
|
|
||||||
NODE_VERSION="20" NODE_MODULE="$PNPM" setup_nodejs
|
|
||||||
|
|
||||||
msg_info "Configuring palmr backend"
|
|
||||||
PALMR_DIR="/opt/palmr_data"
|
|
||||||
mkdir -p "$PALMR_DIR"
|
|
||||||
PALMR_DB="${PALMR_DIR}/palmr.db"
|
|
||||||
PALMR_KEY="$(openssl rand -hex 32)"
|
|
||||||
cd /opt/palmr/apps/server
|
|
||||||
sed -e 's/_ENCRYPTION=true/_ENCRYPTION=false/' \
|
|
||||||
-e '/^# ENC/s/# //' \
|
|
||||||
-e "s/ENCRYPTION_KEY=.*$/ENCRYPTION_KEY=$PALMR_KEY/" \
|
|
||||||
-e "s|file:.*$|file:$PALMR_DB\"|" \
|
|
||||||
-e '/db"$/a\# Uncomment below when using reverse proxy\
|
|
||||||
# SECURE_SITE=true' \
|
|
||||||
.env.example >./.env
|
|
||||||
$STD pnpm install
|
|
||||||
$STD pnpm dlx prisma generate
|
|
||||||
$STD pnpm dlx prisma migrate deploy
|
|
||||||
$STD pnpm dlx prisma db push
|
|
||||||
$STD pnpm db:seed
|
|
||||||
$STD pnpm build
|
|
||||||
msg_ok "Configured palmr backend"
|
|
||||||
|
|
||||||
msg_info "Configuring palmr frontend"
|
|
||||||
cd /opt/palmr/apps/web
|
|
||||||
mv ./.env.example ./.env
|
|
||||||
export NODE_ENV=production
|
|
||||||
export NEXT_TELEMETRY_DISABLED=1
|
|
||||||
$STD pnpm install
|
|
||||||
$STD pnpm build
|
|
||||||
msg_ok "Configured palmr frontend"
|
|
||||||
|
|
||||||
msg_info "Creating user & services"
|
|
||||||
useradd -d "$PALMR_DIR" -M -s /usr/sbin/nologin -U palmr
|
|
||||||
chown -R palmr:palmr "$PALMR_DIR" /opt/palmr
|
|
||||||
cat <<EOF >/etc/systemd/system/palmr-backend.service
|
|
||||||
[Unit]
|
|
||||||
Description=palmr Backend Service
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
User=palmr
|
|
||||||
Group=palmr
|
|
||||||
WorkingDirectory=/opt/palmr_data
|
|
||||||
ExecStart=/usr/bin/node /opt/palmr/apps/server/dist/server.js
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat <<EOF >/etc/systemd/system/palmr-frontend.service
|
|
||||||
[Unit]
|
|
||||||
Description=palmr Frontend Service
|
|
||||||
After=network.target palmr-backend.service
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
User=palmr
|
|
||||||
Group=palmr
|
|
||||||
WorkingDirectory=/opt/palmr/apps/web
|
|
||||||
ExecStart=/usr/bin/pnpm start
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
EOF
|
|
||||||
systemctl enable -q --now palmr-backend palmr-frontend
|
|
||||||
msg_ok "Created user & services"
|
|
||||||
|
|
||||||
motd_ssh
|
|
||||||
customize
|
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
|
||||||
$STD apt-get -y autoremove
|
|
||||||
$STD apt-get -y autoclean
|
|
||||||
msg_ok "Cleaned"
|
|
@ -1,143 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
|
||||||
# Author: MickLesk (Canbiz)
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://tandoor.dev/
|
|
||||||
|
|
||||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
|
||||||
color
|
|
||||||
verb_ip6
|
|
||||||
catch_errors
|
|
||||||
setting_up_container
|
|
||||||
network_check
|
|
||||||
update_os
|
|
||||||
|
|
||||||
msg_info "Installing Dependencies (Patience)"
|
|
||||||
$STD apt-get install -y --no-install-recommends \
|
|
||||||
build-essential \
|
|
||||||
python3 \
|
|
||||||
libpq-dev \
|
|
||||||
libmagic-dev \
|
|
||||||
libzbar0 \
|
|
||||||
nginx \
|
|
||||||
libsasl2-dev \
|
|
||||||
libldap2-dev \
|
|
||||||
libssl-dev \
|
|
||||||
pkg-config \
|
|
||||||
libxmlsec1-dev \
|
|
||||||
libxml2-dev \
|
|
||||||
libxmlsec1-openssl
|
|
||||||
msg_ok "Installed Dependencies"
|
|
||||||
|
|
||||||
NODE_VERSION="20" NODE_MODULE="yarn" setup_nodejs
|
|
||||||
fetch_and_deploy_gh_release "tandoor" "TandoorRecipes/recipes" "tarball" "latest" "/opt/tandoor"
|
|
||||||
PG_VERSION="16" setup_postgresql
|
|
||||||
PYTHON_VERSION="3.13" setup_uv
|
|
||||||
|
|
||||||
msg_info "Set up PostgreSQL Database"
|
|
||||||
DB_NAME=db_recipes
|
|
||||||
DB_USER=tandoor
|
|
||||||
SECRET_KEY=$(openssl rand -base64 45 | sed 's/\//\\\//g')
|
|
||||||
DB_PASS="$(openssl rand -base64 18 | cut -c1-13)"
|
|
||||||
$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';"
|
|
||||||
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER TEMPLATE template0;"
|
|
||||||
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';"
|
|
||||||
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';"
|
|
||||||
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC'"
|
|
||||||
{
|
|
||||||
echo "Tandoor-Credentials"
|
|
||||||
echo "Tandoor Database Name: $DB_NAME"
|
|
||||||
echo "Tandoor Database User: $DB_USER"
|
|
||||||
echo "Tandoor Database Password: $DB_PASS"
|
|
||||||
} >>~/tandoor.creds
|
|
||||||
msg_ok "Set up PostgreSQL Database"
|
|
||||||
|
|
||||||
msg_info "Setup Tandoor"
|
|
||||||
mkdir -p /opt/tandoor/{config,api,mediafiles,staticfiles}
|
|
||||||
cd /opt/tandoor
|
|
||||||
$STD uv venv .venv --python=python3
|
|
||||||
$STD uv pip install -r requirements.txt --python .venv/bin/python
|
|
||||||
cd /opt/tandoor/vue3
|
|
||||||
$STD yarn install
|
|
||||||
$STD yarn build
|
|
||||||
cat <<EOF >/opt/tandoor/.env
|
|
||||||
SECRET_KEY=$SECRET_KEY
|
|
||||||
TZ=Europe/Berlin
|
|
||||||
|
|
||||||
DB_ENGINE=django.db.backends.postgresql
|
|
||||||
POSTGRES_HOST=localhost
|
|
||||||
POSTGRES_DB=$DB_NAME
|
|
||||||
POSTGRES_PORT=5432
|
|
||||||
POSTGRES_USER=$DB_USER
|
|
||||||
POSTGRES_PASSWORD=$DB_PASS
|
|
||||||
|
|
||||||
STATIC_URL=/staticfiles/
|
|
||||||
MEDIA_URL=/mediafiles/
|
|
||||||
EOF
|
|
||||||
|
|
||||||
TANDOOR_VERSION="$(curl -s https://api.github.com/repos/TandoorRecipes/recipes/releases/latest | jq -r .tag_name)"
|
|
||||||
cat <<EOF >/opt/tandoor/cookbook/version_info.py
|
|
||||||
TANDOOR_VERSION = "$TANDOOR_VERSION"
|
|
||||||
TANDOOR_REF = "bare-metal"
|
|
||||||
VERSION_INFO = []
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cd /opt/tandoor
|
|
||||||
$STD /opt/tandoor/.venv/bin/python manage.py migrate
|
|
||||||
$STD /opt/tandoor/.venv/bin/python manage.py collectstatic --no-input
|
|
||||||
msg_ok "Installed Tandoor"
|
|
||||||
|
|
||||||
msg_info "Creating Services"
|
|
||||||
cat <<EOF >/etc/systemd/system/tandoor.service
|
|
||||||
[Unit]
|
|
||||||
Description=gunicorn daemon for tandoor
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
Restart=always
|
|
||||||
RestartSec=3
|
|
||||||
WorkingDirectory=/opt/tandoor
|
|
||||||
EnvironmentFile=/opt/tandoor/.env
|
|
||||||
ExecStart=/opt/tandoor/.venv/bin/gunicorn --error-logfile /tmp/gunicorn_err.log --log-level debug --capture-output --bind unix:/opt/tandoor/tandoor.sock recipes.wsgi:application
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
EOF
|
|
||||||
|
|
||||||
cat <<'EOF' >/etc/nginx/conf.d/tandoor.conf
|
|
||||||
server {
|
|
||||||
listen 8002;
|
|
||||||
access_log /var/log/nginx/access.log;
|
|
||||||
error_log /var/log/nginx/error.log;
|
|
||||||
client_max_body_size 128M;
|
|
||||||
# serve media files
|
|
||||||
location /static/ {
|
|
||||||
alias /opt/tandoor/staticfiles/;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /media/ {
|
|
||||||
alias /opt/tandoor/mediafiles/;
|
|
||||||
}
|
|
||||||
|
|
||||||
location / {
|
|
||||||
proxy_set_header Host $http_host;
|
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
|
||||||
proxy_pass http://unix:/opt/tandoor/tandoor.sock;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
systemctl reload nginx
|
|
||||||
systemctl enable -q --now tandoor
|
|
||||||
msg_ok "Created Services"
|
|
||||||
|
|
||||||
motd_ssh
|
|
||||||
customize
|
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
|
||||||
$STD apt-get -y autoremove
|
|
||||||
$STD apt-get -y autoclean
|
|
||||||
msg_ok "Cleaned"
|
|
@ -1,82 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
|
||||||
# Author: Slaviša Arežina (tremor021)
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://github.com/VictoriaMetrics/VictoriaMetrics
|
|
||||||
|
|
||||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
|
||||||
color
|
|
||||||
verb_ip6
|
|
||||||
catch_errors
|
|
||||||
setting_up_container
|
|
||||||
network_check
|
|
||||||
update_os
|
|
||||||
|
|
||||||
msg_info "Getting latest version of VictoriaMetrics"
|
|
||||||
victoriametrics_filename=$(curl -fsSL "https://api.github.com/repos/VictoriaMetrics/VictoriaMetrics/releases/latest" |
|
|
||||||
jq -r '.assets[].name' |
|
|
||||||
grep -E '^victoria-metrics-linux-amd64-v[0-9.]+\.tar\.gz$')
|
|
||||||
vmutils_filename=$(curl -fsSL "https://api.github.com/repos/VictoriaMetrics/VictoriaMetrics/releases/latest" |
|
|
||||||
jq -r '.assets[].name' |
|
|
||||||
grep -E '^vmutils-linux-amd64-v[0-9.]+\.tar\.gz$')
|
|
||||||
msg_ok "Got latest version of VictoriaMetrics"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "victoriametrics" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "$victoriametrics_filename"
|
|
||||||
fetch_and_deploy_gh_release "vmutils" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "$vmutils_filename"
|
|
||||||
|
|
||||||
read -r -p "${TAB3}Would you like to add VictoriaLogs? <y/N> " prompt
|
|
||||||
|
|
||||||
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
|
||||||
fetch_and_deploy_gh_release "victorialogs" "VictoriaMetrics/VictoriaLogs" "prebuild" "latest" "/opt/victoriametrics" "victoria-logs-linux-amd64*.tar.gz"
|
|
||||||
fetch_and_deploy_gh_release "vlutils" "VictoriaMetrics/VictoriaLogs" "prebuild" "latest" "/opt/victoriametrics" "vlutils-linux-amd64*.tar.gz"
|
|
||||||
fi
|
|
||||||
|
|
||||||
msg_info "Setup VictoriaMetrics"
|
|
||||||
mkdir -p /opt/victoriametrics/data
|
|
||||||
chmod +x /opt/victoriametrics/*
|
|
||||||
msg_ok "Setup VictoriaMetrics"
|
|
||||||
|
|
||||||
msg_info "Creating Service"
|
|
||||||
cat <<EOF >/etc/systemd/system/victoriametrics.service
|
|
||||||
[Unit]
|
|
||||||
Description=VictoriaMetrics Service
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
Restart=always
|
|
||||||
User=root
|
|
||||||
WorkingDirectory=/opt/victoriametrics
|
|
||||||
ExecStart=/opt/victoriametrics/victoria-metrics-prod --storageDataPath="/opt/victoriametrics/data"
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
EOF
|
|
||||||
systemctl enable -q --now victoriametrics
|
|
||||||
|
|
||||||
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
|
||||||
cat <<EOF >/etc/systemd/system/victoriametrics-logs.service
|
|
||||||
[Unit]
|
|
||||||
Description=VictoriaMetrics Service
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
Restart=always
|
|
||||||
User=root
|
|
||||||
WorkingDirectory=/opt/victoriametrics
|
|
||||||
ExecStart=/opt/victoriametrics/victoria-logs-prod
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
EOF
|
|
||||||
systemctl enable -q --now victoriametrics-logs
|
|
||||||
fi
|
|
||||||
msg_ok "Created Service"
|
|
||||||
|
|
||||||
motd_ssh
|
|
||||||
customize
|
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
|
||||||
$STD apt-get -y autoremove
|
|
||||||
$STD apt-get -y autoclean
|
|
||||||
msg_ok "Cleaned"
|
|
Loading…
x
Reference in New Issue
Block a user