2 Commits

Author SHA1 Message Date
Sam
e2c43712ad Move all upstream changes to repo 2025-01-08 00:02:53 +10:00
Sam
456bb08a2e Merge upstream #3 attempt - 2fauth thru homebox done 2025-01-07 14:50:46 +10:00
621 changed files with 11838 additions and 35821 deletions

View File

@@ -1,16 +0,0 @@
; 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

15
.github/CODEOWNERS vendored
View File

@@ -1,15 +0,0 @@
#
# CODEOWNERS for ProxmoxVE
#
# Order is important; the last matching pattern takes the most
# precedence.
# Codeowners for specific folders and files
# Remember ending folders with /
# Set default reviewers
* @asylumexp

132
.github/CODE_OF_CONDUCT.md vendored Normal file
View File

@@ -0,0 +1,132 @@
# 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

View File

@@ -1,8 +1,14 @@
<div align="center"> <div align="center">
<a href="#"> <a href="#">
<img src="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/images/logo.png" height="100px" /> <img src="https://raw.githubusercontent.com/tteck/Proxmox/main/misc/images/logo.png" height="100px" />
</a> </a>
</div> </div>
<h2 align="center">Contributing to Proxmox ARM64 VE Helper Scripts</h2> <h2 align="center">Contributing to Proxmox VE Helper Scripts</h2>
This repo does not accept any additions for new scripts. Instead, add them to the community-scripts repo, then they'll be ported to arm64. Other than that, any changes are welcome to be PR'd and I'll review them. Everybody is invited and welcome to contribute to Proxmox VE Helper Scripts.
- Pull requests submitted against [**main**](https://github.com/tteck/Proxmox/tree/main) are meticulously scrutinized, so please do not take it personally if the project maintainer rejects your request. By adhering to the established patterns and conventions throughout the codebase, you greatly increase the likelihood that your changes will get merged into [**main**](https://github.com/tteck/Proxmox/tree/main).
- It is important to stress that complaining about a decision after it has been made is not productive behavior for the pull request submitter. It is crucial for all contributors to respect the decision-making process and collaborate effectively towards achieving the best possible outcome for the project.
- The repository will only accept Alpine applications that make use of the Alpine Package Keeper.

View File

@@ -1,37 +0,0 @@
title: "[Script request] "
labels: ["enhancement"]
body:
- type: input
attributes:
label: Application Name
description: Enter the application name.
placeholder: "e.g., Home Assistant"
validations:
required: true
- type: input
attributes:
label: Website
description: Official website or github page.
placeholder: "e.g., https://www.home-assistant.io/"
validations:
required: true
- type: textarea
attributes:
label: Description
description: Explain what the application does and why it should be added to Proxmox VE Helper-Scripts.
placeholder: "e.g., Home Assistant is a popular open-source platform that brings all your smart home devices together in one place. Adding it to Proxmox VE Helper-Scripts would make setup and management on Proxmox easy, letting users quickly get a powerful, self-hosted smart home system up and running."
validations:
required: true
- type: checkboxes
attributes:
label: Due Diligence
options:
- label: "I have searched existing [scripts](https://community-scripts.github.io/Proxmox/scripts) and found no duplicates."
required: true
- label: "I have searched existing [discussions](https://github.com/community-scripts/ProxmoxVE/discussions?discussions_q=) and found no duplicate requests."
required: true
- label: "This is not a game-related request."
required: true
- type: markdown
attributes:
value: "Thanks for submitting your request! The team will review it and reach out if we need more information."

2
.github/FUNDING.yml vendored
View File

@@ -1 +1 @@
ko_fi: community_scripts ko_fi: proxmoxhelperscripts

View File

@@ -1,16 +1,14 @@
name: "🌐 Website Issue Report" name: Problems with a script.
description: Report an issue, an optimization request or an documentation issue specifically related to the website. description: Generate a report on an issue pertaining specifically to a script. For other inquires please share them in the Discussions section.
labels: "website"
body: body:
- type: markdown - type: markdown
attributes: attributes:
value: | value: |
**IMPORTANT:** Failure to comply with the following guidelines may result in immediate closure. **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. - 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 problem is related to a bug in the website, kindly check for browser compatibility and ensure the issue occurs in multiple browsers before submitting. - If the default Linux distribution is not adhered to, script support will be discontinued.
- For suggestions, questions, or feature requests, please use the [Discussions section.](https://github.com/community-scripts/ProxmoxVE/discussions) - 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 - type: input
id: guidelines id: guidelines
attributes: attributes:
@@ -18,58 +16,50 @@ body:
placeholder: 'yes' placeholder: 'yes'
validations: validations:
required: true required: true
- type: dropdown
id: issue_type
validations:
required: true
attributes:
label: What type of issue is this?
options:
-
- Bug
- Optimization
- Documentation
- Other
- type: textarea - type: textarea
id: bug_description id: bug
attributes: attributes:
label: A clear and concise description of the issue. label: A clear and concise description of the issue.
validations: validations:
required: true required: true
- type: dropdown - type: dropdown
id: browser id: settings
validations: validations:
required: true required: true
attributes: attributes:
label: Which browser are you using? label: What settings are you currently utilizing?
options: options:
- -
- Chrome - Default Settings
- Firefox - Advanced Settings
- Safari
- Edge
- Other
- type: markdown - type: markdown
attributes: attributes:
value: | value: (if Advanced Settings, please try Default Settings before creating an issue)
**If the issue is browser-related**, please provide information on the version and platform (Windows, MacOS, Linux, etc.). - 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 - type: textarea
id: screenshot id: screenshot
attributes: attributes:
label: If relevant, including screenshots or a code block can be helpful in clarifying the issue. 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." placeholder: Code blocks begin and conclude by enclosing the code with three backticks (```) above and below it.
validations: validations:
required: false required: false
- type: textarea - type: textarea
id: reproduce id: reproduce
attributes: attributes:
label: Please provide detailed steps to reproduce the issue. label: Please provide detailed steps to reproduce the issue.
placeholder: "First do this, then this ..." placeholder: First do this, then this ...
validations: validations:
required: false required: false

View File

@@ -1,100 +0,0 @@
name: "🐞 Script Issue Report"
description: Report a specific issue with a script. For other inquiries, please use the Discussions section.
body:
- type: markdown
attributes:
value: |
# 🐞 **Script Issue Report**
Thank you for taking the time to report an issue! Please provide as much detail as possible to help us address the problem efficiently.
## ⚠️ **IMPORTANT**
- 🔍 **Search first:** Before submitting, check if the issue has already been reported or resolved in [closed issues](https://github.com/community-scripts/ProxmoxVE/issues?q=is%3Aissue+is%3Aclosed). If found, comment on that issue instead of creating a new one.
Alternatively, check the **[Discussions](https://github.com/community-scripts/ProxmoxVE/discussions)** under the *"Announcement"* or *"Guide"* categories for relevant information.
- 🛠️ **Supported environments only:** Ensure you are using a default Linux distribution. Custom setups may not be supported.
- 🔎 If you encounter `[ERROR] in line 23: exit code *: while executing command "$@" > /dev/null 2>&1`, rerun the script with verbose mode before submitting the issue.
- 💡 For general questions, feature requests, or suggestions, use the [Discussions section](https://github.com/community-scripts/ProxmoxVE/discussions).
- type: input
id: guidelines
attributes:
label: ✅ Have you read and understood the above guidelines?
placeholder: "yes"
validations:
required: true
- type: input
id: script_name
attributes:
label: 📜 What is the name of the script you are using?
placeholder: "e.g., NextcloudPi, Zigbee2MQTT"
validations:
required: true
- type: input
id: script_command
attributes:
label: 📂 What was the exact command used to execute the script?
placeholder: "e.g., bash -c \"$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/ct/zigbee2mqtt.sh)\" or \"update\""
validations:
required: true
- type: textarea
id: issue_description
attributes:
label: 📝 Provide a clear and concise description of the issue.
validations:
required: true
- type: checkboxes
validations:
required: true
attributes:
label: ⚙️ What settings are you using?
options:
- label: Default Settings
- label: Advanced Settings
- type: markdown
attributes:
value: "💡 **Tip:** If you are using Advanced Settings, please test with Default Settings before submitting an issue."
- type: dropdown
id: linux_distribution
attributes:
label: 🖥️ Which Linux distribution are you using?
options:
-
- Alpine
- Debian 11
- Debian 12
- Ubuntu 20.04
- Ubuntu 22.04
- Ubuntu 24.04
- Ubuntu 24.10
validations:
required: true
- type: textarea
id: steps_to_reproduce
attributes:
label: 🔄 Steps to reproduce the issue.
placeholder: "e.g., Step 1: ..., Step 2: ..."
validations:
required: true
- type: textarea
id: error_output
attributes:
label: ❌ Paste the full error output (if available).
placeholder: "Include any relevant logs or error messages."
validations:
required: true
- type: textarea
id: additional_context
attributes:
label: 🖼️ Additional context (optional).
placeholder: "Include screenshots, code blocks (use triple backticks ```), or any other relevant information."
validations:
required: false

View File

@@ -1,11 +1,5 @@
blank_issues_enabled: false blank_issues_enabled: false
contact_links: contact_links:
- name: 🤔 Questions and Help - name: Helper-Scripts Community Support
url: https://github.com/community-scripts/ProxmoxVE/discussions url: https://github.com/tteck/Proxmox/discussions
about: For suggestions or questions, please use the Discussions section. about: Please ask and answer questions here.
- name: 🌟 Feature request
url: https://github.com/community-scripts/ProxmoxVE/discussions/new?category=request-script
about: For feature/script requests, please use the Discussions section.
- name: 💻 Discord
url: https://discord.gg/UHrpNWGwkH
about: Join our Discord server to chat with other users in the Proxmox Helper Scripts community.

9
.github/pull.yml vendored Normal file
View File

@@ -0,0 +1,9 @@
version: "1"
rules:
- base: main
upstream: tteck:main
mergeMethod: merge # [none, merge, squash, rebase, hardreset]
conflictReviewers:
- asylumexp
label: ":arrow_heading_down: pull"
conflictLabel: "merge-conflict"

View File

@@ -1,39 +0,0 @@
> **🛠️ Note:**
> We are meticulous about merging code into the main branch, so please understand that pull requests not meeting the project's standards may be rejected. It's never personal!
> 🎮 **Note for game-related scripts:** These have a lower likelihood of being merged.
---
## ✍️ Description
Provide a summary of the changes made and/or reference the issue being addressed.
- - -
**_Please remove unneeded lines!_**
- Related Issue: # (issue number, if applicable)
- Related PR: # (if applicable)
- Related Discussion: []()(if applicable)
---
## 🛠️ Type of Change
Please check the relevant options:
- [ ] Bug fix (non-breaking change that resolves an issue)
- [ ] New feature (non-breaking change that adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change unexpectedly)
- [ ] New script (a fully functional and thoroughly tested script or set of scripts)
---
## ✅ Prerequisites
The following steps must be completed for the pull request to be considered:
- [ ] Self-review performed (I have reviewed my code to ensure it follows established patterns and conventions.)
- [ ] Testing performed (I have thoroughly tested my changes and verified expected functionality.)
- [ ] Documentation updated (I have updated any relevant documentation)
---
## 📋 Additional Information (optional)
Provide any extra context or screenshots about the feature or fix here.

View File

@@ -1,78 +0,0 @@
# Based on https://github.com/actions/starter-workflows/blob/main/pages/nextjs.yml
name: Frontend CI/CD
on:
push:
branches: ["main"]
paths:
- frontend/**
- json/**
pull_request:
branches: ["main"]
types: [opened, synchronize, reopened, edited]
paths:
- frontend/**
- json/**
workflow_dispatch:
permissions:
contents: read
concurrency:
group: pages-${{ github.ref }}
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: frontend # Set default working directory for all run steps
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
cache-dependency-path: frontend/package-lock.json
- name: Install dependencies
run: npm ci --prefer-offline --legacy-peer-deps
- name: Run tests
run: npm run test
- name: Configure Next.js for pages
uses: actions/configure-pages@v5
with:
static_site_generator: next
- name: Build with Next.js
run: npm run build
- name: Upload artifact
if: github.ref == 'refs/heads/main'
uses: actions/upload-pages-artifact@v3
with:
path: frontend/out
deploy:
runs-on: ubuntu-latest
needs: build
if: github.ref == 'refs/heads/main'
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

2
.gitignore vendored
View File

@@ -1 +1 @@
script.py script*.py

File diff suppressed because it is too large Load Diff

View File

@@ -1,14 +1,14 @@
<div align="center"> <div align="center">
<img src="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/images/logo.png" height="100px" /> <img src="https://raw.githubusercontent.com/tteck/Proxmox/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/community-scripts/ProxmoxVE/blob/main/ct/adguard.sh): This script collects system parameters. (Also holds the function to update the application.) 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.)
2) [build.func](https://github.com/community-scripts/ProxmoxVE/blob/main/misc/build.func): Adds user settings and integrates collected information. 2) [build.func](https://github.com/tteck/Proxmox/blob/main/misc/build.func): Adds user settings and integrates collected information.
3) [create_lxc.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/ct/create_lxc.sh): Constructs the LXC container. 3) [create_lxc.sh](https://github.com/tteck/Proxmox/blob/main/ct/create_lxc.sh): Constructs the LXC container.
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. 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.
5) [adguard.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/ct/adguard.sh) (again): To display the completion message. 5) [adguard.sh](https://github.com/tteck/Proxmox/blob/main/ct/adguard.sh) (again): To display the completion message.
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. 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.
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. 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.

View File

@@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2021-2025 asylumexp Copyright (c) 2021-2024 tteck
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

View File

@@ -33,4 +33,4 @@ If you would like to offer support, I would appreciate a star on the repository,
## Compatibility Guide ## Compatibility Guide
[View Compatibility Guide here](https://pimox-scripts.com) [View Compatibility Guide here](https://pimox-scripts.com)

View File

@@ -1,23 +0,0 @@
## 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.

View File

@@ -1,6 +1,6 @@
<div align="center"> <div align="center">
<a href="#"> <a href="#">
<img src="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/images/logo.png" height="100px" /> <img src="https://raw.githubusercontent.com/tteck/Proxmox/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>

View File

@@ -1,90 +0,0 @@
#!/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}"

View File

@@ -1,113 +0,0 @@
#!/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}"

View File

@@ -1,52 +1,77 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://actualbudget.org/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
___ __ __ ____ __ __
/ | _____/ /___ ______ _/ / / __ )__ ______/ /___ ____ / /_
/ /| |/ ___/ __/ / / / __ `/ / / __ / / / / __ / __ `/ _ \/ __/
/ ___ / /__/ /_/ /_/ / /_/ / / / /_/ / /_/ / /_/ / /_/ / __/ /_
/_/ |_\___/\__/\__,_/\__,_/_/ /_____/\__,_/\__,_/\__, /\___/\__/
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Actual Budget" APP="Actual Budget"
var_tags="finance" var_disk="4"
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
check_container_storage if [[ ! -d /opt/actualbudget ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating ${APP}"
if [[ ! -d /opt/actualbudget ]]; then systemctl stop actualbudget.service
msg_error "No ${APP} Installation Found!" cd /opt/actualbudget
exit git pull &>/dev/null
fi yarn install &>/dev/null
msg_info "Updating ${APP}" systemctl start actualbudget.service
systemctl stop actualbudget.service msg_ok "Successfully Updated ${APP}"
cd /opt/actualbudget exit
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 "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:5006${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5006${CL}"

View File

@@ -1,39 +1,87 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://adguard.com/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
___ __ __
/ | ____/ /___ ___ ______ __________/ /
/ /| |/ __ / __ / / / / __ / ___/ __ /
/ ___ / /_/ / /_/ / /_/ / /_/ / / / /_/ /
/_/ |_\__,_/\__, /\__,_/\__,_/_/ \__,_/
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Adguard" APP="Adguard"
var_tags="adblock" var_disk="2"
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
check_container_storage if [[ ! -d /opt/AdGuardHome ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then
if [[ ! -d /opt/AdGuardHome ]]; then read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt
msg_error "No ${APP} Installation Found!" [[ ${prompt,,} =~ ^(y|yes)$ ]] || exit
exit fi
fi wget -qL https://static.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz
msg_error "Adguard Home should be updated via the user interface." msg_info "Stopping AdguardHome"
exit systemctl stop AdGuardHome
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
@@ -41,6 +89,5 @@ 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 "${APP} Setup should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:3000${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@@ -1,77 +1,104 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: MickLesk (Canbiz) # Author: tteck
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # Co-Author: MickLesk (Canbiz)
# Source: https://adventurelog.app/ # License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
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
check_container_storage if [[ ! -d /opt/adventurelog ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then
if [[ ! -d /opt/adventurelog ]]; then read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt
msg_error "No ${APP} Installation Found!" [[ ${prompt,,} =~ ^(y|yes)$ ]] || exit
exit fi
fi RELEASE=$(curl -s https://api.github.com/repos/seanmorley15/AdventureLog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
RELEASE=$(curl -s https://api.github.com/repos/seanmorley15/AdventureLog/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 Services"
msg_info "Stopping Services" systemctl stop adventurelog-backend
systemctl stop adventurelog-backend systemctl stop adventurelog-frontend
systemctl stop adventurelog-frontend msg_ok "Services Stopped"
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
cd /opt/adventurelog/frontend
pnpm install &>/dev/null
pnpm run build &>/dev/null
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP}"
mv /opt/frontend.env /opt/adventurelog/frontend/.env msg_info "Starting Services"
cd /opt/adventurelog/frontend systemctl start adventurelog-backend
pnpm install &>/dev/null systemctl start adventurelog-frontend
pnpm run build &>/dev/null msg_ok "Started Services"
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP}"
msg_info "Starting Services" msg_info "Cleaning Up"
systemctl start adventurelog-backend rm -rf v${RELEASE}.zip
systemctl start adventurelog-frontend msg_ok "Cleaned"
msg_ok "Started Services" msg_ok "Updated Successfully"
else
msg_info "Cleaning Up" msg_ok "No update required. ${APP} is already at ${RELEASE}"
rm -rf v${RELEASE}.zip fi
msg_ok "Cleaned" exit
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
} }
start start
@@ -79,6 +106,5 @@ 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 "${APP} Setup should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:3000${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@@ -1,39 +1,62 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://www.ispyconnect.com/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
___ __ ____ _ ______
/ | ____ ____ ____ / /_/ __ \ | / / __ \
/ /| |/ __ `/ _ \/ __ \/ __/ / / / | / / /_/ /
/ ___ / /_/ / __/ / / / /_/ /_/ /| |/ / _, _/
/_/ |_\__, /\___/_/ /_/\__/_____/ |___/_/ |_|
/____/
EOF
}
header_info
echo -e "Loading..."
APP="AgentDVR" APP="AgentDVR"
var_tags="dvr" var_disk="8"
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
check_container_storage if [[ ! -d /opt/agentdvr ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_error "There is currently no update path available."
if [[ ! -d /opt/agentdvr ]]; then exit
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "There is currently no update path available."
exit
} }
start start
@@ -41,6 +64,5 @@ 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 "${APP}${CL} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:8090${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"

View File

@@ -1,28 +1,58 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
____ __
/ __ \____ _____/ /_ __ _____
/ / / / __ \/ ___/ //_/ _ \/ ___/
/ /_/ / /_/ / /__/ ,< / __/ /
/_____/\____/\___/_/|_|\___/_/
Alpine
EOF
}
header_info
echo -e "Loading..."
APP="Alpine-Docker" APP="Alpine-Docker"
var_tags="docker;alpine" var_disk="2"
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

View File

@@ -1,28 +1,58 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
______ ____
/ ____/________ _/ __/___ _____ ____ _
/ / __/ ___/ __ / /_/ __ / __ \/ __ /
/ /_/ / / / /_/ / __/ /_/ / / / / /_/ /
\____/_/ \__,_/_/ \__,_/_/ /_/\__,_/
Alpine
EOF
}
header_info
echo -e "Loading..."
APP="Alpine-Grafana" APP="Alpine-Grafana"
var_tags="alpine;monitoring" var_disk="1"
var_cpu="1" var_cpu="1"
var_ram="256" var_ram="256"
var_disk="1"
var_os="alpine" var_os="alpine"
var_version="3.20" var_version="3.19"
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

View File

@@ -1,28 +1,57 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
_ __ __ __ __ __ __ __
/ | / /__ _ __/ /______/ /___ __ ______/ / / / / /_ __/ /_
/ |/ / _ \| |/_/ __/ ___/ / __ \/ / / / __ / / /_/ / / / / __ \
/ /| / __/> </ /_/ /__/ / /_/ / /_/ / /_/ / / __ / /_/ / /_/ /
/_/ |_/\___/_/|_|\__/\___/_/\____/\__,_/\__,_/ /_/ /_/\__,_/_.___/
Alpine
EOF
}
header_info
echo -e "Loading..."
APP="Alpine-Nextcloud" APP="Alpine-Nextcloud"
var_tags="alpine;cloud" var_disk="2"
var_cpu="2" var_cpu="2"
var_ram="1024" var_ram="1024"
var_disk="2"
var_os="alpine" var_os="alpine"
var_version="3.20" var_version="3.19"
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!"

View File

@@ -1,28 +1,58 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
_ __ ____ __
| | / /___ ___ __/ / /__ ______ __________/ /__ ____
| | / / __ `/ / / / / __/ | /| / / __ `/ ___/ __ / _ \/ __ \
| |/ / /_/ / /_/ / / /_ | |/ |/ / /_/ / / / /_/ / __/ / / /
|___/\__,_/\__,_/_/\__/ |__/|__/\__,_/_/ \__,_/\___/_/ /_/
Alpine
EOF
}
header_info
echo -e "Loading..."
APP="Alpine-Vaultwarden" APP="Alpine-Vaultwarden"
var_tags="alpine;vault" var_disk="0.3"
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.20" var_version="3.19"
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
@@ -55,7 +85,7 @@ function update_script() {
sed -i "s|\"admin_token\": .*|\"admin_token\": \"${TOKEN}\",|" /var/lib/vaultwarden/config.json sed -i "s|\"admin_token\": .*|\"admin_token\": \"${TOKEN}\",|" /var/lib/vaultwarden/config.json
fi fi
rc-service vaultwarden restart -q rc-service vaultwarden restart -q
fi fi
clear clear
exit exit
;; ;;

View File

@@ -1,28 +1,58 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
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.20" var_version="3.19"
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

View File

@@ -2,37 +2,67 @@
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 | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
___ __ _
/ | / /___ (_)___ ___
/ /| | / / __ \/ / __ \/ _ \
/ ___ |/ / /_/ / / / / / __/
/_/ |_/_/ .___/_/_/ /_/\___/
/_/
EOF
}
header_info
echo -e "Loading..."
APP="Alpine" APP="Alpine"
var_tags="os;alpine" var_disk="0.1"
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.20" var_version="3.19"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors
function update_script() { function default_settings() {
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 1 \ CT_TYPE="1"
"1" "Check for Alpine Updates" ON \ PW="-password alpine"
3>&1 1>&2 2>&3) 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
}
header_info function update_script() {
if [ "$UPD" == "1" ]; then UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 1 \
apk update && apk upgrade "1" "Check for Alpine Updates" ON \
exit 3>&1 1>&2 2>&3)
fi
header_info
if [ "$UPD" == "1" ]; then
apk update && apk upgrade
exit;
fi
} }
start start

View File

@@ -1,40 +1,64 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://cassandra.apache.org/_/index.html # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
___ __ ______ __
/ | ____ ____ ______/ /_ ___ / ____/___ _______________ _____ ____/ /________ _
/ /| | / __ \/ __ `/ ___/ __ \/ _ \ / / / __ `/ ___/ ___/ __ `/ __ \/ __ / ___/ __ `/
/ ___ |/ /_/ / /_/ / /__/ / / / __/ / /___/ /_/ (__ |__ ) /_/ / / / / /_/ / / / /_/ /
/_/ |_/ .___/\__,_/\___/_/ /_/\___/ \____/\__,_/____/____/\__,_/_/ /_/\__,_/_/ \__,_/
/_/
EOF
}
header_info
echo -e "Loading..."
APP="Apache-Cassandra" APP="Apache-Cassandra"
var_tags="database;NoSQL" var_disk="4"
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"
var_unprivileged="1" VERBOSE="yes"
# 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
check_container_storage if [[ ! -f /etc/systemd/system/cassandra.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_error "There is currently no update path available."
if [[ ! -f /etc/systemd/system/cassandra.service ]]; then exit
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "There is currently no update path available."
exit
} }
start start
@@ -42,4 +66,3 @@ 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}"

View File

@@ -1,39 +1,64 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://couchdb.apache.org/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
___ __ ______ __ ____ ____
/ | ____ ____ ______/ /_ ___ / ____/___ __ _______/ /_ / __ \/ __ )
/ /| | / __ \/ __ `/ ___/ __ \/ _ \ / / / __ \/ / / / ___/ __ \/ / / / __ |
/ ___ |/ /_/ / /_/ / /__/ / / / __/ / /___/ /_/ / /_/ / /__/ / / / /_/ / /_/ /
/_/ |_/ .___/\__,_/\___/_/ /_/\___/ \____/\____/\__,_/\___/_/ /_/_____/_____/
/_/
EOF
}
header_info
echo -e "Loading..."
APP="Apache-CouchDB" APP="Apache-CouchDB"
var_tags="database" var_disk="10"
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"
var_unprivileged="1" VERBOSE="yes"
# 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
check_container_storage if [[ ! -f /etc/systemd/system/couchdb.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_error "There is currently no update path available."
if [[ ! -f /etc/systemd/system/couchdb.service ]]; then exit
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "There is currently no update path available."
exit
} }
start start
@@ -41,6 +66,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:5984/_utils/${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5984/_utils/${CL}"

View File

@@ -1,47 +0,0 @@
#!/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}"

View File

@@ -1,42 +1,66 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://wiki.debian.org/AptCacherNg # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
___ __ ______ __ _ ________
/ | ____ / /_ / ____/___ ______/ /_ ___ _____ / | / / ____/
/ /| | / __ \/ __/__/ / / __ `/ ___/ __ \/ _ \/ ___/__/ |/ / / __
/ ___ |/ /_/ / /_/__/ /___/ /_/ / /__/ / / / __/ / /__/ /| / /_/ /
/_/ |_/ .___/\__/ \____/\__,_/\___/_/ /_/\___/_/ /_/ |_/\____/
/_/
EOF
}
header_info
echo -e "Loading..."
APP="Apt-Cacher-NG" APP="Apt-Cacher-NG"
var_tags="caching" var_disk="2"
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
check_container_storage if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating $APP LXC"
if [[ ! -d /var ]]; then apt-get update &>/dev/null
msg_error "No ${APP} Installation Found!" apt-get -y upgrade &>/dev/null
exit msg_ok "Updated $APP LXC"
fi exit
msg_info "Updating $APP LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -44,6 +68,5 @@ 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 "${APP} maintenance page should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:3142/acng-report.html${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3142/acng-report.html{CL}"

View File

@@ -1,53 +1,80 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck # Author: tteck
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://archivebox.io/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
___ __ _ ____
/ | __________/ /_ (_) _____ / __ )____ _ __
/ /| | / ___/ ___/ __ \/ / | / / _ \/ __ / __ \| |/_/
/ ___ |/ / / /__/ / / / /| |/ / __/ /_/ / /_/ /> <
/_/ |_/_/ \___/_/ /_/_/ |___/\___/_____/\____/_/|_|
EOF
}
header_info
echo -e "Loading..."
APP="ArchiveBox" APP="ArchiveBox"
var_tags="archive;bookmark" var_disk="8"
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
check_container_storage if [[ ! -d /opt/archivebox ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then
if [[ ! -d /opt/archivebox ]]; then read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt
msg_error "No ${APP} Installation Found!" [[ ${prompt,,} =~ ^(y|yes)$ ]] || exit
exit fi
fi msg_info "Stopping ${APP}"
msg_info "Stopping ${APP}" systemctl stop archivebox
systemctl stop archivebox msg_ok "Stopped ${APP}"
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
@@ -55,6 +82,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:8000/admin/login${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000/admin/login${CL}"

View File

@@ -1,42 +1,64 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://aria2.github.io/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
___ _ ___
/ | _____(_)___ |__ \
/ /| | / ___/ / __ `/_/ /
/ ___ |/ / / / /_/ / __/
/_/ |_/_/ /_/\__,_/____/
EOF
}
header_info
echo -e "Loading..."
APP="Aria2" APP="Aria2"
var_tags="download-utility"
var_cpu="2"
var_ram="1024"
var_disk="8" var_disk="8"
var_cpu="2"
var_ram="1028"
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
check_container_storage if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating $APP LXC"
if [[ ! -d /var ]]; then apt-get update &>/dev/null
msg_error "No ${APP} Installation Found!" apt-get -y upgrade &>/dev/null
exit msg_ok "Updated $APP LXC"
fi exit
msg_info "Updating $APP LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -44,6 +66,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:6880${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:6880${CL}"

View File

@@ -1,39 +1,62 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://www.audiobookshelf.org/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
___ __ __ __ ______
____ ___ ______/ (_)___ / /_ ____ ____ / /_______/ /_ ___ / / __/
/ __ `/ / / / __ / / __ \/ __ \/ __ \/ __ \/ //_/ ___/ __ \/ _ \/ / /_
/ /_/ / /_/ / /_/ / / /_/ / /_/ / /_/ / /_/ / ,< (__ ) / / / __/ / __/
\__,_/\__,_/\__,_/_/\____/_.___/\____/\____/_/|_/____/_/ /_/\___/_/_/
EOF
}
header_info
echo -e "Loading..."
APP="audiobookshelf" APP="audiobookshelf"
var_tags="podcast;audiobook" var_disk="4"
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
check_container_storage if [[ ! -f /etc/apt/trusted.gpg.d/audiobookshelf-ppa.asc ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources echo "This application receives updates through the APT package manager."
if [[ ! -f /etc/apt/trusted.gpg.d/audiobookshelf-ppa.asc ]]; then exit
msg_error "No ${APP} Installation Found!"
exit
fi
echo "This application receives updates through the APT package manager."
exit
} }
start start
@@ -41,6 +64,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:13378${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:13378${CL}"

View File

@@ -1,84 +0,0 @@
#!/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}"

View File

@@ -1,53 +1,76 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://autobrr.com/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
___ __ __
/ | __ __/ /_____ / /_ __________
/ /| |/ / / / __/ __ \/ __ \/ ___/ ___/
/ ___ / /_/ / /_/ /_/ / /_/ / / / /
/_/ |_\__,_/\__/\____/_.___/_/ /_/
EOF
}
header_info
echo -e "Loading..."
APP="Autobrr" APP="Autobrr"
var_tags="arr;" 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
check_container_storage if [[ ! -f /root/.config/autobrr/config.toml ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Stopping ${APP} LXC"
if [[ ! -f /root/.config/autobrr/config.toml ]]; then systemctl stop autobrr.service
msg_error "No ${APP} Installation Found!" msg_ok "Stopped ${APP} LXC"
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_x86_64 | cut -d\" -f4) wget -q $(curl -s https://api.github.com/repos/autobrr/autobrr/releases/latest | grep download | grep linux_arm64 | 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
@@ -55,6 +78,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:7474${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7474${CL}"

View File

@@ -1,38 +1,64 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://www.bazarr.media/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
____
/ __ )____ _____ ____ ___________
/ __ / __ `/_ / / __ `/ ___/ ___/
/ /_/ / /_/ / / /_/ /_/ / / / /
/_____/\__,_/ /___/\__,_/_/ /_/
EOF
}
header_info
echo -e "Loading..."
APP="Bazarr" APP="Bazarr"
var_tags="arr" var_disk="4"
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
check_container_storage if [[ ! -d /var/lib/bazarr/ ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating $APP LXC"
if [[ ! -d /var/lib/bazarr/ ]]; then msg_error "No ${APP} Installation Found!"; exit; fi apt-get update &>/dev/null
msg_info "Updating $APP LXC" apt-get -y upgrade &>/dev/null
apt-get update &>/dev/null msg_ok "Updated $APP LXC"
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit exit
} }
@@ -41,6 +67,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:6767${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:6767${CL}"

View File

@@ -1,39 +1,65 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://0xerr0r.github.io/blocky/latest/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
____ __ __
/ __ )/ /___ _____/ /____ __
/ __ / / __ \/ ___/ //_/ / / /
/ /_/ / / /_/ / /__/ ,< / /_/ /
/_____/_/\____/\___/_/|_|\__, /
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Blocky" APP="Blocky"
var_tags="adblock" var_disk="2"
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
check_container_storage if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating $APP LXC"
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi apt-get update &>/dev/null
msg_info "Updating $APP LXC" apt-get -y upgrade &>/dev/null
apt-get update &>/dev/null msg_ok "Updated $APP LXC"
apt-get -y upgrade &>/dev/null exit
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -41,6 +67,3 @@ 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}"

View File

@@ -1,82 +0,0 @@
#!/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}"

View File

@@ -1,36 +1,63 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://www.bunkerweb.io/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
____ __ _ __ __
/ __ )__ ______ / /_____ ____| | / /__ / /_
/ __ / / / / __ \/ //_/ _ \/ ___/ | /| / / _ \/ __ \
/ /_/ / /_/ / / / / ,< / __/ / | |/ |/ / __/ /_/ /
/_____/\__,_/_/ /_/_/|_|\___/_/ |__/|__/\___/_.___/
EOF
}
header_info
echo -e "Loading..."
APP="BunkerWeb" APP="BunkerWeb"
var_tags="webserver" var_disk="4"
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
check_container_storage if [[ ! -d /etc/bunkerweb ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources
if [[ ! -d /etc/bunkerweb ]]; then msg_error "No ${APP} Installation Found!"; exit; fi RELEASE=$(curl -s https://api.github.com/repos/bunkerity/bunkerweb/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
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
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
@@ -55,6 +82,5 @@ 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 "${APP} setup should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}/setup${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}/setup${CL}"

View File

@@ -1,42 +1,65 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://caddyserver.com/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
______ __ __
/ ____/___ _____/ /___/ /_ __
/ / / __ `/ __ / __ / / / /
/ /___/ /_/ / /_/ / /_/ / /_/ /
\____/\__,_/\__,_/\__,_/\__, /
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Caddy" APP="Caddy"
var_tags="webserver" var_disk="2"
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
check_container_storage if [[ ! -d /etc/caddy ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating $APP LXC"
if [[ ! -d /etc/caddy ]]; then apt-get update &>/dev/null
msg_error "No ${APP} Installation Found!" apt-get -y upgrade &>/dev/null
exit msg_ok "Updated $APP LXC"
fi exit
msg_info "Updating $APP LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -44,6 +67,3 @@ 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}"

View File

@@ -1,46 +1,70 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) | Co-Author: remz1337 # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # Co-Author: remz1337
# Source: https://github.com/janeczku/calibre-web # License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
______ ___ __ _ __ __
/ ____/___ _/ (_) /_ ________ | | / /__ / /_
/ / / __ `/ / / __ \/ ___/ _ \___| | /| / / _ \/ __ \
/ /___/ /_/ / / / /_/ / / / __/___/ |/ |/ / __/ /_/ /
\____/\__,_/_/_/_.___/_/ \___/ |__/|__/\___/_.___/
EOF
}
header_info
echo -e "Loading..."
APP="Calibre-Web" APP="Calibre-Web"
var_tags="eBook" var_disk="4"
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
msg_info "Stopping ${APP}" header_info
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 -rf kepubify-linux-64bit rm kepubify-linux-arm64
curl -fsSLO https://github.com/pgaskin/kepubify/releases/latest/download/kepubify-linux-64bit curl -fsSLO https://github.com/pgaskin/kepubify/releases/latest/download/kepubify-linux-arm64 &>/dev/null
chmod +x kepubify-linux-64bit chmod +x kepubify-linux-arm64
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 \
@@ -48,33 +72,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=$!
@@ -83,29 +107,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
@@ -114,22 +138,16 @@ function update_script() {
esac esac
done done
fi fi
if [ ${#options[@]} -gt 0 ]; then if [ ! -z "$options" ] && [ ${#options[@]} -gt 0 ]; then
cps_options=$( cps_options=$(IFS=, ; echo "${options[*]}")
IFS=, echo $cps_options > /opt/calibre-web/options.txt
echo "${options[*]}" pip install --upgrade calibreweb[$cps_options]
)
echo $cps_options >/opt/calibre-web/options.txt
pip install --upgrade calibreweb[$cps_options] &>/dev/null
else else
rm -rf /opt/calibre-web/options.txt rm /opt/calibre-web/options.txt 2> /dev/null
pip install --upgrade calibreweb &>/dev/null pip install --upgrade calibreweb
fi fi
msg_info "Starting ${APP}"
systemctl start cps systemctl start cps
msg_ok "Started ${APP}" msg_ok "Updated $APP LXC"
msg_ok "Updated Successfully"
exit exit
} }
@@ -137,7 +155,10 @@ 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 "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:8083${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8083${CL}"

View File

@@ -1,42 +1,65 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://casaos.io/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
______ ____ _____
/ ____/___ __________ _/ __ \/ ___/
/ / / __ `/ ___/ __ `/ / / /\__ \
/ /___/ /_/ (__ ) /_/ / /_/ /___/ /
\____/\__,_/____/\__,_/\____//____/
EOF
}
header_info
echo -e "Loading..."
APP="CasaOS" APP="CasaOS"
var_tags="cloud" 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
check_container_storage if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating ${APP} LXC"
if [[ ! -d /var ]]; then apt-get update &>/dev/null
msg_error "No ${APP} Installation Found!" apt-get -y upgrade &>/dev/null
exit msg_ok "Updated ${APP} LXC"
fi exit
msg_info "Updating ${APP} LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated ${APP} LXC"
exit
} }
start start
@@ -44,6 +67,5 @@ 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 "${APP} Setup should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP} ${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

View File

@@ -1,75 +1,81 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://changedetection.io/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
________ ____ __ __ _
/ ____/ /_ ____ _____ ____ ____ / __ \___ / /____ _____/ /_(_)___ ____
/ / / __ \/ __ `/ __ \/ __ `/ _ \ / / / / _ \/ __/ _ \/ ___/ __/ / __ \/ __ \
/ /___/ / / / /_/ / / / / /_/ / __/ / /_/ / __/ /_/ __/ /__/ /_/ / /_/ / / / /
\____/_/ /_/\__,_/_/ /_/\__, /\___/ /_____/\___/\__/\___/\___/\__/_/\____/_/ /_/
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Change Detection" APP="Change Detection"
var_tags="monitoring;crawler" var_disk="8"
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
check_container_storage if [[ ! -f /etc/systemd/system/changedetection.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating ${APP} LXC"
if ! dpkg -s libjpeg-dev >/dev/null 2>&1; then
if [[ ! -f /etc/systemd/system/changedetection.service ]]; then apt-get update
msg_error "No ${APP} Installation Found!" apt-get install -y libjpeg-dev
exit fi
fi pip3 install changedetection.io --upgrade &>/dev/null
pip3 install playwright --upgrade &>/dev/null
if ! dpkg -s libjpeg-dev >/dev/null 2>&1; then if [[ -f /etc/systemd/system/browserless.service ]]; then
msg_info "Installing Dependencies" git -C /opt/browserless/ fetch --all &>/dev/null
apt-get update git -C /opt/browserless/ reset --hard origin/main &>/dev/null
apt-get install -y libjpeg-dev npm update --prefix /opt/browserless &>/dev/null
msg_ok "Updated Dependencies" npm run build --prefix /opt/browserless &>/dev/null
fi npm run build:function --prefix /opt/browserless &>/dev/null
npm prune production --prefix /opt/browserless &>/dev/null
msg_info "Updating ${APP}" systemctl restart browserless
pip3 install changedetection.io --upgrade &>/dev/null else
msg_ok "Updated ${APP}" msg_error "No Browserless Installation Found!"
fi
msg_info "Updating Playwright" systemctl restart changedetection
pip3 install playwright --upgrade &>/dev/null msg_ok "Updated Successfully"
msg_ok "Updated Playwright" exit
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
@@ -77,6 +83,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:5000${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"

View File

@@ -1,39 +1,62 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://getchannels.com/dvr-server/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
________ __ ____ _ ______ _____
/ ____/ /_ ____ _____ ____ ___ / /____ / __ \ | / / __ \ / ___/___ ______ _____ _____
/ / / __ \/ __ `/ __ \/ __ \/ _ \/ / ___/ / / / / | / / /_/ / \__ \/ _ \/ ___/ | / / _ \/ ___/
/ /___/ / / / /_/ / / / / / / / __/ (__ ) / /_/ /| |/ / _, _/ ___/ / __/ / | |/ / __/ /
\____/_/ /_/\__,_/_/ /_/_/ /_/\___/_/____/ /_____/ |___/_/ |_| /____/\___/_/ |___/\___/_/
EOF
}
header_info
echo -e "Loading..."
APP="Channels" APP="Channels"
var_tags="dvr" var_disk="8"
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
check_container_storage if [[ ! -d /opt/channels-dvr ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_error "There is currently no update path available."
if [[ ! -d /opt/channels-dvr ]]; then exit
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "There is currently no update path available."
exit
} }
start start
@@ -41,6 +64,5 @@ 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 "${APP} Setup should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:8089 ${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8089${CL}"

View File

@@ -1,59 +0,0 @@
#!/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}"

View File

@@ -1,42 +1,65 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://www.cloudflare.com/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
________ ________ __
/ ____/ /___ __ ______/ / __/ /___ _________ ____/ /
/ / / / __ \/ / / / __ / /_/ / __ `/ ___/ _ \/ __ /
/ /___/ / /_/ / /_/ / /_/ / __/ / /_/ / / / __/ /_/ /
\____/_/\____/\__,_/\__,_/_/ /_/\__,_/_/ \___/\__,_/
EOF
}
header_info
echo -e "Loading..."
APP="Cloudflared" APP="Cloudflared"
var_tags="network;cloudflare" var_disk="2"
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
check_container_storage if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating $APP LXC"
if [[ ! -d /var ]]; then apt-get update &>/dev/null
msg_error "No ${APP} Installation Found!" apt-get -y upgrade &>/dev/null
exit msg_ok "Updated $APP LXC"
fi exit
msg_info "Updating $APP LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -44,4 +67,3 @@ 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}"

View File

@@ -1,92 +1,119 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck | Co-Author: havardthom # Author: tteck
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # Co-Author: havardthom
# Source: https://cockpit-project.org/ # License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
______ __ _ __
/ ____/___ _____/ /______ (_) /_
/ / / __ \/ ___/ //_/ __ \/ / __/
/ /___/ /_/ / /__/ ,< / /_/ / / /_
\____/\____/\___/_/|_/ .___/_/\__/
/_/
EOF
}
header_info
echo -e "Loading..."
APP="Cockpit" APP="Cockpit"
var_tags="monitoring;network" var_disk="4"
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 update_script() { function default_settings() {
header_info CT_TYPE="1"
check_container_storage PW=""
check_container_resources CT_ID=$NEXTID
if [[ ! -d /etc/cockpit ]]; then HN=$NSAPP
msg_error "No ${APP} Installation Found!" DISK_SIZE="$var_disk"
exit CORE_COUNT="$var_cpu"
fi RAM_SIZE="$var_ram"
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 4 \ BRG="vmbr0"
"1" "Update LXC" ON \ NET="dhcp"
"2" "Install cockpit-file-sharing" OFF \ GATE=""
"3" "Install cockpit-identities" OFF \ APT_CACHER=""
"4" "Install cockpit-navigator" OFF \ APT_CACHER_IP=""
3>&1 1>&2 2>&3) DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
VERB="no"
echo_default
}
if [ "$UPD" == "1" ]; then function update_script() {
msg_info "Updating ${APP} LXC" if [[ ! -d /etc/cockpit ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
apt-get update &>/dev/null UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 4 \
apt-get -y upgrade &>/dev/null "1" "Update LXC" ON \
msg_ok "Updated ${APP} LXC" "2" "Install cockpit-file-sharing" OFF \
exit "3" "Install cockpit-identities" OFF \
fi "4" "Install cockpit-navigator" OFF \
if [ "$UPD" == "2" ]; then 3>&1 1>&2 2>&3)
msg_info "Installing dependencies (patience)"
apt-get install -y attr &>/dev/null header_info
apt-get install -y nfs-kernel-server &>/dev/null if [ "$UPD" == "1" ]; then
apt-get install -y samba &>/dev/null msg_info "Updating ${APP} LXC"
apt-get install -y samba-common-bin &>/dev/null apt-get update &>/dev/null
apt-get install -y winbind &>/dev/null apt-get -y upgrade &>/dev/null
apt-get install -y gawk &>/dev/null msg_ok "Updated ${APP} LXC"
msg_ok "Installed dependencies" exit
msg_info "Installing Cockpit file sharing" fi
wget -q $(curl -s https://api.github.com/repos/45Drives/cockpit-file-sharing/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4) if [ "$UPD" == "2" ]; then
dpkg -i cockpit-file-sharing_*focal_all.deb &>/dev/null msg_info "Installing dependencies (patience)"
rm cockpit-file-sharing_*focal_all.deb apt-get install -y attr &>/dev/null
msg_ok "Installed Cockpit file sharing" apt-get install -y nfs-kernel-server &>/dev/null
exit apt-get install -y samba &>/dev/null
fi apt-get install -y samba-common-bin &>/dev/null
if [ "$UPD" == "3" ]; then apt-get install -y winbind &>/dev/null
msg_info "Installing dependencies (patience)" apt-get install -y gawk &>/dev/null
apt-get install -y psmisc &>/dev/null msg_ok "Installed dependencies"
apt-get install -y samba &>/dev/null msg_info "Installing Cockpit file sharing"
apt-get install -y samba-common-bin &>/dev/null 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) }')
msg_ok "Installed dependencies" wget -q https://github.com/45Drives/cockpit-file-sharing/releases/download/v${LATEST}/cockpit-file-sharing_${LATEST}-1focal_all.deb
msg_info "Installing Cockpit identities" dpkg -i cockpit-file-sharing_${LATEST}-1focal_all.deb &>/dev/null
wget -q $(curl -s https://api.github.com/repos/45Drives/cockpit-identities/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4) rm cockpit-file-sharing_${LATEST}-1focal_all.deb
dpkg -i cockpit-identities_*focal_all.deb &>/dev/null msg_ok "Installed Cockpit file sharing"
rm cockpit-identities_*focal_all.deb exit
msg_ok "Installed Cockpit identities" fi
exit if [ "$UPD" == "3" ]; then
fi msg_info "Installing dependencies (patience)"
if [ "$UPD" == "4" ]; then apt-get install -y psmisc &>/dev/null
msg_info "Installing dependencies" apt-get install -y samba &>/dev/null
apt-get install -y rsync &>/dev/null apt-get install -y samba-common-bin &>/dev/null
apt-get install -y zip &>/dev/null msg_ok "Installed dependencies"
msg_ok "Installed dependencies" msg_info "Installing Cockpit identities"
msg_info "Installing Cockpit navigator" LATEST=$(curl -s https://api.github.com/repos/45Drives/cockpit-identities/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
wget -q $(curl -s https://api.github.com/repos/45Drives/cockpit-navigator/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4) wget -q https://github.com/45Drives/cockpit-identities/releases/download/v${LATEST}/cockpit-identities_${LATEST}-1focal_all.deb
dpkg -i cockpit-navigator_*focal_all.deb &>/dev/null dpkg -i cockpit-identities_${LATEST}-1focal_all.deb &>/dev/null
rm cockpit-navigator_*focal_all.deb rm cockpit-identities_${LATEST}-1focal_all.deb
msg_ok "Installed Cockpit navigator" msg_ok "Installed Cockpit identities"
exit exit
fi fi
if [ "$UPD" == "4" ]; then
msg_info "Installing dependencies"
apt-get install -y rsync &>/dev/null
apt-get install -y zip &>/dev/null
msg_ok "Installed dependencies"
msg_info "Installing Cockpit navigator"
LATEST=$(curl -s https://api.github.com/repos/45Drives/cockpit-navigator/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
wget -q https://github.com/45Drives/cockpit-navigator/releases/download/v${LATEST}/cockpit-navigator_${LATEST}-1focal_all.deb
dpkg -i cockpit-navigator_${LATEST}-1focal_all.deb &>/dev/null
rm cockpit-navigator_${LATEST}-1focal_all.deb
msg_ok "Installed Cockpit navigator"
exit
fi
} }
start start
@@ -94,6 +121,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:9090${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9090${CL}"

View File

@@ -1,59 +1,82 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://www.commafeed.com/#/welcome # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
______ ______ __
/ ____/___ ____ ___ ____ ___ ____ _/ ____/__ ___ ____/ /
/ / / __ \/ __ `__ \/ __ `__ \/ __ `/ /_ / _ \/ _ \/ __ /
/ /___/ /_/ / / / / / / / / / / / /_/ / __/ / __/ __/ /_/ /
\____/\____/_/ /_/ /_/_/ /_/ /_/\__,_/_/ \___/\___/\__,_/
EOF
}
header_info
echo -e "Loading..."
APP="CommaFeed" APP="CommaFeed"
var_tags="rss-reader" var_disk="4"
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
check_container_storage if [[ ! -d /opt/commafeed ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources RELEASE=$(curl -sL https://api.github.com/repos/Athou/commafeed/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
if [[ ! -d /opt/commafeed ]]; then if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_error "No ${APP} Installation Found!" msg_info "Stopping ${APP}"
exit systemctl stop commafeed
fi msg_ok "Stopped ${APP}"
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
@@ -61,6 +84,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:8082${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8082${CL}"

View File

@@ -1,33 +1,23 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# Co-Author: MickLesk # License: MIT
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # https://github.com/tteck/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")
UL=$(echo "\033[4m") CM="${GN}${CL}"
BOLD=$(echo "\033[1m") CROSS="${RD}${CL}"
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
@@ -46,24 +36,19 @@ function error_handler() {
# This function displays a spinner. # This function displays a spinner.
function spinner() { function spinner() {
local frames=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏') local chars="/-\|"
local spin_i=0 local spin_i=0
local interval=0.1 printf "\e[?25l"
printf "\e[?25l" while true; do
printf "\r \e[36m%s\e[0m" "${chars:spin_i++%${#chars}:1}"
local color="${YWB}" sleep 0.1
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 "${TAB}${YW}${HOLD}${msg}${HOLD}" echo -ne " ${HOLD} ${YW}${msg} "
spinner & spinner &
SPINNER_PID=$! SPINNER_PID=$!
} }
@@ -73,7 +58,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.
@@ -81,7 +66,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
@@ -120,7 +105,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))
@@ -138,14 +123,11 @@ 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 "%s" "$STORAGE" printf $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."

View File

@@ -1,101 +1,124 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://cronicle.net/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
______ _ __
/ ____/________ ____ (_)____/ /__
/ / / ___/ __ \/ __ \/ / ___/ / _ \
/ /___/ / / /_/ / / / / / /__/ / __/
\____/_/ \____/_/ /_/_/\___/_/\___/
EOF
}
header_info
echo -e "Loading..."
APP="Cronicle" APP="Cronicle"
var_tags="task-scheduler" var_disk="2"
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 UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 2 \
check_container_storage "1" "Update ${APP}" ON \
check_container_resources "2" "Install ${APP} Worker" OFF \
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 2 \ 3>&1 1>&2 2>&3)
"1" "Update ${APP}" ON \
"2" "Install ${APP} Worker" OFF \
3>&1 1>&2 2>&3)
if [ "$UPD" == "1" ]; then if [ "$UPD" == "1" ]; then
if [[ ! -d /opt/cronicle ]]; then header_info
msg_error "No ${APP} Installation Found!" if [[ ! -d /opt/cronicle ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
exit 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
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
if [ "$UPD" == "2" ]; then msg_info "Updating ${APP}"
if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then /opt/cronicle/bin/control.sh upgrade &>/dev/null
if ! command -v npm >/dev/null 2>&1; then msg_ok "Updated ${APP}"
echo "Installing NPM..." exit
apt-get install -y npm >/dev/null 2>&1 fi
echo "Installed NPM..." if [ "$UPD" == "2" ]; then
fi 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
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 make &>/dev/null
apt-get install -y g++ &>/dev/null
apt-get install -y gcc &>/dev/null
apt-get install -y ca-certificates &>/dev/null
apt-get install -y gnupg &>/dev/null
msg_ok "Installed Dependencies"
msg_info "Setting up Node.js Repository"
mkdir -p /etc/apt/keyrings
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
msg_ok "Set up Node.js Repository"
msg_info "Installing Node.js"
apt-get update &>/dev/null
apt-get install -y nodejs &>/dev/null
msg_ok "Installed Node.js"
msg_info "Installing Cronicle Worker"
mkdir -p /opt/cronicle
cd /opt/cronicle
tar zxvf <(curl -fsSL https://github.com/jhuckaby/Cronicle/archive/${LATEST}.tar.gz) --strip-components 1 &>/dev/null
npm install &>/dev/null
node bin/build.js dist &>/dev/null
sed -i "s/localhost:3012/${IP}:3012/g" /opt/cronicle/conf/config.json
/opt/cronicle/bin/control.sh start &>/dev/null
cp /opt/cronicle/bin/cronicled.init /etc/init.d/cronicled &>/dev/null
chmod 775 /etc/init.d/cronicled
update-rc.d cronicled defaults &>/dev/null
msg_ok "Installed Cronicle Worker"
echo -e "\n Add Masters secret key to /opt/cronicle/conf/config.json \n"
exit
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 make &>/dev/null
apt-get install -y g++ &>/dev/null
apt-get install -y gcc &>/dev/null
apt-get install -y ca-certificates &>/dev/null
apt-get install -y gnupg &>/dev/null
msg_ok "Installed Dependencies"
msg_info "Setting up Node.js Repository"
mkdir -p /etc/apt/keyrings
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
msg_ok "Set up Node.js Repository"
msg_info "Installing Node.js"
apt-get update &>/dev/null
apt-get install -y nodejs &>/dev/null
msg_ok "Installed Node.js"
msg_info "Installing Cronicle Worker"
mkdir -p /opt/cronicle
cd /opt/cronicle
tar zxvf <(curl -fsSL https://github.com/jhuckaby/Cronicle/archive/${LATEST}.tar.gz) --strip-components 1 &>/dev/null
npm install &>/dev/null
node bin/build.js dist &>/dev/null
sed -i "s/localhost:3012/${IP}:3012/g" /opt/cronicle/conf/config.json
/opt/cronicle/bin/control.sh start &>/dev/null
cp /opt/cronicle/bin/cronicled.init /etc/init.d/cronicled &>/dev/null
chmod 775 /etc/init.d/cronicled
update-rc.d cronicled defaults &>/dev/null
msg_ok "Installed Cronicle Worker"
echo -e "\n Add Masters secret key to /opt/cronicle/conf/config.json \n"
exit
fi
} }
start start
@@ -103,6 +126,5 @@ 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 "${APP} Primary should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:3012${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3012${CL}"

View File

@@ -1,49 +1,73 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func # source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://daemonsync.me/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values echo "Unsupported. View notes on GitHub."
APP="Daemon Sync"
var_tags="sync"
var_cpu="1"
var_ram="512"
var_disk="8"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings # function header_info {
header_info "$APP" # clear
base_settings # cat <<"EOF"
# ____ _____
# / __ \____ ____ ____ ___ ____ ____ / ___/__ ______ _____
# / / / / __ / _ \/ __ __ \/ __ \/ __ \ \__ \/ / / / __ \/ ___/
# / /_/ / /_/ / __/ / / / / / /_/ / / / / ___/ / /_/ / / / / /__
# /_____/\__,_/\___/_/ /_/ /_/\____/_/ /_/ /____/\__, /_/ /_/\___/
# /____/
# 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
# Core # function default_settings() {
variables # CT_TYPE="1"
color # PW=""
catch_errors # 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
check_container_storage # if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources # msg_info "Updating $APP LXC"
if [[ ! -d /var ]]; then # apt-get update &>/dev/null
msg_error "No ${APP} Installation Found!" # apt-get -y upgrade &>/dev/null
exit # msg_ok "Updated $APP LXC"
fi # exit
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 "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" # echo -e "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" # ${BL}http://${IP}:8084${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8084${CL}"

View File

@@ -1,80 +1,103 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://dashy.to/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
____ __
/ __ \____ ______/ /_ __ __
/ / / / __ / ___/ __ \/ / / /
/ /_/ / /_/ (__ ) / / / /_/ /
/_____/\__,_/____/_/ /_/\__, /
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Dashy" APP="Dashy"
var_tags="dashboard" var_disk="6"
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
check_container_storage if [[ ! -d /opt/dashy/public/ ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources
if [[ ! -d /opt/dashy/public/ ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -sL https://api.github.com/repos/Lissy93/dashy/releases/latest | grep '"tag_name":' | cut -d'"' -f4) RELEASE=$(curl -sL https://api.github.com/repos/Lissy93/dashy/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Stopping ${APP}" msg_info "Stopping ${APP}"
systemctl stop dashy systemctl stop dashy
msg_ok "Stopped ${APP}" msg_ok "Stopped ${APP}"
msg_info "Backing up conf.yml" msg_info "Backing up conf.yml"
cd ~ cd ~
if [[ -f /opt/dashy/public/conf.yml ]]; then if [[ -f /opt/dashy/public/conf.yml ]]; then
cp -R /opt/dashy/public/conf.yml 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 "Updating ${APP} to ${RELEASE}"
rm -rf /opt/dashy
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 "Restoring conf.yml"
cd ~
cp -R conf.yml /opt/dashy/user-data
msg_ok "Restored conf.yml"
msg_info "Cleaning"
rm -rf conf.yml /opt/dashy/public/conf.yml
msg_ok "Cleaned"
msg_info "Starting Dashy"
systemctl start dashy
msg_ok "Started Dashy"
msg_ok "Updated Successfully"
else else
msg_ok "No update required. ${APP} is already at ${RELEASE}" cp -R /opt/dashy/user-data/conf.yml conf.yml
fi fi
exit msg_ok "Backed up conf.yml"
msg_info "Updating ${APP} to ${RELEASE}"
rm -rf /opt/dashy
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 "Restoring conf.yml"
cd ~
cp -R conf.yml /opt/dashy/user-data
msg_ok "Restored conf.yml"
msg_info "Cleaning"
rm -rf conf.yml /opt/dashy/public/conf.yml
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
@@ -82,6 +105,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:4000${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:4000${CL}"

View File

@@ -1,42 +1,65 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://www.debian.org/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
____ __ _
/ __ \___ / /_ (_)___ ____
/ / / / _ \/ __ \/ / __ `/ __ \
/ /_/ / __/ /_/ / / /_/ / / / /
/_____/\___/_.___/_/\__,_/_/ /_/
EOF
}
header_info
echo -e "Loading..."
APP="Debian" APP="Debian"
var_tags="os" var_disk="2"
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
check_container_storage if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating $APP LXC"
if [[ ! -d /var ]]; then apt-get update &>/dev/null
msg_error "No ${APP} Installation Found!" apt-get -y upgrade &>/dev/null
exit msg_ok "Updated $APP LXC"
fi exit
msg_info "Updating $APP LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -44,4 +67,3 @@ 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}"

View File

@@ -1,42 +1,65 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://www.phoscon.de/en/conbee2/software#deconz # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
__ __________ _ _______
____/ /__ / ____/ __ \/ | / /__ /
/ __ / _ \/ / / / / / |/ / / /
/ /_/ / __/ /___/ /_/ / /| / / /__
\__,_/\___/\____/\____/_/ |_/ /____/
EOF
}
header_info
echo -e "Loading..."
APP="deCONZ" APP="deCONZ"
var_tags="zigbee" var_disk="4"
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
check_container_storage if [[ ! -f /etc/apt/sources.list.d/deconz.list ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating $APP LXC"
if [[ ! -f /etc/apt/sources.list.d/deconz.list ]]; then apt-get update &>/dev/null
msg_error "No ${APP} Installation Found!" apt-get -y upgrade &>/dev/null
exit msg_ok "Updated $APP LXC"
fi exit
msg_info "Updating $APP LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -44,6 +67,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}${CL}\n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

View File

@@ -1,42 +1,66 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://www.deluge-torrent.org/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
____ __
/ __ \___ / /_ ______ ____
/ / / / _ \/ / / / / __ `/ _ \
/ /_/ / __/ / /_/ / /_/ / __/
/_____/\___/_/\__,_/\__, /\___/
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Deluge" APP="Deluge"
var_tags="torrent" var_disk="4"
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
check_container_storage if [[ ! -f /etc/systemd/system/deluged.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating $APP LXC"
if [[ ! -f /etc/systemd/system/deluged.service ]]; then apt-get update &>/dev/null
msg_error "No ${APP} Installation Found!" pip3 install deluge[all] --upgrade
exit msg_ok "Updated $APP LXC"
fi exit
msg_info "Updating $APP LXC"
apt-get update &>/dev/null
pip3 install deluge[all] --upgrade
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -44,6 +68,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:8112${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8112${CL}"

View File

@@ -1,42 +1,65 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://www.docker.com/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
____ __
/ __ \____ _____/ /_ __ _____
/ / / / __ \/ ___/ //_/ _ \/ ___/
/ /_/ / /_/ / /__/ ,< / __/ /
/_____/\____/\___/_/|_|\___/_/
EOF
}
header_info
echo -e "Loading..."
APP="Docker" APP="Docker"
var_tags="docker" var_disk="4"
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
check_container_storage if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating ${APP} LXC"
if [[ ! -d /var ]]; then apt-get update &>/dev/null
msg_error "No ${APP} Installation Found!" apt-get -y upgrade &>/dev/null
exit msg_ok "Updated ${APP} LXC"
fi exit
msg_info "Updating ${APP} LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated ${APP} LXC"
exit
} }
start start
@@ -44,4 +67,3 @@ 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}"

View File

@@ -1,43 +1,66 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://dockge.kuma.pet/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
____ __
/ __ \____ _____/ /______ ____
/ / / / __ \/ ___/ //_/ __ `/ _ \
/ /_/ / /_/ / /__/ ,< / /_/ / __/
/_____/\____/\___/_/|_|\__, /\___/
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Dockge" APP="Dockge"
var_tags="docker" var_disk="18"
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
check_container_storage if [[ ! -d /opt/dockge ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating ${APP}"
if [[ ! -d /opt/dockge ]]; then cd /opt/dockge
msg_error "No ${APP} Installation Found!" docker compose pull
exit docker compose up -d
fi msg_ok "Updated ${APP}"
msg_info "Updating ${APP}" exit
cd /opt/dockge
docker compose pull
docker compose up -d
msg_ok "Updated ${APP}"
exit
} }
start start
@@ -45,6 +68,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:5001${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5001${CL}"

View File

@@ -1,53 +1,76 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://emby.media/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
______ __
/ ____/___ ___ / /_ __ __
/ __/ / __ __ \/ __ \/ / / /
/ /___/ / / / / / /_/ / /_/ /
/_____/_/ /_/ /_/_.___/\__, /
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Emby" APP="Emby"
var_tags="media" var_disk="8"
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
check_container_storage if [[ ! -d /opt/emby-server ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources LATEST=$(curl -sL https://api.github.com/repos/MediaBrowser/Emby.Releases/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
if [[ ! -d /opt/emby-server ]]; then msg_info "Stopping ${APP}"
msg_error "No ${APP} Installation Found!" systemctl stop emby-server
exit msg_ok "Stopped ${APP}"
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}_amd64.deb &>/dev/null wget https://github.com/MediaBrowser/Emby.Releases/releases/download/${LATEST}/emby-server-deb_${LATEST}_arm64.deb &>/dev/null
dpkg -i emby-server-deb_${LATEST}_amd64.deb &>/dev/null dpkg -i emby-server-deb_${LATEST}_arm64.deb &>/dev/null
rm emby-server-deb_${LATEST}_amd64.deb rm emby-server-deb_${LATEST}_arm64.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
@@ -55,6 +78,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:8096${CL}\n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8096${CL}"

View File

@@ -1,42 +1,65 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://www.emqx.com/en # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
________ _______ _ __
/ ____/ |/ / __ \ | |/ /
/ __/ / /|_/ / / / / | /
/ /___/ / / / /_/ / / |
/_____/_/ /_/\___\_\/_/|_|
EOF
}
header_info
echo -e "Loading..."
APP="EMQX" APP="EMQX"
var_tags="mqtt" var_disk="4"
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
check_container_storage if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating $APP LXC"
if [[ ! -d /var ]]; then apt-get update &>/dev/null
msg_error "No ${APP} Installation Found!" apt-get -y upgrade &>/dev/null
exit msg_ok "Updated $APP LXC"
fi exit
msg_info "Updating $APP LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -44,6 +67,5 @@ 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 "${APP} Setup should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:18083${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:18083${CL}"

View File

@@ -1,57 +1,83 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: MickLesk (Canbiz) # Author: tteck
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # Co-Author: MickLesk (Canbiz)
# Source: https://ersatztv.org/ # License: MIT
# 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_tags="iptv" var_disk="5"
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
check_container_storage if [[ ! -d /opt/ErsatzTV ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
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-x64.tar.gz" | tar -xz -C /opt wget -qO- "https://github.com/ErsatzTV/ErsatzTV/releases/download/${RELEASE}/ErsatzTV-${RELEASE}-linux-arm64.tar.gz" | tar -xz -C /opt
mv "/opt/ErsatzTV-${RELEASE}-linux-x64" /opt/ErsatzTV mv "/opt/ErsatzTV-${RELEASE}-linux-arm64" /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
@@ -59,6 +85,5 @@ 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 "${APP} Setup should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:8409${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8409${CL}"

View File

@@ -1,53 +1,76 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://esphome.io/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
___________ ____ __ __
/ ____/ ___// __ \/ / / /___ ____ ___ ___
/ __/ \__ \/ /_/ / /_/ / __ \/ __ `__ \/ _ \
/ /___ ___/ / ____/ __ / /_/ / / / / / / __/
/_____//____/_/ /_/ /_/\____/_/ /_/ /_/\___/
EOF
}
header_info
echo -e "Loading..."
APP="ESPHome" APP="ESPHome"
var_tags="automation" var_disk="4"
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
check_container_storage if [[ ! -f /etc/systemd/system/esphomeDashboard.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Stopping ESPHome"
if [[ ! -f /etc/systemd/system/esphomeDashboard.service ]]; then systemctl stop esphomeDashboard
msg_error "No ${APP} Installation Found!" msg_ok "Stopped ESPHome"
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
@@ -55,6 +78,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:6052${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:6052${CL}"

View File

@@ -1,42 +1,64 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: MickLesk (Canbiz) # Author: MickLesk (Canbiz)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://evcc.io/en/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
___ _ ____________
/ _ \ | / / ___/ ___/
/ __/ |/ / /__/ /__
\___/|___/\___/\___/
EOF
}
header_info
echo -e "Loading..."
APP="evcc" APP="evcc"
var_tags="solar;ev;automation" var_disk="4"
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
check_container_storage if [[ ! -f /etc/apt/sources.list.d/evcc-stable.list ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating evcc LXC"
if [[ ! -f /etc/apt/sources.list.d/evcc-stable.list ]]; then apt update &>/dev/null
msg_error "No ${APP} Installation Found!" apt --only-upgrade install -y evcc &>/dev/null
exit msg_ok "Updated Successfully"
fi exit
msg_info "Updating evcc LXC"
apt update &>/dev/null
apt --only-upgrade install -y evcc &>/dev/null
msg_ok "Updated Successfully"
exit
} }
start start
@@ -44,6 +66,5 @@ 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 "${APP} Setup should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:7070${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7070${CL}"

View File

@@ -1,67 +1,87 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) | Co-Author: Scorpoon # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # Co-Author: Scorpoon
# Source: https://github.com/revenz/Fenrus # License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
______
/ ____/__ ____ _______ _______
/ /_ / _ \/ __ \/ ___/ / / / ___/
/ __/ / __/ / / / / / /_/ (__ )
/_/ \___/_/ /_/_/ \__,_/____/
EOF
}
header_info
echo -e "Loading..."
APP="Fenrus" APP="Fenrus"
var_tags="dashboard" var_disk="4"
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
check_container_storage if [[ ! -d /opt/${APP} ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_error "There is currently no update path available."
if [[ ! -d /opt/${APP} ]]; then exit
msg_error "No ${APP} Installation Found!" msg_info "Updating ${APP}"
exit systemctl stop ${APP}
fi git clone https://github.com/revenz/Fenrus.git
msg_error "There is currently no update path available." cd Fenrus || exit
exit gitVersionNumber=$(git rev-parse HEAD)
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 if [[ ! -d /opt/fenrus-data-backup/data ]]; then msg_error "Backup of data folder failed! exiting..."; rm -r /opt/fenrus-data-backup/; exit; fi
msg_error "Backup of data folder failed! exiting..." export DOTNET_CLI_TELEMETRY_OPTOUT=1
rm -r /opt/fenrus-data-backup/ dotnet publish -c Release -o "/opt/${APP}/" Fenrus.csproj
exit cp -r /opt/fenrus-data-backup/data/ "/opt/${APP}/"
fi echo "${gitVersionNumber}" >"/opt/${APP}_version.txt"
export DOTNET_CLI_TELEMETRY_OPTOUT=1 rm -r /opt/fenrus-data-backup/
dotnet publish -c Release -o "/opt/${APP}/" Fenrus.csproj msg_ok "Updated $APP"
cp -r /opt/fenrus-data-backup/data/ "/opt/${APP}/" else
echo "${gitVersionNumber}" >"/opt/${APP}_version.txt" msg_ok "No update required. ${APP} is already up to date"
rm -r /opt/fenrus-data-backup/ fi
msg_ok "Updated $APP" cd ..
else rm -r Fenrus/
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
@@ -69,6 +89,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:5000${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"

View File

@@ -1,42 +1,65 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://fhem.de/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
APP="FHEM" clear
var_tags="automation" cat <<"EOF"
________
/ ____/ /_ ___ ____ ___
/ /_ / __ \/ _ \/ __ `__ \
/ __/ / / / / __/ / / / / /
/_/ /_/ /_/\___/_/ /_/ /_/
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
check_container_storage if [[ ! -f /etc/systemd/system/fhem.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating ${APP} LXC"
if [[ ! -f /etc/systemd/system/fhem.service ]]; then apt-get update &>/dev/null
msg_error "No ${APP} Installation Found!" apt-get -y upgrade &>/dev/null
exit msg_ok "Updated Successfully"
fi exit
msg_info "Updating ${APP} LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated Successfully"
exit
} }
start start
@@ -44,6 +67,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:8083${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8083${CL}"

View File

@@ -1,84 +0,0 @@
#!/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}"

View File

@@ -1,50 +1,70 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) | Co-Author: remz1337 # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # Co-Author: remz1337
# Source: https://github.com/FlareSolverr/FlareSolverr # License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
________ _____ __
/ ____/ /___ _________ / ___/____ / / _____ __________
/ /_ / / __ `/ ___/ _ \\__ \/ __ \/ / | / / _ \/ ___/ ___/
/ __/ / / /_/ / / / __/__/ / /_/ / /| |/ / __/ / / /
/_/ /_/\__,_/_/ \___/____/\____/_/ |___/\___/_/ /_/
EOF
}
header_info
echo -e "Loading..."
APP="FlareSolverr" APP="FlareSolverr"
var_tags="proxy" var_disk="4"
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
check_container_storage if [[ ! -f /etc/systemd/system/flaresolverr.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources 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
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 [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then if [[ ! -d /opt/flaresolverr ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
msg_info "Updating $APP LXC" msg_info "Updating $APP LXC"
systemctl stop flaresolverr systemctl stop flaresolverr
wget -q https://github.com/FlareSolverr/FlareSolverr/releases/download/$RELEASE/flaresolverr_linux_x64.tar.gz cd /opt/flaresolverr
tar -xzf flaresolverr_linux_x64.tar.gz -C /opt git pull
rm flaresolverr_linux_x64.tar.gz systemctl start flaresolverr
systemctl start flaresolverr msg_ok "Updated $APP LXC"
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
} }
@@ -52,7 +72,10 @@ 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 "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:8191${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8191${CL}"

View File

@@ -1,50 +1,77 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://flowiseai.com/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
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
check_container_storage if [[ ! -f /etc/systemd/system/flowise.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources 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
if [[ ! -f /etc/systemd/system/flowise.service ]]; then msg_info "Updating ${APP}"
msg_error "No ${APP} Installation Found!" systemctl stop flowise
exit npm install -g flowise --upgrade
fi systemctl start flowise
msg_info "Updating ${APP}" msg_ok "Updated ${APP}"
systemctl stop flowise exit
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 "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:3000${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@@ -1,59 +1,83 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://forgejo.org/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
______ _
/ ____/___ _________ ___ (_)___
/ /_ / __ \/ ___/ __ `/ _ \ / / __ \
/ __/ / /_/ / / / /_/ / __/ / / /_/ /
/_/ \____/_/ \__, /\___/_/ /\____/
/____/ /___/
EOF
}
header_info
echo -e "Loading..."
APP="Forgejo" APP="Forgejo"
var_tags="git" var_disk="10"
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
check_container_storage if [[ ! -d /opt/forgejo ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Stopping ${APP}"
if [[ ! -d /opt/forgejo ]]; then systemctl stop forgejo
msg_error "No ${APP} Installation Found!" msg_ok "Stopped ${APP}"
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-amd64" wget -qO forgejo-$RELEASE-linux-amd64 "https://codeberg.org/forgejo/forgejo/releases/download/v${RELEASE}/forgejo-${RELEASE}-linux-arm64"
rm -rf /opt/forgejo/* rm -rf /opt/forgejo/*
cp -r forgejo-$RELEASE-linux-amd64 /opt/forgejo/forgejo-$RELEASE-linux-amd64 cp -r forgejo-$RELEASE-linux-arm64 /opt/forgejo/forgejo-$RELEASE-linux-arm64
chmod +x /opt/forgejo/forgejo-$RELEASE-linux-amd64 chmod +x /opt/forgejo/forgejo-$RELEASE-linux-arm64
ln -sf /opt/forgejo/forgejo-$RELEASE-linux-amd64 /usr/local/bin/forgejo ln -sf /opt/forgejo/forgejo-$RELEASE-linux-arm64 /usr/local/bin/forgejo
msg_ok "Updated ${APP}" msg_ok "Updated ${APP}"
msg_info "Cleaning" msg_info "Cleaning"
rm -rf forgejo-$RELEASE-linux-amd64 rm -rf forgejo-$RELEASE-linux-arm64
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
@@ -61,6 +85,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:3000${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@@ -1,46 +1,78 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Authors: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://frigate.video/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
______ _ __
/ ____/____(_)___ _____ _/ /____
/ /_ / ___/ / __ `/ __ `/ __/ _ \
/ __/ / / / / /_/ / /_/ / /_/ __/
/_/ /_/ /_/\__, /\__,_/\__/\___/
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Frigate" APP="Frigate"
var_tags="nvr" var_disk="20"
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() {
header_info if [[ ! -f /etc/systemd/system/frigate.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
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
} }
start 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 "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:5000${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}" echo -e "go2rtc should be reachable by going to the following URL.
${BL}http://${IP}:1984${CL} \n"

View File

@@ -1,47 +1,71 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) | Co-Author: Rogue-King # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # Co-author: Rogue-King
# Source: https://about.gitea.com/ # License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
______ _ __
/ ____/(_)/ /____ ____ _
/ / __// // __/ _ \/ __ /
/ /_/ // // /_/ __/ /_/ /
\____//_/ \__/\___/\__,_/
EOF
}
header_info
echo -e "Loading..."
APP="Gitea" APP="Gitea"
var_tags="git" var_disk="8"
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
check_container_storage if [[ ! -f /usr/local/bin/gitea ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources RELEASE=$(wget -q https://github.com/go-gitea/gitea/releases/latest -O - | grep "title>Release" | cut -d " " -f 4 | sed 's/^v//')
if [[ ! -f /usr/local/bin/gitea ]]; then msg_info "Updating $APP to ${RELEASE}"
msg_error "No ${APP} Installation Found!" wget -q https://github.com/go-gitea/gitea/releases/download/v$RELEASE/gitea-$RELEASE-linux-arm64
exit systemctl stop gitea
fi rm -rf /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//') mv gitea* /usr/local/bin/gitea
msg_info "Updating $APP to ${RELEASE}" chmod +x /usr/local/bin/gitea
wget -q https://github.com/go-gitea/gitea/releases/download/v$RELEASE/gitea-$RELEASE-linux-amd64 systemctl start gitea
systemctl stop gitea msg_ok "Updated $APP Successfully"
rm -rf /usr/local/bin/gitea exit
mv gitea* /usr/local/bin/gitea
chmod +x /usr/local/bin/gitea
systemctl start gitea
msg_ok "Updated $APP Successfully"
exit
} }
start start
@@ -49,6 +73,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:3000${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@@ -1,72 +0,0 @@
#!/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}"

View File

@@ -1,51 +0,0 @@
#!/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}"

View File

@@ -1,46 +1,70 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://github.com/AlexxIT/go2rtc # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
___ __
____ _____ |__ \ _____/ /______
/ __ `/ __ \__/ // ___/ __/ ___/
/ /_/ / /_/ / __// / / /_/ /__
\__, /\____/____/_/ \__/\___/
/____/
EOF
}
header_info
echo -e "Loading..."
APP="go2rtc" APP="go2rtc"
var_tags="recorder;video" var_disk="4"
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
check_container_storage if [[ ! -d /opt/go2rtc ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating $APP"
if [[ ! -d /opt/go2rtc ]]; then systemctl stop go2rtc
msg_error "No ${APP} Installation Found!" cd /opt/go2rtc
exit rm go2rtc_linux_amd64
fi wget -q https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_arm64
msg_info "Updating $APP" chmod +x go2rtc_linux_arm64
systemctl stop go2rtc systemctl start go2rtc
cd /opt/go2rtc msg_ok "Updated $APP"
rm go2rtc_linux_amd64 exit
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
@@ -48,6 +72,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:1984${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:1984${CL}"

View File

@@ -1,39 +1,62 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://github.com/Forceu/Gokapi # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
______ __ _
/ ____/___ / /______ _____ (_)
/ / __/ __ \/ //_/ __ `/ __ \/ /
/ /_/ / /_/ / ,< / /_/ / /_/ / /
\____/\____/_/|_|\__,_/ .___/_/
/_/
EOF
}
header_info
echo -e "Loading..."
APP="Gokapi" APP="Gokapi"
var_tags="file;sharing" var_disk="4"
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
check_container_storage if [[ ! -d /opt/gokapi ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_error "There is currently no update path available."
if [[ ! -d /opt/gokapi ]]; then exit
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "There is currently no update path available."
exit
} }
start start
@@ -41,6 +64,5 @@ 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 "${APP} Setup should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:53842/setup${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:53842/setup${CL}"

View File

@@ -1,61 +1,84 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://gotify.net/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
______ __ _ ____
/ ____/___ / /_(_) __/_ __
/ / __/ __ \/ __/ / /_/ / / /
/ /_/ / /_/ / /_/ / __/ /_/ /
\____/\____/\__/_/_/ \__, /
/____/
EOF
}
header_info
echo -e "Loading..."
APP="Gotify" APP="Gotify"
var_tags="notification" var_disk="2"
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
check_container_storage if [[ ! -d /opt/gotify ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
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
@@ -63,6 +86,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP} ${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

View File

@@ -1,42 +1,65 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://grafana.com/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
______ ____
/ ____/________ _/ __/___ _____ ____ _
/ / __/ ___/ __ / /_/ __ / __ \/ __ /
/ /_/ / / / /_/ / __/ /_/ / / / / /_/ /
\____/_/ \__,_/_/ \__,_/_/ /_/\__,_/
EOF
}
header_info
echo -e "Loading..."
APP="Grafana" APP="Grafana"
var_tags="monitoring;visualization" var_disk="2"
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
check_container_storage if [[ ! -f /etc/apt/sources.list.d/grafana.list ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating ${APP}"
if [[ ! -f /etc/apt/sources.list.d/grafana.list ]]; then apt-get update &>/dev/null
msg_error "No ${APP} Installation Found!" apt-get -y upgrade &>/dev/null
exit msg_ok "Updated Successfully"
fi exit
msg_info "Updating ${APP}"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated Successfully"
exit
} }
start start
@@ -44,6 +67,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:3000${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@@ -1,80 +0,0 @@
#!/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}"

View File

@@ -1,52 +1,75 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://grocy.info/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
____ __________ _______ __
/ __ / ___/ __ \/ ___/ / / /
/ /_/ / / / /_/ / /__/ /_/ /
\__, /_/ \____/\___/\__, /
/____/ /____/
EOF
}
header_info
echo -e "Loading..."
APP="grocy" APP="grocy"
var_tags="grocery;household" var_disk="2"
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
check_container_storage if [[ ! -f /etc/apache2/sites-available/grocy.conf ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources php_version=$(php -v | head -n 1 | awk '{print $2}')
if [[ ! -f /etc/apache2/sites-available/grocy.conf ]]; then if [[ ! $php_version == "8.3"* ]]; then
msg_error "No ${APP} Installation Found!" msg_info "Updating PHP"
exit curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
fi 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
php_version=$(php -v | head -n 1 | awk '{print $2}') apt-get update
if [[ ! $php_version == "8.3"* ]]; then apt-get install -y php8.3 php8.3-cli php8.3-{bz2,curl,mbstring,intl,sqlite3,fpm,gd,zip,xml}
msg_info "Updating PHP" systemctl reload apache2
curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg apt autoremove
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 msg_ok "Updated PHP"
apt-get update fi
apt-get install -y php8.3 php8.3-cli php8.3-{bz2,curl,mbstring,intl,sqlite3,fpm,gd,zip,xml} msg_info "Updating ${APP}"
systemctl reload apache2 bash /var/www/html/update.sh
apt autoremove msg_ok "Updated Successfully"
msg_ok "Updated PHP" exit
fi
msg_info "Updating ${APP}"
bash /var/www/html/update.sh
msg_ok "Updated Successfully"
exit
} }
start start
@@ -54,6 +77,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

View File

@@ -1,58 +1,82 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://github.com/juanfont/headscale # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
__ __ __ __
/ / / /__ ____ _____/ /_____________ _/ /__
/ /_/ / _ \/ __ `/ __ / ___/ ___/ __ `/ / _ \
/ __ / __/ /_/ / /_/ (__ ) /__/ /_/ / / __/
/_/ /_/\___/\__,_/\__,_/____/\___/\__,_/_/\___/
EOF
}
header_info
echo -e "Loading..."
APP="Headscale" APP="Headscale"
var_tags="tailscale" var_disk="2"
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
check_container_storage if [[ ! -d /etc/headscale ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
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}"
msg_info "Updating $APP to v${RELEASE}" RELEASE=$(curl -s https://api.github.com/repos/juanfont/headscale/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
wget -q https://github.com/juanfont/headscale/releases/download/v${RELEASE}/headscale_${RELEASE}_linux_amd64.deb if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
dpkg -i headscale_${RELEASE}_linux_amd64.deb msg_info "Stopping ${APP}"
rm headscale_${RELEASE}_linux_amd64.deb systemctl stop headscale
echo "${RELEASE}" >/opt/${APP}_version.txt msg_ok "Stopped ${APP}"
msg_ok "Updated $APP to ${RELEASE}"
msg_info "Starting ${APP}" msg_info "Updating $APP to v${RELEASE}"
systemctl start headscale wget -q https://github.com/juanfont/headscale/releases/download/v${RELEASE}/headscale_${RELEASE}_linux_arm64.deb
msg_ok "Started ${APP}" dpkg -i headscale_${RELEASE}_linux_arm64.deb
msg_ok "Updated Successfully" rm headscale_${RELEASE}_linux_arm64.deb
else echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "No update required. ${APP} is already at ${RELEASE}" msg_ok "Updated $APP to ${RELEASE}"
fi
exit msg_info "Starting ${APP}"
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
@@ -60,4 +84,3 @@ 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}"

View File

@@ -1,77 +1,105 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://heimdall.site/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
_ _ _ _ ___ _ _ _
/\ /\___(_)_ __ ___ __| | __ _| | | / \__ _ ___| |__ | |__ ___ __ _ _ __ __| |
/ /_/ / _ \ | '_ ` _ \ / _` |/ _` | | | / /\ / _` / __| '_ \| '_ \ / _ \ / _` | '__/ _` |
/ __ / __/ | | | | | | (_| | (_| | | | / /_// (_| \__ \ | | | |_) | (_) | (_| | | | (_| |
\/ /_/ \___|_|_| |_| |_|\__,_|\__,_|_|_| /___,' \__,_|___/_| |_|_.__/ \___/ \__,_|_| \__,_|
EOF
}
header_info
echo -e "Loading..."
APP="Heimdall-Dashboard" APP="Heimdall-Dashboard"
var_tags="dashboard" var_disk="2"
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
check_container_storage if [[ ! -d /opt/Heimdall ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" | awk '/tag_name/{print $4;exit}' FS='[""]')
if [[ ! -d /opt/Heimdall ]]; 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 heimdall
fi sleep 1
RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" | awk '/tag_name/{print $4;exit}' FS='[""]') msg_ok "Stopped ${APP}"
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Stopping ${APP}" msg_info "Backing up Data"
systemctl stop heimdall cp -R /opt/Heimdall/database database-backup
sleep 1 cp -R /opt/Heimdall/public public-backup
msg_ok "Stopped ${APP}" sleep 1
msg_info "Backing up Data" msg_ok "Backed up Data"
cp -R /opt/Heimdall/database database-backup
cp -R /opt/Heimdall/public public-backup msg_info "Updating Heimdall Dashboard to ${RELEASE}"
sleep 1 wget -q https://github.com/linuxserver/Heimdall/archive/${RELEASE}.tar.gz
msg_ok "Backed up Data" tar xzf ${RELEASE}.tar.gz
msg_info "Updating Heimdall Dashboard to ${RELEASE}" VER=$(curl -s https://api.github.com/repos/linuxserver/Heimdall/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
wget -q https://github.com/linuxserver/Heimdall/archive/${RELEASE}.tar.gz cp -R Heimdall-${VER}/* /opt/Heimdall
tar xzf ${RELEASE}.tar.gz cd /opt/Heimdall
VER=$(curl -s https://api.github.com/repos/linuxserver/Heimdall/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') apt-get install -y composer &>/dev/null
cp -R Heimdall-${VER}/* /opt/Heimdall COMPOSER_ALLOW_SUPERUSER=1 composer dump-autoload &>/dev/null
cd /opt/Heimdall echo "${RELEASE}" >/opt/${APP}_version.txt
apt-get install -y composer &>/dev/null msg_ok "Updated Heimdall Dashboard to ${RELEASE}"
COMPOSER_ALLOW_SUPERUSER=1 composer dump-autoload &>/dev/null
echo "${RELEASE}" >/opt/${APP}_version.txt msg_info "Restoring Data"
msg_ok "Updated Heimdall Dashboard to ${RELEASE}" cd ~
msg_info "Restoring Data" cp -R database-backup/* /opt/Heimdall/database
cd ~ cp -R public-backup/* /opt/Heimdall/public
cp -R database-backup/* /opt/Heimdall/database sleep 1
cp -R public-backup/* /opt/Heimdall/public msg_ok "Restored Data"
sleep 1
msg_ok "Restored Data" msg_info "Cleanup"
msg_info "Cleanup" rm -rf {${RELEASE}.tar.gz,Heimdall-${VER},public-backup,database-backup,Heimdall}
rm -rf {${RELEASE}.tar.gz,Heimdall-${VER},public-backup,database-backup,Heimdall} sleep 1
sleep 1 msg_ok "Cleaned"
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
@@ -79,6 +107,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:7990${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7990${CL}"

View File

@@ -1,39 +1,62 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://www.hivemq.com/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
__ ___ __ _______ ____________
/ / / (_) _____ / |/ / __ \ / ____/ ____/
/ /_/ / / | / / _ \/ /|_/ / / / / / / / __/
/ __ / /| |/ / __/ / / / /_/ / / /___/ /___
/_/ /_/_/ |___/\___/_/ /_/\___\_\ \____/_____/
EOF
}
header_info
echo -e "Loading..."
APP="HiveMQ" APP="HiveMQ"
var_tags="mqtt" var_disk="4"
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
check_container_storage if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_error "There is currently no update path available."
if [[ ! -d /var ]]; then exit
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "There is currently no update path available."
exit
} }
start start
@@ -41,4 +64,3 @@ 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}"

View File

@@ -1,82 +0,0 @@
#!/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}"

View File

@@ -1,79 +1,74 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) | Co-Author: MickLesk (Canbiz) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://homarr.dev/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
__ __
/ / / /___ ____ ___ ____ ___________
/ /_/ / __ \/ __ `__ \/ __ `/ ___/ ___/
/ __ / /_/ / / / / / / /_/ / / / /
/_/ /_/\____/_/ /_/ /_/\__,_/_/ /_/
EOF
}
header_info
echo -e "Loading..."
APP="Homarr" APP="Homarr"
var_tags="arr;dashboard" 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
check_container_storage if [[ ! -d /opt/homarr ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating $APP (Patience)"
if [[ ! -d /opt/homarr ]]; then systemctl stop homarr
msg_error "No ${APP} Installation Found!" cd /opt/homarr
exit if ! git pull; then
fi echo "Already up to date."
RELEASE=$(curl -s https://api.github.com/repos/ajnart/homarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') systemctl start homarr
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then echo "No update required."
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
@@ -81,6 +76,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:3000${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@@ -1,33 +1,58 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://www.home-assistant.io/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
_ _ _ _ ___
/\ /\___ _ __ ___ ___ /_\ ___ ___(_)___| |_ __ _ _ __ | |_ / __\___ _ __ ___
/ /_/ / _ \| '_ ` _ \ / _ \ //_\\/ __/ __| / __| __/ _` | '_ \| __| / / / _ \| '__/ _ \
/ __ / (_) | | | | | | __/ / _ \__ \__ \ \__ \ || (_| | | | | |_ / /__| (_) | | | __/
\/ /_/ \___/|_| |_| |_|\___| \_/ \_/___/___/_|___/\__\__,_|_| |_|\__| \____/\___/|_| \___|
EOF
}
header_info
echo -e "Loading..."
APP="Home Assistant-Core" APP="Home Assistant-Core"
var_tags="automation;smarthome" var_disk="8"
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
@@ -39,6 +64,7 @@ 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
@@ -51,9 +77,7 @@ 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|12)\.[0-9]+$ ]]; then if [[ "$PY" == "python3.11" ]]; then echo -e "⚠️ Home Assistant will soon require Python 3.12."; fi
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
@@ -87,13 +111,13 @@ 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-amd64-filebrowser.tar.gz | tar -xzv -C /usr/local/bin &>/dev/null curl -fsSL https://github.com/filebrowser/filebrowser/releases/download/$RELEASE/linux-arm64-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
filebrowser config set -a '0.0.0.0' &>/dev/null filebrowser config set -a '0.0.0.0' &>/dev/null
filebrowser config set --auth.method=noauth &>/dev/null filebrowser config set --auth.method=noauth &>/dev/null
filebrowser users add ID 1 --perm.admin &>/dev/null filebrowser users add ID 1 --perm.admin &>/dev/null
else else
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
@@ -128,6 +152,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:8123${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8123${CL}"

View File

@@ -1,33 +1,58 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://www.home-assistant.io/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
__ __ ___ _ __ __
/ / / /___ ____ ___ ___ / | __________(_)____/ /_____ _____ / /_
/ /_/ / __ \/ __ __ \/ _ \ / /| | / ___/ ___/ / ___/ __/ __ / __ \/ __/
/ __ / /_/ / / / / / / __/ / ___ |(__ |__ ) (__ ) /_/ /_/ / / / / /_
/_/ /_/\____/_/ /_/ /_/\___/ /_/ |_/____/____/_/____/\__/\__,_/_/ /_/\__/
EOF
}
header_info
echo -e "Loading..."
APP="Home Assistant" APP="Home Assistant"
var_tags="automation;smarthome" var_disk="16"
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
@@ -38,7 +63,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)}"
@@ -77,7 +102,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-amd64-filebrowser.tar.gz | tar -xzv -C /usr/local/bin &>/dev/null 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
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
@@ -110,7 +135,7 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:8123${CL}
echo -e "${TAB}${GATEWAY}${BGN}HA: http://${IP}:8123${CL}" Portainer should be reachable by going to the following URL.
echo -e "${TAB}${GATEWAY}${BGN}Portainer: http://${IP}:9443${CL}" ${BL}https://${IP}:9443${CL}\n"

View File

@@ -1,62 +1,88 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck | Co-Author: MickLesk (Canbiz) # Author: tteck
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # Co-Author: MickLesk (Canbiz)
# Source: https://homebox.software/en/ # License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
__ __ ____
/ / / /___ ____ ___ ___ / __ )____ _ __
/ /_/ / __ \/ __ `__ \/ _ \/ __ / __ \| |/_/
/ __ / /_/ / / / / / / __/ /_/ / /_/ /> <
/_/ /_/\____/_/ /_/ /_/\___/_____/\____/_/|_|
EOF
}
header_info
echo -e "Loading..."
APP="HomeBox" APP="HomeBox"
var_tags="inventory;household" var_disk="4"
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
check_container_storage if [[ ! -f /opt/homebox ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then
if [[ ! -f /opt/homebox ]]; then read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt
msg_error "No ${APP} Installation Found!" [[ ${prompt,,} =~ ^(y|yes)$ ]] || exit
exit fi
fi RELEASE=$(curl -s https://api.github.com/repos/sysadminsmedia/homebox/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
RELEASE=$(curl -s https://api.github.com/repos/sysadminsmedia/homebox/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
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then msg_info "Stopping ${APP}"
msg_info "Stopping ${APP}" systemctl stop homebox
systemctl stop homebox msg_ok "${APP} Stopped"
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
rm -rf /tmp/homebox.tar.gz mv homebox homebox_bak
mv homebox homebox_bak wget -qO- https://github.com/sysadminsmedia/homebox/releases/download/${RELEASE}/homebox_Linux_x86_64.tar.gz | tar -xzf - -C /opt
wget -qO /tmp/homebox.tar.gz https://github.com/sysadminsmedia/homebox/releases/download/${RELEASE}/homebox_Linux_x86_64.tar.gz chmod +x /opt/homebox
tar -xzf /tmp/homebox.tar.gz -C /opt echo "${RELEASE}" >/opt/${APP}_version.txt
chmod +x /opt/homebox msg_ok "Updated 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
@@ -64,6 +90,5 @@ 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 "${APP} Setup should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:7745${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7745${CL}"

View File

@@ -1,42 +1,65 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://homebridge.io/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
__ ______ __ _____________ ____ ________ ____________
/ / / / __ \/ |/ / ____/ __ )/ __ \/ _/ __ \/ ____/ ____/
/ /_/ / / / / /|_/ / __/ / __ / /_/ // // / / / / __/ __/
/ __ / /_/ / / / / /___/ /_/ / _, _// // /_/ / /_/ / /___
/_/ /_/\____/_/ /_/_____/_____/_/ |_/___/_____/\____/_____/
EOF
}
header_info
echo -e "Loading..."
APP="Homebridge" APP="Homebridge"
var_tags="smarthome;homekit" var_disk="4"
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
check_container_storage if [[ ! -f /etc/apt/sources.list.d/homebridge.list ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating ${APP} LXC"
if [[ ! -f /etc/apt/sources.list.d/homebridge.list ]]; then apt-get update &>/dev/null
msg_error "No ${APP} Installation Found!" apt-get install -y homebridge &>/dev/null
exit msg_ok "Updated Successfully"
fi exit
msg_info "Updating ${APP} LXC"
apt-get update &>/dev/null
apt-get install -y homebridge &>/dev/null
msg_ok "Updated Successfully"
exit
} }
start start
@@ -44,6 +67,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:8581${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8581${CL}"

View File

@@ -1,67 +1,88 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://gethomepage.dev/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
__ __
/ / / /___ ____ ___ ___ ____ ____ _____ ____
/ /_/ / __ \/ __ `__ \/ _ \/ __ \/ __ `/ __ `/ _ \
/ __ / /_/ / / / / / / __/ /_/ / /_/ / /_/ / __/
/_/ /_/\____/_/ /_/ /_/\___/ .___/\__,_/\__, /\___/
/_/ /____/
EOF
}
header_info
echo -e "Loading..."
APP="Homepage" APP="Homepage"
var_tags="dashboard" var_disk="3"
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
check_container_storage if [[ ! -d /opt/homepage ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
if [[ ! -d /opt/homepage ]]; then if ! command -v npm >/dev/null 2>&1; then
msg_error "No ${APP} Installation Found!" echo "Installing NPM..."
exit apt-get install -y npm >/dev/null 2>&1
npm install -g pnpm >/dev/null 2>&1
echo "Installed NPM..."
fi fi
if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then fi
if ! command -v npm >/dev/null 2>&1; then RELEASE=$(curl -s https://api.github.com/repos/gethomepage/homepage/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
echo "Installing NPM..." if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
apt-get install -y npm >/dev/null 2>&1 msg_info "Updating Homepage to v${RELEASE} (Patience)"
npm install -g pnpm >/dev/null 2>&1 systemctl stop homepage
echo "Installed NPM..." wget -q https://github.com/gethomepage/homepage/archive/refs/tags/v${RELEASE}.tar.gz
fi tar -xzf v${RELEASE}.tar.gz
fi rm -rf v${RELEASE}.tar.gz
RELEASE=$(curl -s https://api.github.com/repos/gethomepage/homepage/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') cp -r homepage-${RELEASE}/* /opt/homepage/
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then rm -rf homepage-${RELEASE}
msg_info "Updating Homepage to v${RELEASE} (Patience)" cd /opt/homepage
systemctl stop homepage npx update-browserslist-db@latest
wget -q https://github.com/gethomepage/homepage/archive/refs/tags/v${RELEASE}.tar.gz pnpm install
tar -xzf v${RELEASE}.tar.gz pnpm build
rm -rf v${RELEASE}.tar.gz systemctl start homepage
cp -r homepage-${RELEASE}/* /opt/homepage/ echo "${RELEASE}" >/opt/${APP}_version.txt
rm -rf homepage-${RELEASE} msg_ok "Updated Homepage to v${RELEASE}"
cd /opt/homepage else
npx --yes update-browserslist-db@latest >/dev/null 2>&1 msg_ok "No update required. ${APP} is already at ${RELEASE}"
pnpm install >/dev/null 2>&1 fi
export NEXT_PUBLIC_VERSION="v$RELEASE" exit
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
@@ -69,6 +90,5 @@ 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 "${APP} Setup should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:3000${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@@ -1,68 +1,91 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://github.com/bastienwirtz/homer # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
__ __
/ / / /___ ____ ___ ___ _____
/ /_/ / __ \/ __ `__ \/ _ \/ ___/
/ __ / /_/ / / / / / / __/ /
/_/ /_/\____/_/ /_/ /_/\___/_/
EOF
}
header_info
echo -e "Loading..."
APP="Homer" APP="Homer"
var_tags="dashboard" var_disk="2"
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
check_container_storage if [[ ! -d /opt/homer ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Stopping ${APP}"
if [[ ! -d /opt/homer ]]; then systemctl stop homer
msg_error "No ${APP} Installation Found!" msg_ok "Stopped ${APP}"
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
@@ -70,6 +93,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:8010${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8010${CL}"

View File

@@ -1,42 +1,66 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://www.hyperhdr.eu/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
__ __ __ ______ ____
/ / / /_ ______ ___ _____/ / / / __ \/ __ \
/ /_/ / / / / __ \/ _ \/ ___/ /_/ / / / / /_/ /
/ __ / /_/ / /_/ / __/ / / __ / /_/ / _, _/
/_/ /_/\__, / .___/\___/_/ /_/ /_/_____/_/ |_|
/____/_/
EOF
}
header_info
echo -e "Loading..."
APP="HyperHDR" APP="HyperHDR"
var_tags="ambient-lightning" var_disk="4"
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
check_container_storage if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating $APP LXC"
if [[ ! -d /var ]]; then apt-get update &>/dev/null
msg_error "No ${APP} Installation Found!" apt-get -y upgrade &>/dev/null
exit msg_ok "Updated $APP LXC"
fi exit
msg_info "Updating $APP LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated $APP LXC"
exit
} }
start start
@@ -44,6 +68,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:8090${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"

View File

@@ -1,42 +1,66 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://hyperion-project.org/forum/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
__ __ _
/ / / /_ ______ ___ _____(_)___ ____
/ /_/ / / / / __ \/ _ \/ ___/ / __ \/ __ \
/ __ / /_/ / /_/ / __/ / / / /_/ / / / /
/_/ /_/\__, / .___/\___/_/ /_/\____/_/ /_/
/____/_/
EOF
}
header_info
echo -e "Loading..."
APP="Hyperion" APP="Hyperion"
var_tags="ambient-lightning" var_disk="2"
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
check_container_storage if [[ ! -f /etc/apt/sources.list.d/hyperion.list ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating ${APP} LXC"
if [[ ! -f /etc/apt/sources.list.d/hyperion.list ]]; then apt-get update &>/dev/null
msg_error "No ${APP} Installation Found!" apt-get install -y hyperion &>/dev/null
exit msg_ok "Updated Successfully"
fi exit
msg_info "Updating ${APP} LXC"
apt-get update &>/dev/null
apt-get install -y hyperion &>/dev/null
msg_ok "Updated Successfully"
exit
} }
start start
@@ -44,6 +68,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:8090${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"

View File

@@ -1,42 +1,65 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://www.influxdata.com/ # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
____ ______ ____ ____
/ _/___ / __/ /_ ___ __/ __ \/ __ )
/ // __ \/ /_/ / / / / |/_/ / / / __ |
_/ // / / / __/ / /_/ /> </ /_/ / /_/ /
/___/_/ /_/_/ /_/\__,_/_/|_/_____/_____/
EOF
}
header_info
echo -e "Loading..."
APP="InfluxDB" APP="InfluxDB"
var_tags="database" 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
check_container_storage if [[ ! -f /etc/apt/sources.list.d/influxdata.list ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating ${APP}"
if [[ ! -f /etc/apt/sources.list.d/influxdata.list ]]; then apt-get update &>/dev/null
msg_error "No ${APP} Installation Found!" apt-get -y upgrade &>/dev/null
exit msg_ok "Updated Successfully"
fi exit
msg_info "Updating ${APP}"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated Successfully"
exit
} }
start start
@@ -44,6 +67,3 @@ 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}"

View File

@@ -1,69 +0,0 @@
#!/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}"

View File

@@ -1,42 +1,65 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://www.iobroker.net/#en/intro # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
clear
cat <<"EOF"
_ ____ __
(_)___ / __ )_________ / /_____ _____
/ / __ \/ __ / ___/ __ \/ //_/ _ \/ ___/
/ / /_/ / /_/ / / / /_/ / ,< / __/ /
/_/\____/_____/_/ \____/_/|_|\___/_/
EOF
}
header_info
echo -e "Loading..."
APP="ioBroker" APP="ioBroker"
var_tags="automtation" 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
check_container_storage if [[ ! -d /opt/iobroker ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
check_container_resources msg_info "Updating ${APP} LXC"
if [[ ! -d /opt/iobroker ]]; then apt-get update &>/dev/null
msg_error "No ${APP} Installation Found!" apt-get -y upgrade &>/dev/null
exit msg_ok "Updated Successfully"
fi exit
msg_info "Updating ${APP} LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated Successfully"
exit
} }
start start
@@ -44,6 +67,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:8081${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8081${CL}"

View File

@@ -1,39 +1,61 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source ./misc/build.func source <(curl -s https://raw.githubusercontent.com/asylumexp/Proxmox/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/asylumexp/Proxmox/raw/main/LICENSE # License: MIT
# Source: https://www.iventoy.com/en/index.html # https://github.com/tteck/Proxmox/raw/main/LICENSE
# App Default Values function header_info {
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() {
header_info if [[ ! -d /opt/iventoy ]]; 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/iventoy ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "There is currently no update path available."
exit
} }
start start
@@ -41,6 +63,5 @@ 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 "${APP} should be reachable by going to the following URL.
echo -e "${INFO}${YW} Access it using the following URL:${CL}" ${BL}http://${IP}:26000/ ${CL} \n"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:26000${CL}"

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