mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-03-17 07:23:00 +01:00
Refreshed AI.md with new reference scripts, expanded checklist, and improved AI assistant tips. Updated container and install script templates for modern defaults (Debian 13, larger disk, two tags), clarified helper function usage, and improved update/backup patterns. Enhanced JSON template with realistic metadata, new fields, and example notes.
88 lines
3.0 KiB
Bash
88 lines
3.0 KiB
Bash
#!/usr/bin/env bash
|
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
|
# Copyright (c) 2021-2026 community-scripts ORG
|
|
# Author: [YourGitHubUsername]
|
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
# Source: [SOURCE_URL e.g. https://github.com/example/app]
|
|
|
|
# App Default Values
|
|
APP="[AppName]"
|
|
var_tags="${var_tags:-[category1];[category2]}"
|
|
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}"
|
|
|
|
# =============================================================================
|
|
# CONFIGURATION GUIDE
|
|
# =============================================================================
|
|
# APP - Display name, title case (e.g. "Koel", "Wallabag", "Actual Budget")
|
|
# var_tags - Max 2 tags, semicolon separated (e.g. "music;streaming", "finance")
|
|
# var_cpu - CPU cores: 1-4 typical, 4+ for heavy apps
|
|
# var_ram - RAM in MB: 512, 1024, 2048, 4096, 8192 typical
|
|
# var_disk - Disk in GB: 6, 8, 10, 20 typical (more for data-heavy apps)
|
|
# var_os - OS: debian, ubuntu, alpine
|
|
# var_version - OS version: 13 (debian), 24.04 (ubuntu), 3.21 (alpine)
|
|
# var_unprivileged - 1 = unprivileged (secure, default), 0 = privileged (for podman/docker)
|
|
|
|
header_info "$APP"
|
|
variables
|
|
color
|
|
catch_errors
|
|
|
|
function update_script() {
|
|
header_info
|
|
check_container_storage
|
|
check_container_resources
|
|
|
|
# Check if installation exists
|
|
if [[ ! -d /opt/[appname] ]]; then
|
|
msg_error "No ${APP} Installation Found!"
|
|
exit
|
|
fi
|
|
|
|
# check_for_gh_release returns 0 (true) if update available, 1 (false) if not
|
|
if check_for_gh_release "[appname]" "[owner/repo]"; then
|
|
msg_info "Stopping Service"
|
|
systemctl stop [appname]
|
|
msg_ok "Stopped Service"
|
|
|
|
# Optional: Backup important data before update
|
|
msg_info "Backing up Data"
|
|
cp -r /opt/[appname]/data /opt/[appname]_data_backup 2>/dev/null || true
|
|
msg_ok "Backed up Data"
|
|
|
|
# CLEAN_INSTALL=1 removes old directory before extracting new version
|
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "[appname]" "[owner/repo]"
|
|
|
|
# Restore configuration and data (if needed)
|
|
msg_info "Restoring Data"
|
|
cp -r /opt/[appname]_data_backup/. /opt/[appname]/data/ 2>/dev/null || true
|
|
rm -rf /opt/[appname]_data_backup
|
|
msg_ok "Restored Data"
|
|
|
|
# Optional: Run any post-update commands (npm, composer, migrations, etc.)
|
|
# cd /opt/[appname] && $STD npm ci --production
|
|
# cd /opt/[appname] && $STD composer install --no-dev
|
|
# cd /opt/[appname] && $STD php artisan migrate --force
|
|
|
|
msg_info "Starting Service"
|
|
systemctl start [appname]
|
|
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}:[PORT]${CL}"
|