Merge pull request #99 from asylumexp/upstream-merge

Upstream merge
This commit is contained in:
Sam Heinz
2025-01-09 17:15:16 +10:00
committed by GitHub
681 changed files with 38963 additions and 12191 deletions
+16
View File
@@ -0,0 +1,16 @@
; editorconfig.org
root = true
[*]
charset = utf-8
continuation_indent_size = 2
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
max_line_length = 120
tab_width = 2
; trim_trailing_whitespace = true ; disabled until files are cleaned up
[*.md]
trim_trailing_whitespace = false
-132
View File
@@ -1,132 +0,0 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0].
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available
at [https://www.contributor-covenant.org/translations][translations].
[homepage]: https://www.contributor-covenant.org
[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations
-65
View File
@@ -1,65 +0,0 @@
name: Problems with a script.
description: Generate a report on an issue pertaining specifically to a script. For other inquires please share them in the Discussions section.
body:
- type: markdown
attributes:
value: |
**IMPORTANT:** Failure to comply with the following guidelines may result in immediate closure.
- Prior to submitting, kindly search the closed issues to check if the problem you are reporting has already been addressed and resolved. If you come across a closed issue that pertains to your problem, please leave a comment on that issue instead of creating a new one.
- If the default Linux distribution is not adhered to, script support will be discontinued.
- When encountering the error message `[ERROR] in line 23: exit code *: while executing command "$@" > /dev/null 2>&1`, make sure to run the script in verbose mode to accurately determine the underlying issue.
- For suggestions, questions or feature/script requests, please share them in the [Discussions section.](https://github.com/tteck/Proxmox/discussions)
- type: input
id: guidelines
attributes:
label: Please verify that you have read and understood the guidelines.
placeholder: 'yes'
validations:
required: true
- type: textarea
id: bug
attributes:
label: A clear and concise description of the issue.
validations:
required: true
- type: dropdown
id: settings
validations:
required: true
attributes:
label: What settings are you currently utilizing?
options:
-
- Default Settings
- Advanced Settings
- type: markdown
attributes:
value: (if Advanced Settings, please try Default Settings before creating an issue)
- type: dropdown
id: distribution
validations:
required: true
attributes:
label: Which Linux distribution are you employing?
options:
-
- Alpine
- Debian 11
- Debian 12
- Ubuntu 20.04
- Ubuntu 22.04
- Ubuntu 24.04
- type: textarea
id: screenshot
attributes:
label: If relevant, including screenshots or a code block can be helpful in clarifying the issue.
placeholder: Code blocks begin and conclude by enclosing the code with three backticks (```) above and below it.
validations:
required: false
- type: textarea
id: reproduce
attributes:
label: Please provide detailed steps to reproduce the issue.
placeholder: First do this, then this ...
validations:
required: false
+1
View File
@@ -0,0 +1 @@
script.py
+848 -40
View File
File diff suppressed because it is too large Load Diff
+8 -8
View File
@@ -1,14 +1,14 @@
<div align="center"> <div align="center">
<img src="https://raw.githubusercontent.com/tteck/Proxmox/main/misc/images/logo.png" height="100px" /> <img src="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/images/logo.png" height="100px" />
</div> </div>
<h2><div align="center">Exploring the Scripts and Steps Involved in an Application LXC Installation</div></h2> <h2><div align="center">Exploring the Scripts and Steps Involved in an Application LXC Installation</div></h2>
1) [adguard.sh](https://github.com/tteck/Proxmox/blob/main/ct/adguard.sh): This script collects system parameters. (Also holds the function to update the application.) 1) [adguard.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/ct/adguard.sh): This script collects system parameters. (Also holds the function to update the application.)
2) [build.func](https://github.com/tteck/Proxmox/blob/main/misc/build.func): Adds user settings and integrates collected information. 2) [build.func](https://github.com/community-scripts/ProxmoxVE/blob/main/misc/build.func): Adds user settings and integrates collected information.
3) [create_lxc.sh](https://github.com/tteck/Proxmox/blob/main/ct/create_lxc.sh): Constructs the LXC container. 3) [create_lxc.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/ct/create_lxc.sh): Constructs the LXC container.
4) [adguard-install.sh](https://github.com/tteck/Proxmox/blob/main/install/adguard-install.sh): Executes functions from [install.func](https://github.com/tteck/Proxmox/blob/main/misc/install.func), and installs the application. 4) [adguard-install.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/install/adguard-install.sh): Executes functions from [install.func](https://github.com/community-scripts/ProxmoxVE/blob/main/misc/install.func), and installs the application.
5) [adguard.sh](https://github.com/tteck/Proxmox/blob/main/ct/adguard.sh) (again): To display the completion message. 5) [adguard.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/ct/adguard.sh) (again): To display the completion message.
The installation process uses reusable scripts: [build.func](https://github.com/tteck/Proxmox/blob/main/misc/build.func), [create_lxc.sh](https://github.com/tteck/Proxmox/blob/main/ct/create_lxc.sh), and [install.func](https://github.com/tteck/Proxmox/blob/main/misc/install.func), which are not specific to any particular application. The installation process uses reusable scripts: [build.func](https://github.com/community-scripts/ProxmoxVE/blob/main/misc/build.func), [create_lxc.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/ct/create_lxc.sh), and [install.func](https://github.com/community-scripts/ProxmoxVE/blob/main/misc/install.func), which are not specific to any particular application.
To gain a better understanding, focus on reviewing [adguard-install.sh](https://github.com/tteck/Proxmox/blob/main/install/adguard-install.sh). This script contains the commands and configurations for installing and configuring AdGuard Home within the LXC container. To gain a better understanding, focus on reviewing [adguard-install.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/install/adguard-install.sh). This script contains the commands and configurations for installing and configuring AdGuard Home within the LXC container.
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2021-2024 tteck Copyright (c) 2021-2025 asylumexp
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
+23
View File
@@ -0,0 +1,23 @@
## Supported Versions
This project currently supports the following versions of Proxmox VE:
| Version | Supported |
| ------- | ------------------ |
| 8.3.x | :white_check_mark: |
| 8.2.x | :white_check_mark: |
| 8.1.x | :white_check_mark: |
| 8.0.x | Limited support* ❕|
| < 8.0 | :x: |
*Version 8.0.x has limited support. Security updates may not be provided for all issues in this version.
## Reporting a Vulnerability
Security vulnerabilities shouldnt be reported publicly to prevent potential exploitation. Instead, please report any vulnerabilities privately by reaching out directly to us. You can either join our [Discord server](https://discord.gg/UHrpNWGwkH) and send a direct message to a maintainer or contact us via email at contact@community-scripts.org. Be sure to include a detailed description of the vulnerability and the steps to reproduce it. Thank you for helping us keep our project secure!
Once a vulnerability has been reported, the project maintainers will review it and acknowledge the report within 7 business days. We will then work to address the vulnerability and provide a fix as soon as possible. Depending on the severity of the issue, a patch may be released immediately or included in the next scheduled update.
Please note that not all reported vulnerabilities may be accepted. The project maintainers reserve the right to decline a vulnerability report if it is deemed to be a low-risk issue or if it conflicts with the project's design or architecture. In such cases, we will provide an explanation for the decision.
If you have any questions or concerns about this security policy, please don't hesitate to contact the project maintainers.
+1 -1
View File
@@ -1,6 +1,6 @@
<div align="center"> <div align="center">
<a href="#"> <a href="#">
<img src="https://raw.githubusercontent.com/tteck/Proxmox/main/misc/images/logo.png" height="100px" /> <img src="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/images/logo.png" height="100px" />
</a> </a>
</div> </div>
<h2 align="center">User Submitted Guides </h2> <h2 align="center">User Submitted Guides </h2>
+90
View File
@@ -0,0 +1,90 @@
#!/usr/bin/env bash
source ./misc/build.func
# Copyright (c) 2021-2025 community-scripts ORG
# Author: jkrgr0
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# Source: https://docs.2fauth.app/
# App Default Values
APP="2FAuth"
TAGS="2fa;authenticator"
var_cpu="1"
var_ram="512"
var_disk="2"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
# Check if installation is present | -f for file, -d for folder
if [[ ! -d "/opt/2fauth" ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
# Crawling the new version and checking whether an update is required
RELEASE=$(curl -s https://api.github.com/repos/Bubka/2FAuth/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ "${RELEASE}" != "$(cat /opt/2fauth_version.txt)" ]] || [[ ! -f /opt/2fauth_version.txt ]]; then
msg_info "Updating $APP to ${RELEASE}"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
# Creating Backup
msg_info "Creating Backup"
mv "/opt/2fauth" "/opt/2fauth-backup"
msg_ok "Backup Created"
# Execute Update
wget -q "https://github.com/Bubka/2FAuth/archive/refs/tags/${RELEASE}.zip"
unzip -q "${RELEASE}.zip"
mv "2FAuth-${RELEASE//v}/" "/opt/2fauth"
mv "/opt/2fauth-backup/.env" "/opt/2fauth/.env"
mv "/opt/2fauth-backup/storage" "/opt/2fauth/storage"
cd "/opt/2fauth" || return
chown -R www-data: "/opt/2fauth"
chmod -R 755 "/opt/2fauth"
export COMPOSER_ALLOW_SUPERUSER=1
composer install --no-dev --prefer-source &>/dev/null
php artisan 2fauth:install
# Cleaning up
msg_info "Cleaning Up"
rm -rf "v${RELEASE}.zip"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleanup Completed"
# Last Action
echo "${RELEASE}" >/opt/2fauth_version.txt
msg_ok "Updated $APP to ${RELEASE}"
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}:80${CL}"
+113
View File
@@ -0,0 +1,113 @@
#!/usr/bin/env bash
source ./misc/build.func
# Copyright (c) 2021-2025 community-scripts ORG
# Author: TheRealVira
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# Source: https://5e.tools/
# App Default Values
APP="5etools"
var_tags="wiki"
var_cpu="1"
var_ram="512"
var_disk="13"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
# Check if installation is present | -f for file, -d for folder
if [[ ! -d "/opt/${APP}" ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/5etools-mirror-3/5etools-src/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f "/opt/${APP}_version.txt" ]]; then
# Crawling the new version and checking whether an update is required
msg_info "Updating System"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated System"
# Execute Update
msg_info "Updating base 5etools"
cd /opt
wget -q "https://github.com/5etools-mirror-3/5etools-src/archive/refs/tags/${RELEASE}.zip"
unzip -q "${RELEASE}.zip"
mv "/opt/${APP}/img" "/opt/img-backup"
rm -rf "/opt/${APP}"
mv "${APP}-src-${RELEASE:1}" "/opt/${APP}"
mv "/opt/img-backup" "/opt/${APP}/img"
cd /opt/5etools
$STD npm install
$STD npm run build
cd ~
echo "${RELEASE}" >"/opt/${APP}_version.txt"
chown -R www-data: "/opt/${APP}"
chmod -R 755 "/opt/${APP}"
msg_ok "Updated base 5etools"
# Cleaning up
msg_info "Cleaning Up"
rm -rf /opt/${RELEASE}.zip
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleanup Completed"
else
msg_ok "No update required. Base ${APP} is already at ${RELEASE}"
fi
IMG_RELEASE=$(curl -s https://api.github.com/repos/5etools-mirror-2/5etools-img/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ "${IMG_RELEASE}" != "$(cat /opt/${APP}_IMG_version.txt)" ]] || [[ ! -f "/opt/${APP}_IMG_version.txt" ]]; then
# Crawling the new version and checking whether an update is required
msg_info "Updating System"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated System"
# Execute Update
msg_info "Updating 5etools images"
curl -sSL "https://github.com/5etools-mirror-2/5etools-img/archive/refs/tags/${IMG_RELEASE}.zip" > "${IMG_RELEASE}.zip"
unzip -q "${IMG_RELEASE}.zip"
rm -rf "/opt/${APP}/img"
mv "${APP}-img-${IMG_RELEASE:1}" "/opt/${APP}/img"
echo "${IMG_RELEASE}" >"/opt/${APP}_IMG_version.txt"
chown -R www-data: "/opt/${APP}"
chmod -R 755 "/opt/${APP}"
msg_ok "Updating 5etools images"
# Cleaning up
msg_info "Cleaning Up"
rm -rf /opt/${RELEASE}.zip
rm -rf ${IMG_RELEASE}.zip
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleanup Completed"
else
msg_ok "No update required. ${APP} images are already at ${IMG_RELEASE}"
fi
}
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}"
+33 -58
View File
@@ -1,77 +1,52 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://actualbudget.org/
function header_info { # App Default Values
clear
cat <<"EOF"
___ __ __ ____ __ __
/ | _____/ /___ ______ _/ / / __ )__ ______/ /___ ____ / /_
/ /| |/ ___/ __/ / / / __ `/ / / __ / / / / __ / __ `/ _ \/ __/
/ ___ / /__/ /_/ /_/ / /_/ / / / /_/ / /_/ / /_/ / /_/ / __/ /_
/_/ |_\___/\__/\__,_/\__,_/_/ /_____/\__,_/\__,_/\__, /\___/\__/
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Actual Budget" APP="Actual Budget"
var_disk="4" var_tags="finance"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/actualbudget ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating ${APP}" check_container_resources
systemctl stop actualbudget.service if [[ ! -d /opt/actualbudget ]]; then
cd /opt/actualbudget msg_error "No ${APP} Installation Found!"
git pull &>/dev/null exit
yarn install &>/dev/null fi
systemctl start actualbudget.service msg_info "Updating ${APP}"
msg_ok "Successfully Updated ${APP}" systemctl stop actualbudget.service
exit cd /opt/actualbudget
git pull &>/dev/null
yarn install &>/dev/null
systemctl start actualbudget.service
msg_ok "Successfully Updated ${APP}"
exit
} }
start start
build_container build_container
description description
msg_info "Setting Container to Normal Resources"
pct set $CTID -memory 1024
pct set $CTID -cores 1
msg_ok "Set Container to Normal Resources"
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:5006${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5006${CL}"
+26 -73
View File
@@ -1,87 +1,39 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://adguard.com/
function header_info { # App Default Values
clear
cat <<"EOF"
___ __ __
/ | ____/ /___ ___ ______ __________/ /
/ /| |/ __ / __ / / / / __ / ___/ __ /
/ ___ / /_/ / /_/ / /_/ / /_/ / / / /_/ /
/_/ |_\__,_/\__, /\__,_/\__,_/_/ \__,_/
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Adguard" APP="Adguard"
var_disk="2" var_tags="adblock"
var_cpu="1" var_cpu="1"
var_ram="512" var_ram="512"
var_disk="2"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/AdGuardHome ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then check_container_resources
read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt if [[ ! -d /opt/AdGuardHome ]]; then
[[ ${prompt,,} =~ ^(y|yes)$ ]] || exit msg_error "No ${APP} Installation Found!"
fi exit
wget -qL https://static.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz fi
msg_info "Stopping AdguardHome" msg_error "Adguard Home should be updated via the user interface."
systemctl stop AdGuardHome exit
msg_ok "Stopped AdguardHome"
msg_info "Updating AdguardHome"
tar -xvf AdGuardHome_linux_amd64.tar.gz &>/dev/null
mkdir -p adguard-backup
cp -r /opt/AdGuardHome/AdGuardHome.yaml /opt/AdGuardHome/data adguard-backup/
cp AdGuardHome/AdGuardHome /opt/AdGuardHome/AdGuardHome
cp -r adguard-backup/* /opt/AdGuardHome/
msg_ok "Updated AdguardHome"
msg_info "Starting AdguardHome"
systemctl start AdGuardHome
msg_ok "Started AdguardHome"
msg_info "Cleaning Up"
rm -rf AdGuardHome_linux_amd64.tar.gz AdGuardHome adguard-backup
msg_ok "Cleaned"
msg_ok "Updated Successfully"
exit
} }
start start
@@ -89,5 +41,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} Setup should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:3000${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
+60 -86
View File
@@ -1,104 +1,77 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck # Author: MickLesk (Canbiz)
# Co-Author: MickLesk (Canbiz) # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# License: MIT # Source: https://adventurelog.app/
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info { # App Default Values
clear
cat <<"EOF"
___ __ __ __
/ | ____/ / _____ ____ / /___ __________ / / ____ ____ _
/ /| |/ __ / | / / _ \/ __ \/ __/ / / / ___/ _ \/ / / __ \/ __ `/
/ ___ / /_/ /| |/ / __/ / / / /_/ /_/ / / / __/ /___/ /_/ / /_/ /
/_/ |_\__,_/ |___/\___/_/ /_/\__/\__,_/_/ \___/_____/\____/\__, /
/____/
EOF
}
header_info
echo -e "Loading..."
APP="AdventureLog" APP="AdventureLog"
var_tags="traveling"
var_disk="7" var_disk="7"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/adventurelog ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then check_container_resources
read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt if [[ ! -d /opt/adventurelog ]]; then
[[ ${prompt,,} =~ ^(y|yes)$ ]] || exit msg_error "No ${APP} Installation Found!"
fi exit
RELEASE=$(curl -s https://api.github.com/repos/seanmorley15/AdventureLog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') fi
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then RELEASE=$(curl -s https://api.github.com/repos/seanmorley15/AdventureLog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
msg_info "Stopping Services" if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
systemctl stop adventurelog-backend msg_info "Stopping Services"
systemctl stop adventurelog-frontend systemctl stop adventurelog-backend
msg_ok "Services Stopped" systemctl stop adventurelog-frontend
msg_ok "Services Stopped"
msg_info "Updating ${APP} to ${RELEASE}" msg_info "Updating ${APP} to ${RELEASE}"
cp /opt/adventurelog/backend/server/.env /opt/server.env cp /opt/adventurelog/backend/server/.env /opt/server.env
cp /opt/adventurelog/frontend/env /opt/frontend.env cp /opt/adventurelog/frontend/.env /opt/frontend.env
wget -q "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip" wget -q "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip"
unzip -q v${RELEASE}.zip unzip -q v${RELEASE}.zip
mv AdventureLog-${RELEASE} /opt/adventurelog mv AdventureLog-${RELEASE} /opt/adventurelog
mv /opt/server.env /opt/adventurelog/backend/server/.env mv /opt/server.env /opt/adventurelog/backend/server/.env
cd /opt/adventurelog/backend/server cd /opt/adventurelog/backend/server
pip install --upgrade pip &>/dev/null pip install --upgrade pip &>/dev/null
pip install -r requirements.txt &>/dev/null pip install -r requirements.txt &>/dev/null
python3 manage.py collectstatic --noinput &>/dev/null python3 manage.py collectstatic --noinput &>/dev/null
python3 manage.py migrate &>/dev/null python3 manage.py migrate &>/dev/null
mv /opt/frontend.env /opt/adventurelog/frontend/.env mv /opt/frontend.env /opt/adventurelog/frontend/.env
cd /opt/adventurelog/frontend cd /opt/adventurelog/frontend
pnpm install &>/dev/null pnpm install &>/dev/null
pnpm run build &>/dev/null pnpm run build &>/dev/null
echo "${RELEASE}" >/opt/${APP}_version.txt echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP}" msg_ok "Updated ${APP}"
msg_info "Starting Services" msg_info "Starting Services"
systemctl start adventurelog-backend systemctl start adventurelog-backend
systemctl start adventurelog-frontend systemctl start adventurelog-frontend
msg_ok "Started Services" msg_ok "Started Services"
msg_info "Cleaning Up" msg_info "Cleaning Up"
rm -rf v${RELEASE}.zip rm -rf v${RELEASE}.zip
msg_ok "Cleaned" msg_ok "Cleaned"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
else else
msg_ok "No update required. ${APP} is already at ${RELEASE}" msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi fi
exit exit
} }
start start
@@ -106,5 +79,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} Setup should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:3000${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
+26 -48
View File
@@ -1,62 +1,39 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://www.ispyconnect.com/
function header_info { # App Default Values
clear
cat <<"EOF"
___ __ ____ _ ______
/ | ____ ____ ____ / /_/ __ \ | / / __ \
/ /| |/ __ `/ _ \/ __ \/ __/ / / / | / / /_/ /
/ ___ / /_/ / __/ / / / /_/ /_/ /| |/ / _, _/
/_/ |_\__, /\___/_/ /_/\__/_____/ |___/_/ |_|
/____/
EOF
}
header_info
echo -e "Loading..."
APP="AgentDVR" APP="AgentDVR"
var_disk="8" var_tags="dvr"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="8"
var_os="ubuntu" var_os="ubuntu"
var_version="22.04" var_version="22.04"
var_unprivileged="0"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="0"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/agentdvr ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_error "There is currently no update path available." check_container_resources
exit if [[ ! -d /opt/agentdvr ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "There is currently no update path available."
exit
} }
start start
@@ -64,5 +41,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP}${CL} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:8090${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"
+13 -43
View File
@@ -1,58 +1,28 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info { # App Default Values
clear
cat <<"EOF"
____ __
/ __ \____ _____/ /_ __ _____
/ / / / __ \/ ___/ //_/ _ \/ ___/
/ /_/ / /_/ / /__/ ,< / __/ /
/_____/\____/\___/_/|_|\___/_/
Alpine
EOF
}
header_info
echo -e "Loading..."
APP="Alpine-Docker" APP="Alpine-Docker"
var_disk="2" var_tags="docker;alpine"
var_cpu="1" var_cpu="1"
var_ram="1024" var_ram="1024"
var_disk="2"
var_os="alpine" var_os="alpine"
var_version="3.20" var_version="3.20"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
if ! apk -e info newt >/dev/null 2>&1; then if ! apk -e info newt >/dev/null 2>&1; then
apk add -q newt apk add -q newt
+14 -44
View File
@@ -1,58 +1,28 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info { # App Default Values
clear
cat <<"EOF"
______ ____
/ ____/________ _/ __/___ _____ ____ _
/ / __/ ___/ __ / /_/ __ / __ \/ __ /
/ /_/ / / / /_/ / __/ /_/ / / / / /_/ /
\____/_/ \__,_/_/ \__,_/_/ /_/\__,_/
Alpine
EOF
}
header_info
echo -e "Loading..."
APP="Alpine-Grafana" APP="Alpine-Grafana"
var_disk="1" var_tags="alpine;monitoring"
var_cpu="1" var_cpu="1"
var_ram="256" var_ram="256"
var_disk="1"
var_os="alpine" var_os="alpine"
var_version="3.19" var_version="3.20"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
if ! apk -e info newt >/dev/null 2>&1; then if ! apk -e info newt >/dev/null 2>&1; then
apk add -q newt apk add -q newt
+14 -43
View File
@@ -1,57 +1,28 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info { # App Default Values
clear
cat <<"EOF"
_ __ __ __ __ __ __ __
/ | / /__ _ __/ /______/ /___ __ ______/ / / / / /_ __/ /_
/ |/ / _ \| |/_/ __/ ___/ / __ \/ / / / __ / / /_/ / / / / __ \
/ /| / __/> </ /_/ /__/ / /_/ / /_/ / /_/ / / __ / /_/ / /_/ /
/_/ |_/\___/_/|_|\__/\___/_/\____/\__,_/\__,_/ /_/ /_/\__,_/_.___/
Alpine
EOF
}
header_info
echo -e "Loading..."
APP="Alpine-Nextcloud" APP="Alpine-Nextcloud"
var_disk="2" var_tags="alpine;cloud"
var_cpu="2" var_cpu="2"
var_ram="1024" var_ram="1024"
var_disk="2"
var_os="alpine" var_os="alpine"
var_version="3.19" var_version="3.20"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
if [[ ! -d /usr/share/webapps/nextcloud ]]; then if [[ ! -d /usr/share/webapps/nextcloud ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
+14 -44
View File
@@ -1,58 +1,28 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info { # App Default Values
clear
cat <<"EOF"
_ __ ____ __
| | / /___ ___ __/ / /__ ______ __________/ /__ ____
| | / / __ `/ / / / / __/ | /| / / __ `/ ___/ __ / _ \/ __ \
| |/ / /_/ / /_/ / / /_ | |/ |/ / /_/ / / / /_/ / __/ / / /
|___/\__,_/\__,_/_/\__/ |__/|__/\__,_/_/ \__,_/\___/_/ /_/
Alpine
EOF
}
header_info
echo -e "Loading..."
APP="Alpine-Vaultwarden" APP="Alpine-Vaultwarden"
var_disk="0.3" var_tags="alpine;vault"
var_cpu="1" var_cpu="1"
var_ram="256" var_ram="256"
var_disk="0.3"
var_os="alpine" var_os="alpine"
var_version="3.19" var_version="3.20"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
if ! apk -e info newt >/dev/null 2>&1; then if ! apk -e info newt >/dev/null 2>&1; then
apk add -q newt apk add -q newt
+13 -43
View File
@@ -1,58 +1,28 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info { # App Default Values
clear
cat <<"EOF"
_____ _ __ ___ __ _______ ____________
/__ / (_)___ _/ /_ ___ ___ |__ \ / |/ / __ \/_ __/_ __/
/ / / / __ / __ \/ _ \/ _ \__/ // /|_/ / / / / / / / /
/ /__/ / /_/ / /_/ / __/ __/ __// / / / /_/ / / / / /
/____/_/\__, /_.___/\___/\___/____/_/ /_/\___\_\/_/ /_/
/____/ Alpine
EOF
}
header_info
echo -e "Loading..."
APP="Alpine-Zigbee2MQTT" APP="Alpine-Zigbee2MQTT"
var_tags="alpine;zigbee;mqtt;smarthome"
var_disk="0.3" var_disk="0.3"
var_cpu="1" var_cpu="1"
var_ram="256" var_ram="256"
var_os="alpine" var_os="alpine"
var_version="3.19" var_version="3.20"
var_unprivileged="0"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="0"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
if ! apk -e info newt >/dev/null 2>&1; then if ! apk -e info newt >/dev/null 2>&1; then
apk add -q newt apk add -q newt
+20 -50
View File
@@ -2,67 +2,37 @@
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info { # App Default Values
clear
cat <<"EOF"
___ __ _
/ | / /___ (_)___ ___
/ /| | / / __ \/ / __ \/ _ \
/ ___ |/ / /_/ / / / / / __/
/_/ |_/_/ .___/_/_/ /_/\___/
/_/
EOF
}
header_info
echo -e "Loading..."
APP="Alpine" APP="Alpine"
var_disk="0.1" var_tags="os;alpine"
var_cpu="1" var_cpu="1"
var_ram="512" var_ram="512"
var_disk="0.1"
var_os="alpine" var_os="alpine"
var_version="3.19" var_version="3.20"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW="-password alpine"
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 1 \ UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 1 \
"1" "Check for Alpine Updates" ON \ "1" "Check for Alpine Updates" ON \
3>&1 1>&2 2>&3) 3>&1 1>&2 2>&3)
header_info header_info
if [ "$UPD" == "1" ]; then if [ "$UPD" == "1" ]; then
apk update && apk upgrade apk update && apk upgrade
exit; exit
fi fi
} }
start start
+25 -48
View File
@@ -1,64 +1,40 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://cassandra.apache.org/_/index.html
function header_info { # App Default Values
clear
cat <<"EOF"
___ __ ______ __
/ | ____ ____ ______/ /_ ___ / ____/___ _______________ _____ ____/ /________ _
/ /| | / __ \/ __ `/ ___/ __ \/ _ \ / / / __ `/ ___/ ___/ __ `/ __ \/ __ / ___/ __ `/
/ ___ |/ /_/ / /_/ / /__/ / / / __/ / /___/ /_/ (__ |__ ) /_/ / / / / /_/ / / / /_/ /
/_/ |_/ .___/\__,_/\___/_/ /_/\___/ \____/\__,_/____/____/\__,_/_/ /_/\__,_/_/ \__,_/
/_/
EOF
}
header_info
echo -e "Loading..."
APP="Apache-Cassandra" APP="Apache-Cassandra"
var_disk="4" var_tags="database;NoSQL"
var_cpu="1" var_cpu="1"
var_ram="2048" var_ram="2048"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
VERBOSE="yes" var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /etc/systemd/system/cassandra.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_error "There is currently no update path available." check_container_resources
exit if [[ ! -f /etc/systemd/system/cassandra.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "There is currently no update path available."
exit
} }
start start
@@ -66,3 +42,4 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
+26 -50
View File
@@ -1,64 +1,39 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://couchdb.apache.org/
function header_info { # App Default Values
clear
cat <<"EOF"
___ __ ______ __ ____ ____
/ | ____ ____ ______/ /_ ___ / ____/___ __ _______/ /_ / __ \/ __ )
/ /| | / __ \/ __ `/ ___/ __ \/ _ \ / / / __ \/ / / / ___/ __ \/ / / / __ |
/ ___ |/ /_/ / /_/ / /__/ / / / __/ / /___/ /_/ / /_/ / /__/ / / / /_/ / /_/ /
/_/ |_/ .___/\__,_/\___/_/ /_/\___/ \____/\____/\__,_/\___/_/ /_/_____/_____/
/_/
EOF
}
header_info
echo -e "Loading..."
APP="Apache-CouchDB" APP="Apache-CouchDB"
var_disk="10" var_tags="database"
var_cpu="2" var_cpu="2"
var_ram="4096" var_ram="4096"
var_disk="10"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
VERBOSE="yes" var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /etc/systemd/system/couchdb.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_error "There is currently no update path available." check_container_resources
exit if [[ ! -f /etc/systemd/system/couchdb.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "There is currently no update path available."
exit
} }
start start
@@ -66,5 +41,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:5984/_utils/${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5984/_utils/${CL}"
+47
View File
@@ -0,0 +1,47 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/refs/heads/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Michel Roegl-Brunner (michelroegl-brunner)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# Source: https://guacamole.apache.org/
#App Default Values
APP="Apache-Guacamole"
TAGS="webserver;remote"
var_disk="4"
var_cpu="1"
var_ram="2048"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/apache-guacamole ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "Ther is currently no automatic update function for ${APP}."
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/guacamole${CL}"
+29 -52
View File
@@ -1,66 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://wiki.debian.org/AptCacherNg
function header_info { # App Default Values
clear
cat <<"EOF"
___ __ ______ __ _ ________
/ | ____ / /_ / ____/___ ______/ /_ ___ _____ / | / / ____/
/ /| | / __ \/ __/__/ / / __ `/ ___/ __ \/ _ \/ ___/__/ |/ / / __
/ ___ |/ /_/ / /_/__/ /___/ /_/ / /__/ / / / __/ / /__/ /| / /_/ /
/_/ |_/ .___/\__/ \____/\__,_/\___/_/ /_/\___/_/ /_/ |_/\____/
/_/
EOF
}
header_info
echo -e "Loading..."
APP="Apt-Cacher-NG" APP="Apt-Cacher-NG"
var_disk="2" var_tags="caching"
var_cpu="1" var_cpu="1"
var_ram="512" var_ram="512"
var_disk="2"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating $APP LXC" check_container_resources
apt-get update &>/dev/null if [[ ! -d /var ]]; then
apt-get -y upgrade &>/dev/null msg_error "No ${APP} Installation Found!"
msg_ok "Updated $APP LXC" exit
exit fi
msg_info "Updating $APP LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -68,5 +44,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} maintenance page should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:3142/acng-report.html${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3142/acng-report.html{CL}"
+37 -63
View File
@@ -1,80 +1,53 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck # Author: tteck
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://archivebox.io/
function header_info { # App Default Values
clear
cat <<"EOF"
___ __ _ ____
/ | __________/ /_ (_) _____ / __ )____ _ __
/ /| | / ___/ ___/ __ \/ / | / / _ \/ __ / __ \| |/_/
/ ___ |/ / / /__/ / / / /| |/ / __/ /_/ / /_/ /> <
/_/ |_/_/ \___/_/ /_/_/ |___/\___/_____/\____/_/|_|
EOF
}
header_info
echo -e "Loading..."
APP="ArchiveBox" APP="ArchiveBox"
var_disk="8" var_tags="archive;bookmark"
var_cpu="2" var_cpu="2"
var_ram="1024" var_ram="1024"
var_disk="8"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/archivebox ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then check_container_resources
read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt if [[ ! -d /opt/archivebox ]]; then
[[ ${prompt,,} =~ ^(y|yes)$ ]] || exit msg_error "No ${APP} Installation Found!"
fi exit
msg_info "Stopping ${APP}" fi
systemctl stop archivebox msg_info "Stopping ${APP}"
msg_ok "Stopped ${APP}" systemctl stop archivebox
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP}" msg_info "Updating ${APP}"
cd /opt/archivebox/data cd /opt/archivebox/data
pip install --upgrade --ignore-installed archivebox pip install --upgrade --ignore-installed archivebox
sudo -u archivebox archivebox init sudo -u archivebox archivebox init
msg_ok "Updated ${APP}" msg_ok "Updated ${APP}"
msg_info "Starting ${APP}" msg_info "Starting ${APP}"
systemctl start archivebox systemctl start archivebox
msg_ok "Started ${APP}" msg_ok "Started ${APP}"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
exit exit
} }
start start
@@ -82,5 +55,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:8000/admin/login${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000/admin/login${CL}"
+30 -51
View File
@@ -1,64 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://aria2.github.io/
function header_info { # App Default Values
clear
cat <<"EOF"
___ _ ___
/ | _____(_)___ |__ \
/ /| | / ___/ / __ `/_/ /
/ ___ |/ / / / /_/ / __/
/_/ |_/_/ /_/\__,_/____/
EOF
}
header_info
echo -e "Loading..."
APP="Aria2" APP="Aria2"
var_disk="8" var_tags="download-utility"
var_cpu="2" var_cpu="2"
var_ram="1028" var_ram="1024"
var_disk="8"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating $APP LXC" check_container_resources
apt-get update &>/dev/null if [[ ! -d /var ]]; then
apt-get -y upgrade &>/dev/null msg_error "No ${APP} Installation Found!"
msg_ok "Updated $APP LXC" exit
exit fi
msg_info "Updating $APP LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -66,5 +44,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:6880${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:6880${CL}"
+26 -48
View File
@@ -1,62 +1,39 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://www.audiobookshelf.org/
function header_info { # App Default Values
clear
cat <<"EOF"
___ __ __ __ ______
____ ___ ______/ (_)___ / /_ ____ ____ / /_______/ /_ ___ / / __/
/ __ `/ / / / __ / / __ \/ __ \/ __ \/ __ \/ //_/ ___/ __ \/ _ \/ / /_
/ /_/ / /_/ / /_/ / / /_/ / /_/ / /_/ / /_/ / ,< (__ ) / / / __/ / __/
\__,_/\__,_/\__,_/_/\____/_.___/\____/\____/_/|_/____/_/ /_/\___/_/_/
EOF
}
header_info
echo -e "Loading..."
APP="audiobookshelf" APP="audiobookshelf"
var_disk="4" var_tags="podcast;audiobook"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /etc/apt/trusted.gpg.d/audiobookshelf-ppa.asc ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
echo "This application receives updates through the APT package manager." check_container_resources
exit if [[ ! -f /etc/apt/trusted.gpg.d/audiobookshelf-ppa.asc ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
echo "This application receives updates through the APT package manager."
exit
} }
start start
@@ -64,5 +41,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:13378${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:13378${CL}"
+84
View File
@@ -0,0 +1,84 @@
#!/usr/bin/env bash
source ./misc/build.func
# Copyright (c) 2021-2025 community-scripts ORG
# Author: remz1337
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# App Default Values
APP="Authentik"
var_tags="identity-provider"
var_disk="15"
var_cpu="6"
var_ram="8192"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/authentik-server.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/goauthentik/authentik/releases/latest | grep "tarball_url" | awk '{print substr($2, 2, length($2)-3)}')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Stopping ${APP}"
systemctl stop authentik-server
systemctl stop authentik-worker
msg_ok "Stopped ${APP}"
msg_info "Building ${APP} website"
mkdir -p /opt/authentik
wget -qO authentik.tar.gz "${RELEASE}"
tar -xzf authentik.tar.gz -C /opt/authentik --strip-components 1 --overwrite
rm -rf authentik.tar.gz
cd /opt/authentik/website
npm install &>/dev/null
npm run build-bundled &>/dev/null
cd /opt/authentik/web
npm install &>/dev/null
npm run build &>/dev/null
msg_ok "Built ${APP} website"
msg_info "Installing Python Dependencies"
cd /opt/authentik
poetry install --only=main --no-ansi --no-interaction --no-root &>/dev/null
poetry export --without-hashes --without-urls -f requirements.txt --output requirements.txt &>/dev/null
pip install --no-cache-dir -r requirements.txt &>/dev/null
pip install . &>/dev/null
msg_ok "Installed Python Dependencies"
msg_info "Updating ${APP} to v${RELEASE} (Patience)"
cp -r /opt/authentik/authentik/blueprints /opt/authentik/blueprints
bash /opt/authentik/lifecycle/ak migrate &>/dev/null
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Starting ${APP}"
systemctl start authentik-server
systemctl start authentik-worker
msg_ok "Started ${APP}"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
start
build_container
description
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}:9000/if/flow/initial-setup/${CL}"
+38 -60
View File
@@ -1,76 +1,53 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://autobrr.com/
function header_info { # App Default Values
clear
cat <<"EOF"
___ __ __
/ | __ __/ /_____ / /_ __________
/ /| |/ / / / __/ __ \/ __ \/ ___/ ___/
/ ___ / /_/ / /_/ /_/ / /_/ / / / /
/_/ |_\__,_/\__/\____/_.___/_/ /_/
EOF
}
header_info
echo -e "Loading..."
APP="Autobrr" APP="Autobrr"
var_disk="8" var_tags="arr;"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="8"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /root/.config/autobrr/config.toml ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Stopping ${APP} LXC" check_container_resources
systemctl stop autobrr.service if [[ ! -f /root/.config/autobrr/config.toml ]]; then
msg_ok "Stopped ${APP} LXC" msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping ${APP} LXC"
systemctl stop autobrr.service
msg_ok "Stopped ${APP} LXC"
msg_info "Updating ${APP} LXC" msg_info "Updating ${APP} LXC"
rm -rf /usr/local/bin/* rm -rf /usr/local/bin/*
wget -q $(curl -s https://api.github.com/repos/autobrr/autobrr/releases/latest | grep download | grep linux_arm64 | cut -d\" -f4) wget -q $(curl -s https://api.github.com/repos/autobrr/autobrr/releases/latest | grep download | grep linux_x86_64 | cut -d\" -f4)
tar -C /usr/local/bin -xzf autobrr*.tar.gz tar -C /usr/local/bin -xzf autobrr*.tar.gz
rm -rf autobrr*.tar.gz rm -rf autobrr*.tar.gz
msg_ok "Updated ${APP} LXC" msg_ok "Updated ${APP} LXC"
msg_info "Starting ${APP} LXC" msg_info "Starting ${APP} LXC"
systemctl start autobrr.service systemctl start autobrr.service
msg_ok "Started ${APP} LXC" msg_ok "Started ${APP} LXC"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
exit exit
} }
start start
@@ -78,5 +55,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:7474${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7474${CL}"
+25 -50
View File
@@ -1,64 +1,38 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://www.bazarr.media/
function header_info { # App Default Values
clear
cat <<"EOF"
____
/ __ )____ _____ ____ ___________
/ __ / __ `/_ / / __ `/ ___/ ___/
/ /_/ / /_/ / / /_/ /_/ / / / /
/_____/\__,_/ /___/\__,_/_/ /_/
EOF
}
header_info
echo -e "Loading..."
APP="Bazarr" APP="Bazarr"
var_disk="4" var_tags="arr"
var_cpu="2" var_cpu="2"
var_ram="1024" var_ram="1024"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /var/lib/bazarr/ ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating $APP LXC" check_container_resources
apt-get update &>/dev/null if [[ ! -d /var/lib/bazarr/ ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
apt-get -y upgrade &>/dev/null msg_info "Updating $APP LXC"
msg_ok "Updated $APP LXC" apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit exit
} }
@@ -67,5 +41,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:6767${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:6767${CL}"
+26 -49
View File
@@ -1,65 +1,39 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://0xerr0r.github.io/blocky/latest/
function header_info { # App Default Values
clear
cat <<"EOF"
____ __ __
/ __ )/ /___ _____/ /____ __
/ __ / / __ \/ ___/ //_/ / / /
/ /_/ / / /_/ / /__/ ,< / /_/ /
/_____/_/\____/\___/_/|_|\__, /
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Blocky" APP="Blocky"
var_disk="2" var_tags="adblock"
var_cpu="1" var_cpu="1"
var_ram="512" var_ram="512"
var_disk="2"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating $APP LXC" check_container_resources
apt-get update &>/dev/null if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
apt-get -y upgrade &>/dev/null msg_info "Updating $APP LXC"
msg_ok "Updated $APP LXC" apt-get update &>/dev/null
exit apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -67,3 +41,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" 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}:4000${CL}"
+82
View File
@@ -0,0 +1,82 @@
#!/usr/bin/env bash
source ./misc/build.func
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# Source: https://github.com/BookStackApp/BookStack
# App Default Values
APP="Bookstack"
var_tags="organizer"
var_cpu="1"
var_ram="1024"
var_disk="4"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/bookstack ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/BookStackApp/BookStack/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Apache2"
systemctl stop apache2
msg_ok "Services Stopped"
msg_info "Updating ${APP} to v${RELEASE}"
mv /opt/bookstack /opt/bookstack-backup
wget -q --directory-prefix=/opt "https://github.com/BookStackApp/BookStack/archive/refs/tags/v${RELEASE}.zip"
unzip -q /opt/v${RELEASE}.zip -d /opt
mv /opt/BookStack-${RELEASE} /opt/bookstack
cp /opt/bookstack-backup/.env /opt/bookstack/.env
cp -r /opt/bookstack-backup/public/uploads/* /opt/bookstack/public/uploads/
cp -r /opt/bookstack-backup/storage/uploads/* /opt/bookstack/storage/uploads/
cp -r /opt/bookstack-backup/themes/* /opt/bookstack/themes/
cd /opt/bookstack
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev &>/dev/null
php artisan migrate --force &>/dev/null
chown www-data:www-data -R /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
chmod -R 755 /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads
chmod -R 640 /opt/bookstack/.env
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Starting Apache2"
systemctl start apache2
msg_ok "Started Apache2"
msg_info "Cleaning Up"
rm -rf /opt/bookstack-backup
rm -rf /opt/v${RELEASE}.zip
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}"
+23 -49
View File
@@ -1,63 +1,36 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://www.bunkerweb.io/
function header_info { # App Default Values
clear
cat <<"EOF"
____ __ _ __ __
/ __ )__ ______ / /_____ ____| | / /__ / /_
/ __ / / / / __ \/ //_/ _ \/ ___/ | /| / / _ \/ __ \
/ /_/ / /_/ / / / / ,< / __/ / | |/ |/ / __/ /_/ /
/_____/\__,_/_/ /_/_/|_|\___/_/ |__/|__/\___/_.___/
EOF
}
header_info
echo -e "Loading..."
APP="BunkerWeb" APP="BunkerWeb"
var_disk="4" var_tags="webserver"
var_cpu="2" var_cpu="2"
var_ram="1024" var_ram="1024"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /etc/bunkerweb ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
check_container_resources
RELEASE=$(curl -s https://api.github.com/repos/bunkerity/bunkerweb/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') if [[ ! -d /etc/bunkerweb ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then RELEASE=$(curl -s https://api.github.com/repos/bunkerity/bunkerweb/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Updating ${APP} to ${RELEASE}" msg_info "Updating ${APP} to ${RELEASE}"
cat <<EOF >/etc/apt/preferences.d/bunkerweb cat <<EOF >/etc/apt/preferences.d/bunkerweb
@@ -82,5 +55,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} setup should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}/setup${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}/setup${CL}"
+29 -49
View File
@@ -1,65 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://caddyserver.com/
function header_info { # App Default Values
clear
cat <<"EOF"
______ __ __
/ ____/___ _____/ /___/ /_ __
/ / / __ `/ __ / __ / / / /
/ /___/ /_/ / /_/ / /_/ / /_/ /
\____/\__,_/\__,_/\__,_/\__, /
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Caddy" APP="Caddy"
var_disk="2" var_tags="webserver"
var_cpu="1" var_cpu="1"
var_ram="512" var_ram="512"
var_disk="2"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /etc/caddy ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating $APP LXC" check_container_resources
apt-get update &>/dev/null if [[ ! -d /etc/caddy ]]; then
apt-get -y upgrade &>/dev/null msg_error "No ${APP} Installation Found!"
msg_ok "Updated $APP LXC" exit
exit fi
msg_info "Updating $APP LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -67,3 +44,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" 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}"
+70 -91
View File
@@ -1,70 +1,46 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster) | Co-Author: remz1337
# Co-Author: remz1337 # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# License: MIT # Source: https://github.com/janeczku/calibre-web
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info { # App Default Values
clear
cat <<"EOF"
______ ___ __ _ __ __
/ ____/___ _/ (_) /_ ________ | | / /__ / /_
/ / / __ `/ / / __ \/ ___/ _ \___| | /| / / _ \/ __ \
/ /___/ /_/ / / / /_/ / / / __/___/ |/ |/ / __/ /_/ /
\____/\__,_/_/_/_.___/_/ \___/ |__/|__/\___/_.___/
EOF
}
header_info
echo -e "Loading..."
APP="Calibre-Web" APP="Calibre-Web"
var_disk="4" var_tags="eBook"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/cps.service ]]; then if [[ ! -f /etc/systemd/system/cps.service ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
header_info msg_info "Stopping ${APP}"
msg_info "Updating $APP LXC"
systemctl stop cps systemctl stop cps
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP}"
cd /opt/kepubify cd /opt/kepubify
rm kepubify-linux-arm64 rm -rf kepubify-linux-64bit
curl -fsSLO https://github.com/pgaskin/kepubify/releases/latest/download/kepubify-linux-arm64 &>/dev/null curl -fsSLO https://github.com/pgaskin/kepubify/releases/latest/download/kepubify-linux-64bit
chmod +x kepubify-linux-arm64 chmod +x kepubify-linux-64bit
menu_array=("1" "Enables gdrive as storage backend for your ebooks" OFF \ menu_array=("1" "Enables gdrive as storage backend for your ebooks" OFF \
"2" "Enables sending emails via a googlemail account without enabling insecure apps" OFF \ "2" "Enables sending emails via a googlemail account without enabling insecure apps" OFF \
"3" "Enables displaying of additional author infos on the authors page" OFF \ "3" "Enables displaying of additional author infos on the authors page" OFF \
@@ -72,33 +48,33 @@ function update_script() {
"5" "Enables login via google or github oauth" OFF \ "5" "Enables login via google or github oauth" OFF \
"6" "Enables extracting of metadata from epub, fb2, pdf files, and also extraction of covers from cbr, cbz, cbt files" OFF \ "6" "Enables extracting of metadata from epub, fb2, pdf files, and also extraction of covers from cbr, cbz, cbt files" OFF \
"7" "Enables extracting of metadata from cbr, cbz, cbt files" OFF \ "7" "Enables extracting of metadata from cbr, cbz, cbt files" OFF \
"8" "Enables syncing with your kobo reader" OFF ) "8" "Enables syncing with your kobo reader" OFF)
if [ -f "/opt/calibre-web/options.txt" ]; then if [ -f "/opt/calibre-web/options.txt" ]; then
cps_options="$(cat /opt/calibre-web/options.txt)" cps_options="$(cat /opt/calibre-web/options.txt)"
IFS=',' read -ra ADDR <<< "$cps_options" IFS=',' read -ra ADDR <<<"$cps_options"
for i in "${ADDR[@]}"; do for i in "${ADDR[@]}"; do
if [ $i == "gdrive" ]; then if [ $i == "gdrive" ]; then
line=0 line=0
elif [ $i == "gmail" ]; then elif [ $i == "gmail" ]; then
line=1 line=1
elif [ $i == "goodreads" ]; then elif [ $i == "goodreads" ]; then
line=2 line=2
elif [ $i == "ldap" ]; then elif [ $i == "ldap" ]; then
line=3 line=3
elif [ $i == "oauth" ]; then elif [ $i == "oauth" ]; then
line=4 line=4
elif [ $i == "metadata" ]; then elif [ $i == "metadata" ]; then
line=5 line=5
elif [ $i == "comics" ]; then elif [ $i == "comics" ]; then
line=6 line=6
elif [ $i == "kobo" ]; then elif [ $i == "kobo" ]; then
line=7 line=7
fi fi
array_index=$(( 3*line + 2 )) array_index=$((3 * line + 2))
menu_array[$array_index]=ON menu_array[$array_index]=ON
done done
fi fi
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID > /dev/null; then kill $SPINNER_PID > /dev/null; fi if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID >/dev/null; then kill $SPINNER_PID >/dev/null; fi
CHOICES=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "CALIBRE-WEB OPTIONS" --separate-output --checklist "Choose Additional Options" 15 125 8 "${menu_array[@]}" 3>&1 1>&2 2>&3) CHOICES=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "CALIBRE-WEB OPTIONS" --separate-output --checklist "Choose Additional Options" 15 125 8 "${menu_array[@]}" 3>&1 1>&2 2>&3)
spinner & spinner &
SPINNER_PID=$! SPINNER_PID=$!
@@ -107,29 +83,29 @@ function update_script() {
for CHOICE in $CHOICES; do for CHOICE in $CHOICES; do
case "$CHOICE" in case "$CHOICE" in
"1") "1")
options+=( gdrive ) options+=(gdrive)
;; ;;
"2") "2")
options+=( gmail ) options+=(gmail)
;; ;;
"3") "3")
options+=( goodreads ) options+=(goodreads)
;; ;;
"4") "4")
options+=( ldap ) options+=(ldap)
apt-get install -qqy libldap2-dev libsasl2-dev apt-get install -qqy libldap2-dev libsasl2-dev
;; ;;
"5") "5")
options+=( oauth ) options+=(oauth)
;; ;;
"6") "6")
options+=( metadata ) options+=(metadata)
;; ;;
"7") "7")
options+=( comics ) options+=(comics)
;; ;;
"8") "8")
options+=( kobo ) options+=(kobo)
;; ;;
*) *)
echo "Unsupported item $CHOICE!" >&2 echo "Unsupported item $CHOICE!" >&2
@@ -138,16 +114,22 @@ function update_script() {
esac esac
done done
fi fi
if [ ! -z "$options" ] && [ ${#options[@]} -gt 0 ]; then if [ ${#options[@]} -gt 0 ]; then
cps_options=$(IFS=, ; echo "${options[*]}") cps_options=$(
echo $cps_options > /opt/calibre-web/options.txt IFS=,
pip install --upgrade calibreweb[$cps_options] echo "${options[*]}"
)
echo $cps_options >/opt/calibre-web/options.txt
pip install --upgrade calibreweb[$cps_options] &>/dev/null
else else
rm /opt/calibre-web/options.txt 2> /dev/null rm -rf /opt/calibre-web/options.txt
pip install --upgrade calibreweb pip install --upgrade calibreweb &>/dev/null
fi fi
msg_info "Starting ${APP}"
systemctl start cps systemctl start cps
msg_ok "Updated $APP LXC" msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
exit exit
} }
@@ -155,10 +137,7 @@ start
build_container build_container
description description
msg_info "Setting Container to Normal Resources"
pct set $CTID -memory 512
pct set $CTID -cores 1
msg_ok "Set Container to Normal Resources"
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:8083${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8083${CL}"
+29 -51
View File
@@ -1,65 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://casaos.io/
function header_info { # App Default Values
clear
cat <<"EOF"
______ ____ _____
/ ____/___ __________ _/ __ \/ ___/
/ / / __ `/ ___/ __ `/ / / /\__ \
/ /___/ /_/ (__ ) /_/ / /_/ /___/ /
\____/\__,_/____/\__,_/\____//____/
EOF
}
header_info
echo -e "Loading..."
APP="CasaOS" APP="CasaOS"
var_disk="8" var_tags="cloud"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="8"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating ${APP} LXC" check_container_resources
apt-get update &>/dev/null if [[ ! -d /var ]]; then
apt-get -y upgrade &>/dev/null msg_error "No ${APP} Installation Found!"
msg_ok "Updated ${APP} LXC" exit
exit fi
msg_info "Updating ${APP} LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated ${APP} LXC"
exit
} }
start start
@@ -67,5 +44,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} Setup should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP} ${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
+62 -67
View File
@@ -1,81 +1,75 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://changedetection.io/
function header_info { # App Default Values
clear
cat <<"EOF"
________ ____ __ __ _
/ ____/ /_ ____ _____ ____ ____ / __ \___ / /____ _____/ /_(_)___ ____
/ / / __ \/ __ `/ __ \/ __ `/ _ \ / / / / _ \/ __/ _ \/ ___/ __/ / __ \/ __ \
/ /___/ / / / /_/ / / / / /_/ / __/ / /_/ / __/ /_/ __/ /__/ /_/ / /_/ / / / /
\____/_/ /_/\__,_/_/ /_/\__, /\___/ /_____/\___/\__/\___/\___/\__/_/\____/_/ /_/
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Change Detection" APP="Change Detection"
var_disk="8" var_tags="monitoring;crawler"
var_cpu="2" var_cpu="2"
var_ram="1024" var_ram="1024"
var_disk="8"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /etc/systemd/system/changedetection.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating ${APP} LXC" check_container_resources
if ! dpkg -s libjpeg-dev >/dev/null 2>&1; then
apt-get update if [[ ! -f /etc/systemd/system/changedetection.service ]]; then
apt-get install -y libjpeg-dev msg_error "No ${APP} Installation Found!"
fi exit
pip3 install changedetection.io --upgrade &>/dev/null fi
pip3 install playwright --upgrade &>/dev/null
if [[ -f /etc/systemd/system/browserless.service ]]; then if ! dpkg -s libjpeg-dev >/dev/null 2>&1; then
git -C /opt/browserless/ fetch --all &>/dev/null msg_info "Installing Dependencies"
git -C /opt/browserless/ reset --hard origin/main &>/dev/null apt-get update
npm update --prefix /opt/browserless &>/dev/null apt-get install -y libjpeg-dev
npm run build --prefix /opt/browserless &>/dev/null msg_ok "Updated Dependencies"
npm run build:function --prefix /opt/browserless &>/dev/null fi
npm prune production --prefix /opt/browserless &>/dev/null
systemctl restart browserless msg_info "Updating ${APP}"
else pip3 install changedetection.io --upgrade &>/dev/null
msg_error "No Browserless Installation Found!" msg_ok "Updated ${APP}"
fi
systemctl restart changedetection msg_info "Updating Playwright"
msg_ok "Updated Successfully" pip3 install playwright --upgrade &>/dev/null
exit msg_ok "Updated Playwright"
if [[ -f /etc/systemd/system/browserless.service ]]; then
msg_info "Updating Browserless (Patience)"
git -C /opt/browserless/ fetch --all &>/dev/null
git -C /opt/browserless/ reset --hard origin/main &>/dev/null
npm update --prefix /opt/browserless &>/dev/null
/opt/browserless/node_modules/playwright-core/cli.js install --with-deps &>/dev/null
# Update Chrome separately, as it has to be done with the force option. Otherwise the installation of other browsers will not be done if Chrome is already installed.
/opt/browserless/node_modules/playwright-core/cli.js install --force chrome &>/dev/null
/opt/browserless/node_modules/playwright-core/cli.js install chromium firefox webkit &>/dev/null
npm run build --prefix /opt/browserless &>/dev/null
npm run build:function --prefix /opt/browserless &>/dev/null
npm prune production --prefix /opt/browserless &>/dev/null
systemctl restart browserless
msg_ok "Updated Browserless"
else
msg_error "No Browserless Installation Found!"
fi
systemctl restart changedetection
msg_ok "Updated Successfully"
exit
} }
start start
@@ -83,5 +77,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:5000${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"
+26 -48
View File
@@ -1,62 +1,39 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://getchannels.com/dvr-server/
function header_info { # App Default Values
clear
cat <<"EOF"
________ __ ____ _ ______ _____
/ ____/ /_ ____ _____ ____ ___ / /____ / __ \ | / / __ \ / ___/___ ______ _____ _____
/ / / __ \/ __ `/ __ \/ __ \/ _ \/ / ___/ / / / / | / / /_/ / \__ \/ _ \/ ___/ | / / _ \/ ___/
/ /___/ / / / /_/ / / / / / / / __/ (__ ) / /_/ /| |/ / _, _/ ___/ / __/ / | |/ / __/ /
\____/_/ /_/\__,_/_/ /_/_/ /_/\___/_/____/ /_____/ |___/_/ |_| /____/\___/_/ |___/\___/_/
EOF
}
header_info
echo -e "Loading..."
APP="Channels" APP="Channels"
var_disk="8" var_tags="dvr"
var_cpu="2" var_cpu="2"
var_ram="1024" var_ram="1024"
var_disk="8"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="0"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="0"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/channels-dvr ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_error "There is currently no update path available." check_container_resources
exit if [[ ! -d /opt/channels-dvr ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "There is currently no update path available."
exit
} }
start start
@@ -64,5 +41,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} Setup should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:8089 ${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8089${CL}"
+59
View File
@@ -0,0 +1,59 @@
#!/usr/bin/env bash
source ./misc/build.func
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Michel Roegl-Brunner (michelroegl-brunner)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# Source: https://checkmk.com/
APP="checkmk"
var_tags="monitoring"
var_cpu="2"
var_ram="2048"
var_disk="4"
var_os="debian"
var_version="12"
var_unprivileged="1"
header_info "$APP"
base_settings
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /opt/checkmk_version.txt ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }' | grep -v "*-rc" | tail -n +2 | head -n 1)
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Updating ${APP} to v${RELEASE}"
omd stop monitoring &>/dev/null
omd cp monitoring monitoringbackup &>/dev/null
wget -q https://download.checkmk.com/checkmk/${RELEASE}/check-mk-raw-${RELEASE}_0.bookworm_amd64.deb -O /opt/checkmk.deb
apt-get install -y /opt/checkmk.deb &>/dev/null
omd --force -V ${RELEASE}.cre update --conflict=install monitoring &>/dev/null
omd start monitoring &>/dev/null
omd -f rm monitoringbackup &>/dev/null
omd cleanup &>/dev/null
rm -rf /opt/checkmk.deb
msg_ok "Updated ${APP} to v${RELEASE}"
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}/monitoring${CL}"
+27 -49
View File
@@ -1,65 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://www.cloudflare.com/
function header_info { # App Default Values
clear
cat <<"EOF"
________ ________ __
/ ____/ /___ __ ______/ / __/ /___ _________ ____/ /
/ / / / __ \/ / / / __ / /_/ / __ `/ ___/ _ \/ __ /
/ /___/ / /_/ / /_/ / /_/ / __/ / /_/ / / / __/ /_/ /
\____/_/\____/\__,_/\__,_/_/ /_/\__,_/_/ \___/\__,_/
EOF
}
header_info
echo -e "Loading..."
APP="Cloudflared" APP="Cloudflared"
var_disk="2" var_tags="network;cloudflare"
var_cpu="1" var_cpu="1"
var_ram="512" var_ram="512"
var_disk="2"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating $APP LXC" check_container_resources
apt-get update &>/dev/null if [[ ! -d /var ]]; then
apt-get -y upgrade &>/dev/null msg_error "No ${APP} Installation Found!"
msg_ok "Updated $APP LXC" exit
exit fi
msg_info "Updating $APP LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -67,3 +44,4 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
+79 -105
View File
@@ -1,119 +1,92 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck # Author: tteck | Co-Author: havardthom
# Co-Author: havardthom # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# License: MIT # Source: https://cockpit-project.org/
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info { # App Default Values
clear
cat <<"EOF"
______ __ _ __
/ ____/___ _____/ /______ (_) /_
/ / / __ \/ ___/ //_/ __ \/ / __/
/ /___/ /_/ / /__/ ,< / /_/ / / /_
\____/\____/\___/_/|_/ .___/_/\__/
/_/
EOF
}
header_info
echo -e "Loading..."
APP="Cockpit" APP="Cockpit"
var_disk="4" var_tags="monitoring;network"
var_cpu="2" var_cpu="2"
var_ram="1024" var_ram="1024"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
if [[ ! -d /etc/cockpit ]]; then msg_error "No ${APP} Installation Found!"; exit; fi header_info
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 4 \ check_container_storage
"1" "Update LXC" ON \ check_container_resources
"2" "Install cockpit-file-sharing" OFF \ if [[ ! -d /etc/cockpit ]]; then
"3" "Install cockpit-identities" OFF \ msg_error "No ${APP} Installation Found!"
"4" "Install cockpit-navigator" OFF \ exit
3>&1 1>&2 2>&3) fi
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 4 \
"1" "Update LXC" ON \
"2" "Install cockpit-file-sharing" OFF \
"3" "Install cockpit-identities" OFF \
"4" "Install cockpit-navigator" OFF \
3>&1 1>&2 2>&3)
header_info if [ "$UPD" == "1" ]; then
if [ "$UPD" == "1" ]; then msg_info "Updating ${APP} LXC"
msg_info "Updating ${APP} LXC" apt-get update &>/dev/null
apt-get update &>/dev/null apt-get -y upgrade &>/dev/null
apt-get -y upgrade &>/dev/null msg_ok "Updated ${APP} LXC"
msg_ok "Updated ${APP} LXC" exit
exit fi
fi if [ "$UPD" == "2" ]; then
if [ "$UPD" == "2" ]; then msg_info "Installing dependencies (patience)"
msg_info "Installing dependencies (patience)" apt-get install -y attr &>/dev/null
apt-get install -y attr &>/dev/null apt-get install -y nfs-kernel-server &>/dev/null
apt-get install -y nfs-kernel-server &>/dev/null apt-get install -y samba &>/dev/null
apt-get install -y samba &>/dev/null apt-get install -y samba-common-bin &>/dev/null
apt-get install -y samba-common-bin &>/dev/null apt-get install -y winbind &>/dev/null
apt-get install -y winbind &>/dev/null apt-get install -y gawk &>/dev/null
apt-get install -y gawk &>/dev/null msg_ok "Installed dependencies"
msg_ok "Installed dependencies" msg_info "Installing Cockpit file sharing"
msg_info "Installing Cockpit file sharing" wget -q $(curl -s https://api.github.com/repos/45Drives/cockpit-file-sharing/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
LATEST=$(curl -s https://api.github.com/repos/45Drives/cockpit-file-sharing/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') dpkg -i cockpit-file-sharing_*focal_all.deb &>/dev/null
wget -q https://github.com/45Drives/cockpit-file-sharing/releases/download/v${LATEST}/cockpit-file-sharing_${LATEST}-1focal_all.deb rm cockpit-file-sharing_*focal_all.deb
dpkg -i cockpit-file-sharing_${LATEST}-1focal_all.deb &>/dev/null msg_ok "Installed Cockpit file sharing"
rm cockpit-file-sharing_${LATEST}-1focal_all.deb exit
msg_ok "Installed Cockpit file sharing" fi
exit if [ "$UPD" == "3" ]; then
fi msg_info "Installing dependencies (patience)"
if [ "$UPD" == "3" ]; then apt-get install -y psmisc &>/dev/null
msg_info "Installing dependencies (patience)" apt-get install -y samba &>/dev/null
apt-get install -y psmisc &>/dev/null apt-get install -y samba-common-bin &>/dev/null
apt-get install -y samba &>/dev/null msg_ok "Installed dependencies"
apt-get install -y samba-common-bin &>/dev/null msg_info "Installing Cockpit identities"
msg_ok "Installed dependencies" wget -q $(curl -s https://api.github.com/repos/45Drives/cockpit-identities/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
msg_info "Installing Cockpit identities" dpkg -i cockpit-identities_*focal_all.deb &>/dev/null
LATEST=$(curl -s https://api.github.com/repos/45Drives/cockpit-identities/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') rm cockpit-identities_*focal_all.deb
wget -q https://github.com/45Drives/cockpit-identities/releases/download/v${LATEST}/cockpit-identities_${LATEST}-1focal_all.deb msg_ok "Installed Cockpit identities"
dpkg -i cockpit-identities_${LATEST}-1focal_all.deb &>/dev/null exit
rm cockpit-identities_${LATEST}-1focal_all.deb fi
msg_ok "Installed Cockpit identities" if [ "$UPD" == "4" ]; then
exit msg_info "Installing dependencies"
fi apt-get install -y rsync &>/dev/null
if [ "$UPD" == "4" ]; then apt-get install -y zip &>/dev/null
msg_info "Installing dependencies" msg_ok "Installed dependencies"
apt-get install -y rsync &>/dev/null msg_info "Installing Cockpit navigator"
apt-get install -y zip &>/dev/null wget -q $(curl -s https://api.github.com/repos/45Drives/cockpit-navigator/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
msg_ok "Installed dependencies" dpkg -i cockpit-navigator_*focal_all.deb &>/dev/null
msg_info "Installing Cockpit navigator" rm cockpit-navigator_*focal_all.deb
LATEST=$(curl -s https://api.github.com/repos/45Drives/cockpit-navigator/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') msg_ok "Installed Cockpit navigator"
wget -q https://github.com/45Drives/cockpit-navigator/releases/download/v${LATEST}/cockpit-navigator_${LATEST}-1focal_all.deb exit
dpkg -i cockpit-navigator_${LATEST}-1focal_all.deb &>/dev/null fi
rm cockpit-navigator_${LATEST}-1focal_all.deb
msg_ok "Installed Cockpit navigator"
exit
fi
} }
start start
@@ -121,5 +94,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:9090${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9090${CL}"
+44 -66
View File
@@ -1,82 +1,59 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://www.commafeed.com/#/welcome
function header_info { # App Default Values
clear
cat <<"EOF"
______ ______ __
/ ____/___ ____ ___ ____ ___ ____ _/ ____/__ ___ ____/ /
/ / / __ \/ __ `__ \/ __ `__ \/ __ `/ /_ / _ \/ _ \/ __ /
/ /___/ /_/ / / / / / / / / / / / /_/ / __/ / __/ __/ /_/ /
\____/\____/_/ /_/ /_/_/ /_/ /_/\__,_/_/ \___/\___/\__,_/
EOF
}
header_info
echo -e "Loading..."
APP="CommaFeed" APP="CommaFeed"
var_disk="4" var_tags="rss-reader"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/commafeed ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
RELEASE=$(curl -sL https://api.github.com/repos/Athou/commafeed/releases/latest | grep '"tag_name":' | cut -d'"' -f4) check_container_resources
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then if [[ ! -d /opt/commafeed ]]; then
msg_info "Stopping ${APP}" msg_error "No ${APP} Installation Found!"
systemctl stop commafeed exit
msg_ok "Stopped ${APP}" fi
RELEASE=$(curl -sL https://api.github.com/repos/Athou/commafeed/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping ${APP}"
systemctl stop commafeed
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP} to ${RELEASE}" msg_info "Updating ${APP} to ${RELEASE}"
wget -q https://github.com/Athou/commafeed/releases/download/${RELEASE}/commafeed-${RELEASE}-h2-jvm.zip wget -q https://github.com/Athou/commafeed/releases/download/${RELEASE}/commafeed-${RELEASE}-h2-jvm.zip
unzip -q commafeed-${RELEASE}-h2-jvm.zip unzip -q commafeed-${RELEASE}-h2-jvm.zip
rsync -a --exclude 'data/' commafeed-${RELEASE}-h2/ /opt/commafeed/ rsync -a --exclude 'data/' commafeed-${RELEASE}-h2/ /opt/commafeed/
rm -rf commafeed-${RELEASE}-h2 commafeed-${RELEASE}-h2-jvm.zip rm -rf commafeed-${RELEASE}-h2 commafeed-${RELEASE}-h2-jvm.zip
echo "${RELEASE}" >/opt/${APP}_version.txt echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}" msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Starting ${APP}" msg_info "Starting ${APP}"
systemctl start commafeed systemctl start commafeed
msg_ok "Started ${APP}" msg_ok "Started ${APP}"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
else else
msg_ok "No update required. ${APP} is already at ${RELEASE}" msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi fi
exit exit
} }
start start
@@ -84,5 +61,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:8082${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8082${CL}"
+36 -18
View File
@@ -1,23 +1,33 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # Co-Author: MickLesk
# https://github.com/tteck/Proxmox/raw/main/LICENSE # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# This sets verbose mode if the global variable is set to "yes" # This sets verbose mode if the global variable is set to "yes"
# if [ "$VERBOSE" == "yes" ]; then set -x; fi # if [ "$VERBOSE" == "yes" ]; then set -x; fi
# This function sets color variables for formatting output in the terminal # This function sets color variables for formatting output in the terminal
# Colors
YW=$(echo "\033[33m") YW=$(echo "\033[33m")
YWB=$(echo "\033[93m")
BL=$(echo "\033[36m") BL=$(echo "\033[36m")
RD=$(echo "\033[01;31m") RD=$(echo "\033[01;31m")
GN=$(echo "\033[1;92m") GN=$(echo "\033[1;92m")
# Formatting
CL=$(echo "\033[m") CL=$(echo "\033[m")
CM="${GN}${CL}" UL=$(echo "\033[4m")
CROSS="${RD}${CL}" BOLD=$(echo "\033[1m")
BFR="\\r\\033[K" BFR="\\r\\033[K"
HOLD=" " HOLD=" "
TAB=" "
# Icons
CM="${TAB}✔️${TAB}${CL}"
CROSS="${TAB}✖️${TAB}${CL}"
INFO="${TAB}💡${TAB}${CL}"
# This sets error handling options and defines the error_handler function to handle errors # This sets error handling options and defines the error_handler function to handle errors
set -Eeuo pipefail set -Eeuo pipefail
@@ -36,19 +46,24 @@ function error_handler() {
# This function displays a spinner. # This function displays a spinner.
function spinner() { function spinner() {
local chars="/-\|" local frames=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
local spin_i=0 local spin_i=0
printf "\e[?25l" local interval=0.1
while true; do printf "\e[?25l"
printf "\r \e[36m%s\e[0m" "${chars:spin_i++%${#chars}:1}"
sleep 0.1 local color="${YWB}"
done
while true; do
printf "\r ${color}%s${CL}" "${frames[spin_i]}"
spin_i=$(( (spin_i + 1) % ${#frames[@]} ))
sleep "$interval"
done
} }
# This function displays an informational message with a yellow color. # This function displays an informational message with a yellow color.
function msg_info() { function msg_info() {
local msg="$1" local msg="$1"
echo -ne " ${HOLD} ${YW}${msg} " echo -ne "${TAB}${YW}${HOLD}${msg}${HOLD}"
spinner & spinner &
SPINNER_PID=$! SPINNER_PID=$!
} }
@@ -58,7 +73,7 @@ function msg_ok() {
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID > /dev/null; then kill $SPINNER_PID > /dev/null; fi if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID > /dev/null; then kill $SPINNER_PID > /dev/null; fi
printf "\e[?25h" printf "\e[?25h"
local msg="$1" local msg="$1"
echo -e "${BFR} ${CM} ${GN}${msg}${CL}" echo -e "${BFR}${CM}${GN}${msg}${CL}"
} }
# This function displays a error message with a red color. # This function displays a error message with a red color.
@@ -66,7 +81,7 @@ function msg_error() {
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID > /dev/null; then kill $SPINNER_PID > /dev/null; fi if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID > /dev/null; then kill $SPINNER_PID > /dev/null; fi
printf "\e[?25h" printf "\e[?25h"
local msg="$1" local msg="$1"
echo -e "${BFR} ${CROSS} ${RD}${msg}${CL}" echo -e "${BFR}${CROSS}${RD}${msg}${CL}"
} }
# This checks for the presence of valid Container Storage and Template Storage locations # This checks for the presence of valid Container Storage and Template Storage locations
@@ -105,7 +120,7 @@ function select_storage() {
local TAG=$(echo $line | awk '{print $1}') local TAG=$(echo $line | awk '{print $1}')
local TYPE=$(echo $line | awk '{printf "%-10s", $2}') local TYPE=$(echo $line | awk '{printf "%-10s", $2}')
local FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}') local FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
local ITEM=" Type: $TYPE Free: $FREE " local ITEM="Type: $TYPE Free: $FREE "
local OFFSET=2 local OFFSET=2
if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
local MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET)) local MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
@@ -123,11 +138,14 @@ function select_storage() {
"Which storage pool you would like to use for the ${CONTENT_LABEL,,}?\nTo make a selection, use the Spacebar.\n" \ "Which storage pool you would like to use for the ${CONTENT_LABEL,,}?\nTo make a selection, use the Spacebar.\n" \
16 $(($MSG_MAX_LENGTH + 23)) 6 \ 16 $(($MSG_MAX_LENGTH + 23)) 6 \
"${MENU[@]}" 3>&1 1>&2 2>&3) || exit "Menu aborted." "${MENU[@]}" 3>&1 1>&2 2>&3) || exit "Menu aborted."
if [ $? -ne 0 ]; then
echo -e "${CROSS}${RD} Menu aborted by user.${CL}"
exit 0
fi
done done
printf $STORAGE printf "%s" "$STORAGE"
fi fi
} }
# Test if required variables are set # Test if required variables are set
[[ "${CTID:-}" ]] || exit "You need to set 'CTID' variable." [[ "${CTID:-}" ]] || exit "You need to set 'CTID' variable."
[[ "${PCT_OSTYPE:-}" ]] || exit "You need to set 'PCT_OSTYPE' variable." [[ "${PCT_OSTYPE:-}" ]] || exit "You need to set 'PCT_OSTYPE' variable."
+80 -102
View File
@@ -1,124 +1,101 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://cronicle.net/
function header_info { # App Default Values
clear
cat <<"EOF"
______ _ __
/ ____/________ ____ (_)____/ /__
/ / / ___/ __ \/ __ \/ / ___/ / _ \
/ /___/ / / /_/ / / / / / /__/ / __/
\____/_/ \____/_/ /_/_/\___/_/\___/
EOF
}
header_info
echo -e "Loading..."
APP="Cronicle" APP="Cronicle"
var_disk="2" var_tags="task-scheduler"
var_cpu="1" var_cpu="1"
var_ram="512" var_ram="512"
var_disk="2"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 2 \ header_info
"1" "Update ${APP}" ON \ check_container_storage
"2" "Install ${APP} Worker" OFF \ check_container_resources
3>&1 1>&2 2>&3) UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 2 \
"1" "Update ${APP}" ON \
"2" "Install ${APP} Worker" OFF \
3>&1 1>&2 2>&3)
if [ "$UPD" == "1" ]; then if [ "$UPD" == "1" ]; then
header_info if [[ ! -d /opt/cronicle ]]; then
if [[ ! -d /opt/cronicle ]]; then msg_error "No ${APP} Installation Found!"; exit; fi msg_error "No ${APP} Installation Found!"
if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then exit
if ! command -v npm >/dev/null 2>&1; then
echo "Installing NPM..."
apt-get install -y npm >/dev/null 2>&1
echo "Installed NPM..."
fi fi
fi if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
msg_info "Updating ${APP}" if ! command -v npm >/dev/null 2>&1; then
/opt/cronicle/bin/control.sh upgrade &>/dev/null echo "Installing NPM..."
msg_ok "Updated ${APP}" apt-get install -y npm >/dev/null 2>&1
exit echo "Installed NPM..."
fi fi
if [ "$UPD" == "2" ]; then
if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
if ! command -v npm >/dev/null 2>&1; then
echo "Installing NPM..."
apt-get install -y npm >/dev/null 2>&1
echo "Installed NPM..."
fi fi
msg_info "Updating ${APP}"
/opt/cronicle/bin/control.sh upgrade &>/dev/null
msg_ok "Updated ${APP}"
exit
fi fi
LATEST=$(curl -sL https://api.github.com/repos/jhuckaby/Cronicle/releases/latest | grep '"tag_name":' | cut -d'"' -f4) if [ "$UPD" == "2" ]; then
IP=$(hostname -I | awk '{print $1}') if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
msg_info "Installing Dependencies" if ! command -v npm >/dev/null 2>&1; then
echo "Installing NPM..."
apt-get install -y npm >/dev/null 2>&1
echo "Installed NPM..."
fi
fi
LATEST=$(curl -sL https://api.github.com/repos/jhuckaby/Cronicle/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
IP=$(hostname -I | awk '{print $1}')
msg_info "Installing Dependencies"
apt-get install -y git &>/dev/null apt-get install -y git &>/dev/null
apt-get install -y make &>/dev/null apt-get install -y make &>/dev/null
apt-get install -y g++ &>/dev/null apt-get install -y g++ &>/dev/null
apt-get install -y gcc &>/dev/null apt-get install -y gcc &>/dev/null
apt-get install -y ca-certificates &>/dev/null apt-get install -y ca-certificates &>/dev/null
apt-get install -y gnupg &>/dev/null apt-get install -y gnupg &>/dev/null
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Setting up Node.js Repository" msg_info "Setting up Node.js Repository"
mkdir -p /etc/apt/keyrings mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
msg_ok "Set up Node.js Repository" msg_ok "Set up Node.js Repository"
msg_info "Installing Node.js" msg_info "Installing Node.js"
apt-get update &>/dev/null apt-get update &>/dev/null
apt-get install -y nodejs &>/dev/null apt-get install -y nodejs &>/dev/null
msg_ok "Installed Node.js" msg_ok "Installed Node.js"
msg_info "Installing Cronicle Worker" msg_info "Installing Cronicle Worker"
mkdir -p /opt/cronicle mkdir -p /opt/cronicle
cd /opt/cronicle cd /opt/cronicle
tar zxvf <(curl -fsSL https://github.com/jhuckaby/Cronicle/archive/${LATEST}.tar.gz) --strip-components 1 &>/dev/null tar zxvf <(curl -fsSL https://github.com/jhuckaby/Cronicle/archive/${LATEST}.tar.gz) --strip-components 1 &>/dev/null
npm install &>/dev/null npm install &>/dev/null
node bin/build.js dist &>/dev/null node bin/build.js dist &>/dev/null
sed -i "s/localhost:3012/${IP}:3012/g" /opt/cronicle/conf/config.json sed -i "s/localhost:3012/${IP}:3012/g" /opt/cronicle/conf/config.json
/opt/cronicle/bin/control.sh start &>/dev/null /opt/cronicle/bin/control.sh start &>/dev/null
cp /opt/cronicle/bin/cronicled.init /etc/init.d/cronicled &>/dev/null cp /opt/cronicle/bin/cronicled.init /etc/init.d/cronicled &>/dev/null
chmod 775 /etc/init.d/cronicled chmod 775 /etc/init.d/cronicled
update-rc.d cronicled defaults &>/dev/null update-rc.d cronicled defaults &>/dev/null
msg_ok "Installed Cronicle Worker" msg_ok "Installed Cronicle Worker"
echo -e "\n Add Masters secret key to /opt/cronicle/conf/config.json \n" echo -e "\n Add Masters secret key to /opt/cronicle/conf/config.json \n"
exit exit
fi fi
} }
start start
@@ -126,5 +103,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} Primary should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:3012${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3012${CL}"
+41 -65
View File
@@ -1,73 +1,49 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://daemonsync.me/
echo "Unsupported. View notes on GitHub." # App Default Values
APP="Daemon Sync"
var_tags="sync"
var_cpu="1"
var_ram="512"
var_disk="8"
var_os="debian"
var_version="12"
var_unprivileged="1"
# function header_info { # App Output & Base Settings
# clear header_info "$APP"
# cat <<"EOF" base_settings
# ____ _____
# / __ \____ ____ ____ ___ ____ ____ / ___/__ ______ _____
# / / / / __ / _ \/ __ __ \/ __ \/ __ \ \__ \/ / / / __ \/ ___/
# / /_/ / /_/ / __/ / / / / / /_/ / / / / ___/ / /_/ / / / / /__
# /_____/\__,_/\___/_/ /_/ /_/\____/_/ /_/ /____/\__, /_/ /_/\___/
# /____/
# EOF
# }
# header_info
# echo -e "Loading..."
# APP="Daemon Sync"
# var_disk="8"
# var_cpu="1"
# var_ram="512"
# var_os="debian"
# var_version="12"
# variables
# color
# catch_errors
# function default_settings() { # Core
# CT_TYPE="1" variables
# PW="" color
# CT_ID=$NEXTID catch_errors
# HN=$NSAPP
# DISK_SIZE="$var_disk"
# CORE_COUNT="$var_cpu"
# RAM_SIZE="$var_ram"
# BRG="vmbr0"
# NET="dhcp"
# GATE=""
# APT_CACHER=""
# APT_CACHER_IP=""
# DISABLEIP6="no"
# MTU=""
# SD=""
# NS=""
# MAC=""
# VLAN=""
# SSH="no"
# VERB="no"
# echo_default
# }
# function update_script() { function update_script() {
# header_info header_info
# if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
# msg_info "Updating $APP LXC" check_container_resources
# apt-get update &>/dev/null if [[ ! -d /var ]]; then
# apt-get -y upgrade &>/dev/null msg_error "No ${APP} Installation Found!"
# msg_ok "Updated $APP LXC" exit
# exit fi
# } msg_info "Updating $APP LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit
}
# start start
# build_container build_container
# description description
# msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
# echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
# ${BL}http://${IP}:8084${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8084${CL}"
+62 -84
View File
@@ -1,103 +1,80 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://dashy.to/
function header_info { # App Default Values
clear
cat <<"EOF"
____ __
/ __ \____ ______/ /_ __ __
/ / / / __ / ___/ __ \/ / / /
/ /_/ / /_/ (__ ) / / / /_/ /
/_____/\__,_/____/_/ /_/\__, /
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Dashy" APP="Dashy"
var_disk="6" var_tags="dashboard"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="6"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/dashy/public/ ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
check_container_resources
RELEASE=$(curl -sL https://api.github.com/repos/Lissy93/dashy/releases/latest | grep '"tag_name":' | cut -d'"' -f4) if [[ ! -d /opt/dashy/public/ ]]; then
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then msg_error "No ${APP} Installation Found!"
msg_info "Stopping ${APP}" exit
systemctl stop dashy
msg_ok "Stopped ${APP}"
msg_info "Backing up conf.yml"
cd ~
if [[ -f /opt/dashy/public/conf.yml ]]; then
cp -R /opt/dashy/public/conf.yml conf.yml
else
cp -R /opt/dashy/user-data/conf.yml conf.yml
fi fi
msg_ok "Backed up conf.yml"
msg_info "Updating ${APP} to ${RELEASE}" RELEASE=$(curl -sL https://api.github.com/repos/Lissy93/dashy/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
rm -rf /opt/dashy if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
mkdir -p /opt/dashy msg_info "Stopping ${APP}"
wget -qO- https://github.com/Lissy93/dashy/archive/refs/tags/${RELEASE}.tar.gz | tar -xz -C /opt/dashy --strip-components=1 systemctl stop dashy
cd /opt/dashy msg_ok "Stopped ${APP}"
npm install
npm run build
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Restoring conf.yml" msg_info "Backing up conf.yml"
cd ~ cd ~
cp -R conf.yml /opt/dashy/user-data if [[ -f /opt/dashy/public/conf.yml ]]; then
msg_ok "Restored conf.yml" cp -R /opt/dashy/public/conf.yml conf.yml
else
cp -R /opt/dashy/user-data/conf.yml conf.yml
fi
msg_ok "Backed up conf.yml"
msg_info "Cleaning" msg_info "Updating ${APP} to ${RELEASE}"
rm -rf conf.yml /opt/dashy/public/conf.yml rm -rf /opt/dashy
msg_ok "Cleaned" mkdir -p /opt/dashy
wget -qO- https://github.com/Lissy93/dashy/archive/refs/tags/${RELEASE}.tar.gz | tar -xz -C /opt/dashy --strip-components=1
cd /opt/dashy
npm install
npm run build
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Starting Dashy" msg_info "Restoring conf.yml"
systemctl start dashy cd ~
msg_ok "Started Dashy" cp -R conf.yml /opt/dashy/user-data
msg_ok "Updated Successfully" msg_ok "Restored conf.yml"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}" msg_info "Cleaning"
fi rm -rf conf.yml /opt/dashy/public/conf.yml
exit msg_ok "Cleaned"
msg_info "Starting Dashy"
systemctl start dashy
msg_ok "Started Dashy"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
} }
start start
@@ -105,5 +82,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:4000${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:4000${CL}"
+27 -49
View File
@@ -1,65 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://www.debian.org/
function header_info { # App Default Values
clear
cat <<"EOF"
____ __ _
/ __ \___ / /_ (_)___ ____
/ / / / _ \/ __ \/ / __ `/ __ \
/ /_/ / __/ /_/ / / /_/ / / / /
/_____/\___/_.___/_/\__,_/_/ /_/
EOF
}
header_info
echo -e "Loading..."
APP="Debian" APP="Debian"
var_disk="2" var_tags="os"
var_cpu="1" var_cpu="1"
var_ram="512" var_ram="512"
var_disk="2"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating $APP LXC" check_container_resources
apt-get update &>/dev/null if [[ ! -d /var ]]; then
apt-get -y upgrade &>/dev/null msg_error "No ${APP} Installation Found!"
msg_ok "Updated $APP LXC" exit
exit fi
msg_info "Updating $APP LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -67,3 +44,4 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
+29 -51
View File
@@ -1,65 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://www.phoscon.de/en/conbee2/software#deconz
function header_info { # App Default Values
clear
cat <<"EOF"
__ __________ _ _______
____/ /__ / ____/ __ \/ | / /__ /
/ __ / _ \/ / / / / / |/ / / /
/ /_/ / __/ /___/ /_/ / /| / / /__
\__,_/\___/\____/\____/_/ |_/ /____/
EOF
}
header_info
echo -e "Loading..."
APP="deCONZ" APP="deCONZ"
var_disk="4" var_tags="zigbee"
var_cpu="2" var_cpu="2"
var_ram="1024" var_ram="1024"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="0"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="0"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /etc/apt/sources.list.d/deconz.list ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating $APP LXC" check_container_resources
apt-get update &>/dev/null if [[ ! -f /etc/apt/sources.list.d/deconz.list ]]; then
apt-get -y upgrade &>/dev/null msg_error "No ${APP} Installation Found!"
msg_ok "Updated $APP LXC" exit
exit fi
msg_info "Updating $APP LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -67,5 +44,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}${CL}\n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
+29 -52
View File
@@ -1,66 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://www.deluge-torrent.org/
function header_info { # App Default Values
clear
cat <<"EOF"
____ __
/ __ \___ / /_ ______ ____
/ / / / _ \/ / / / / __ `/ _ \
/ /_/ / __/ / /_/ / /_/ / __/
/_____/\___/_/\__,_/\__, /\___/
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Deluge" APP="Deluge"
var_disk="4" var_tags="torrent"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /etc/systemd/system/deluged.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating $APP LXC" check_container_resources
apt-get update &>/dev/null if [[ ! -f /etc/systemd/system/deluged.service ]]; then
pip3 install deluge[all] --upgrade msg_error "No ${APP} Installation Found!"
msg_ok "Updated $APP LXC" exit
exit fi
msg_info "Updating $APP LXC"
apt-get update &>/dev/null
pip3 install deluge[all] --upgrade
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -68,5 +44,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:8112${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8112${CL}"
+27 -49
View File
@@ -1,65 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://www.docker.com/
function header_info { # App Default Values
clear
cat <<"EOF"
____ __
/ __ \____ _____/ /_ __ _____
/ / / / __ \/ ___/ //_/ _ \/ ___/
/ /_/ / /_/ / /__/ ,< / __/ /
/_____/\____/\___/_/|_|\___/_/
EOF
}
header_info
echo -e "Loading..."
APP="Docker" APP="Docker"
var_disk="4" var_tags="docker"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating ${APP} LXC" check_container_resources
apt-get update &>/dev/null if [[ ! -d /var ]]; then
apt-get -y upgrade &>/dev/null msg_error "No ${APP} Installation Found!"
msg_ok "Updated ${APP} LXC" exit
exit fi
msg_info "Updating ${APP} LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated ${APP} LXC"
exit
} }
start start
@@ -67,3 +44,4 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
+30 -52
View File
@@ -1,66 +1,43 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://dockge.kuma.pet/
function header_info { # App Default Values
clear
cat <<"EOF"
____ __
/ __ \____ _____/ /______ ____
/ / / / __ \/ ___/ //_/ __ `/ _ \
/ /_/ / /_/ / /__/ ,< / /_/ / __/
/_____/\____/\___/_/|_|\__, /\___/
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Dockge" APP="Dockge"
var_disk="18" var_tags="docker"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="18"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/dockge ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating ${APP}" check_container_resources
cd /opt/dockge if [[ ! -d /opt/dockge ]]; then
docker compose pull msg_error "No ${APP} Installation Found!"
docker compose up -d exit
msg_ok "Updated ${APP}" fi
exit msg_info "Updating ${APP}"
cd /opt/dockge
docker compose pull
docker compose up -d
msg_ok "Updated ${APP}"
exit
} }
start start
@@ -68,5 +45,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:5001${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5001${CL}"
+38 -60
View File
@@ -1,76 +1,53 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://emby.media/
function header_info { # App Default Values
clear
cat <<"EOF"
______ __
/ ____/___ ___ / /_ __ __
/ __/ / __ __ \/ __ \/ / / /
/ /___/ / / / / / /_/ / /_/ /
/_____/_/ /_/ /_/_.___/\__, /
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Emby" APP="Emby"
var_disk="8" var_tags="media"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="8"
var_os="ubuntu" var_os="ubuntu"
var_version="22.04" var_version="22.04"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="0"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/emby-server ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
LATEST=$(curl -sL https://api.github.com/repos/MediaBrowser/Emby.Releases/releases/latest | grep '"tag_name":' | cut -d'"' -f4) check_container_resources
msg_info "Stopping ${APP}" if [[ ! -d /opt/emby-server ]]; then
systemctl stop emby-server msg_error "No ${APP} Installation Found!"
msg_ok "Stopped ${APP}" exit
fi
LATEST=$(curl -sL https://api.github.com/repos/MediaBrowser/Emby.Releases/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
msg_info "Stopping ${APP}"
systemctl stop emby-server
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP}" msg_info "Updating ${APP}"
wget https://github.com/MediaBrowser/Emby.Releases/releases/download/${LATEST}/emby-server-deb_${LATEST}_arm64.deb &>/dev/null wget https://github.com/MediaBrowser/Emby.Releases/releases/download/${LATEST}/emby-server-deb_${LATEST}_amd64.deb &>/dev/null
dpkg -i emby-server-deb_${LATEST}_arm64.deb &>/dev/null dpkg -i emby-server-deb_${LATEST}_amd64.deb &>/dev/null
rm emby-server-deb_${LATEST}_arm64.deb rm emby-server-deb_${LATEST}_amd64.deb
msg_ok "Updated ${APP}" msg_ok "Updated ${APP}"
msg_info "Starting ${APP}" msg_info "Starting ${APP}"
systemctl start emby-server systemctl start emby-server
msg_ok "Started ${APP}" msg_ok "Started ${APP}"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
exit exit
} }
start start
@@ -78,5 +55,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:8096${CL}\n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8096${CL}"
+29 -51
View File
@@ -1,65 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://www.emqx.com/en
function header_info { # App Default Values
clear
cat <<"EOF"
________ _______ _ __
/ ____/ |/ / __ \ | |/ /
/ __/ / /|_/ / / / / | /
/ /___/ / / / /_/ / / |
/_____/_/ /_/\___\_\/_/|_|
EOF
}
header_info
echo -e "Loading..."
APP="EMQX" APP="EMQX"
var_disk="4" var_tags="mqtt"
var_cpu="2" var_cpu="2"
var_ram="1024" var_ram="1024"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating $APP LXC" check_container_resources
apt-get update &>/dev/null if [[ ! -d /var ]]; then
apt-get -y upgrade &>/dev/null msg_error "No ${APP} Installation Found!"
msg_ok "Updated $APP LXC" exit
exit fi
msg_info "Updating $APP LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -67,5 +44,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} Setup should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:18083${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:18083${CL}"
+43 -68
View File
@@ -1,83 +1,57 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck # Author: MickLesk (Canbiz)
# Co-Author: MickLesk (Canbiz) # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# License: MIT # Source: https://ersatztv.org/
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# Source: https://github.com/ErsatzTV/ErsatzTV/
# App Default Values
function header_info {
clear
cat <<"EOF"
______ __ _______ __
/ ____/_____________ _/ /_____/_ __/ | / /
/ __/ / ___/ ___/ __ `/ __/_ / / / | | / /
/ /___/ / (__ ) /_/ / /_ / /_/ / | |/ /
/_____/_/ /____/\__,_/\__/ /___/_/ |___/
EOF
}
header_info
echo -e "Loading..."
APP="ErsatzTV" APP="ErsatzTV"
var_disk="5" var_tags="iptv"
var_cpu="1" var_cpu="1"
var_ram="1024" var_ram="1024"
var_disk="5"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="0"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/ErsatzTV ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
check_container_resources
if [[ ! -d /opt/ErsatzTV ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping ErsatzTV" msg_info "Stopping ErsatzTV"
systemctl stop ersatzTV systemctl stop ersatzTV
msg_ok "Stopped ErsatzTV" msg_ok "Stopped ErsatzTV"
msg_info "Updating ErsatzTV" msg_info "Updating ErsatzTV"
RELEASE=$(curl -s https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\K[^"]+' | head -n 1) RELEASE=$(curl -s https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\K[^"]+' | head -n 1)
cp -R /opt/ErsatzTV/ ErsatzTV-backup cp -R /opt/ErsatzTV/ ErsatzTV-backup
rm ErsatzTV-backup/ErsatzTV rm ErsatzTV-backup/ErsatzTV
rm -rf /opt/ErsatzTV rm -rf /opt/ErsatzTV
wget -qO- "https://github.com/ErsatzTV/ErsatzTV/releases/download/${RELEASE}/ErsatzTV-${RELEASE}-linux-arm64.tar.gz" | tar -xz -C /opt wget -qO- "https://github.com/ErsatzTV/ErsatzTV/releases/download/${RELEASE}/ErsatzTV-${RELEASE}-linux-x64.tar.gz" | tar -xz -C /opt
mv "/opt/ErsatzTV-${RELEASE}-linux-arm64" /opt/ErsatzTV mv "/opt/ErsatzTV-${RELEASE}-linux-x64" /opt/ErsatzTV
cp -R ErsatzTV-backup/* /opt/ErsatzTV/ cp -R ErsatzTV-backup/* /opt/ErsatzTV/
rm -rf ErsatzTV-backup rm -rf ErsatzTV-backup
msg_ok "Updated ErsatzTV" msg_ok "Updated ErsatzTV"
msg_info "Starting ErsatzTV" msg_info "Starting ErsatzTV"
systemctl start ersatzTV systemctl start ersatzTV
msg_ok "Started ErsatzTV" msg_ok "Started ErsatzTV"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
exit exit
} }
start start
@@ -85,5 +59,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} Setup should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:8409${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8409${CL}"
+38 -60
View File
@@ -1,76 +1,53 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://esphome.io/
function header_info { # App Default Values
clear
cat <<"EOF"
___________ ____ __ __
/ ____/ ___// __ \/ / / /___ ____ ___ ___
/ __/ \__ \/ /_/ / /_/ / __ \/ __ `__ \/ _ \
/ /___ ___/ / ____/ __ / /_/ / / / / / / __/
/_____//____/_/ /_/ /_/\____/_/ /_/ /_/\___/
EOF
}
header_info
echo -e "Loading..."
APP="ESPHome" APP="ESPHome"
var_disk="4" var_tags="automation"
var_cpu="2" var_cpu="2"
var_ram="1024" var_ram="1024"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /etc/systemd/system/esphomeDashboard.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Stopping ESPHome" check_container_resources
systemctl stop esphomeDashboard if [[ ! -f /etc/systemd/system/esphomeDashboard.service ]]; then
msg_ok "Stopped ESPHome" msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping ESPHome"
systemctl stop esphomeDashboard
msg_ok "Stopped ESPHome"
msg_info "Updating ESPHome" msg_info "Updating ESPHome"
if [[ -d /srv/esphome ]]; then if [[ -d /srv/esphome ]]; then
source /srv/esphome/bin/activate &>/dev/null source /srv/esphome/bin/activate &>/dev/null
fi fi
pip3 install -U esphome &>/dev/null pip3 install -U esphome &>/dev/null
msg_ok "Updated ESPHome" msg_ok "Updated ESPHome"
msg_info "Starting ESPHome" msg_info "Starting ESPHome"
systemctl start esphomeDashboard systemctl start esphomeDashboard
msg_ok "Started ESPHome" msg_ok "Started ESPHome"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
exit exit
} }
start start
@@ -78,5 +55,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:6052${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:6052${CL}"
+29 -50
View File
@@ -1,64 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: MickLesk (Canbiz) # Author: MickLesk (Canbiz)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://evcc.io/en/
function header_info { # App Default Values
clear
cat <<"EOF"
___ _ ____________
/ _ \ | / / ___/ ___/
/ __/ |/ / /__/ /__
\___/|___/\___/\___/
EOF
}
header_info
echo -e "Loading..."
APP="evcc" APP="evcc"
var_disk="4" var_tags="solar;ev;automation"
var_cpu="1" var_cpu="1"
var_ram="1024" var_ram="1024"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /etc/apt/sources.list.d/evcc-stable.list ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating evcc LXC" check_container_resources
apt update &>/dev/null if [[ ! -f /etc/apt/sources.list.d/evcc-stable.list ]]; then
apt --only-upgrade install -y evcc &>/dev/null msg_error "No ${APP} Installation Found!"
msg_ok "Updated Successfully" exit
exit fi
msg_info "Updating evcc LXC"
apt update &>/dev/null
apt --only-upgrade install -y evcc &>/dev/null
msg_ok "Updated Successfully"
exit
} }
start start
@@ -66,5 +44,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} Setup should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:7070${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7070${CL}"
+53 -72
View File
@@ -1,87 +1,67 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster) | Co-Author: Scorpoon
# Co-Author: Scorpoon # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# License: MIT # Source: https://github.com/revenz/Fenrus
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info { # App Default Values
clear
cat <<"EOF"
______
/ ____/__ ____ _______ _______
/ /_ / _ \/ __ \/ ___/ / / / ___/
/ __/ / __/ / / / / / /_/ (__ )
/_/ \___/_/ /_/_/ \__,_/____/
EOF
}
header_info
echo -e "Loading..."
APP="Fenrus" APP="Fenrus"
var_disk="4" var_tags="dashboard"
var_cpu="1" var_cpu="1"
var_ram="512" var_ram="512"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/${APP} ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_error "There is currently no update path available." check_container_resources
exit if [[ ! -d /opt/${APP} ]]; then
msg_info "Updating ${APP}" msg_error "No ${APP} Installation Found!"
systemctl stop ${APP} exit
git clone https://github.com/revenz/Fenrus.git fi
cd Fenrus || exit msg_error "There is currently no update path available."
gitVersionNumber=$(git rev-parse HEAD) exit
msg_info "Updating ${APP}"
systemctl stop ${APP}
git clone https://github.com/revenz/Fenrus.git
cd Fenrus || exit
gitVersionNumber=$(git rev-parse HEAD)
if [[ "${gitVersionNumber}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then if [[ "${gitVersionNumber}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
mkdir /opt/fenrus-data-backup mkdir /opt/fenrus-data-backup
cp -r "/opt/${APP}/data/" /opt/fenrus-data-backup/data cp -r "/opt/${APP}/data/" /opt/fenrus-data-backup/data
if [[ ! -d /opt/fenrus-data-backup/data ]]; then msg_error "Backup of data folder failed! exiting..."; rm -r /opt/fenrus-data-backup/; exit; fi if [[ ! -d /opt/fenrus-data-backup/data ]]; then
export DOTNET_CLI_TELEMETRY_OPTOUT=1 msg_error "Backup of data folder failed! exiting..."
dotnet publish -c Release -o "/opt/${APP}/" Fenrus.csproj rm -r /opt/fenrus-data-backup/
cp -r /opt/fenrus-data-backup/data/ "/opt/${APP}/" exit
echo "${gitVersionNumber}" >"/opt/${APP}_version.txt" fi
rm -r /opt/fenrus-data-backup/ export DOTNET_CLI_TELEMETRY_OPTOUT=1
msg_ok "Updated $APP" dotnet publish -c Release -o "/opt/${APP}/" Fenrus.csproj
else cp -r /opt/fenrus-data-backup/data/ "/opt/${APP}/"
msg_ok "No update required. ${APP} is already up to date" echo "${gitVersionNumber}" >"/opt/${APP}_version.txt"
fi rm -r /opt/fenrus-data-backup/
cd .. msg_ok "Updated $APP"
rm -r Fenrus/ else
msg_ok "No update required. ${APP} is already up to date"
fi
cd ..
rm -r Fenrus/
systemctl start ${APP} systemctl start ${APP}
exit exit
} }
start start
@@ -89,5 +69,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:5000${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"
+30 -52
View File
@@ -1,65 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://fhem.de/
function header_info { # App Default Values
clear APP="FHEM"
cat <<"EOF" var_tags="automation"
________
/ ____/ /_ ___ ____ ___
/ /_ / __ \/ _ \/ __ `__ \
/ __/ / / / / __/ / / / / /
/_/ /_/ /_/\___/_/ /_/ /_/
EOF
}
header_info
echo -e "Loading..."
APP="Fhem"
var_disk="8"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="8"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /etc/systemd/system/fhem.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating ${APP} LXC" check_container_resources
apt-get update &>/dev/null if [[ ! -f /etc/systemd/system/fhem.service ]]; then
apt-get -y upgrade &>/dev/null msg_error "No ${APP} Installation Found!"
msg_ok "Updated Successfully" exit
exit fi
msg_info "Updating ${APP} LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated Successfully"
exit
} }
start start
@@ -67,5 +44,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:8083${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8083${CL}"
+84
View File
@@ -0,0 +1,84 @@
#!/usr/bin/env bash
source ./misc/build.func
# Copyright (c) 2021-2025 community-scripts ORG
# Author: quantumryuu
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# Source: https://firefly-iii.org/
# App Default Values
APP="Firefly"
var_tags="finance"
var_cpu="1"
var_ram="1024"
var_disk="2"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/firefly ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/firefly-iii/firefly-iii/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Apache2"
systemctl stop apache2
msg_ok "Stopped Apache2"
msg_info "Updating ${APP} to v${RELEASE}"
cp /opt/firefly/.env /opt/.env
cp -r /opt/firefly/storage /opt/storage
rm -rf /opt/firefly/*
cd /opt
wget -q "https://github.com/firefly-iii/firefly-iii/releases/download/v${RELEASE}/FireflyIII-v${RELEASE}.tar.gz"
tar -xzf FireflyIII-v${RELEASE}.tar.gz -C /opt/firefly --exclude='storage'
cd /opt/firefly
composer install --no-dev --no-interaction &>/dev/null
php artisan migrate --seed --force &>/dev/null
php artisan firefly:decrypt-all &>/dev/null
php artisan cache:clear &>/dev/null
php artisan view:clear &>/dev/null
php artisan firefly:upgrade-database &>/dev/null
php artisan firefly:laravel-passport-keys &>/dev/null
chown -R www-data:www-data /opt/firefly
chmod -R 775 /opt/firefly/storage
echo "${RELEASE}" >"/opt/${APP}_version.txt"
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Starting Apache2"
systemctl start apache2
msg_ok "Started Apache2"
msg_info "Cleaning up"
rm -rf /opt/FireflyIII-v${RELEASE}.tar.gz
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}"
+36 -59
View File
@@ -1,70 +1,50 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster) | Co-Author: remz1337
# Co-Author: remz1337 # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# License: MIT # Source: https://github.com/FlareSolverr/FlareSolverr
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info { # App Default Values
clear
cat <<"EOF"
________ _____ __
/ ____/ /___ _________ / ___/____ / / _____ __________
/ /_ / / __ `/ ___/ _ \\__ \/ __ \/ / | / / _ \/ ___/ ___/
/ __/ / / /_/ / / / __/__/ / /_/ / /| |/ / __/ / / /
/_/ /_/\__,_/_/ \___/____/\____/_/ |___/\___/_/ /_/
EOF
}
header_info
echo -e "Loading..."
APP="FlareSolverr" APP="FlareSolverr"
var_disk="4" var_tags="proxy"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /etc/systemd/system/flaresolverr.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "SET RESOURCES" "Please set the resources in your ${APP} LXC to ${var_cpu}vCPU and ${var_ram}RAM for the build process before continuing" 10 75 check_container_resources
if [[ ! -f /etc/systemd/system/flaresolverr.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(wget -q https://github.com/FlareSolverr/FlareSolverr/releases/latest -O - | grep "title>Release" | cut -d " " -f 4) RELEASE=$(wget -q https://github.com/FlareSolverr/FlareSolverr/releases/latest -O - | grep "title>Release" | cut -d " " -f 4)
if [[ ! -d /opt/flaresolverr ]]; then msg_error "No ${APP} Installation Found!"; exit; fi if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Updating $APP LXC" msg_info "Updating $APP LXC"
systemctl stop flaresolverr systemctl stop flaresolverr
cd /opt/flaresolverr wget -q https://github.com/FlareSolverr/FlareSolverr/releases/download/$RELEASE/flaresolverr_linux_x64.tar.gz
git pull tar -xzf flaresolverr_linux_x64.tar.gz -C /opt
systemctl start flaresolverr rm flaresolverr_linux_x64.tar.gz
msg_ok "Updated $APP LXC" systemctl start flaresolverr
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP LXC"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit exit
} }
@@ -72,10 +52,7 @@ start
build_container build_container
description description
msg_info "Setting Container to Normal Resources"
pct set $CTID -memory 512
pct set $CTID -cores 1
msg_ok "Set Container to Normal Resources"
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:8191${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8191${CL}"
+29 -56
View File
@@ -1,77 +1,50 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://flowiseai.com/
function header_info { # App Default Values
clear
cat <<"EOF"
________ _ ___ ____
/ ____/ /___ _ __(_)_______ / | / _/
/ /_ / / __ \ | /| / / / ___/ _ \/ /| | / /
/ __/ / / /_/ / |/ |/ / (__ ) __/ ___ |_/ /
/_/ /_/\____/|__/|__/_/____/\___/_/ |_/___/
EOF
}
header_info
echo -e "Loading..."
APP="FlowiseAI" APP="FlowiseAI"
var_tags="low-code"
var_disk="10" var_disk="10"
var_cpu="4" var_cpu="4"
var_ram="4096" var_ram="4096"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /etc/systemd/system/flowise.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "SET RESOURCES" "Please set the resources in your ${APP} LXC to ${var_cpu}vCPU and ${var_ram}RAM for the build process before continuing" 10 75 check_container_resources
msg_info "Updating ${APP}" if [[ ! -f /etc/systemd/system/flowise.service ]]; then
systemctl stop flowise msg_error "No ${APP} Installation Found!"
npm install -g flowise --upgrade exit
systemctl start flowise fi
msg_ok "Updated ${APP}" msg_info "Updating ${APP}"
exit systemctl stop flowise
npm install -g flowise --upgrade
systemctl start flowise
msg_ok "Updated ${APP}"
exit
} }
start start
build_container build_container
description description
msg_info "Setting Container to Normal Resources"
pct set $CTID -memory 2048
pct set $CTID -cores 2
msg_ok "Set Container to Normal Resources"
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:3000${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
+43 -66
View File
@@ -1,83 +1,59 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://forgejo.org/
function header_info { # App Default Values
clear
cat <<"EOF"
______ _
/ ____/___ _________ ___ (_)___
/ /_ / __ \/ ___/ __ `/ _ \ / / __ \
/ __/ / /_/ / / / /_/ / __/ / / /_/ /
/_/ \____/_/ \__, /\___/_/ /\____/
/____/ /___/
EOF
}
header_info
echo -e "Loading..."
APP="Forgejo" APP="Forgejo"
var_disk="10" var_tags="git"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="10"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/forgejo ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Stopping ${APP}" check_container_resources
systemctl stop forgejo if [[ ! -d /opt/forgejo ]]; then
msg_ok "Stopped ${APP}" msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping ${APP}"
systemctl stop forgejo
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP}" msg_info "Updating ${APP}"
RELEASE=$(curl -s https://codeberg.org/api/v1/repos/forgejo/forgejo/releases/latest | grep -oP '"tag_name":\s*"\K[^"]+' | sed 's/^v//') RELEASE=$(curl -s https://codeberg.org/api/v1/repos/forgejo/forgejo/releases/latest | grep -oP '"tag_name":\s*"\K[^"]+' | sed 's/^v//')
wget -qO forgejo-$RELEASE-linux-amd64 "https://codeberg.org/forgejo/forgejo/releases/download/v${RELEASE}/forgejo-${RELEASE}-linux-arm64" wget -qO forgejo-$RELEASE-linux-amd64 "https://codeberg.org/forgejo/forgejo/releases/download/v${RELEASE}/forgejo-${RELEASE}-linux-amd64"
rm -rf /opt/forgejo/* rm -rf /opt/forgejo/*
cp -r forgejo-$RELEASE-linux-arm64 /opt/forgejo/forgejo-$RELEASE-linux-arm64 cp -r forgejo-$RELEASE-linux-amd64 /opt/forgejo/forgejo-$RELEASE-linux-amd64
chmod +x /opt/forgejo/forgejo-$RELEASE-linux-arm64 chmod +x /opt/forgejo/forgejo-$RELEASE-linux-amd64
ln -sf /opt/forgejo/forgejo-$RELEASE-linux-arm64 /usr/local/bin/forgejo ln -sf /opt/forgejo/forgejo-$RELEASE-linux-amd64 /usr/local/bin/forgejo
msg_ok "Updated ${APP}" msg_ok "Updated ${APP}"
msg_info "Cleaning" msg_info "Cleaning"
rm -rf forgejo-$RELEASE-linux-arm64 rm -rf forgejo-$RELEASE-linux-amd64
msg_ok "Cleaned" msg_ok "Cleaned"
msg_info "Starting ${APP}" msg_info "Starting ${APP}"
systemctl start forgejo systemctl start forgejo
msg_ok "Started ${APP}" msg_ok "Started ${APP}"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
exit exit
} }
start start
@@ -85,5 +61,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:3000${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
+25 -57
View File
@@ -1,60 +1,37 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Authors: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://frigate.video/
function header_info { # App Default Values
clear
cat <<"EOF"
______ _ __
/ ____/____(_)___ _____ _/ /____
/ /_ / ___/ / __ `/ __ `/ __/ _ \
/ __/ / / / / /_/ / /_/ / /_/ __/
/_/ /_/ /_/\__, /\__,_/\__/\___/
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Frigate" APP="Frigate"
var_disk="20" var_tags="nvr"
var_cpu="4" var_cpu="4"
var_ram="4096" var_ram="4096"
var_disk="20"
var_os="debian" var_os="debian"
var_version="11" var_version="11"
var_unprivileged="0"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="0"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
if [[ ! -f /etc/systemd/system/frigate.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/frigate.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "To update Frigate, create a new container and transfer your configuration." msg_error "To update Frigate, create a new container and transfer your configuration."
exit exit
} }
@@ -63,16 +40,7 @@ start
build_container build_container
description description
msg_info "Setting Container to Normal Resources"
STATUS=$(pct status $CTID | grep -oP '(?<=status: ).*')
if [ "$STATUS" == "running" ]; then
pct set $CTID -memory 1024
else
echo -e " ⚠️ ${RD}Container is not running. Will need to change memory to 1024MB manually.${CL}"
fi
msg_ok "Set Normal Resources"
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:5000${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "go2rtc should be reachable by going to the following URL. echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"
${BL}http://${IP}:1984${CL} \n"
+35 -58
View File
@@ -1,71 +1,47 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster) | Co-Author: Rogue-King
# Co-author: Rogue-King # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# License: MIT # Source: https://about.gitea.com/
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info { # App Default Values
clear
cat <<"EOF"
______ _ __
/ ____/(_)/ /____ ____ _
/ / __// // __/ _ \/ __ /
/ /_/ // // /_/ __/ /_/ /
\____//_/ \__/\___/\__,_/
EOF
}
header_info
echo -e "Loading..."
APP="Gitea" APP="Gitea"
var_disk="8" var_tags="git"
var_cpu="1" var_cpu="1"
var_ram="1024" var_ram="1024"
var_disk="8"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /usr/local/bin/gitea ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
RELEASE=$(wget -q https://github.com/go-gitea/gitea/releases/latest -O - | grep "title>Release" | cut -d " " -f 4 | sed 's/^v//') check_container_resources
msg_info "Updating $APP to ${RELEASE}" if [[ ! -f /usr/local/bin/gitea ]]; then
wget -q https://github.com/go-gitea/gitea/releases/download/v$RELEASE/gitea-$RELEASE-linux-arm64 msg_error "No ${APP} Installation Found!"
systemctl stop gitea exit
rm -rf /usr/local/bin/gitea fi
mv gitea* /usr/local/bin/gitea RELEASE=$(wget -q https://github.com/go-gitea/gitea/releases/latest -O - | grep "title>Release" | cut -d " " -f 4 | sed 's/^v//')
chmod +x /usr/local/bin/gitea msg_info "Updating $APP to ${RELEASE}"
systemctl start gitea wget -q https://github.com/go-gitea/gitea/releases/download/v$RELEASE/gitea-$RELEASE-linux-amd64
msg_ok "Updated $APP Successfully" systemctl stop gitea
exit rm -rf /usr/local/bin/gitea
mv gitea* /usr/local/bin/gitea
chmod +x /usr/local/bin/gitea
systemctl start gitea
msg_ok "Updated $APP Successfully"
exit
} }
start start
@@ -73,5 +49,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:3000${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
+72
View File
@@ -0,0 +1,72 @@
#!/usr/bin/env bash
source ./misc/build.func
# Copyright (c) 2021-2025 community-scripts ORG
# Author: kristocopani
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# Source: https://github.com/glanceapp/glance
# App Default Values
APP="Glance"
var_tags="dashboard"
var_cpu="1"
var_ram="512"
var_disk="2"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/glance.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/glanceapp/glance/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Service"
systemctl stop glance
msg_ok "Stopped Service"
msg_info "Updating ${APP} to v${RELEASE}"
cd /opt
wget -q https://github.com/glanceapp/glance/releases/download/v${RELEASE}/glance-linux-amd64.tar.gz
rm -rf /opt/glance/glance
tar -xzf glance-linux-amd64.tar.gz -C /opt/glance
echo "${RELEASE}" >"/opt/${APP}_version.txt"
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Starting Service"
systemctl start glance
msg_ok "Started Service"
msg_info "Cleaning up"
rm -rf /opt/glance-linux-amd64.tar.gz
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}:8080${CL}"
+51
View File
@@ -0,0 +1,51 @@
#!/usr/bin/env bash
source ./misc/build.func
# Copyright (c) 2021-2025 community-scripts ORG
# Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# App Default Values
APP="GLPI"
var_tags="asset-management;foss"
var_cpu="2"
var_ram="2048"
var_disk="10"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/glpi ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/glpi-project/glpi/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_error "Ther is currently no automatic update function for ${APP}."
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}:80${CL}"
+33 -56
View File
@@ -1,70 +1,46 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://github.com/AlexxIT/go2rtc
function header_info { # App Default Values
clear
cat <<"EOF"
___ __
____ _____ |__ \ _____/ /______
/ __ `/ __ \__/ // ___/ __/ ___/
/ /_/ / /_/ / __// / / /_/ /__
\__, /\____/____/_/ \__/\___/
/____/
EOF
}
header_info
echo -e "Loading..."
APP="go2rtc" APP="go2rtc"
var_disk="4" var_tags="recorder;video"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/go2rtc ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating $APP" check_container_resources
systemctl stop go2rtc if [[ ! -d /opt/go2rtc ]]; then
cd /opt/go2rtc msg_error "No ${APP} Installation Found!"
rm go2rtc_linux_amd64 exit
wget -q https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_arm64 fi
chmod +x go2rtc_linux_arm64 msg_info "Updating $APP"
systemctl start go2rtc systemctl stop go2rtc
msg_ok "Updated $APP" cd /opt/go2rtc
exit rm go2rtc_linux_amd64
wget -q https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_amd64
chmod +x go2rtc_linux_amd64
systemctl start go2rtc
msg_ok "Updated $APP"
exit
} }
start start
@@ -72,5 +48,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:1984${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:1984${CL}"
+26 -48
View File
@@ -1,62 +1,39 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://github.com/Forceu/Gokapi
function header_info { # App Default Values
clear
cat <<"EOF"
______ __ _
/ ____/___ / /______ _____ (_)
/ / __/ __ \/ //_/ __ `/ __ \/ /
/ /_/ / /_/ / ,< / /_/ / /_/ / /
\____/\____/_/|_|\__,_/ .___/_/
/_/
EOF
}
header_info
echo -e "Loading..."
APP="Gokapi" APP="Gokapi"
var_disk="4" var_tags="file;sharing"
var_cpu="1" var_cpu="1"
var_ram="512" var_ram="512"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/gokapi ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_error "There is currently no update path available." check_container_resources
exit if [[ ! -d /opt/gokapi ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "There is currently no update path available."
exit
} }
start start
@@ -64,5 +41,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} Setup should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:53842/setup${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:53842/setup${CL}"
+45 -67
View File
@@ -1,84 +1,61 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://gotify.net/
function header_info { # App Default Values
clear
cat <<"EOF"
______ __ _ ____
/ ____/___ / /_(_) __/_ __
/ / __/ __ \/ __/ / /_/ / / /
/ /_/ / /_/ / /_/ / __/ /_/ /
\____/\____/\__/_/_/ \__, /
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Gotify" APP="Gotify"
var_disk="2" var_tags="notification"
var_cpu="1" var_cpu="1"
var_ram="512" var_ram="512"
var_disk="2"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/gotify ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
check_container_resources
if [[ ! -d /opt/gotify ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/gotify/server/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') RELEASE=$(curl -s https://api.github.com/repos/gotify/server/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping ${APP}" msg_info "Stopping ${APP}"
systemctl stop gotify systemctl stop gotify
msg_ok "Stopped ${APP}" msg_ok "Stopped ${APP}"
msg_info "Updating ${APP} to ${RELEASE}" msg_info "Updating ${APP} to ${RELEASE}"
cd /opt/gotify cd /opt/gotify
wget -q https://github.com/gotify/server/releases/download/v${RELEASE}/gotify-linux-amd64.zip wget -q https://github.com/gotify/server/releases/download/v${RELEASE}/gotify-linux-amd64.zip
unzip -oq gotify-linux-amd64.zip unzip -oq gotify-linux-amd64.zip
rm -rf gotify-linux-amd64.zip rm -rf gotify-linux-amd64.zip
chmod +x gotify-linux-amd64 chmod +x gotify-linux-amd64
echo "${RELEASE}" >/opt/${APP}_version.txt echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}" msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Starting ${APP}" msg_info "Starting ${APP}"
systemctl start gotify systemctl start gotify
msg_ok "Started ${APP}" msg_ok "Started ${APP}"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
else else
msg_ok "No update required. ${APP} is already at ${RELEASE}" msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi fi
exit exit
} }
start start
@@ -86,5 +63,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP} ${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
+29 -51
View File
@@ -1,65 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://grafana.com/
function header_info { # App Default Values
clear
cat <<"EOF"
______ ____
/ ____/________ _/ __/___ _____ ____ _
/ / __/ ___/ __ / /_/ __ / __ \/ __ /
/ /_/ / / / /_/ / __/ /_/ / / / / /_/ /
\____/_/ \__,_/_/ \__,_/_/ /_/\__,_/
EOF
}
header_info
echo -e "Loading..."
APP="Grafana" APP="Grafana"
var_disk="2" var_tags="monitoring;visualization"
var_cpu="1" var_cpu="1"
var_ram="512" var_ram="512"
var_disk="2"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /etc/apt/sources.list.d/grafana.list ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating ${APP}" check_container_resources
apt-get update &>/dev/null if [[ ! -f /etc/apt/sources.list.d/grafana.list ]]; then
apt-get -y upgrade &>/dev/null msg_error "No ${APP} Installation Found!"
msg_ok "Updated Successfully" exit
exit fi
msg_info "Updating ${APP}"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated Successfully"
exit
} }
start start
@@ -67,5 +44,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:3000${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
+80
View File
@@ -0,0 +1,80 @@
#!/usr/bin/env bash
source ./misc/build.func
# Source: https://github.com/gristlabs/grist-core
# Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# App Default Values
APP="Grist"
var_tags="database;spreadsheet"
var_cpu="1"
var_ram="2048"
var_disk="4"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/grist ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/gristlabs/grist-core/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping ${APP} Service"
systemctl stop grist
msg_ok "Stopped ${APP} Service"
msg_info "Updating ${APP} to v${RELEASE}"
cd /opt
rm -rf grist_bak
mv grist grist_bak
wget -q https://github.com/gristlabs/grist-core/archive/refs/tags/v${RELEASE}.zip
unzip -q v$RELEASE.zip
mv grist-core-${RELEASE} grist
cp -n /opt/grist_bak/.env /opt/grist/.env
cd grist
yarn install >/dev/null 2>&1
yarn run build:prod >/dev/null 2>&1
yarn run install:python >/dev/null 2>&1
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Starting ${APP} Service"
systemctl start grist
msg_ok "Started ${APP} Service"
msg_info "Cleaning up"
rm -rf /opt/v$RELEASE.zip
msg_ok "Cleaned"
msg_ok "Updated Successfully!\n"
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}Grist: http://${IP}:8484${CL}"
+39 -61
View File
@@ -1,75 +1,52 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://grocy.info/
function header_info { # App Default Values
clear
cat <<"EOF"
____ __________ _______ __
/ __ / ___/ __ \/ ___/ / / /
/ /_/ / / / /_/ / /__/ /_/ /
\__, /_/ \____/\___/\__, /
/____/ /____/
EOF
}
header_info
echo -e "Loading..."
APP="grocy" APP="grocy"
var_disk="2" var_tags="grocery;household"
var_cpu="1" var_cpu="1"
var_ram="512" var_ram="512"
var_disk="2"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /etc/apache2/sites-available/grocy.conf ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
php_version=$(php -v | head -n 1 | awk '{print $2}') check_container_resources
if [[ ! $php_version == "8.3"* ]]; then if [[ ! -f /etc/apache2/sites-available/grocy.conf ]]; then
msg_info "Updating PHP" msg_error "No ${APP} Installation Found!"
curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg exit
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ bookworm main" >/etc/apt/sources.list.d/php.list fi
apt-get update php_version=$(php -v | head -n 1 | awk '{print $2}')
apt-get install -y php8.3 php8.3-cli php8.3-{bz2,curl,mbstring,intl,sqlite3,fpm,gd,zip,xml} if [[ ! $php_version == "8.3"* ]]; then
systemctl reload apache2 msg_info "Updating PHP"
apt autoremove curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
msg_ok "Updated PHP" echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ bookworm main" >/etc/apt/sources.list.d/php.list
fi apt-get update
msg_info "Updating ${APP}" apt-get install -y php8.3 php8.3-cli php8.3-{bz2,curl,mbstring,intl,sqlite3,fpm,gd,zip,xml}
bash /var/www/html/update.sh systemctl reload apache2
msg_ok "Updated Successfully" apt autoremove
exit msg_ok "Updated PHP"
fi
msg_info "Updating ${APP}"
bash /var/www/html/update.sh
msg_ok "Updated Successfully"
exit
} }
start start
@@ -77,5 +54,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
+41 -64
View File
@@ -1,82 +1,58 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://github.com/juanfont/headscale
function header_info { # App Default Values
clear
cat <<"EOF"
__ __ __ __
/ / / /__ ____ _____/ /_____________ _/ /__
/ /_/ / _ \/ __ `/ __ / ___/ ___/ __ `/ / _ \
/ __ / __/ /_/ / /_/ (__ ) /__/ /_/ / / __/
/_/ /_/\___/\__,_/\__,_/____/\___/\__,_/_/\___/
EOF
}
header_info
echo -e "Loading..."
APP="Headscale" APP="Headscale"
var_disk="2" var_tags="tailscale"
var_cpu="1" var_cpu="1"
var_ram="512" var_ram="512"
var_disk="2"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /etc/headscale ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
check_container_resources
if [[ ! -d /etc/headscale ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/juanfont/headscale/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Stopping ${APP}"
systemctl stop headscale
msg_ok "Stopped ${APP}"
RELEASE=$(curl -s https://api.github.com/repos/juanfont/headscale/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') msg_info "Updating $APP to v${RELEASE}"
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then wget -q https://github.com/juanfont/headscale/releases/download/v${RELEASE}/headscale_${RELEASE}_linux_amd64.deb
msg_info "Stopping ${APP}" dpkg -i headscale_${RELEASE}_linux_amd64.deb
systemctl stop headscale rm headscale_${RELEASE}_linux_amd64.deb
msg_ok "Stopped ${APP}" echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to ${RELEASE}"
msg_info "Updating $APP to v${RELEASE}" msg_info "Starting ${APP}"
wget -q https://github.com/juanfont/headscale/releases/download/v${RELEASE}/headscale_${RELEASE}_linux_arm64.deb systemctl start headscale
dpkg -i headscale_${RELEASE}_linux_arm64.deb msg_ok "Started ${APP}"
rm headscale_${RELEASE}_linux_arm64.deb msg_ok "Updated Successfully"
echo "${RELEASE}" >/opt/${APP}_version.txt else
msg_ok "Updated $APP to ${RELEASE}" msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
msg_info "Starting ${APP}" exit
systemctl start headscale
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
} }
start start
@@ -84,3 +60,4 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
+64 -91
View File
@@ -1,105 +1,77 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://heimdall.site/
function header_info { # App Default Values
clear
cat <<"EOF"
_ _ _ _ ___ _ _ _
/\ /\___(_)_ __ ___ __| | __ _| | | / \__ _ ___| |__ | |__ ___ __ _ _ __ __| |
/ /_/ / _ \ | '_ ` _ \ / _` |/ _` | | | / /\ / _` / __| '_ \| '_ \ / _ \ / _` | '__/ _` |
/ __ / __/ | | | | | | (_| | (_| | | | / /_// (_| \__ \ | | | |_) | (_) | (_| | | | (_| |
\/ /_/ \___|_|_| |_| |_|\__,_|\__,_|_|_| /___,' \__,_|___/_| |_|_.__/ \___/ \__,_|_| \__,_|
EOF
}
header_info
echo -e "Loading..."
APP="Heimdall-Dashboard" APP="Heimdall-Dashboard"
var_disk="2" var_tags="dashboard"
var_cpu="1" var_cpu="1"
var_ram="512" var_ram="512"
var_disk="2"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/Heimdall ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" | awk '/tag_name/{print $4;exit}' FS='[""]') check_container_resources
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then if [[ ! -d /opt/Heimdall ]]; then
msg_info "Stopping ${APP}" msg_error "No ${APP} Installation Found!"
systemctl stop heimdall exit
sleep 1 fi
msg_ok "Stopped ${APP}" RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" | awk '/tag_name/{print $4;exit}' FS='[""]')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Backing up Data" msg_info "Stopping ${APP}"
cp -R /opt/Heimdall/database database-backup systemctl stop heimdall
cp -R /opt/Heimdall/public public-backup sleep 1
sleep 1 msg_ok "Stopped ${APP}"
msg_ok "Backed up Data" msg_info "Backing up Data"
cp -R /opt/Heimdall/database database-backup
msg_info "Updating Heimdall Dashboard to ${RELEASE}" cp -R /opt/Heimdall/public public-backup
wget -q https://github.com/linuxserver/Heimdall/archive/${RELEASE}.tar.gz sleep 1
tar xzf ${RELEASE}.tar.gz msg_ok "Backed up Data"
VER=$(curl -s https://api.github.com/repos/linuxserver/Heimdall/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') msg_info "Updating Heimdall Dashboard to ${RELEASE}"
cp -R Heimdall-${VER}/* /opt/Heimdall wget -q https://github.com/linuxserver/Heimdall/archive/${RELEASE}.tar.gz
cd /opt/Heimdall tar xzf ${RELEASE}.tar.gz
apt-get install -y composer &>/dev/null VER=$(curl -s https://api.github.com/repos/linuxserver/Heimdall/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
COMPOSER_ALLOW_SUPERUSER=1 composer dump-autoload &>/dev/null cp -R Heimdall-${VER}/* /opt/Heimdall
echo "${RELEASE}" >/opt/${APP}_version.txt cd /opt/Heimdall
msg_ok "Updated Heimdall Dashboard to ${RELEASE}" apt-get install -y composer &>/dev/null
COMPOSER_ALLOW_SUPERUSER=1 composer dump-autoload &>/dev/null
msg_info "Restoring Data" echo "${RELEASE}" >/opt/${APP}_version.txt
cd ~ msg_ok "Updated Heimdall Dashboard to ${RELEASE}"
cp -R database-backup/* /opt/Heimdall/database msg_info "Restoring Data"
cp -R public-backup/* /opt/Heimdall/public cd ~
sleep 1 cp -R database-backup/* /opt/Heimdall/database
msg_ok "Restored Data" cp -R public-backup/* /opt/Heimdall/public
sleep 1
msg_info "Cleanup" msg_ok "Restored Data"
rm -rf {${RELEASE}.tar.gz,Heimdall-${VER},public-backup,database-backup,Heimdall} msg_info "Cleanup"
sleep 1 rm -rf {${RELEASE}.tar.gz,Heimdall-${VER},public-backup,database-backup,Heimdall}
msg_ok "Cleaned" sleep 1
msg_ok "Cleaned"
msg_info "Starting ${APP}" msg_info "Starting ${APP}"
systemctl start heimdall.service systemctl start heimdall.service
sleep 2 sleep 2
msg_ok "Started ${APP}" msg_ok "Started ${APP}"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
else else
msg_ok "No update required. ${APP} is already at ${RELEASE}." msg_ok "No update required. ${APP} is already at ${RELEASE}."
fi fi
exit exit
} }
start start
@@ -107,5 +79,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:7990${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7990${CL}"
+24 -46
View File
@@ -1,62 +1,39 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://www.hivemq.com/
function header_info { # App Default Values
clear
cat <<"EOF"
__ ___ __ _______ ____________
/ / / (_) _____ / |/ / __ \ / ____/ ____/
/ /_/ / / | / / _ \/ /|_/ / / / / / / / __/
/ __ / /| |/ / __/ / / / /_/ / / /___/ /___
/_/ /_/_/ |___/\___/_/ /_/\___\_\ \____/_____/
EOF
}
header_info
echo -e "Loading..."
APP="HiveMQ" APP="HiveMQ"
var_disk="4" var_tags="mqtt"
var_cpu="1" var_cpu="1"
var_ram="1024" var_ram="1024"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_error "There is currently no update path available." check_container_resources
exit if [[ ! -d /var ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "There is currently no update path available."
exit
} }
start start
@@ -64,3 +41,4 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
+82
View File
@@ -0,0 +1,82 @@
#!/usr/bin/env bash
source ./misc/build.func
# Copyright (c) 2021-2025 tteck
# Author: MickLesk (Canbiz) & vhsdream
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# Source: https://hoarder.app/
# App Default Values
APP="Hoarder"
var_tags="bookmark"
var_cpu="2"
var_ram="4096"
var_disk="8"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/hoarder ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/hoarder-app/hoarder/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
PREV_RELEASE=$(cat /opt/${APP}_version.txt)
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "${PREV_RELEASE}" ]]; then
msg_info "Stopping Services"
systemctl stop hoarder-web hoarder-workers hoarder-browser
msg_ok "Stopped Services"
msg_info "Updating ${APP} to v${RELEASE}"
cd /opt
mv /opt/hoarder/.env /opt/.env
rm -rf /opt/hoarder
wget -q "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip"
unzip -q v${RELEASE}.zip
mv hoarder-${RELEASE} /opt/hoarder
cd /opt/hoarder/apps/web
pnpm install --frozen-lockfile &>/dev/null
pnpm exec next build --experimental-build-mode compile &>/dev/null
cp -r /opt/hoarder/apps/web/.next/standalone/apps/web/server.js /opt/hoarder/apps/web
cd /opt/hoarder/apps/workers
pnpm install --frozen-lockfile &>/dev/null
export DATA_DIR=/opt/hoarder_data
cd /opt/hoarder/packages/db
pnpm migrate &>/dev/null
mv /opt/.env /opt/hoarder/.env
sed -i "s/SERVER_VERSION=${PREV_RELEASE}/SERVER_VERSION=${RELEASE}/" /opt/hoarder/.env
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Starting Services"
systemctl start hoarder-browser hoarder-workers hoarder-web
msg_ok "Started Services"
msg_info "Cleaning up"
rm -R /opt/v${RELEASE}.zip
echo "${RELEASE}" >/opt/${APP}_version.txt
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}"
+66 -60
View File
@@ -1,74 +1,79 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster) | Co-Author: MickLesk (Canbiz)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://homarr.dev/
function header_info { # App Default Values
clear
cat <<"EOF"
__ __
/ / / /___ ____ ___ ____ ___________
/ /_/ / __ \/ __ `__ \/ __ `/ ___/ ___/
/ __ / /_/ / / / / / / /_/ / / / /
/_/ /_/\____/_/ /_/ /_/\__,_/_/ /_/
EOF
}
header_info
echo -e "Loading..."
APP="Homarr" APP="Homarr"
var_disk="8" var_tags="arr;dashboard"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="8"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/homarr ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating $APP (Patience)" check_container_resources
systemctl stop homarr if [[ ! -d /opt/homarr ]]; then
cd /opt/homarr msg_error "No ${APP} Installation Found!"
if ! git pull; then exit
echo "Already up to date." fi
systemctl start homarr RELEASE=$(curl -s https://api.github.com/repos/ajnart/homarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
echo "No update required." if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Services"
systemctl stop homarr
msg_ok "Services Stopped"
msg_info "Backing up Data"
mkdir -p /opt/homarr-data-backup
cp /opt/homarr/.env /opt/homarr-data-backup/.env
cp /opt/homarr/database/db.sqlite /opt/homarr-data-backup/db.sqlite
cp -r /opt/homarr/data/configs /opt/homarr-data-backup/configs
msg_ok "Backed up Data"
msg_info "Updating ${APP} to ${RELEASE}"
wget -q "https://github.com/ajnart/homarr/archive/refs/tags/v${RELEASE}.zip"
unzip -q v${RELEASE}.zip
rm -rf v${RELEASE}.zip
rm -rf /opt/homarr
mv homarr-${RELEASE} /opt/homarr
mv /opt/homarr-data-backup/.env /opt/homarr/.env
cd /opt/homarr
yarn install &>/dev/null
yarn build &>/dev/null
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP}"
msg_info "Restoring Data"
rm -rf /opt/homarr/data/configs
mv /opt/homarr-data-backup/configs /opt/homarr/data/configs
mv /opt/homarr-data-backup/db.sqlite /opt/homarr/database/db.sqlite
yarn db:migrate &>/dev/null
rm -rf /opt/homarr-data-backup
msg_ok "Restored Data"
msg_info "Starting Services"
systemctl start homarr
msg_ok "Started Services"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit exit
fi
yarn install
yarn build
systemctl start homarr
msg_ok "Updated $APP"
exit
} }
start start
@@ -76,5 +81,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:3000${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
+24 -47
View File
@@ -1,58 +1,33 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://www.home-assistant.io/
function header_info { # App Default Values
clear
cat <<"EOF"
_ _ _ _ ___
/\ /\___ _ __ ___ ___ /_\ ___ ___(_)___| |_ __ _ _ __ | |_ / __\___ _ __ ___
/ /_/ / _ \| '_ ` _ \ / _ \ //_\\/ __/ __| / __| __/ _` | '_ \| __| / / / _ \| '__/ _ \
/ __ / (_) | | | | | | __/ / _ \__ \__ \ \__ \ || (_| | | | | |_ / /__| (_) | | | __/
\/ /_/ \___/|_| |_| |_|\___| \_/ \_/___/___/_|___/\__\__,_|_| |_|\__| \____/\___/|_| \___|
EOF
}
header_info
echo -e "Loading..."
APP="Home Assistant-Core" APP="Home Assistant-Core"
var_disk="8" var_tags="automation;smarthome"
var_cpu="2" var_cpu="2"
var_ram="1024" var_ram="1024"
var_disk="8"
var_os="ubuntu" var_os="ubuntu"
var_version="24.04" var_version="24.04"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /srv/homeassistant ]]; then if [[ ! -d /srv/homeassistant ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
@@ -64,7 +39,6 @@ function update_script() {
"2" "Install HACS" OFF \ "2" "Install HACS" OFF \
"3" "Install FileBrowser" OFF \ "3" "Install FileBrowser" OFF \
3>&1 1>&2 2>&3) 3>&1 1>&2 2>&3)
header_info
if [ "$UPD" == "1" ]; then if [ "$UPD" == "1" ]; then
if (whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "SELECT BRANCH" --yesno "Use Beta Branch?" 10 58); then if (whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "SELECT BRANCH" --yesno "Use Beta Branch?" 10 58); then
clear clear
@@ -77,7 +51,9 @@ function update_script() {
echo -e "${GN}Updating to Stable Version${CL}" echo -e "${GN}Updating to Stable Version${CL}"
BR="" BR=""
fi fi
if [[ "$PY" == "python3.11" ]]; then echo -e "⚠️ Home Assistant will soon require Python 3.12."; fi if [[ "$PY" =~ ^python3\.(11|12)\.[0-9]+$ ]]; then
echo -e "⚠️ Home Assistant will soon require Python 3.13.x";
fi
msg_info "Stopping Home Assistant" msg_info "Stopping Home Assistant"
systemctl stop homeassistant systemctl stop homeassistant
@@ -111,7 +87,7 @@ function update_script() {
read -r -p "Would you like to use No Authentication? <y/N> " prompt read -r -p "Would you like to use No Authentication? <y/N> " prompt
msg_info "Installing FileBrowser" msg_info "Installing FileBrowser"
RELEASE=$(curl -fsSL https://api.github.com/repos/filebrowser/filebrowser/releases/latest | grep -o '"tag_name": ".*"' | sed 's/"//g' | sed 's/tag_name: //g') RELEASE=$(curl -fsSL https://api.github.com/repos/filebrowser/filebrowser/releases/latest | grep -o '"tag_name": ".*"' | sed 's/"//g' | sed 's/tag_name: //g')
curl -fsSL https://github.com/filebrowser/filebrowser/releases/download/$RELEASE/linux-arm64-filebrowser.tar.gz | tar -xzv -C /usr/local/bin &>/dev/null curl -fsSL https://github.com/filebrowser/filebrowser/releases/download/$RELEASE/linux-amd64-filebrowser.tar.gz | tar -xzv -C /usr/local/bin &>/dev/null
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
filebrowser config init -a '0.0.0.0' &>/dev/null filebrowser config init -a '0.0.0.0' &>/dev/null
@@ -152,5 +128,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:8123${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8123${CL}"
+23 -48
View File
@@ -1,58 +1,33 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://www.home-assistant.io/
function header_info { # App Default Values
clear
cat <<"EOF"
__ __ ___ _ __ __
/ / / /___ ____ ___ ___ / | __________(_)____/ /_____ _____ / /_
/ /_/ / __ \/ __ __ \/ _ \ / /| | / ___/ ___/ / ___/ __/ __ / __ \/ __/
/ __ / /_/ / / / / / / __/ / ___ |(__ |__ ) (__ ) /_/ /_/ / / / / /_
/_/ /_/\____/_/ /_/ /_/\___/ /_/ |_/____/____/_/____/\__/\__,_/_/ /_/\__/
EOF
}
header_info
echo -e "Loading..."
APP="Home Assistant" APP="Home Assistant"
var_disk="16" var_tags="automation;smarthome"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="16"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /var/lib/docker/volumes/hass_config/_data ]]; then if [[ ! -d /var/lib/docker/volumes/hass_config/_data ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
@@ -63,7 +38,7 @@ function update_script() {
"3" "Install HACS" OFF \ "3" "Install HACS" OFF \
"4" "Install FileBrowser" OFF \ "4" "Install FileBrowser" OFF \
3>&1 1>&2 2>&3) 3>&1 1>&2 2>&3)
header_info
if [ "$UPD" == "1" ]; then if [ "$UPD" == "1" ]; then
msg_info "Updating All Containers" msg_info "Updating All Containers"
CONTAINER_LIST="${1:-$(docker ps -q)}" CONTAINER_LIST="${1:-$(docker ps -q)}"
@@ -102,7 +77,7 @@ function update_script() {
IP=$(hostname -I | awk '{print $1}') IP=$(hostname -I | awk '{print $1}')
msg_info "Installing FileBrowser" msg_info "Installing FileBrowser"
RELEASE=$(curl -fsSL https://api.github.com/repos/filebrowser/filebrowser/releases/latest | grep -o '"tag_name": ".*"' | sed 's/"//g' | sed 's/tag_name: //g') RELEASE=$(curl -fsSL https://api.github.com/repos/filebrowser/filebrowser/releases/latest | grep -o '"tag_name": ".*"' | sed 's/"//g' | sed 's/tag_name: //g')
curl -fsSL https://github.com/filebrowser/filebrowser/releases/download/v2.23.0/linux-arm64-filebrowser.tar.gz | tar -xzv -C /usr/local/bin &>/dev/null curl -fsSL https://github.com/filebrowser/filebrowser/releases/download/v2.23.0/linux-amd64-filebrowser.tar.gz | tar -xzv -C /usr/local/bin &>/dev/null
filebrowser config init -a '0.0.0.0' &>/dev/null filebrowser config init -a '0.0.0.0' &>/dev/null
filebrowser config set -a '0.0.0.0' &>/dev/null filebrowser config set -a '0.0.0.0' &>/dev/null
filebrowser users add admin helper-scripts.com --perm.admin &>/dev/null filebrowser users add admin helper-scripts.com --perm.admin &>/dev/null
@@ -135,7 +110,7 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:8123${CL} echo -e "${INFO}${YW} Access it using the following URL:${CL}"
Portainer should be reachable by going to the following URL. echo -e "${TAB}${GATEWAY}${BGN}HA: http://${IP}:8123${CL}"
${BL}https://${IP}:9443${CL}\n" echo -e "${TAB}${GATEWAY}${BGN}Portainer: http://${IP}:9443${CL}"
+48 -73
View File
@@ -1,88 +1,62 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck # Author: tteck | Co-Author: MickLesk (Canbiz)
# Co-Author: MickLesk (Canbiz) # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# License: MIT # Source: https://homebox.software/en/
# https://github.com/tteck/Proxmox/raw/main/LICENSE
function header_info { # App Default Values
clear
cat <<"EOF"
__ __ ____
/ / / /___ ____ ___ ___ / __ )____ _ __
/ /_/ / __ \/ __ `__ \/ _ \/ __ / __ \| |/_/
/ __ / /_/ / / / / / / __/ /_/ / /_/ /> <
/_/ /_/\____/_/ /_/ /_/\___/_____/\____/_/|_|
EOF
}
header_info
echo -e "Loading..."
APP="HomeBox" APP="HomeBox"
var_disk="4" var_tags="inventory;household"
var_cpu="1" var_cpu="1"
var_ram="1024" var_ram="1024"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /opt/homebox ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then check_container_resources
read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt if [[ ! -f /opt/homebox ]]; then
[[ ${prompt,,} =~ ^(y|yes)$ ]] || exit msg_error "No ${APP} Installation Found!"
fi exit
RELEASE=$(curl -s https://api.github.com/repos/sysadminsmedia/homebox/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') fi
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then RELEASE=$(curl -s https://api.github.com/repos/sysadminsmedia/homebox/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
msg_info "Stopping ${APP}" if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
systemctl stop homebox msg_info "Stopping ${APP}"
msg_ok "${APP} Stopped" systemctl stop homebox
msg_ok "${APP} Stopped"
msg_info "Updating ${APP} to ${RELEASE}" msg_info "Updating ${APP} to ${RELEASE}"
cd /opt cd /opt
rm -rf homebox_bak rm -rf homebox_bak
mv homebox homebox_bak rm -rf /tmp/homebox.tar.gz
wget -qO- https://github.com/sysadminsmedia/homebox/releases/download/${RELEASE}/homebox_Linux_x86_64.tar.gz | tar -xzf - -C /opt mv homebox homebox_bak
chmod +x /opt/homebox wget -qO /tmp/homebox.tar.gz https://github.com/sysadminsmedia/homebox/releases/download/${RELEASE}/homebox_Linux_x86_64.tar.gz
echo "${RELEASE}" >/opt/${APP}_version.txt tar -xzf /tmp/homebox.tar.gz -C /opt
msg_ok "Updated Homebox" chmod +x /opt/homebox
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated Homebox"
msg_info "Starting ${APP}" msg_info "Starting ${APP}"
systemctl start homebox systemctl start homebox
msg_ok "Started ${APP}" msg_ok "Started ${APP}"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
else else
msg_ok "No update required. ${APP} is already at ${RELEASE}" msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi fi
exit exit
} }
start start
@@ -90,5 +64,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} Setup should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:7745${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7745${CL}"
+29 -51
View File
@@ -1,65 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://homebridge.io/
function header_info { # App Default Values
clear
cat <<"EOF"
__ ______ __ _____________ ____ ________ ____________
/ / / / __ \/ |/ / ____/ __ )/ __ \/ _/ __ \/ ____/ ____/
/ /_/ / / / / /|_/ / __/ / __ / /_/ // // / / / / __/ __/
/ __ / /_/ / / / / /___/ /_/ / _, _// // /_/ / /_/ / /___
/_/ /_/\____/_/ /_/_____/_____/_/ |_/___/_____/\____/_____/
EOF
}
header_info
echo -e "Loading..."
APP="Homebridge" APP="Homebridge"
var_disk="4" var_tags="smarthome;homekit"
var_cpu="1" var_cpu="1"
var_ram="1024" var_ram="1024"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /etc/apt/sources.list.d/homebridge.list ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating ${APP} LXC" check_container_resources
apt-get update &>/dev/null if [[ ! -f /etc/apt/sources.list.d/homebridge.list ]]; then
apt-get install -y homebridge &>/dev/null msg_error "No ${APP} Installation Found!"
msg_ok "Updated Successfully" exit
exit fi
msg_info "Updating ${APP} LXC"
apt-get update &>/dev/null
apt-get install -y homebridge &>/dev/null
msg_ok "Updated Successfully"
exit
} }
start start
@@ -67,5 +44,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:8581${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8581${CL}"
+53 -73
View File
@@ -1,88 +1,67 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://gethomepage.dev/
function header_info { # App Default Values
clear
cat <<"EOF"
__ __
/ / / /___ ____ ___ ___ ____ ____ _____ ____
/ /_/ / __ \/ __ `__ \/ _ \/ __ \/ __ `/ __ `/ _ \
/ __ / /_/ / / / / / / __/ /_/ / /_/ / /_/ / __/
/_/ /_/\____/_/ /_/ /_/\___/ .___/\__,_/\__, /\___/
/_/ /____/
EOF
}
header_info
echo -e "Loading..."
APP="Homepage" APP="Homepage"
var_disk="3" var_tags="dashboard"
var_cpu="2" var_cpu="2"
var_ram="1024" var_ram="1024"
var_disk="3"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/homepage ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then check_container_resources
if ! command -v npm >/dev/null 2>&1; then if [[ ! -d /opt/homepage ]]; then
echo "Installing NPM..." msg_error "No ${APP} Installation Found!"
apt-get install -y npm >/dev/null 2>&1 exit
npm install -g pnpm >/dev/null 2>&1
echo "Installed NPM..."
fi fi
fi if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
RELEASE=$(curl -s https://api.github.com/repos/gethomepage/homepage/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') if ! command -v npm >/dev/null 2>&1; then
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then echo "Installing NPM..."
msg_info "Updating Homepage to v${RELEASE} (Patience)" apt-get install -y npm >/dev/null 2>&1
systemctl stop homepage npm install -g pnpm >/dev/null 2>&1
wget -q https://github.com/gethomepage/homepage/archive/refs/tags/v${RELEASE}.tar.gz echo "Installed NPM..."
tar -xzf v${RELEASE}.tar.gz fi
rm -rf v${RELEASE}.tar.gz fi
cp -r homepage-${RELEASE}/* /opt/homepage/ RELEASE=$(curl -s https://api.github.com/repos/gethomepage/homepage/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
rm -rf homepage-${RELEASE} if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
cd /opt/homepage msg_info "Updating Homepage to v${RELEASE} (Patience)"
npx update-browserslist-db@latest systemctl stop homepage
pnpm install wget -q https://github.com/gethomepage/homepage/archive/refs/tags/v${RELEASE}.tar.gz
pnpm build tar -xzf v${RELEASE}.tar.gz
systemctl start homepage rm -rf v${RELEASE}.tar.gz
echo "${RELEASE}" >/opt/${APP}_version.txt cp -r homepage-${RELEASE}/* /opt/homepage/
msg_ok "Updated Homepage to v${RELEASE}" rm -rf homepage-${RELEASE}
else cd /opt/homepage
msg_ok "No update required. ${APP} is already at ${RELEASE}" npx --yes update-browserslist-db@latest >/dev/null 2>&1
fi pnpm install >/dev/null 2>&1
exit export NEXT_PUBLIC_VERSION="v$RELEASE"
export NEXT_PUBLIC_REVISION="source"
pnpm build >/dev/null 2>&1
systemctl start homepage
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated Homepage to v${RELEASE}"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
} }
start start
@@ -90,5 +69,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} Setup should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:3000${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
+50 -72
View File
@@ -1,91 +1,68 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://github.com/bastienwirtz/homer
function header_info { # App Default Values
clear
cat <<"EOF"
__ __
/ / / /___ ____ ___ ___ _____
/ /_/ / __ \/ __ `__ \/ _ \/ ___/
/ __ / /_/ / / / / / / __/ /
/_/ /_/\____/_/ /_/ /_/\___/_/
EOF
}
header_info
echo -e "Loading..."
APP="Homer" APP="Homer"
var_disk="2" var_tags="dashboard"
var_cpu="1" var_cpu="1"
var_ram="512" var_ram="512"
var_disk="2"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/homer ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Stopping ${APP}" check_container_resources
systemctl stop homer if [[ ! -d /opt/homer ]]; then
msg_ok "Stopped ${APP}" msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping ${APP}"
systemctl stop homer
msg_ok "Stopped ${APP}"
msg_info "Backing up assets directory" msg_info "Backing up assets directory"
cd ~ cd ~
mkdir -p assets-backup mkdir -p assets-backup
cp -R /opt/homer/assets/. assets-backup cp -R /opt/homer/assets/. assets-backup
msg_ok "Backed up assets directory" msg_ok "Backed up assets directory"
msg_info "Updating ${APP}" msg_info "Updating ${APP}"
rm -rf /opt/homer/* rm -rf /opt/homer/*
cd /opt/homer cd /opt/homer
wget -q https://github.com/bastienwirtz/homer/releases/latest/download/homer.zip wget -q https://github.com/bastienwirtz/homer/releases/latest/download/homer.zip
unzip homer.zip &>/dev/null unzip homer.zip &>/dev/null
msg_ok "Updated ${APP}" msg_ok "Updated ${APP}"
msg_info "Restoring assets directory" msg_info "Restoring assets directory"
cd ~ cd ~
cp -Rf assets-backup/. /opt/homer/assets/ cp -Rf assets-backup/. /opt/homer/assets/
msg_ok "Restored assets directory" msg_ok "Restored assets directory"
msg_info "Cleaning" msg_info "Cleaning"
rm -rf assets-backup /opt/homer/homer.zip rm -rf assets-backup /opt/homer/homer.zip
msg_ok "Cleaned" msg_ok "Cleaned"
msg_info "Starting ${APP}" msg_info "Starting ${APP}"
systemctl start homer systemctl start homer
msg_ok "Started ${APP}" msg_ok "Started ${APP}"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
exit exit
} }
start start
@@ -93,5 +70,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:8010${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8010${CL}"
+29 -52
View File
@@ -1,66 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://www.hyperhdr.eu/
function header_info { # App Default Values
clear
cat <<"EOF"
__ __ __ ______ ____
/ / / /_ ______ ___ _____/ / / / __ \/ __ \
/ /_/ / / / / __ \/ _ \/ ___/ /_/ / / / / /_/ /
/ __ / /_/ / /_/ / __/ / / __ / /_/ / _, _/
/_/ /_/\__, / .___/\___/_/ /_/ /_/_____/_/ |_|
/____/_/
EOF
}
header_info
echo -e "Loading..."
APP="HyperHDR" APP="HyperHDR"
var_disk="4" var_tags="ambient-lightning"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="0"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="0"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating $APP LXC" check_container_resources
apt-get update &>/dev/null if [[ ! -d /var ]]; then
apt-get -y upgrade &>/dev/null msg_error "No ${APP} Installation Found!"
msg_ok "Updated $APP LXC" exit
exit fi
msg_info "Updating $APP LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -68,5 +44,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:8090${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"
+29 -52
View File
@@ -1,66 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://hyperion-project.org/forum/
function header_info { # App Default Values
clear
cat <<"EOF"
__ __ _
/ / / /_ ______ ___ _____(_)___ ____
/ /_/ / / / / __ \/ _ \/ ___/ / __ \/ __ \
/ __ / /_/ / /_/ / __/ / / / /_/ / / / /
/_/ /_/\__, / .___/\___/_/ /_/\____/_/ /_/
/____/_/
EOF
}
header_info
echo -e "Loading..."
APP="Hyperion" APP="Hyperion"
var_disk="2" var_tags="ambient-lightning"
var_cpu="1" var_cpu="1"
var_ram="512" var_ram="512"
var_disk="2"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /etc/apt/sources.list.d/hyperion.list ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating ${APP} LXC" check_container_resources
apt-get update &>/dev/null if [[ ! -f /etc/apt/sources.list.d/hyperion.list ]]; then
apt-get install -y hyperion &>/dev/null msg_error "No ${APP} Installation Found!"
msg_ok "Updated Successfully" exit
exit fi
msg_info "Updating ${APP} LXC"
apt-get update &>/dev/null
apt-get install -y hyperion &>/dev/null
msg_ok "Updated Successfully"
exit
} }
start start
@@ -68,5 +44,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:8090${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"
+29 -49
View File
@@ -1,65 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://www.influxdata.com/
function header_info { # App Default Values
clear
cat <<"EOF"
____ ______ ____ ____
/ _/___ / __/ /_ ___ __/ __ \/ __ )
/ // __ \/ /_/ / / / / |/_/ / / / __ |
_/ // / / / __/ / /_/ /> </ /_/ / /_/ /
/___/_/ /_/_/ /_/\__,_/_/|_/_____/_____/
EOF
}
header_info
echo -e "Loading..."
APP="InfluxDB" APP="InfluxDB"
var_disk="8" var_tags="database"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="8"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /etc/apt/sources.list.d/influxdata.list ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating ${APP}" check_container_resources
apt-get update &>/dev/null if [[ ! -f /etc/apt/sources.list.d/influxdata.list ]]; then
apt-get -y upgrade &>/dev/null msg_error "No ${APP} Installation Found!"
msg_ok "Updated Successfully" exit
exit fi
msg_info "Updating ${APP}"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated Successfully"
exit
} }
start start
@@ -67,3 +44,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" 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}:8086${CL}"
+69
View File
@@ -0,0 +1,69 @@
#!/usr/bin/env bash
source ./misc/build.func
# Copyright (c) 2021-2025 community-scripts ORG
# Author: kristocopani
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# Source: https://www.inspircd.org/
# App Default Values
APP="InspIRCd"
var_tags="IRC"
var_cpu="1"
var_ram="512"
var_disk="2"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /lib/systemd/system/inspircd.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/inspircd/inspircd/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Service"
systemctl stop inspircd
msg_ok "Stopped Service"
msg_info "Updating ${APP} to v${RELEASE}"
cd /opt
wget -q https://github.com/inspircd/inspircd/releases/download/v${RELEASE}/inspircd_${RELEASE}.deb12u1_amd64.deb
apt-get install "./inspircd_${RELEASE}.deb12u1_amd64.deb" -y &>/dev/nul
echo "${RELEASE}" >"/opt/${APP}_version.txt"
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Starting Service"
systemctl start inspircd
msg_ok "Started Service"
msg_info "Cleaning up"
rm -rf /opt/inspircd_${RELEASE}.deb12u1_amd64.deb
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} Server-Acces it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}${IP}:6667${CL}"
+29 -51
View File
@@ -1,65 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://www.iobroker.net/#en/intro
function header_info { # App Default Values
clear
cat <<"EOF"
_ ____ __
(_)___ / __ )_________ / /_____ _____
/ / __ \/ __ / ___/ __ \/ //_/ _ \/ ___/
/ / /_/ / /_/ / / / /_/ / ,< / __/ /
/_/\____/_____/_/ \____/_/|_|\___/_/
EOF
}
header_info
echo -e "Loading..."
APP="ioBroker" APP="ioBroker"
var_disk="8" var_tags="automtation"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="8"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/iobroker ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating ${APP} LXC" check_container_resources
apt-get update &>/dev/null if [[ ! -d /opt/iobroker ]]; then
apt-get -y upgrade &>/dev/null msg_error "No ${APP} Installation Found!"
msg_ok "Updated Successfully" exit
exit fi
msg_info "Updating ${APP} LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated Successfully"
exit
} }
start start
@@ -67,5 +44,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:8081${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8081${CL}"
+25 -46
View File
@@ -1,61 +1,39 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://www.iventoy.com/en/index.html
function header_info { # App Default Values
clear
cat <<"EOF"
_ _ __ __
(_) | / /__ ____ / /_____ __ __
/ /| | / / _ \/ __ \/ __/ __ \/ / / /
/ / | |/ / __/ / / / /_/ /_/ / /_/ /
/_/ |___/\___/_/ /_/\__/\____/\__, /
/____/
EOF
}
header_info
echo -e "Loading..."
APP="iVentoy" APP="iVentoy"
var_tags="pxe-tool"
var_disk="2" var_disk="2"
var_cpu="1" var_cpu="1"
var_ram="512" var_ram="512"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="0"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="0"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
if [[ ! -d /opt/iventoy ]]; then msg_error "No ${APP} Installation Found!"; exit; fi header_info
msg_error "There is currently no update path available." check_container_storage
exit check_container_resources
if [[ ! -d /opt/iventoy ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "There is currently no update path available."
exit
} }
start start
@@ -63,5 +41,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:26000/ ${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:26000${CL}"
+39 -61
View File
@@ -1,75 +1,52 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://github.com/Jackett/Jackett
function header_info { # App Default Values
clear
cat <<"EOF"
__ __ __ __
/ /___ ______/ /_____ / /_/ /_
__ / / __ `/ ___/ //_/ _ \/ __/ __/
/ /_/ / /_/ / /__/ ,< / __/ /_/ /_
\____/\__,_/\___/_/|_|\___/\__/\__/
EOF
}
header_info
echo -e "Loading..."
APP="Jackett" APP="Jackett"
var_disk="2" var_tags="torrent"
var_cpu="1" var_cpu="1"
var_ram="512" var_ram="512"
var_disk="2"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /etc/systemd/system/jackett.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
RELEASE=$(wget -q https://github.com/Jackett/Jackett/releases/latest -O - | grep "title>Release" | cut -d " " -f 4) check_container_resources
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then if [[ ! -f /etc/systemd/system/jackett.service ]]; then
msg_info "Updating ${APP}" msg_error "No ${APP} Installation Found!"
wget -q https://github.com/Jackett/Jackett/releases/download/$RELEASE/Jackett.Binaries.LinuxAMDx64.tar.gz exit
systemctl stop jackett fi
rm -rf /opt/Jackett RELEASE=$(wget -q https://github.com/Jackett/Jackett/releases/latest -O - | grep "title>Release" | cut -d " " -f 4)
tar -xzf Jackett.Binaries.LinuxAMDx64.tar.gz -C /opt if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
rm -rf Jackett.Binaries.LinuxAMDx64.tar.gz msg_info "Updating ${APP}"
systemctl start jackett wget -q https://github.com/Jackett/Jackett/releases/download/$RELEASE/Jackett.Binaries.LinuxAMDx64.tar.gz
echo "${RELEASE}" >/opt/${APP}_version.txt systemctl stop jackett
msg_ok "Updated ${APP} to ${RELEASE}" rm -rf /opt/Jackett
else tar -xzf Jackett.Binaries.LinuxAMDx64.tar.gz -C /opt
msg_ok "No update required. ${APP} is already at ${RELEASE}" rm -rf Jackett.Binaries.LinuxAMDx64.tar.gz
fi systemctl start jackett
exit echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
} }
start start
@@ -77,5 +54,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:9117${CL}\n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9117${CL}"
+30 -52
View File
@@ -1,66 +1,43 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://jellyfin.org/
function header_info { # App Default Values
clear
cat <<"EOF"
__ ____ _____
/ /__ / / /_ __/ __(_)___
__ / / _ \/ / / / / / /_/ / __ \
/ /_/ / __/ / / /_/ / __/ / / / /
\____/\___/_/_/\__, /_/ /_/_/ /_/
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Jellyfin" APP="Jellyfin"
var_disk="8" var_tags="media"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="8"
var_os="ubuntu" var_os="ubuntu"
var_version="22.04" var_version="22.04"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="0"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /usr/lib/jellyfin ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating ${APP} LXC" check_container_resources
apt-get update &>/dev/null if [[ ! -d /usr/lib/jellyfin ]]; then
apt-get -y upgrade &>/dev/null msg_error "No ${APP} Installation Found!"
msg_ok "Updated ${APP} LXC" exit
exit fi
msg_info "Updating ${APP} LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
apt-get --with-new-pkgs upgrade jellyfin jellyfin-server &>/dev/null
msg_ok "Updated ${APP} LXC"
exit
} }
start start
@@ -68,5 +45,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:8096${CL}\n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8096${CL}"
+55 -80
View File
@@ -1,85 +1,63 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://docs.jellyseerr.dev/
function header_info { # App Default Values
clear
cat <<"EOF"
__ ____
/ /__ / / /_ __________ ___ __________
__ / / _ \/ / / / / / ___/ _ \/ _ \/ ___/ ___/
/ /_/ / __/ / / /_/ (__ ) __/ __/ / / /
\____/\___/_/_/\__, /____/\___/\___/_/ /_/
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Jellyseerr" APP="Jellyseerr"
var_disk="8" var_tags="media"
var_cpu="4" var_cpu="4"
var_ram="4096" var_ram="4096"
var_disk="8"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/jellyseerr ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then check_container_resources
read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt
[[ ${prompt,,} =~ ^(y|yes)$ ]] || exit if [[ ! -d /opt/jellyseerr ]]; then
fi msg_error "No ${APP} Installation Found!"
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "SET RESOURCES" "Please set the resources in your Jellyseerr LXC to 4vcpu and 4096RAM for the build process before continuing" 10 75 exit
if ! command -v pnpm &> /dev/null; then fi
msg_error "pnpm not found. Installing..."
npm install -g pnpm &>/dev/null if ! command -v pnpm &> /dev/null; then
else msg_error "pnpm not found. Installing..."
msg_ok "pnpm is already installed." npm install -g pnpm &>/dev/null
fi else
msg_info "Updating $APP" msg_ok "pnpm is already installed."
cd /opt/jellyseerr fi
output=$(git pull --no-rebase)
if echo "$output" | grep -q "Already up to date." msg_info "Updating $APP"
then cd /opt/jellyseerr
msg_ok "$APP is already up to date." output=$(git pull --no-rebase)
exit
fi if echo "$output" | grep -q "Already up to date."; then
systemctl stop jellyseerr msg_ok "$APP is already up to date."
export CYPRESS_INSTALL_BINARY=0 exit
pnpm install --frozen-lockfile &>/dev/null fi
export NODE_OPTIONS="--max-old-space-size=3072"
pnpm build &>/dev/null systemctl stop jellyseerr
cat <<EOF >/etc/systemd/system/jellyseerr.service rm -rf dist .next node_modules
export CYPRESS_INSTALL_BINARY=0
pnpm install --frozen-lockfile &>/dev/null
export NODE_OPTIONS="--max-old-space-size=3072"
pnpm build &>/dev/null
cat <<EOF >/etc/systemd/system/jellyseerr.service
[Unit] [Unit]
Description=jellyseerr Service Description=jellyseerr Service
After=network.target After=network.target
@@ -94,21 +72,18 @@ ExecStart=/usr/bin/node dist/index.js
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
EOF EOF
systemctl daemon-reload
systemctl start jellyseerr systemctl daemon-reload
msg_ok "Updated $APP" systemctl start jellyseerr
exit msg_ok "Updated $APP"
exit
} }
start start
build_container build_container
description description
msg_info "Setting Container to Normal Resources"
pct set $CTID -memory 2048
pct set $CTID -cores 2
msg_ok "Set Container to Normal Resources"
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:5055${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5055${CL}"
+49
View File
@@ -0,0 +1,49 @@
#!/usr/bin/env bash
source ./misc/build.func
# Copyright (c) 2021-2025 community-scripts ORG
# Author: kristocopani
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# Source: https://www.jenkins.io/
# App Default Values
APP="Jenkins"
var_tags="automation"
var_cpu="2"
var_ram="1024"
var_disk="4"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /var/lib/jenkins ]]; 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 $APP LXC"
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}"
+34 -56
View File
@@ -1,70 +1,47 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://www.kavitareader.com/
function header_info { # App Default Values
clear
cat <<"EOF"
__ __ _ __
/ //_/___ __ __(_) /_____ _
/ ,< / __ `/ | / / / __/ __ `/
/ /| / /_/ /| |/ / / /_/ /_/ /
/_/ |_\__,_/ |___/_/\__/\__,_/
EOF
}
header_info
echo -e "Loading..."
APP="Kavita" APP="Kavita"
var_disk="8" var_tags="reader"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="8"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -d /opt/Kavita ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating $APP LXC" check_container_resources
systemctl stop kavita if [[ ! -d /opt/Kavita ]]; then
RELEASE=$(curl -s https://api.github.com/repos/Kareadita/Kavita/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') msg_error "No ${APP} Installation Found!"
tar -xvzf <(curl -fsSL https://github.com/Kareadita/Kavita/releases/download/$RELEASE/kavita-linux-arm64.tar.gz) --no-same-owner &>/dev/null exit
rm -rf Kavita/config fi
cp -r Kavita/* /opt/Kavita msg_info "Updating $APP LXC"
rm -rf Kavita systemctl stop kavita
systemctl start kavita RELEASE=$(curl -s https://api.github.com/repos/Kareadita/Kavita/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
msg_ok "Updated $APP LXC" tar -xvzf <(curl -fsSL https://github.com/Kareadita/Kavita/releases/download/$RELEASE/kavita-linux-x64.tar.gz) --no-same-owner &>/dev/null
exit rm -rf Kavita/config
cp -r Kavita/* /opt/Kavita
rm -rf Kavita
systemctl start kavita
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -72,5 +49,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:5000${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"
+45 -72
View File
@@ -1,90 +1,62 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://www.keycloak.org/
function header_info { # App Default Values
clear
cat <<"EOF"
__ __ __ __
/ //_/__ __ _______/ /___ ____ _/ /__
/ ,< / _ \/ / / / ___/ / __ \/ __ / //_/
/ /| / __/ /_/ / /__/ / /_/ / /_/ / ,<
/_/ |_\___/\__, /\___/_/\____/\__,_/_/|_|
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Keycloak" APP="Keycloak"
var_disk="4" var_tags="access-management"
var_cpu="2" var_cpu="2"
var_ram="2048" var_ram="2048"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /etc/systemd/system/keycloak.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
msg_info "Updating ${APP} LXC" check_container_resources
if [[ ! -f /etc/systemd/system/keycloak.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating ${APP} LXC"
msg_info "Updating packages" msg_info "Updating packages"
apt-get update &>/dev/null apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null apt-get -y upgrade &>/dev/null
RELEASE=$(curl -s https://api.github.com/repos/keycloak/keycloak/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') RELEASE=$(curl -s https://api.github.com/repos/keycloak/keycloak/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
msg_info "Downloading Keycloak v$RELEASE" msg_info "Updating Keycloak to v$RELEASE"
cd /opt cd /opt
wget -q https://github.com/keycloak/keycloak/releases/download/$RELEASE/keycloak-$RELEASE.tar.gz wget -q https://github.com/keycloak/keycloak/releases/download/$RELEASE/keycloak-$RELEASE.tar.gz
$STD tar -xvf keycloak-$RELEASE.tar.gz mv keycloak keycloak.old
tar -xzf keycloak-$RELEASE.tar.gz
cp -r keycloak.old/conf keycloak-$RELEASE
cp -r keycloak.old/providers keycloak-$RELEASE
cp -r keycloak.old/themes keycloak-$RELEASE
mv keycloak-$RELEASE keycloak
msg_info "Merging configuration files" msg_info "Delete temporary installation files"
cp -r keycloak/conf keycloak-$RELEASE rm keycloak-$RELEASE.tar.gz
cp -r keycloak/providers keycloak-$RELEASE rm -rf keycloak.old
cp -r keycloak/themes keycloak-$RELEASE
msg_info "Updating Keycloak" msg_info "Restating Keycloak"
mv keycloak keycloak.old systemctl restart keycloak
mv keycloak-$RELEASE keycloak msg_ok "Updated Successfully"
exit
msg_info "Delete temporary installation files"
rm keycloak-$RELEASE.tar.gz
rm -rf keycloak.old
msg_info "Restating Keycloak"
systemctl restart keycloak
msg_ok "Updated Successfully"
exit
} }
start start
@@ -92,5 +64,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:8080/admin${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080/admin${CL}"
+80
View File
@@ -0,0 +1,80 @@
#!/usr/bin/env bash
source ./misc/build.func
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# Source: https://www.kimai.org/
# App Default Values
APP="Kimai"
var_tags="time-tracking"
var_cpu="2"
var_ram="2048"
var_disk="7"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/kimai ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/kimai/kimai/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Apache2"
systemctl stop apache2
msg_ok "Stopped Apache2"
msg_info "Updating ${APP} to ${RELEASE}"
cp /opt/kimai/.env /opt/.env
rm -rf /opt/kimai
wget -q "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip"
unzip -q ${RELEASE}.zip
mv kimai-${RELEASE} /opt/kimai
mv /opt/.env /opt/kimai/.env
cd /opt/kimai
composer install --no-dev --optimize-autoloader &>/dev/null
bin/console kimai:update &>/dev/null
chown -R :www-data .
chmod -R g+r .
chmod -R g+rw var/
sudo chown -R www-data:www-data /opt/kimai
sudo chmod -R 755 /opt/kimai
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Starting Apache2"
systemctl start apache2
msg_ok "Started Apache2"
msg_info "Cleaning Up"
rm -rf ${RELEASE}.zip
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}${CL}"
+66
View File
@@ -0,0 +1,66 @@
#!/usr/bin/env bash
source ./misc/build.func
# Copyright (c) 2021-2025 community-scripts ORG
# Author: madelyn (DysfunctionalProgramming)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# Source: https://komga.org/
# App Default Values
APP="Komga"
var_tags="media;eBook;comic"
var_cpu="1"
var_ram="2048"
var_disk="4"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /opt/komga/komga.jar ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating ${APP}"
RELEASE=$(curl -s https://api.github.com/repos/gotson/komga/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping ${APP}"
systemctl stop komga
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP} to ${RELEASE}"
wget -q "https://github.com/gotson/komga/releases/download/${RELEASE}/komga-${RELEASE}.jar"
rm -rf /opt/komga/komga.jar
mv -f komga-${RELEASE}.jar /opt/komga/komga.jar
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Starting ${APP}"
systemctl start komga
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}:25600${CL}"
+73
View File
@@ -0,0 +1,73 @@
#!/usr/bin/env bash
source ./misc/build.func
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# Source: https://komo.do
# App Default Values
APP="Komodo"
var_tags="docker"
var_cpu="2"
var_ram="2048"
var_disk="10"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/komodo ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating ${APP}"
COMPOSE_FILE=""
for file in *.compose.yaml; do
if [[ "$file" != "compose.env" ]]; then
COMPOSE_FILE="$file"
break
fi
done
if [[ -z "$COMPOSE_FILE" ]]; then
msg_error "No valid compose file found in /opt/komodo!"
exit 1
fi
BACKUP_FILE="${COMPOSE_FILE}.bak_$(date +%Y%m%d_%H%M%S)"
mv "$COMPOSE_FILE" "$BACKUP_FILE" || {
msg_error "Failed to create backup of $COMPOSE_FILE!"
exit 1
}
GITHUB_URL="https://raw.githubusercontent.com/mbecker20/komodo/main/compose/$COMPOSE_FILE"
wget -q -O "$COMPOSE_FILE" "$GITHUB_URL" || {
msg_error "Failed to download $COMPOSE_FILE from GitHub!"
mv "$BACKUP_FILE" "$COMPOSE_FILE"
exit 1
}
docker compose -p komodo -f "/opt/komodo/$COMPOSE_FILE" --env-file /opt/komodo/compose.env up -d &>/dev/null
msg_ok "Updated ${APP}"
}
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}:9120${CL}"
+40 -61
View File
@@ -1,74 +1,52 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func) source ./misc/build.func
# Copyright (c) 2021-2024 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster) | Co-Author: ulmentflam
# License: MIT # License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE
# https://github.com/tteck/Proxmox/raw/main/LICENSE # Source: https://github.com/ipfs/kubo
function header_info { # App Default Values
clear
cat <<"EOF"
__ __ __
/ //_/_ __/ /_ ____
/ ,< / / / / __ \/ __ \
/ /| / /_/ / /_/ / /_/ /
/_/ |_\__,_/_.___/\____/
EOF
}
header_info
echo -e "Loading..."
APP="Kubo" APP="Kubo"
var_disk="4" var_tags="sharing"
var_cpu="2" var_cpu="2"
var_ram="4096" var_ram="4096"
var_disk="4"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function default_settings() {
CT_TYPE="1"
PW=""
CT_ID=$NEXTID
HN=$NSAPP
DISK_SIZE="$var_disk"
CORE_COUNT="$var_cpu"
RAM_SIZE="$var_ram"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
function update_script() { function update_script() {
header_info header_info
if [[ ! -f /usr/local/kubo ]]; then msg_error "No ${APP} Installation Found!"; exit; fi check_container_storage
RELEASE=$(wget -q https://github.com/ipfs/kubo/releases/latest -O - | grep "title>Release" | cut -d " " -f 4) check_container_resources
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then if [[ ! -f /usr/local/kubo ]]; then
msg_info "Updating $APP LXC" msg_error "No ${APP} Installation Found!"
apt-get update &>/dev/null exit
apt-get -y upgrade &>/dev/null fi
wget -q "https://github.com/ipfs/kubo/releases/download/${RELEASE}/kubo_${RELEASE}_linux-arm64.tar.gz" RELEASE=$(wget -q https://github.com/ipfs/kubo/releases/latest -O - | grep "title>Release" | cut -d " " -f 4)
tar -xzf "kubo_${RELEASE}_linux-arm64.tar.gz" -C /usr/local if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
systemctl restart ipfs.service msg_info "Updating $APP LXC"
echo "${RELEASE}" >/opt/${APP}_version.txt apt-get update &>/dev/null
rm "kubo_${RELEASE}_linux-arm64.tar.gz" apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC" wget -q "https://github.com/ipfs/kubo/releases/download/${RELEASE}/kubo_${RELEASE}_linux-amd64.tar.gz"
else tar -xzf "kubo_${RELEASE}_linux-amd64.tar.gz" -C /usr/local
msg_ok "No update required. ${APP} is already at ${RELEASE}" systemctl restart ipfs.service
fi echo "${RELEASE}" >/opt/${APP}_version.txt
exit rm "kubo_${RELEASE}_linux-amd64.tar.gz"
msg_ok "Updated $APP LXC"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
} }
start start
@@ -76,5 +54,6 @@ build_container
description description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable by going to the following URL. echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
${BL}http://${IP}:5001/webui ${CL} \n" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5001/webui${CL}"

Some files were not shown because too many files have changed in this diff Show More