cleanup
This commit is contained in:
parent
2ed1cd87b1
commit
2faab0f775
@ -1,86 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
source <(curl -s 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:
|
|
||||||
|
|
||||||
APP="Baby Buddy"
|
|
||||||
var_tags="${var_tags:-baby}"
|
|
||||||
var_disk="${var_disk:-5}"
|
|
||||||
var_cpu="${var_cpu:-2}"
|
|
||||||
var_ram="${var_ram:-2048}"
|
|
||||||
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/babybuddy ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/babybuddy/babybuddy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
|
||||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/babybuddy_version.txt)" ]]; then
|
|
||||||
setup_uv
|
|
||||||
|
|
||||||
msg_info "Stopping Services"
|
|
||||||
systemctl stop nginx
|
|
||||||
systemctl stop uwsgi
|
|
||||||
msg_ok "Services Stopped"
|
|
||||||
|
|
||||||
msg_info "Cleaning old files"
|
|
||||||
cp babybuddy/settings/production.py /tmp/production.py.bak
|
|
||||||
find . -mindepth 1 -maxdepth 1 ! -name '.venv' -exec rm -rf {} +
|
|
||||||
msg_ok "Cleaned old files"
|
|
||||||
|
|
||||||
msg_info "Updating ${APP} to v${RELEASE}"
|
|
||||||
temp_file=$(mktemp)
|
|
||||||
curl -fsSL "https://github.com/babybuddy/babybuddy/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
|
||||||
cd /opt/babybuddy
|
|
||||||
tar zxf "$temp_file" --strip-components=1 -C /opt/babybuddy
|
|
||||||
mv /tmp/production.py.bak babybuddy/settings/production.py
|
|
||||||
cd /opt/babybuddy
|
|
||||||
source .venv/bin/activate
|
|
||||||
$STD uv pip install -r requirements.txt
|
|
||||||
$STD python manage.py migrate
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
|
||||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
|
||||||
|
|
||||||
msg_info "Fixing permissions"
|
|
||||||
chown -R www-data:www-data /opt/data
|
|
||||||
chmod 640 /opt/data/db.sqlite3
|
|
||||||
chmod 750 /opt/data
|
|
||||||
msg_ok "Permissions fixed"
|
|
||||||
|
|
||||||
msg_info "Starting Services"
|
|
||||||
systemctl start uwsgi
|
|
||||||
systemctl start nginx
|
|
||||||
msg_ok "Services Started"
|
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
|
||||||
rm -f "$temp_file"
|
|
||||||
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}"
|
|
@ -1,37 +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: edoardop13
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://github.com/favonia/cloudflare-ddns
|
|
||||||
|
|
||||||
APP="Cloudflare-DDNS"
|
|
||||||
var_tags="${var_tags:-network}"
|
|
||||||
var_cpu="${var_cpu:-1}"
|
|
||||||
var_ram="${var_ram:-512}"
|
|
||||||
var_disk="${var_disk:-3}"
|
|
||||||
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 /etc/systemd/system/cloudflare-ddns.service ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
msg_error "There is no update function for ${APP}."
|
|
||||||
exit
|
|
||||||
}
|
|
||||||
|
|
||||||
start
|
|
||||||
build_container
|
|
||||||
description
|
|
||||||
msg_ok "Completed Successfully!\n"
|
|
@ -1,75 +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://linkwarden.app/
|
|
||||||
|
|
||||||
APP="Linkwarden"
|
|
||||||
var_tags="${var_tags:-bookmark}"
|
|
||||||
var_cpu="${var_cpu:-2}"
|
|
||||||
var_ram="${var_ram:-4096}"
|
|
||||||
var_disk="${var_disk:-12}"
|
|
||||||
var_os="${var_os:-ubuntu}"
|
|
||||||
var_version="${var_version:-24.04}"
|
|
||||||
|
|
||||||
header_info "$APP"
|
|
||||||
variables
|
|
||||||
color
|
|
||||||
catch_errors
|
|
||||||
|
|
||||||
function update_script() {
|
|
||||||
header_info
|
|
||||||
check_container_storage
|
|
||||||
check_container_resources
|
|
||||||
if [[ ! -d /opt/linkwarden ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
|
||||||
if [[ "${RELEASE}" != "$(cat /opt/linkwarden_version.txt)" ]] || [[ ! -f /opt/linkwarden_version.txt ]]; then
|
|
||||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" install_node_and_modules
|
|
||||||
msg_info "Stopping ${APP}"
|
|
||||||
systemctl stop linkwarden
|
|
||||||
msg_ok "Stopped ${APP}"
|
|
||||||
|
|
||||||
RUST_CRATES="monolith" install_rust_and_crates
|
|
||||||
|
|
||||||
msg_info "Updating ${APP} to ${RELEASE}"
|
|
||||||
mv /opt/linkwarden/.env /opt/.env
|
|
||||||
rm -rf /opt/linkwarden
|
|
||||||
fetch_and_deploy_gh_release "linkwarden/linkwarden"
|
|
||||||
cd /opt/linkwarden
|
|
||||||
$STD yarn
|
|
||||||
$STD npx playwright install-deps
|
|
||||||
$STD yarn playwright install
|
|
||||||
mv /opt/.env /opt/linkwarden/.env
|
|
||||||
$STD yarn prisma:generate
|
|
||||||
$STD yarn web:build
|
|
||||||
$STD yarn prisma:deploy
|
|
||||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
|
||||||
|
|
||||||
msg_info "Starting ${APP}"
|
|
||||||
systemctl start linkwarden
|
|
||||||
msg_ok "Started ${APP}"
|
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
|
||||||
rm -rf ~/.cargo/registry ~/.cargo/git ~/.cargo/.package-cache ~/.rustup
|
|
||||||
rm -rf /root/.cache/yarn
|
|
||||||
rm -rf /opt/linkwarden/.next/cache
|
|
||||||
msg_ok "Cleaned"
|
|
||||||
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}:3000${CL}"
|
|
@ -1,42 +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://github.com/searxng/searxng
|
|
||||||
|
|
||||||
APP="SearXNG"
|
|
||||||
var_tags="${var_tags:-search}"
|
|
||||||
var_cpu="${var_cpu:-2}"
|
|
||||||
var_ram="${var_ram:-2048}"
|
|
||||||
var_disk="${var_disk:-7}"
|
|
||||||
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 /usr/local/searxng/searxng-src ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
if cd /usr/local/searxng/searxng-src && git pull | grep -q 'Already up to date'; then
|
|
||||||
msg_ok "There is currently 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}:8888${CL}"
|
|
@ -1,44 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
source <(curl -s 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:
|
|
||||||
|
|
||||||
APP="TimescaleDB"
|
|
||||||
var_tags="${var_tags:-database}"
|
|
||||||
var_cpu="${var_cpu:-1}"
|
|
||||||
var_ram="${var_ram:-1024}"
|
|
||||||
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 [[ ! -f /etc/apt/sources.list.d/pgdg.list ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
msg_info "Updating ${APP} LXC"
|
|
||||||
apt-get update &>/dev/null
|
|
||||||
apt-get -y upgrade &>/dev/null
|
|
||||||
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 IP:${CL}"
|
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}${IP}:5432${CL}"
|
|
@ -1,40 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "Baby Buddy",
|
|
||||||
"slug": "babybuddy",
|
|
||||||
"categories": [
|
|
||||||
23
|
|
||||||
],
|
|
||||||
"date_created": "2025-05-16",
|
|
||||||
"type": "ct",
|
|
||||||
"updateable": true,
|
|
||||||
"privileged": false,
|
|
||||||
"interface_port": 80,
|
|
||||||
"documentation": "https://docs.baby-buddy.net/",
|
|
||||||
"website": "https://github.com/babybuddy/babybuddy",
|
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/baby-buddy.webp",
|
|
||||||
"config_path": "/opt/babybuddy/babybuddy/production.py",
|
|
||||||
"description": "Baby Buddy is an open-source web application designed to assist caregivers in tracking various aspects of a baby's daily routine, including sleep, feedings, diaper changes, tummy time, and more. By recording this data, caregivers can better understand and anticipate their baby's needs, reducing guesswork in daily care. The application offers a user-friendly dashboard for data entry and visualization, supports multiple users, and provides features like timers and reminders. Additionally, Baby Buddy can be integrated with platforms like Home Assistant and Grafana for enhanced functionality.",
|
|
||||||
"install_methods": [
|
|
||||||
{
|
|
||||||
"type": "default",
|
|
||||||
"script": "ct/babybuddy.sh",
|
|
||||||
"resources": {
|
|
||||||
"cpu": 2,
|
|
||||||
"ram": 2048,
|
|
||||||
"hdd": 5,
|
|
||||||
"os": "debian",
|
|
||||||
"version": "12"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"default_credentials": {
|
|
||||||
"username": "admin",
|
|
||||||
"password": "admin"
|
|
||||||
},
|
|
||||||
"notes": [
|
|
||||||
{
|
|
||||||
"text": "for private SSL setup visit: `https://github.com/babybuddy/babybuddy/blob/master/docs/setup/ssl.md`",
|
|
||||||
"type": "info"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,44 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "Cloudflare-DDNS",
|
|
||||||
"slug": "cloudflare-ddns",
|
|
||||||
"categories": [
|
|
||||||
4
|
|
||||||
],
|
|
||||||
"date_created": "2025-04-23",
|
|
||||||
"type": "ct",
|
|
||||||
"updateable": false,
|
|
||||||
"privileged": false,
|
|
||||||
"interface_port": null,
|
|
||||||
"documentation": "https://github.com/favonia/cloudflare-ddns/blob/main/README.markdown",
|
|
||||||
"config_path": "/etc/systemd/system/cloudflare-ddns.service",
|
|
||||||
"website": "https://github.com/favonia/cloudflare-ddns",
|
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/cloudflare.webp",
|
|
||||||
"description": "A feature-rich and robust Cloudflare DDNS updater with a small footprint. The program will detect your machine’s public IP addresses and update DNS records using the Cloudflare API",
|
|
||||||
"install_methods": [
|
|
||||||
{
|
|
||||||
"type": "default",
|
|
||||||
"script": "ct/cloudflare-ddns.sh",
|
|
||||||
"resources": {
|
|
||||||
"cpu": 1,
|
|
||||||
"ram": 512,
|
|
||||||
"hdd": 2,
|
|
||||||
"os": "Debian",
|
|
||||||
"version": "12"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"default_credentials": {
|
|
||||||
"username": null,
|
|
||||||
"password": null
|
|
||||||
},
|
|
||||||
"notes": [
|
|
||||||
{
|
|
||||||
"text": "To setup the updater you must have the Cloudflare Token and the domains, please read the Github documentation at \"Step 1: Updating the Compose File\" (only the expandable section)",
|
|
||||||
"type": "warning"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"text": "To update the configuration edit `/etc/systemd/system/cloudflare-ddns.service`. After edit please restard with `sudo systemctl restart cloudflare-ddns.service`",
|
|
||||||
"type": "info"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,108 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
|
||||||
# Author: MickLesk (CanbiZ)
|
|
||||||
# License: MIT | http
|
|
||||||
# Source: https://github.com/babybuddy/babybuddy
|
|
||||||
|
|
||||||
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 \
|
|
||||||
uwsgi \
|
|
||||||
uwsgi-plugin-python3 \
|
|
||||||
libopenjp2-7-dev \
|
|
||||||
libpq-dev \
|
|
||||||
nginx \
|
|
||||||
python3
|
|
||||||
msg_ok "Installed Dependencies"
|
|
||||||
|
|
||||||
setup_uv
|
|
||||||
|
|
||||||
msg_info "Installing Babybuddy"
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/babybuddy/babybuddy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
|
||||||
temp_file=$(mktemp)
|
|
||||||
mkdir -p /opt/{babybuddy,data}
|
|
||||||
curl -fsSL "https://github.com/babybuddy/babybuddy/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
|
||||||
tar zxf "$temp_file" --strip-components=1 -C /opt/babybuddy
|
|
||||||
cd /opt/babybuddy
|
|
||||||
$STD uv venv .venv
|
|
||||||
$STD source .venv/bin/activate
|
|
||||||
$STD uv pip install -r requirements.txt
|
|
||||||
cp babybuddy/settings/production.example.py babybuddy/settings/production.py
|
|
||||||
SECRET_KEY=$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | cut -c1-32)
|
|
||||||
ALLOWED_HOSTS=$(hostname -I | tr ' ' ',' | sed 's/,$//')",127.0.0.1,localhost"
|
|
||||||
sed -i \
|
|
||||||
-e "s/^SECRET_KEY = \"\"/SECRET_KEY = \"$SECRET_KEY\"/" \
|
|
||||||
-e "s/^ALLOWED_HOSTS = \[\"\"\]/ALLOWED_HOSTS = \[$(echo \"$ALLOWED_HOSTS\" | sed 's/,/\",\"/g')\]/" \
|
|
||||||
babybuddy/settings/production.py
|
|
||||||
|
|
||||||
export DJANGO_SETTINGS_MODULE=babybuddy.settings.production
|
|
||||||
$STD python manage.py migrate
|
|
||||||
chown -R www-data:www-data /opt/data
|
|
||||||
chmod 640 /opt/data/db.sqlite3
|
|
||||||
chmod 750 /opt/data
|
|
||||||
msg_ok "Installed Babybuddy"
|
|
||||||
|
|
||||||
msg_info "Configuring uWSGI"
|
|
||||||
cat <<EOF >/etc/uwsgi/apps-available/babybuddy.ini
|
|
||||||
[uwsgi]
|
|
||||||
plugins = python3
|
|
||||||
project = babybuddy
|
|
||||||
base_dir = /opt/babybuddy
|
|
||||||
chdir = %(base_dir)
|
|
||||||
virtualenv = %(base_dir)/.venv
|
|
||||||
module = %(project).wsgi:application
|
|
||||||
env = DJANGO_SETTINGS_MODULE=%(project).settings.production
|
|
||||||
master = True
|
|
||||||
vacuum = True
|
|
||||||
socket = /var/run/uwsgi/app/babybuddy/socket
|
|
||||||
chmod-socket = 660
|
|
||||||
uid = www-data
|
|
||||||
gid = www-data
|
|
||||||
EOF
|
|
||||||
ln -sf /etc/uwsgi/apps-available/babybuddy.ini /etc/uwsgi/apps-enabled/babybuddy.ini
|
|
||||||
service uwsgi restart
|
|
||||||
msg_ok "Configured uWSGI"
|
|
||||||
|
|
||||||
msg_info "Configuring NGINX"
|
|
||||||
cat <<EOF >/etc/nginx/sites-available/babybuddy
|
|
||||||
upstream babybuddy {
|
|
||||||
server unix:///var/run/uwsgi/app/babybuddy/socket;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
server_name _;
|
|
||||||
|
|
||||||
location / {
|
|
||||||
uwsgi_pass babybuddy;
|
|
||||||
include uwsgi_params;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /media {
|
|
||||||
alias /opt/data/media;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
ln -sf /etc/nginx/sites-available/babybuddy /etc/nginx/sites-enabled/babybuddy
|
|
||||||
rm /etc/nginx/sites-enabled/default
|
|
||||||
systemctl enable -q --now nginx
|
|
||||||
service nginx reload
|
|
||||||
msg_ok "Configured NGINX"
|
|
||||||
|
|
||||||
motd_ssh
|
|
||||||
customize
|
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
|
||||||
rm -f "$temp_file"
|
|
||||||
$STD apt-get -y autoremove
|
|
||||||
$STD apt-get -y autoclean
|
|
||||||
msg_ok "Cleaned"
|
|
@ -1,87 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
|
||||||
# Author: edoardop13
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://github.com/favonia/cloudflare-ddns
|
|
||||||
|
|
||||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
|
||||||
color
|
|
||||||
verb_ip6
|
|
||||||
catch_errors
|
|
||||||
setting_up_container
|
|
||||||
network_check
|
|
||||||
update_os
|
|
||||||
|
|
||||||
install_go
|
|
||||||
|
|
||||||
msg_info "Configure Application"
|
|
||||||
var_cf_api_token="default"
|
|
||||||
read -rp "Enter the Cloudflare API token: " var_cf_api_token
|
|
||||||
|
|
||||||
var_cf_domains="default"
|
|
||||||
read -rp "Enter the domains separated with a comma (*.example.org,www.example.org) " var_cf_domains
|
|
||||||
|
|
||||||
var_cf_proxied="false"
|
|
||||||
while true; do
|
|
||||||
read -rp "Proxied? (y/n): " answer
|
|
||||||
case "$answer" in
|
|
||||||
[Yy]*)
|
|
||||||
var_cf_proxied="true"
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
[Nn]*)
|
|
||||||
var_cf_proxied="false"
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
*) echo "Please answer y or n." ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
var_cf_ip6_provider="none"
|
|
||||||
while true; do
|
|
||||||
read -rp "Enable IPv6 support? (y/n): " answer
|
|
||||||
case "$answer" in
|
|
||||||
[Yy]*)
|
|
||||||
var_cf_ip6_provider="auto"
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
[Nn]*)
|
|
||||||
var_cf_ip6_provider="none"
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
*) echo "Please answer y or n." ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
msg_ok "Configured Application"
|
|
||||||
|
|
||||||
msg_info "Setting up service"
|
|
||||||
mkdir -p /root/go
|
|
||||||
cat <<EOF >/etc/systemd/system/cloudflare-ddns.service
|
|
||||||
[Unit]
|
|
||||||
Description=Cloudflare DDNS Service (Go run)
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Environment="CLOUDFLARE_API_TOKEN=${var_cf_api_token}"
|
|
||||||
Environment="DOMAINS=${var_cf_domains}"
|
|
||||||
Environment="PROXIED=${var_cf_proxied}"
|
|
||||||
Environment="IP6_PROVIDER=${var_cf_ip6_provider}"
|
|
||||||
Environment="GOPATH=/root/go"
|
|
||||||
Environment="GOCACHE=/tmp/go-build"
|
|
||||||
ExecStart=/usr/bin/go/bin/go run github.com/favonia/cloudflare-ddns/cmd/ddns@latest
|
|
||||||
Restart=always
|
|
||||||
RestartSec=300
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
EOF
|
|
||||||
systemctl enable -q --now cloudflare-ddns
|
|
||||||
msg_ok "Setup Service"
|
|
||||||
|
|
||||||
motd_ssh
|
|
||||||
customize
|
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
|
||||||
$STD apt-get -y autoremove
|
|
||||||
$STD apt-get -y autoclean
|
|
||||||
msg_ok "Cleaned"
|
|
@ -1,94 +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://linkwarden.app/
|
|
||||||
|
|
||||||
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 \
|
|
||||||
make \
|
|
||||||
build-essential
|
|
||||||
msg_ok "Installed Dependencies"
|
|
||||||
|
|
||||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" install_node_and_modules
|
|
||||||
PG_VERSION="16" install_postgresql
|
|
||||||
RUST_CRATES="monolith" install_rust_and_crates
|
|
||||||
|
|
||||||
msg_info "Setting up PostgreSQL DB"
|
|
||||||
DB_NAME=linkwardendb
|
|
||||||
DB_USER=linkwarden
|
|
||||||
DB_PASS="$(openssl rand -base64 18 | tr -d '/' | cut -c1-13)"
|
|
||||||
SECRET_KEY="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32)"
|
|
||||||
$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 ENCODING 'UTF8' 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 "Linkwarden-Credentials"
|
|
||||||
echo "Linkwarden Database User: $DB_USER"
|
|
||||||
echo "Linkwarden Database Password: $DB_PASS"
|
|
||||||
echo "Linkwarden Database Name: $DB_NAME"
|
|
||||||
echo "Linkwarden Secret: $SECRET_KEY"
|
|
||||||
} >>~/linkwarden.creds
|
|
||||||
msg_ok "Set up PostgreSQL DB"
|
|
||||||
|
|
||||||
read -r -p "${TAB3}Would you like to add Adminer? <y/N> " prompt
|
|
||||||
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
|
||||||
install_adminer
|
|
||||||
fi
|
|
||||||
|
|
||||||
msg_info "Installing Linkwarden (Patience)"
|
|
||||||
fetch_and_deploy_gh_release "linkwarden/linkwarden"
|
|
||||||
cd /opt/linkwarden
|
|
||||||
$STD yarn
|
|
||||||
$STD npx playwright install-deps
|
|
||||||
$STD yarn playwright install
|
|
||||||
IP=$(hostname -I | awk '{print $1}')
|
|
||||||
cat <<EOF >/opt/linkwarden/.env
|
|
||||||
NEXTAUTH_SECRET=${SECRET_KEY}
|
|
||||||
NEXTAUTH_URL=http://${IP}:3000
|
|
||||||
DATABASE_URL=postgresql://${DB_USER}:${DB_PASS}@localhost:5432/${DB_NAME}
|
|
||||||
EOF
|
|
||||||
$STD yarn prisma:generate
|
|
||||||
$STD yarn web:build
|
|
||||||
$STD yarn prisma:deploy
|
|
||||||
msg_ok "Installed Linkwarden"
|
|
||||||
|
|
||||||
msg_info "Creating Service"
|
|
||||||
cat <<EOF >/etc/systemd/system/linkwarden.service
|
|
||||||
[Unit]
|
|
||||||
Description=Linkwarden Service
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=exec
|
|
||||||
Environment=PATH=$PATH
|
|
||||||
WorkingDirectory=/opt/linkwarden
|
|
||||||
ExecStart=/usr/bin/yarn concurrently:start
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
EOF
|
|
||||||
systemctl enable -q --now linkwarden
|
|
||||||
msg_ok "Created Service"
|
|
||||||
|
|
||||||
motd_ssh
|
|
||||||
customize
|
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
|
||||||
rm -rf ~/.cargo/registry ~/.cargo/git ~/.cargo/.package-cache ~/.rustup
|
|
||||||
rm -rf /root/.cache/yarn
|
|
||||||
rm -rf /opt/linkwarden/.next/cache
|
|
||||||
$STD apt-get -y autoremove
|
|
||||||
$STD apt-get -y autoclean
|
|
||||||
msg_ok "Cleaned"
|
|
@ -1,113 +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/searxng/searxng
|
|
||||||
|
|
||||||
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 \
|
|
||||||
redis-server \
|
|
||||||
build-essential \
|
|
||||||
libffi-dev \
|
|
||||||
libssl-dev \
|
|
||||||
git
|
|
||||||
msg_ok "Installed Dependencies"
|
|
||||||
|
|
||||||
msg_info "Setup Python3"
|
|
||||||
$STD apt-get install -y \
|
|
||||||
python3 \
|
|
||||||
python3-{pip,venv,yaml,dev}
|
|
||||||
$STD pip install --upgrade pip setuptools wheel
|
|
||||||
$STD pip install pyyaml
|
|
||||||
msg_ok "Setup Python3"
|
|
||||||
|
|
||||||
msg_info "Setup SearXNG"
|
|
||||||
mkdir -p /usr/local/searxng /etc/searxng
|
|
||||||
useradd -d /etc/searxng searxng
|
|
||||||
chown searxng:searxng /usr/local/searxng /etc/searxng
|
|
||||||
$STD git clone https://github.com/searxng/searxng.git /usr/local/searxng/searxng-src
|
|
||||||
cd /usr/local/searxng/
|
|
||||||
sudo -u searxng python3 -m venv /usr/local/searxng/searx-pyenv
|
|
||||||
source /usr/local/searxng/searx-pyenv/bin/activate
|
|
||||||
$STD pip install --upgrade pip setuptools wheel
|
|
||||||
$STD pip install pyyaml
|
|
||||||
$STD pip install --use-pep517 --no-build-isolation -e /usr/local/searxng/searxng-src
|
|
||||||
SECRET_KEY=$(openssl rand -hex 32)
|
|
||||||
cat <<EOF >/etc/searxng/settings.yml
|
|
||||||
# SearXNG settings
|
|
||||||
use_default_settings: true
|
|
||||||
general:
|
|
||||||
debug: false
|
|
||||||
instance_name: "SearXNG"
|
|
||||||
privacypolicy_url: false
|
|
||||||
contact_url: false
|
|
||||||
server:
|
|
||||||
bind_address: "0.0.0.0"
|
|
||||||
port: 8888
|
|
||||||
secret_key: "${SECRET_KEY}"
|
|
||||||
limiter: true
|
|
||||||
image_proxy: true
|
|
||||||
redis:
|
|
||||||
url: "redis://127.0.0.1:6379/0"
|
|
||||||
ui:
|
|
||||||
static_use_hash: true
|
|
||||||
enabled_plugins:
|
|
||||||
- 'Hash plugin'
|
|
||||||
- 'Self Information'
|
|
||||||
- 'Tracker URL remover'
|
|
||||||
- 'Ahmia blacklist'
|
|
||||||
search:
|
|
||||||
safe_search: 2
|
|
||||||
autocomplete: 'google'
|
|
||||||
engines:
|
|
||||||
- name: google
|
|
||||||
engine: google
|
|
||||||
shortcut: gg
|
|
||||||
use_mobile_ui: false
|
|
||||||
- name: duckduckgo
|
|
||||||
engine: duckduckgo
|
|
||||||
shortcut: ddg
|
|
||||||
display_error_messages: true
|
|
||||||
EOF
|
|
||||||
chown searxng:searxng /etc/searxng/settings.yml
|
|
||||||
chmod 640 /etc/searxng/settings.yml
|
|
||||||
msg_ok "Setup SearXNG"
|
|
||||||
|
|
||||||
msg_info "Set up web services"
|
|
||||||
cat <<EOF >/etc/systemd/system/searxng.service
|
|
||||||
[Unit]
|
|
||||||
Description=SearXNG service
|
|
||||||
After=network.target redis-server.service
|
|
||||||
Wants=redis-server.service
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
User=searxng
|
|
||||||
Group=searxng
|
|
||||||
Environment="SEARXNG_SETTINGS_PATH=/etc/searxng/settings.yml"
|
|
||||||
ExecStart=/usr/local/searxng/searx-pyenv/bin/python -m searx.webapp
|
|
||||||
WorkingDirectory=/usr/local/searxng/searxng-src
|
|
||||||
Restart=always
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
EOF
|
|
||||||
systemctl enable -q --now searxng
|
|
||||||
msg_ok "Created Services"
|
|
||||||
|
|
||||||
motd_ssh
|
|
||||||
customize
|
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
|
||||||
$STD apt-get autoremove
|
|
||||||
$STD apt-get autoclean
|
|
||||||
msg_ok "Cleaned"
|
|
Loading…
x
Reference in New Issue
Block a user