mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-05-11 20:21:47 +00:00
Compare commits
10 Commits
14c4964967
...
42d234b4c6
Author | SHA1 | Date | |
---|---|---|---|
![]() |
42d234b4c6 | ||
![]() |
6cdda0924f | ||
![]() |
56c358cbdb | ||
![]() |
9871de48d6 | ||
![]() |
af7d8bac67 | ||
![]() |
0acfc2f7d1 | ||
![]() |
c04167ccac | ||
![]() |
13a505df7a | ||
![]() |
aec596a18a | ||
![]() |
30e8cbf5b4 |
@ -1,4 +1,4 @@
|
|||||||
title: "[Script request] "
|
title: "[Script request]: "
|
||||||
labels: ["enhancement"]
|
labels: ["enhancement"]
|
||||||
body:
|
body:
|
||||||
- type: input
|
- type: input
|
||||||
|
27
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
27
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -5,16 +5,15 @@ body:
|
|||||||
- type: markdown
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
value: |
|
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 - READ FIRST**
|
## ⚠️ **IMPORTANT - READ FIRST**
|
||||||
- 🔍 **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.
|
- 🔍 **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.
|
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.
|
- 🔎 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).
|
- 📜 **Read the script:** Familiarize yourself with the script's content and its purpose. This will help you understand the issue better and provide more relevant information
|
||||||
|
|
||||||
|
Thank you for taking the time to report an issue! Please provide as much detail as possible to help us address the problem efficiently.
|
||||||
|
|
||||||
|
|
||||||
- type: input
|
- type: input
|
||||||
id: guidelines
|
id: guidelines
|
||||||
attributes:
|
attributes:
|
||||||
@ -35,14 +34,7 @@ body:
|
|||||||
id: script_command
|
id: script_command
|
||||||
attributes:
|
attributes:
|
||||||
label: 📂 What was the exact command used to execute the script?
|
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\""
|
placeholder: "e.g., bash -c \"$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/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:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
@ -75,6 +67,13 @@ body:
|
|||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: issue_description
|
||||||
|
attributes:
|
||||||
|
label: 📝 Provide a clear and concise description of the issue.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: steps_to_reproduce
|
id: steps_to_reproduce
|
||||||
attributes:
|
attributes:
|
||||||
|
6
.github/ISSUE_TEMPLATE/config.yml
vendored
6
.github/ISSUE_TEMPLATE/config.yml
vendored
@ -1,11 +1,11 @@
|
|||||||
blank_issues_enabled: false
|
blank_issues_enabled: false
|
||||||
contact_links:
|
contact_links:
|
||||||
- name: 🤔 Questions and Help
|
|
||||||
url: https://github.com/community-scripts/ProxmoxVE/discussions
|
|
||||||
about: For suggestions or questions, please use the Discussions section.
|
|
||||||
- name: 🌟 new Script request
|
- name: 🌟 new Script request
|
||||||
url: https://github.com/community-scripts/ProxmoxVE/discussions/new?category=request-script
|
url: https://github.com/community-scripts/ProxmoxVE/discussions/new?category=request-script
|
||||||
about: For feature/script requests, please use the Discussions section.
|
about: For feature/script requests, please use the Discussions section.
|
||||||
|
- name: 🤔 Questions and Help
|
||||||
|
url: https://github.com/community-scripts/ProxmoxVE/discussions
|
||||||
|
about: For suggestions or questions, please use the Discussions section.
|
||||||
- name: 💻 Discord
|
- name: 💻 Discord
|
||||||
url: https://discord.gg/jsYVk5JBxq
|
url: https://discord.gg/jsYVk5JBxq
|
||||||
about: Join our Discord server to chat with other users in the Proxmox Helper Scripts community.
|
about: Join our Discord server to chat with other users in the Proxmox Helper Scripts community.
|
||||||
|
2
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
2
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
@ -1,5 +1,5 @@
|
|||||||
name: "✨ Feature Request"
|
name: "✨ Feature Request"
|
||||||
description: "Suggest a new feature or enhancement."
|
description: "Suggest a new feature or enhancement. (not for script requests)"
|
||||||
labels: ["enhancement"]
|
labels: ["enhancement"]
|
||||||
body:
|
body:
|
||||||
- type: markdown
|
- type: markdown
|
||||||
|
18
.github/pull_request_template.md
vendored
18
.github/pull_request_template.md
vendored
@ -1,8 +1,7 @@
|
|||||||
<!--🛑 New scripts must first be submitted to [ProxmoxVED](https://github.com/community-scripts/ProxmoxVED) for testing.
|
<!--🛑 New scripts must be submitted to [ProxmoxVED](https://github.com/community-scripts/ProxmoxVED) for testing.
|
||||||
PRs for new scripts that skip this process will be closed. -->
|
PRs without prior testing will be closed. -->
|
||||||
|
|
||||||
## ✍️ Description
|
## ✍️ Description
|
||||||
<!-- Briefly describe your changes. -->
|
|
||||||
|
|
||||||
|
|
||||||
## 🔗 Related PR / Issue
|
## 🔗 Related PR / Issue
|
||||||
@ -13,7 +12,6 @@ Link: #
|
|||||||
|
|
||||||
- [ ] **Self-review completed** – Code follows project standards.
|
- [ ] **Self-review completed** – Code follows project standards.
|
||||||
- [ ] **Tested thoroughly** – Changes work as expected.
|
- [ ] **Tested thoroughly** – Changes work as expected.
|
||||||
- [ ] **No breaking changes** – Existing functionality remains intact.
|
|
||||||
- [ ] **No security risks** – No hardcoded secrets, unnecessary privilege escalations, or permission issues.
|
- [ ] **No security risks** – No hardcoded secrets, unnecessary privilege escalations, or permission issues.
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -27,13 +25,3 @@ Link: #
|
|||||||
- [ ] 🌍 **Website update** – Changes to website-related JSON files or metadata.
|
- [ ] 🌍 **Website update** – Changes to website-related JSON files or metadata.
|
||||||
- [ ] 🔧 **Refactoring / Code Cleanup** – Improves readability or maintainability without changing functionality.
|
- [ ] 🔧 **Refactoring / Code Cleanup** – Improves readability or maintainability without changing functionality.
|
||||||
- [ ] 📝 **Documentation update** – Changes to `README`, `AppName.md`, `CONTRIBUTING.md`, or other docs.
|
- [ ] 📝 **Documentation update** – Changes to `README`, `AppName.md`, `CONTRIBUTING.md`, or other docs.
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🔍 Code & Security Review (**X** in brackets)
|
|
||||||
|
|
||||||
- [ ] **Follows `Code_Audit.md` & `CONTRIBUTING.md` guidelines**
|
|
||||||
|
|
||||||
|
|
||||||
## 📋 Additional Information (optional)
|
|
||||||
<!-- Add any extra context, screenshots, or references. -->
|
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -74,3 +74,4 @@ json/.vscode/
|
|||||||
# Ignore repository metadata or Git itself
|
# Ignore repository metadata or Git itself
|
||||||
.git/
|
.git/
|
||||||
.gitignore
|
.gitignore
|
||||||
|
.vscode/settings.json
|
||||||
|
12
CHANGELOG.md
12
CHANGELOG.md
@ -18,11 +18,23 @@ All LXC instances created using this repository come pre-installed with Midnight
|
|||||||
|
|
||||||
### 🚀 Updated Scripts
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- [core] remove unneeded vars from shellcheck [@MickLesk](https://github.com/MickLesk) ([#3899](https://github.com/community-scripts/ProxmoxVE/pull/3899))
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
- Outline: Installation and update fixes [@tremor021](https://github.com/tremor021) ([#3895](https://github.com/community-scripts/ProxmoxVE/pull/3895))
|
- Outline: Installation and update fixes [@tremor021](https://github.com/tremor021) ([#3895](https://github.com/community-scripts/ProxmoxVE/pull/3895))
|
||||||
- SABnzbd: Fix update error caused by externaly managed message [@tremor021](https://github.com/tremor021) ([#3892](https://github.com/community-scripts/ProxmoxVE/pull/3892))
|
- SABnzbd: Fix update error caused by externaly managed message [@tremor021](https://github.com/tremor021) ([#3892](https://github.com/community-scripts/ProxmoxVE/pull/3892))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- #### 📡 API
|
||||||
|
|
||||||
|
- Bump golang.org/x/crypto from 0.32.0 to 0.35.0 in /api [@dependabot[bot]](https://github.com/dependabot[bot]) ([#3887](https://github.com/community-scripts/ProxmoxVE/pull/3887))
|
||||||
|
|
||||||
|
- #### 📂 Github
|
||||||
|
|
||||||
|
- shrink & minimalize report templates [@MickLesk](https://github.com/MickLesk) ([#3902](https://github.com/community-scripts/ProxmoxVE/pull/3902))
|
||||||
|
|
||||||
## 2025-04-14
|
## 2025-04-14
|
||||||
|
|
||||||
### 🆕 New Scripts
|
### 🆕 New Scripts
|
||||||
|
27
api/go.mod
27
api/go.mod
@ -2,31 +2,22 @@ module proxmox-api
|
|||||||
|
|
||||||
go 1.23.2
|
go 1.23.2
|
||||||
|
|
||||||
require go.mongodb.org/mongo-driver v1.17.2
|
require (
|
||||||
|
github.com/gorilla/mux v1.8.1
|
||||||
|
github.com/joho/godotenv v1.5.1
|
||||||
|
github.com/rs/cors v1.11.1
|
||||||
|
go.mongodb.org/mongo-driver v1.17.2
|
||||||
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
filippo.io/edwards25519 v1.1.0 // indirect
|
|
||||||
github.com/go-sql-driver/mysql v1.8.1 // indirect
|
|
||||||
github.com/golang/snappy v0.0.4 // indirect
|
github.com/golang/snappy v0.0.4 // indirect
|
||||||
github.com/gorilla/mux v1.8.1 // indirect
|
|
||||||
github.com/jackc/pgpassfile v1.0.0 // indirect
|
|
||||||
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
|
|
||||||
github.com/jackc/pgx/v5 v5.7.2 // indirect
|
|
||||||
github.com/jackc/puddle/v2 v2.2.2 // indirect
|
|
||||||
github.com/jinzhu/inflection v1.0.0 // indirect
|
|
||||||
github.com/jinzhu/now v1.1.5 // indirect
|
|
||||||
github.com/joho/godotenv v1.5.1 // indirect
|
|
||||||
github.com/klauspost/compress v1.16.7 // indirect
|
github.com/klauspost/compress v1.16.7 // indirect
|
||||||
github.com/montanaflynn/stats v0.7.1 // indirect
|
github.com/montanaflynn/stats v0.7.1 // indirect
|
||||||
github.com/rs/cors v1.11.1 // indirect
|
|
||||||
github.com/xdg-go/pbkdf2 v1.0.0 // indirect
|
github.com/xdg-go/pbkdf2 v1.0.0 // indirect
|
||||||
github.com/xdg-go/scram v1.1.2 // indirect
|
github.com/xdg-go/scram v1.1.2 // indirect
|
||||||
github.com/xdg-go/stringprep v1.0.4 // indirect
|
github.com/xdg-go/stringprep v1.0.4 // indirect
|
||||||
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect
|
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect
|
||||||
golang.org/x/crypto v0.32.0 // indirect
|
golang.org/x/crypto v0.35.0 // indirect
|
||||||
golang.org/x/sync v0.10.0 // indirect
|
golang.org/x/sync v0.11.0 // indirect
|
||||||
golang.org/x/text v0.21.0 // indirect
|
golang.org/x/text v0.22.0 // indirect
|
||||||
gorm.io/driver/mysql v1.5.7 // indirect
|
|
||||||
gorm.io/driver/postgres v1.5.11 // indirect
|
|
||||||
gorm.io/gorm v1.25.12 // indirect
|
|
||||||
)
|
)
|
||||||
|
47
api/go.sum
47
api/go.sum
@ -1,37 +1,19 @@
|
|||||||
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
|
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
|
||||||
github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
|
|
||||||
github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y=
|
|
||||||
github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
|
|
||||||
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
|
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
|
||||||
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||||
|
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||||
|
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||||
github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
|
github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
|
||||||
github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
|
github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
|
||||||
github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM=
|
|
||||||
github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=
|
|
||||||
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo=
|
|
||||||
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM=
|
|
||||||
github.com/jackc/pgx/v5 v5.7.2 h1:mLoDLV6sonKlvjIEsV56SkWNCnuNv531l94GaIzO+XI=
|
|
||||||
github.com/jackc/pgx/v5 v5.7.2/go.mod h1:ncY89UGWxg82EykZUwSpUKEfccBGGYq1xjrOpsbsfGQ=
|
|
||||||
github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo=
|
|
||||||
github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=
|
|
||||||
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
|
|
||||||
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
|
|
||||||
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
|
|
||||||
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
|
|
||||||
github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
|
github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
|
||||||
github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
|
github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
|
||||||
github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I=
|
github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I=
|
||||||
github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
|
github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
|
||||||
github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE=
|
github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE=
|
||||||
github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow=
|
github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow=
|
||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
|
||||||
github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA=
|
github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA=
|
||||||
github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU=
|
github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
|
||||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
|
||||||
github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
|
github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
|
||||||
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
|
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
|
||||||
github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY=
|
github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY=
|
||||||
@ -45,16 +27,16 @@ go.mongodb.org/mongo-driver v1.17.2 h1:gvZyk8352qSfzyZ2UMWcpDpMSGEr1eqE4T793Sqyh
|
|||||||
go.mongodb.org/mongo-driver v1.17.2/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ=
|
go.mongodb.org/mongo-driver v1.17.2/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||||
golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc=
|
golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs=
|
||||||
golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc=
|
golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ=
|
||||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
|
golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
|
||||||
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
@ -66,18 +48,9 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
|||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||||
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
||||||
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
|
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
|
||||||
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
|
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
|
||||||
gorm.io/driver/mysql v1.5.7 h1:MndhOPYOfEp2rHKgkZIhJ16eVUIRf2HmzgoPmh7FCWo=
|
|
||||||
gorm.io/driver/mysql v1.5.7/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM=
|
|
||||||
gorm.io/driver/postgres v1.5.11 h1:ubBVAfbKEUld/twyKZ0IYn9rSQh448EdelLYk9Mv314=
|
|
||||||
gorm.io/driver/postgres v1.5.11/go.mod h1:DX3GReXH+3FPWGrrgffdvCk3DQ1dwDPdmbenSkweRGI=
|
|
||||||
gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8=
|
|
||||||
gorm.io/gorm v1.25.12 h1:I0u8i2hWQItBq1WfE0o2+WuL9+8L21K9e2HHSTE/0f8=
|
|
||||||
gorm.io/gorm v1.25.12/go.mod h1:xh7N7RHfYlNc5EmcI/El95gXusucDrQnHXe0+CgWcLQ=
|
|
||||||
|
@ -31,7 +31,7 @@ function update_script() {
|
|||||||
|
|
||||||
if [[ -d /etc/wgdashboard/src ]]; then
|
if [[ -d /etc/wgdashboard/src ]]; then
|
||||||
msg_info "update WGDashboard"
|
msg_info "update WGDashboard"
|
||||||
cd /etc/wgdashboard/src || exit
|
cd /etc/wgdashboard/src
|
||||||
$STD echo "y" | ./wgd.sh update
|
$STD echo "y" | ./wgd.sh update
|
||||||
$STD ./wgd.sh start
|
$STD ./wgd.sh start
|
||||||
msg_ok "WGDashboard updated"
|
msg_ok "WGDashboard updated"
|
||||||
|
@ -42,7 +42,7 @@ function update_script() {
|
|||||||
cp -r /opt/bookstack-backup/public/uploads/* /opt/bookstack/public/uploads/ || true
|
cp -r /opt/bookstack-backup/public/uploads/* /opt/bookstack/public/uploads/ || true
|
||||||
cp -r /opt/bookstack-backup/storage/uploads/* /opt/bookstack/storage/uploads/ || true
|
cp -r /opt/bookstack-backup/storage/uploads/* /opt/bookstack/storage/uploads/ || true
|
||||||
cp -r /opt/bookstack-backup/themes/* /opt/bookstack/themes/ || true
|
cp -r /opt/bookstack-backup/themes/* /opt/bookstack/themes/ || true
|
||||||
cd /opt/bookstack || exit
|
cd /opt/bookstack
|
||||||
export COMPOSER_ALLOW_SUPERUSER=1
|
export COMPOSER_ALLOW_SUPERUSER=1
|
||||||
$STD composer install --no-dev
|
$STD composer install --no-dev
|
||||||
$STD php artisan migrate --force
|
$STD php artisan migrate --force
|
||||||
|
@ -200,11 +200,11 @@ if qm status "$CTID" &>/dev/null || pct status "$CTID" &>/dev/null; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Get template storage
|
# Get template storage
|
||||||
TEMPLATE_STORAGE=$(select_storage template) || exit
|
TEMPLATE_STORAGE=$(select_storage template)
|
||||||
msg_ok "Using ${BL}$TEMPLATE_STORAGE${CL} ${GN}for Template Storage."
|
msg_ok "Using ${BL}$TEMPLATE_STORAGE${CL} ${GN}for Template Storage."
|
||||||
|
|
||||||
# Get container storage
|
# Get container storage
|
||||||
CONTAINER_STORAGE=$(select_storage container) || exit
|
CONTAINER_STORAGE=$(select_storage container)
|
||||||
msg_ok "Using ${BL}$CONTAINER_STORAGE${CL} ${GN}for Container Storage."
|
msg_ok "Using ${BL}$CONTAINER_STORAGE${CL} ${GN}for Container Storage."
|
||||||
|
|
||||||
# Update LXC template list
|
# Update LXC template list
|
||||||
@ -279,4 +279,4 @@ if ! pct create "$CTID" "${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE}" "${PCT_OPTIONS[
|
|||||||
exit 209
|
exit 209
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
msg_ok "LXC Container ${BL}$CTID${CL} ${GN}was successfully created."
|
msg_ok "LXC Container ${BL}$CTID${CL} ${GN}was successfully created."
|
||||||
|
@ -32,7 +32,7 @@ function update_script() {
|
|||||||
msg_info "Updating ${APP}"
|
msg_info "Updating ${APP}"
|
||||||
systemctl stop ${APP}
|
systemctl stop ${APP}
|
||||||
git clone https://github.com/revenz/Fenrus.git
|
git clone https://github.com/revenz/Fenrus.git
|
||||||
cd Fenrus || exit
|
cd Fenrus
|
||||||
gitVersionNumber=$(git rev-parse HEAD)
|
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
|
||||||
@ -66,4 +66,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"
|
||||||
|
@ -50,7 +50,7 @@ function update_script() {
|
|||||||
curl -fsSL "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
curl -fsSL "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
||||||
tar -xzf "$temp_file"
|
tar -xzf "$temp_file"
|
||||||
cp -rf "GoMFT-${RELEASE}"/* /opt/gomft/
|
cp -rf "GoMFT-${RELEASE}"/* /opt/gomft/
|
||||||
cd /opt/gomft || exit
|
cd /opt/gomft
|
||||||
rm -rf /opt/gomft/node_modules
|
rm -rf /opt/gomft/node_modules
|
||||||
$STD npm ci
|
$STD npm ci
|
||||||
$STD node build.js
|
$STD node build.js
|
||||||
|
@ -43,14 +43,14 @@ function update_script() {
|
|||||||
tar xzf "${RELEASE}".tar.gz
|
tar xzf "${RELEASE}".tar.gz
|
||||||
VER=$(curl -fsSL https://api.github.com/repos/linuxserver/Heimdall/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
VER=$(curl -fsSL https://api.github.com/repos/linuxserver/Heimdall/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
cp -R Heimdall-"${VER}"/* /opt/Heimdall
|
cp -R Heimdall-"${VER}"/* /opt/Heimdall
|
||||||
cd /opt/Heimdall || exit
|
cd /opt/Heimdall
|
||||||
$STD apt-get install -y composer
|
$STD apt-get install -y composer
|
||||||
export COMPOSER_ALLOW_SUPERUSER=1
|
export COMPOSER_ALLOW_SUPERUSER=1
|
||||||
$STD composer dump-autoload
|
$STD composer dump-autoload
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated Heimdall Dashboard to ${RELEASE}"
|
msg_ok "Updated Heimdall Dashboard to ${RELEASE}"
|
||||||
msg_info "Restoring Data"
|
msg_info "Restoring Data"
|
||||||
cd ~ || exit
|
cd ~
|
||||||
cp -R database-backup/* /opt/Heimdall/database
|
cp -R database-backup/* /opt/Heimdall/database
|
||||||
cp -R public-backup/* /opt/Heimdall/public
|
cp -R public-backup/* /opt/Heimdall/public
|
||||||
sleep 1
|
sleep 1
|
||||||
|
@ -40,7 +40,7 @@ function update_script() {
|
|||||||
if [[ "${PREV_RELEASE}" < 0.23.0 ]]; then
|
if [[ "${PREV_RELEASE}" < 0.23.0 ]]; then
|
||||||
$STD apt-get install -y graphicsmagick ghostscript
|
$STD apt-get install -y graphicsmagick ghostscript
|
||||||
fi
|
fi
|
||||||
cd /opt || exit
|
cd /opt
|
||||||
if [[ -f /opt/hoarder/.env ]] && [[ ! -f /etc/hoarder/hoarder.env ]]; then
|
if [[ -f /opt/hoarder/.env ]] && [[ ! -f /etc/hoarder/hoarder.env ]]; then
|
||||||
mkdir -p /etc/hoarder
|
mkdir -p /etc/hoarder
|
||||||
mv /opt/hoarder/.env /etc/hoarder/hoarder.env
|
mv /opt/hoarder/.env /etc/hoarder/hoarder.env
|
||||||
@ -49,14 +49,14 @@ function update_script() {
|
|||||||
curl -fsSL "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
|
curl -fsSL "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
|
||||||
unzip -q v"${RELEASE}".zip
|
unzip -q v"${RELEASE}".zip
|
||||||
mv karakeep-"${RELEASE}" /opt/hoarder
|
mv karakeep-"${RELEASE}" /opt/hoarder
|
||||||
cd /opt/hoarder/apps/web || exit
|
cd /opt/hoarder/apps/web
|
||||||
$STD pnpm install --frozen-lockfile
|
$STD pnpm install --frozen-lockfile
|
||||||
$STD pnpm exec next build --experimental-build-mode compile
|
$STD pnpm exec next build --experimental-build-mode compile
|
||||||
cp -r /opt/hoarder/apps/web/.next/standalone/apps/web/server.js /opt/hoarder/apps/web
|
cp -r /opt/hoarder/apps/web/.next/standalone/apps/web/server.js /opt/hoarder/apps/web
|
||||||
cd /opt/hoarder/apps/workers || exit
|
cd /opt/hoarder/apps/workers
|
||||||
$STD pnpm install --frozen-lockfile
|
$STD pnpm install --frozen-lockfile
|
||||||
export DATA_DIR=/opt/hoarder_data
|
export DATA_DIR=/opt/hoarder_data
|
||||||
cd /opt/hoarder/packages/db || exit
|
cd /opt/hoarder/packages/db
|
||||||
$STD pnpm migrate
|
$STD pnpm migrate
|
||||||
sed -i "s/SERVER_VERSION=${PREV_RELEASE}/SERVER_VERSION=${RELEASE}/" /etc/hoarder/hoarder.env
|
sed -i "s/SERVER_VERSION=${PREV_RELEASE}/SERVER_VERSION=${RELEASE}/" /etc/hoarder/hoarder.env
|
||||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||||
|
@ -40,7 +40,7 @@ function update_script() {
|
|||||||
if [[ "${PREV_RELEASE}" < 0.23.0 ]]; then
|
if [[ "${PREV_RELEASE}" < 0.23.0 ]]; then
|
||||||
$STD apt-get install -y graphicsmagick ghostscript
|
$STD apt-get install -y graphicsmagick ghostscript
|
||||||
fi
|
fi
|
||||||
cd /opt || exit
|
cd /opt
|
||||||
if [[ -f /opt/karakeep/.env ]] && [[ ! -f /etc/karakeep/karakeep.env ]]; then
|
if [[ -f /opt/karakeep/.env ]] && [[ ! -f /etc/karakeep/karakeep.env ]]; then
|
||||||
mkdir -p /etc/karakeep
|
mkdir -p /etc/karakeep
|
||||||
mv /opt/karakeep/.env /etc/karakeep/karakeep.env
|
mv /opt/karakeep/.env /etc/karakeep/karakeep.env
|
||||||
@ -49,14 +49,14 @@ function update_script() {
|
|||||||
curl -fsSL "https://github.com/karakeep-app/karakeep/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
|
curl -fsSL "https://github.com/karakeep-app/karakeep/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
|
||||||
unzip -q "v${RELEASE}.zip"
|
unzip -q "v${RELEASE}.zip"
|
||||||
mv karakeep-"${RELEASE}" /opt/karakeep
|
mv karakeep-"${RELEASE}" /opt/karakeep
|
||||||
cd /opt/karakeep/apps/web || exit
|
cd /opt/karakeep/apps/web
|
||||||
$STD pnpm install --frozen-lockfile
|
$STD pnpm install --frozen-lockfile
|
||||||
$STD pnpm exec next build --experimental-build-mode compile
|
$STD pnpm exec next build --experimental-build-mode compile
|
||||||
cp -r /opt/karakeep/apps/web/.next/standalone/apps/web/server.js /opt/karakeep/apps/web
|
cp -r /opt/karakeep/apps/web/.next/standalone/apps/web/server.js /opt/karakeep/apps/web
|
||||||
cd /opt/karakeep/apps/workers || exit
|
cd /opt/karakeep/apps/workers
|
||||||
$STD pnpm install --frozen-lockfile
|
$STD pnpm install --frozen-lockfile
|
||||||
export DATA_DIR=/opt/karakeep_data
|
export DATA_DIR=/opt/karakeep_data
|
||||||
cd /opt/karakeep/packages/db || exit
|
cd /opt/karakeep/packages/db
|
||||||
$STD pnpm migrate
|
$STD pnpm migrate
|
||||||
sed -i "s/SERVER_VERSION=${PREV_RELEASE}/SERVER_VERSION=${RELEASE}/" /etc/karakeep/karakeep.env
|
sed -i "s/SERVER_VERSION=${PREV_RELEASE}/SERVER_VERSION=${RELEASE}/" /etc/karakeep/karakeep.env
|
||||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||||
|
@ -66,7 +66,7 @@ function update_script() {
|
|||||||
[ -f "$BACKUP_DIR/.env" ] && cp "$BACKUP_DIR/.env" /opt/kimai/
|
[ -f "$BACKUP_DIR/.env" ] && cp "$BACKUP_DIR/.env" /opt/kimai/
|
||||||
[ -f "$BACKUP_DIR/local.yaml" ] && cp "$BACKUP_DIR/local.yaml" /opt/kimai/config/packages/
|
[ -f "$BACKUP_DIR/local.yaml" ] && cp "$BACKUP_DIR/local.yaml" /opt/kimai/config/packages/
|
||||||
rm -rf "$BACKUP_DIR"
|
rm -rf "$BACKUP_DIR"
|
||||||
cd /opt/kimai || exit
|
cd /opt/kimai
|
||||||
$STD composer install --no-dev --optimize-autoloader
|
$STD composer install --no-dev --optimize-autoloader
|
||||||
$STD bin/console kimai:update
|
$STD bin/console kimai:update
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
|
@ -52,7 +52,7 @@ function update_script() {
|
|||||||
|
|
||||||
msg_info "Downloading NPM v${RELEASE}"
|
msg_info "Downloading NPM v${RELEASE}"
|
||||||
curl -fsSL "https://codeload.github.com/NginxProxyManager/nginx-proxy-manager/tar.gz/v${RELEASE}" | tar -xz
|
curl -fsSL "https://codeload.github.com/NginxProxyManager/nginx-proxy-manager/tar.gz/v${RELEASE}" | tar -xz
|
||||||
cd nginx-proxy-manager-"${RELEASE}" || exit
|
cd nginx-proxy-manager-"${RELEASE}"
|
||||||
msg_ok "Downloaded NPM v${RELEASE}"
|
msg_ok "Downloaded NPM v${RELEASE}"
|
||||||
|
|
||||||
msg_info "Setting up Enviroment"
|
msg_info "Setting up Enviroment"
|
||||||
@ -103,7 +103,7 @@ function update_script() {
|
|||||||
msg_ok "Setup Enviroment"
|
msg_ok "Setup Enviroment"
|
||||||
|
|
||||||
msg_info "Building Frontend"
|
msg_info "Building Frontend"
|
||||||
cd ./frontend || exit
|
cd ./frontend
|
||||||
$STD pnpm install
|
$STD pnpm install
|
||||||
$STD pnpm upgrade
|
$STD pnpm upgrade
|
||||||
$STD pnpm run build
|
$STD pnpm run build
|
||||||
@ -128,7 +128,7 @@ function update_script() {
|
|||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
cd /app || exit
|
cd /app
|
||||||
$STD pnpm install
|
$STD pnpm install
|
||||||
msg_ok "Initialized Backend"
|
msg_ok "Initialized Backend"
|
||||||
|
|
||||||
|
@ -28,27 +28,26 @@ function update_script() {
|
|||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
|
|
||||||
case "$UPD" in
|
case "$UPD" in
|
||||||
"1")
|
"1")
|
||||||
msg_info "Updating Alpine OS"
|
msg_info "Updating Alpine OS"
|
||||||
apk update && apk upgrade
|
apk update && apk upgrade
|
||||||
msg_ok "System updated"
|
msg_ok "System updated"
|
||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
"2")
|
"2")
|
||||||
msg_info "Updating NPMplus Container"
|
msg_info "Updating NPMplus Container"
|
||||||
cd /opt || exit 1
|
cd /opt
|
||||||
msg_info "Pulling latest container image"
|
msg_info "Pulling latest container image"
|
||||||
$STD docker compose pull
|
$STD docker compose pull
|
||||||
msg_info "Recreating container"
|
msg_info "Recreating container"
|
||||||
$STD docker compose up -d
|
$STD docker compose up -d
|
||||||
msg_ok "NPMplus container updated"
|
msg_ok "NPMplus container updated"
|
||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
start
|
start
|
||||||
build_container
|
build_container
|
||||||
description
|
description
|
||||||
@ -56,4 +55,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:81${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:81${CL}"
|
||||||
|
@ -40,7 +40,7 @@ function update_script() {
|
|||||||
curl -fsSL "https://github.com/outline/outline/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
curl -fsSL "https://github.com/outline/outline/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
||||||
tar zxf "$temp_file"
|
tar zxf "$temp_file"
|
||||||
mv outline-"${RELEASE}" /opt/outline
|
mv outline-"${RELEASE}" /opt/outline
|
||||||
cd /opt/outline || exit
|
cd /opt/outline
|
||||||
export NODE_ENV=development
|
export NODE_ENV=development
|
||||||
export NODE_OPTIONS="--max-old-space-size=3584"
|
export NODE_OPTIONS="--max-old-space-size=3584"
|
||||||
$STD yarn install --frozen-lockfile
|
$STD yarn install --frozen-lockfile
|
||||||
|
@ -47,7 +47,7 @@ function update_script() {
|
|||||||
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}"
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
cd /opt/paymenter || exit
|
cd /opt/paymenter
|
||||||
$STD php artisan p:upgrade --no-interaction
|
$STD php artisan p:upgrade --no-interaction
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
else
|
else
|
||||||
|
@ -32,7 +32,7 @@ function update_script() {
|
|||||||
msg_info "Updating $APP to ${RELEASE}"
|
msg_info "Updating $APP to ${RELEASE}"
|
||||||
systemctl stop peanut
|
systemctl stop peanut
|
||||||
curl -fsSL "https://api.github.com/repos/Brandawg93/PeaNUT/tarball/${RELEASE}" -o "peanut.tar.gz"
|
curl -fsSL "https://api.github.com/repos/Brandawg93/PeaNUT/tarball/${RELEASE}" -o "peanut.tar.gz"
|
||||||
tar -xzf peanut.tar.gz -C /opt/peanut --strip-components 1
|
tar -xzf peanut.tar.gz -C /opt/peanut --strip-components
|
||||||
rm peanut.tar.gz
|
rm peanut.tar.gz
|
||||||
cd /opt/peanut
|
cd /opt/peanut
|
||||||
$STD pnpm i
|
$STD pnpm i
|
||||||
|
@ -27,7 +27,7 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
CURRENT_PHP=$(php -v 2>/dev/null | awk '/^PHP/{print $2}' | cut -d. -f1,2)
|
CURRENT_PHP=$(php -v 2>/dev/null | awk '/^PHP/{print $2}' | cut -d. -f1,2)
|
||||||
|
|
||||||
if [[ "$CURRENT_PHP" != "8.4" ]]; then
|
if [[ "$CURRENT_PHP" != "8.4" ]]; then
|
||||||
msg_info "Migrating PHP $CURRENT_PHP to 8.4"
|
msg_info "Migrating PHP $CURRENT_PHP to 8.4"
|
||||||
@ -47,7 +47,7 @@ function update_script() {
|
|||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/pelican-dev/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/pelican-dev/panel/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 Service"
|
msg_info "Stopping Service"
|
||||||
cd /opt/pelican-panel || exit
|
cd /opt/pelican-panel
|
||||||
$STD php artisan down
|
$STD php artisan down
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ function update_script() {
|
|||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/pterodactyl/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/pterodactyl/panel/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 Service"
|
msg_info "Stopping Service"
|
||||||
cd /opt/pterodactyl-panel || exit
|
cd /opt/pterodactyl-panel
|
||||||
$STD php artisan down
|
$STD php artisan down
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ function update_script() {
|
|||||||
cp /opt/snipe-it-backup/.env /opt/snipe-it/.env
|
cp /opt/snipe-it-backup/.env /opt/snipe-it/.env
|
||||||
cp -r /opt/snipe-it-backup/public/uploads/ /opt/snipe-it/public/uploads/
|
cp -r /opt/snipe-it-backup/public/uploads/ /opt/snipe-it/public/uploads/
|
||||||
cp -r /opt/snipe-it-backup/storage/private_uploads /opt/snipe-it/storage/private_uploads
|
cp -r /opt/snipe-it-backup/storage/private_uploads /opt/snipe-it/storage/private_uploads
|
||||||
cd /opt/snipe-it/ || exit
|
cd /opt/snipe-it/
|
||||||
export COMPOSER_ALLOW_SUPERUSER=1
|
export COMPOSER_ALLOW_SUPERUSER=1
|
||||||
$STD composer install --no-dev --optimize-autoloader --no-interaction
|
$STD composer install --no-dev --optimize-autoloader --no-interaction
|
||||||
$STD composer dump-autoload
|
$STD composer dump-autoload
|
||||||
|
@ -36,15 +36,15 @@ function update_script() {
|
|||||||
else
|
else
|
||||||
msg_info "Updating ${APP} (Patience)"
|
msg_info "Updating ${APP} (Patience)"
|
||||||
export $(cat /opt/tandoor/.env | grep "^[^#]" | xargs)
|
export $(cat /opt/tandoor/.env | grep "^[^#]" | xargs)
|
||||||
cd /opt/tandoor/ || exit
|
cd /opt/tandoor/
|
||||||
$STD pip3 install -r requirements.txt
|
$STD pip3 install -r requirements.txt
|
||||||
$STD /usr/bin/python3 /opt/tandoor/manage.py migrate
|
$STD /usr/bin/python3 /opt/tandoor/manage.py migrate
|
||||||
$STD /usr/bin/python3 /opt/tandoor/manage.py collectstatic --no-input
|
$STD /usr/bin/python3 /opt/tandoor/manage.py collectstatic --no-input
|
||||||
$STD /usr/bin/python3 /opt/tandoor/manage.py collectstatic_js_reverse
|
$STD /usr/bin/python3 /opt/tandoor/manage.py collectstatic_js_reverse
|
||||||
cd /opt/tandoor/vue || exit
|
cd /opt/tandoor/vue
|
||||||
$STD yarn install
|
$STD yarn install
|
||||||
$STD yarn build
|
$STD yarn build
|
||||||
cd /opt/tandoor || exit
|
cd /opt/tandoor
|
||||||
$STD python3 version.py
|
$STD python3 version.py
|
||||||
systemctl restart gunicorn_tandoor
|
systemctl restart gunicorn_tandoor
|
||||||
msg_ok "Updated ${APP}"
|
msg_ok "Updated ${APP}"
|
||||||
|
@ -38,7 +38,7 @@ function update_script() {
|
|||||||
cp -R /usr/share/zabbix/ /opt/zabbix-backup/
|
cp -R /usr/share/zabbix/ /opt/zabbix-backup/
|
||||||
#cp -R /usr/share/zabbix-* /opt/zabbix-backup/ Remove temporary
|
#cp -R /usr/share/zabbix-* /opt/zabbix-backup/ Remove temporary
|
||||||
rm -Rf /etc/apt/sources.list.d/zabbix.list
|
rm -Rf /etc/apt/sources.list.d/zabbix.list
|
||||||
cd /tmp || exit
|
cd /tmp
|
||||||
curl -fsSL "$(curl -fsSL https://repo.zabbix.com/zabbix/ |
|
curl -fsSL "$(curl -fsSL https://repo.zabbix.com/zabbix/ |
|
||||||
grep -oP '(?<=href=")[0-9]+\.[0-9]+(?=/")' | sort -V | tail -n1 |
|
grep -oP '(?<=href=")[0-9]+\.[0-9]+(?=/")' | sort -V | tail -n1 |
|
||||||
xargs -I{} echo "https://repo.zabbix.com/zabbix/{}/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb")" \
|
xargs -I{} echo "https://repo.zabbix.com/zabbix/{}/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb")" \
|
||||||
|
@ -34,7 +34,7 @@ function update_script() {
|
|||||||
msg_ok "Stopped $APP"
|
msg_ok "Stopped $APP"
|
||||||
|
|
||||||
msg_info "Updating $APP to ${RELEASE}"
|
msg_info "Updating $APP to ${RELEASE}"
|
||||||
cd /tmp || exit
|
cd /tmp
|
||||||
curl -fsSL "https://github.com/zitadel/zitadel/releases/download/v$RELEASE/zitadel-linux-amd64.tar.gz" | tar -xz
|
curl -fsSL "https://github.com/zitadel/zitadel/releases/download/v$RELEASE/zitadel-linux-amd64.tar.gz" | tar -xz
|
||||||
mv zitadel-linux-amd64/zitadel /usr/local/bin
|
mv zitadel-linux-amd64/zitadel /usr/local/bin
|
||||||
$STD zitadel setup --masterkeyFile /opt/zitadel/.masterkey --config /opt/zitadel/config.yaml --init-projections=true
|
$STD zitadel setup --masterkeyFile /opt/zitadel/.masterkey --config /opt/zitadel/config.yaml --init-projections=true
|
||||||
|
@ -1,24 +1,174 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"name": "fhem/fhem-mirror",
|
||||||
|
"version": "6.2",
|
||||||
|
"date": "2025-04-15T20:30:27Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "runtipi/runtipi",
|
||||||
|
"version": "nightly",
|
||||||
|
"date": "2025-04-13T18:27:09Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "HabitRPG/habitica",
|
||||||
|
"version": "v5.35.3",
|
||||||
|
"date": "2025-04-15T19:32:17Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Checkmk/checkmk",
|
||||||
|
"version": "v2.4.0b5",
|
||||||
|
"date": "2025-04-15T17:59:06Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "MediaBrowser/Emby.Releases",
|
||||||
|
"version": "4.8.11.0",
|
||||||
|
"date": "2025-03-10T06:39:11Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "rabbitmq/rabbitmq-server",
|
||||||
|
"version": "v4.1.0",
|
||||||
|
"date": "2025-04-15T16:18:29Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Brandawg93/PeaNUT",
|
||||||
|
"version": "v5.7.2",
|
||||||
|
"date": "2025-04-15T15:44:49Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "WordPress/WordPress",
|
||||||
|
"version": "6.8",
|
||||||
|
"date": "2025-04-15T15:41:16Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "jenkinsci/jenkins",
|
||||||
|
"version": "jenkins-2.506",
|
||||||
|
"date": "2025-04-15T15:40:50Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Stirling-Tools/Stirling-PDF",
|
||||||
|
"version": "v0.45.6",
|
||||||
|
"date": "2025-04-15T14:16:52Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "prometheus/prometheus",
|
||||||
|
"version": "v0.303.0",
|
||||||
|
"date": "2025-04-15T13:30:05Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "n8n-io/n8n",
|
||||||
|
"version": "n8n@1.86.1",
|
||||||
|
"date": "2025-04-09T09:20:55Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wazuh/wazuh",
|
||||||
|
"version": "coverity-w16-4.12.0",
|
||||||
|
"date": "2025-04-15T08:25:08Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "mattermost/mattermost",
|
||||||
|
"version": "v10.6.2",
|
||||||
|
"date": "2025-04-15T08:14:23Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "zabbix/zabbix",
|
||||||
|
"version": "7.0.12rc1",
|
||||||
|
"date": "2025-04-15T08:00:11Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Jackett/Jackett",
|
||||||
|
"version": "v0.22.1778",
|
||||||
|
"date": "2025-04-15T06:26:21Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "slskd/slskd",
|
||||||
|
"version": "0.22.5",
|
||||||
|
"date": "2025-04-15T02:52:26Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "blakeblackshear/frigate",
|
||||||
|
"version": "v0.14.1",
|
||||||
|
"date": "2024-08-29T22:32:51Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "esphome/esphome",
|
||||||
|
"version": "2025.3.3",
|
||||||
|
"date": "2025-03-31T22:07:05Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "moghtech/komodo",
|
||||||
|
"version": "v1.17.1",
|
||||||
|
"date": "2025-04-14T22:35:13Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "influxdata/influxdb",
|
||||||
|
"version": "v3.0.0",
|
||||||
|
"date": "2025-04-14T22:16:28Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Kareadita/Kavita",
|
||||||
|
"version": "v0.8.6",
|
||||||
|
"date": "2025-04-14T22:09:30Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "keycloak/keycloak",
|
||||||
|
"version": "26.2.0",
|
||||||
|
"date": "2025-04-11T12:48:27Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "paperless-ngx/paperless-ngx",
|
||||||
|
"version": "v2.15.2",
|
||||||
|
"date": "2025-04-14T20:48:52Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "semaphoreui/semaphore",
|
||||||
|
"version": "v2.13.13",
|
||||||
|
"date": "2025-04-11T10:15:13Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "netbox-community/netbox",
|
||||||
|
"version": "v4.2.7",
|
||||||
|
"date": "2025-04-10T20:08:13Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "duplicati/duplicati",
|
||||||
|
"version": "v2.1.0.115-2.1.0.115_canary_2025-04-14",
|
||||||
|
"date": "2025-04-14T18:03:36Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "OliveTin/OliveTin",
|
||||||
|
"version": "2025.4.14",
|
||||||
|
"date": "2025-04-14T16:53:53Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "msgbyte/tianji",
|
||||||
|
"version": "v1.20.0",
|
||||||
|
"date": "2025-04-14T16:19:23Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "home-assistant/operating-system",
|
||||||
|
"version": "15.2",
|
||||||
|
"date": "2025-04-14T15:37:12Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "stackblitz-labs/bolt.diy",
|
||||||
|
"version": "v0.0.7-hf1",
|
||||||
|
"date": "2025-03-10T20:49:39Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "AdguardTeam/AdGuardHome",
|
||||||
|
"version": "v0.107.60",
|
||||||
|
"date": "2025-04-14T11:46:19Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "Graylog2/graylog2-server",
|
"name": "Graylog2/graylog2-server",
|
||||||
"version": "6.2.0-rc.1",
|
"version": "6.2.0-rc.1",
|
||||||
"date": "2025-04-14T11:26:18Z"
|
"date": "2025-04-14T11:26:18Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "fhem/fhem-mirror",
|
|
||||||
"version": "6.2",
|
|
||||||
"date": "2025-04-14T10:36:18Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "bluenviron/mediamtx",
|
"name": "bluenviron/mediamtx",
|
||||||
"version": "v1.12.0",
|
"version": "v1.12.0",
|
||||||
"date": "2025-04-14T10:36:04Z"
|
"date": "2025-04-14T10:36:04Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Stirling-Tools/Stirling-PDF",
|
|
||||||
"version": "v0.45.5",
|
|
||||||
"date": "2025-04-14T09:57:39Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "open-webui/open-webui",
|
"name": "open-webui/open-webui",
|
||||||
"version": "v0.6.5",
|
"version": "v0.6.5",
|
||||||
@ -29,16 +179,6 @@
|
|||||||
"version": "v10.2.0",
|
"version": "v10.2.0",
|
||||||
"date": "2025-04-14T08:53:44Z"
|
"date": "2025-04-14T08:53:44Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "zabbix/zabbix",
|
|
||||||
"version": "6.0.40rc1",
|
|
||||||
"date": "2025-04-14T08:45:46Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "duplicati/duplicati",
|
|
||||||
"version": "v2.1.0.114-2.1.0.114_canary_2025-04-14",
|
|
||||||
"date": "2025-04-14T07:54:21Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "evcc-io/evcc",
|
"name": "evcc-io/evcc",
|
||||||
"version": "0.203.1",
|
"version": "0.203.1",
|
||||||
@ -49,11 +189,6 @@
|
|||||||
"version": "v1.5.1",
|
"version": "v1.5.1",
|
||||||
"date": "2025-01-01T16:15:52Z"
|
"date": "2025-01-01T16:15:52Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Jackett/Jackett",
|
|
||||||
"version": "v0.22.1775",
|
|
||||||
"date": "2025-04-14T05:59:53Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "firefly-iii/firefly-iii",
|
"name": "firefly-iii/firefly-iii",
|
||||||
"version": "v6.2.10",
|
"version": "v6.2.10",
|
||||||
@ -89,16 +224,6 @@
|
|||||||
"version": "v0.46.0",
|
"version": "v0.46.0",
|
||||||
"date": "2025-04-13T18:31:13Z"
|
"date": "2025-04-13T18:31:13Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "runtipi/runtipi",
|
|
||||||
"version": "v3.10.0",
|
|
||||||
"date": "2025-03-15T14:38:16Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "keycloak/keycloak",
|
|
||||||
"version": "26.2.0",
|
|
||||||
"date": "2025-04-11T12:48:27Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "karakeep-app/karakeep",
|
"name": "karakeep-app/karakeep",
|
||||||
"version": "mcp/v0.23.4",
|
"version": "mcp/v0.23.4",
|
||||||
@ -134,11 +259,6 @@
|
|||||||
"version": "v5.21.1.9799",
|
"version": "v5.21.1.9799",
|
||||||
"date": "2025-03-24T15:52:12Z"
|
"date": "2025-03-24T15:52:12Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "slskd/slskd",
|
|
||||||
"version": "0.22.4",
|
|
||||||
"date": "2025-04-13T00:14:13Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Tautulli/Tautulli",
|
"name": "Tautulli/Tautulli",
|
||||||
"version": "v2.15.2",
|
"version": "v2.15.2",
|
||||||
@ -149,16 +269,6 @@
|
|||||||
"version": "v0.2.11",
|
"version": "v0.2.11",
|
||||||
"date": "2025-04-12T21:13:08Z"
|
"date": "2025-04-12T21:13:08Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "semaphoreui/semaphore",
|
|
||||||
"version": "v2.14.0-beta1",
|
|
||||||
"date": "2025-04-12T20:14:09Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "MediaBrowser/Emby.Releases",
|
|
||||||
"version": "4.8.11.0",
|
|
||||||
"date": "2025-03-10T06:39:11Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "home-assistant/core",
|
"name": "home-assistant/core",
|
||||||
"version": "2025.4.2",
|
"version": "2025.4.2",
|
||||||
@ -179,11 +289,6 @@
|
|||||||
"version": "v1.16.0",
|
"version": "v1.16.0",
|
||||||
"date": "2025-04-11T19:15:24Z"
|
"date": "2025-04-11T19:15:24Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "rabbitmq/rabbitmq-server",
|
|
||||||
"version": "v4.0.8",
|
|
||||||
"date": "2025-04-03T05:11:15Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "tailscale/tailscale",
|
"name": "tailscale/tailscale",
|
||||||
"version": "v1.82.4",
|
"version": "v1.82.4",
|
||||||
@ -224,11 +329,6 @@
|
|||||||
"version": "4.5.1",
|
"version": "4.5.1",
|
||||||
"date": "2025-04-11T09:57:47Z"
|
"date": "2025-04-11T09:57:47Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "home-assistant/operating-system",
|
|
||||||
"version": "15.1",
|
|
||||||
"date": "2025-03-31T13:42:20Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "outline/outline",
|
"name": "outline/outline",
|
||||||
"version": "v0.83.0",
|
"version": "v0.83.0",
|
||||||
@ -244,11 +344,6 @@
|
|||||||
"version": "2.2.8",
|
"version": "2.2.8",
|
||||||
"date": "2025-04-10T20:30:49Z"
|
"date": "2025-04-10T20:30:49Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "netbox-community/netbox",
|
|
||||||
"version": "v4.2.7",
|
|
||||||
"date": "2025-04-10T20:08:13Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "gristlabs/grist-core",
|
"name": "gristlabs/grist-core",
|
||||||
"version": "v1.5.1",
|
"version": "v1.5.1",
|
||||||
@ -279,41 +374,21 @@
|
|||||||
"version": "v2.35.0",
|
"version": "v2.35.0",
|
||||||
"date": "2025-04-10T13:45:22Z"
|
"date": "2025-04-10T13:45:22Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "n8n-io/n8n",
|
|
||||||
"version": "n8n@1.86.1",
|
|
||||||
"date": "2025-04-09T09:20:55Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "mongodb/mongo",
|
"name": "mongodb/mongo",
|
||||||
"version": "r8.0.5-rc2",
|
"version": "r8.0.5-rc2",
|
||||||
"date": "2025-04-09T22:37:52Z"
|
"date": "2025-04-09T22:37:52Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "paperless-ngx/paperless-ngx",
|
|
||||||
"version": "v2.15.1",
|
|
||||||
"date": "2025-04-09T22:26:39Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "jupyter/notebook",
|
"name": "jupyter/notebook",
|
||||||
"version": "v7.4.0",
|
"version": "v7.4.0",
|
||||||
"date": "2025-04-09T17:36:14Z"
|
"date": "2025-04-09T17:36:14Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Brandawg93/PeaNUT",
|
|
||||||
"version": "v5.7.1",
|
|
||||||
"date": "2025-04-09T15:06:49Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "glpi-project/glpi",
|
"name": "glpi-project/glpi",
|
||||||
"version": "10.0.18",
|
"version": "10.0.18",
|
||||||
"date": "2025-02-12T11:07:02Z"
|
"date": "2025-02-12T11:07:02Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "HabitRPG/habitica",
|
|
||||||
"version": "v5.35.2",
|
|
||||||
"date": "2025-04-09T13:46:58Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "zitadel/zitadel",
|
"name": "zitadel/zitadel",
|
||||||
"version": "v2.69.10",
|
"version": "v2.69.10",
|
||||||
@ -324,16 +399,6 @@
|
|||||||
"version": "debian/12.0.14",
|
"version": "debian/12.0.14",
|
||||||
"date": "2025-04-09T10:09:00Z"
|
"date": "2025-04-09T10:09:00Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "esphome/esphome",
|
|
||||||
"version": "2025.3.3",
|
|
||||||
"date": "2025-03-31T22:07:05Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "OliveTin/OliveTin",
|
|
||||||
"version": "2025.4.8",
|
|
||||||
"date": "2025-04-08T22:02:50Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "minio/minio",
|
"name": "minio/minio",
|
||||||
"version": "RELEASE.2025-04-08T15-41-24Z",
|
"version": "RELEASE.2025-04-08T15-41-24Z",
|
||||||
@ -344,21 +409,6 @@
|
|||||||
"version": "version/2025.2.4",
|
"version": "version/2025.2.4",
|
||||||
"date": "2025-04-08T18:39:57Z"
|
"date": "2025-04-08T18:39:57Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "influxdata/influxdb",
|
|
||||||
"version": "v1.12.0rc1",
|
|
||||||
"date": "2025-04-08T17:35:21Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "jenkinsci/jenkins",
|
|
||||||
"version": "jenkins-2.505",
|
|
||||||
"date": "2025-04-08T15:46:42Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "AdguardTeam/AdGuardHome",
|
|
||||||
"version": "v0.107.59",
|
|
||||||
"date": "2025-03-21T11:11:39Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "element-hq/synapse",
|
"name": "element-hq/synapse",
|
||||||
"version": "v1.128.0",
|
"version": "v1.128.0",
|
||||||
@ -369,11 +419,6 @@
|
|||||||
"version": "v2.10.0",
|
"version": "v2.10.0",
|
||||||
"date": "2025-04-08T12:33:57Z"
|
"date": "2025-04-08T12:33:57Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "prometheus/prometheus",
|
|
||||||
"version": "v0.303.0-rc.1",
|
|
||||||
"date": "2025-04-07T04:39:38Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "pelican-dev/panel",
|
"name": "pelican-dev/panel",
|
||||||
"version": "v1.0.0-beta19",
|
"version": "v1.0.0-beta19",
|
||||||
@ -394,16 +439,6 @@
|
|||||||
"version": "v1.23.7",
|
"version": "v1.23.7",
|
||||||
"date": "2025-04-07T19:27:52Z"
|
"date": "2025-04-07T19:27:52Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Checkmk/checkmk",
|
|
||||||
"version": "v2.4.0b4",
|
|
||||||
"date": "2025-04-07T19:14:53Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "wazuh/wazuh",
|
|
||||||
"version": "coverity-w15-4.12.0",
|
|
||||||
"date": "2025-04-07T17:50:14Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "thomiceli/opengist",
|
"name": "thomiceli/opengist",
|
||||||
"version": "v1.10.0",
|
"version": "v1.10.0",
|
||||||
@ -424,11 +459,6 @@
|
|||||||
"version": "v24.8",
|
"version": "v24.8",
|
||||||
"date": "2025-03-18T07:33:51Z"
|
"date": "2025-03-18T07:33:51Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "mattermost/mattermost",
|
|
||||||
"version": "server/public/v0.1.11",
|
|
||||||
"date": "2025-03-28T14:04:31Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Dolibarr/dolibarr",
|
"name": "Dolibarr/dolibarr",
|
||||||
"version": "21.0.1",
|
"version": "21.0.1",
|
||||||
@ -449,16 +479,6 @@
|
|||||||
"version": "1.5.34",
|
"version": "1.5.34",
|
||||||
"date": "2025-03-27T16:17:38Z"
|
"date": "2025-03-27T16:17:38Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "stackblitz-labs/bolt.diy",
|
|
||||||
"version": "v0.0.7-hf1",
|
|
||||||
"date": "2025-03-10T20:49:39Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "msgbyte/tianji",
|
|
||||||
"version": "v1.19.7",
|
|
||||||
"date": "2025-04-06T14:22:44Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "TechnitiumSoftware/DnsServer",
|
"name": "TechnitiumSoftware/DnsServer",
|
||||||
"version": "v13.5.0",
|
"version": "v13.5.0",
|
||||||
@ -594,6 +614,11 @@
|
|||||||
"version": "v1.10.0-rc.4",
|
"version": "v1.10.0-rc.4",
|
||||||
"date": "2025-03-31T09:02:22Z"
|
"date": "2025-03-31T09:02:22Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "mysql/mysql-server",
|
||||||
|
"version": "mysql-cluster-9.3.0",
|
||||||
|
"date": "2025-03-31T07:42:45Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "louislam/dockge",
|
"name": "louislam/dockge",
|
||||||
"version": "1.5.0",
|
"version": "1.5.0",
|
||||||
@ -729,11 +754,6 @@
|
|||||||
"version": "v2.5.307",
|
"version": "v2.5.307",
|
||||||
"date": "2025-03-24T01:33:31Z"
|
"date": "2025-03-24T01:33:31Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "moghtech/komodo",
|
|
||||||
"version": "v1.17.0",
|
|
||||||
"date": "2025-03-24T00:46:32Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "nicolargo/glances",
|
"name": "nicolargo/glances",
|
||||||
"version": "v4.3.1",
|
"version": "v4.3.1",
|
||||||
@ -789,11 +809,6 @@
|
|||||||
"version": "v2.20.0",
|
"version": "v2.20.0",
|
||||||
"date": "2025-03-17T22:44:56Z"
|
"date": "2025-03-17T22:44:56Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Kareadita/Kavita",
|
|
||||||
"version": "v0.8.5.11",
|
|
||||||
"date": "2025-03-17T19:25:25Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Sonarr/Sonarr",
|
"name": "Sonarr/Sonarr",
|
||||||
"version": "v4.0.14.2939",
|
"version": "v4.0.14.2939",
|
||||||
@ -880,7 +895,7 @@
|
|||||||
"date": "2025-03-05T21:41:29Z"
|
"date": "2025-03-05T21:41:29Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "snipe/snipe-it",
|
"name": "grokability/snipe-it",
|
||||||
"version": "v8.0.4",
|
"version": "v8.0.4",
|
||||||
"date": "2025-03-05T17:12:03Z"
|
"date": "2025-03-05T17:12:03Z"
|
||||||
},
|
},
|
||||||
@ -989,11 +1004,6 @@
|
|||||||
"version": "mariadb-11.7.2",
|
"version": "mariadb-11.7.2",
|
||||||
"date": "2025-02-13T04:13:46Z"
|
"date": "2025-02-13T04:13:46Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "WordPress/WordPress",
|
|
||||||
"version": "6.7.2",
|
|
||||||
"date": "2025-02-11T16:13:18Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "homebridge/homebridge",
|
"name": "homebridge/homebridge",
|
||||||
"version": "v1.9.0",
|
"version": "v1.9.0",
|
||||||
@ -1004,11 +1014,6 @@
|
|||||||
"version": "1.33.2",
|
"version": "1.33.2",
|
||||||
"date": "2025-02-09T17:54:59Z"
|
"date": "2025-02-09T17:54:59Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "blakeblackshear/frigate",
|
|
||||||
"version": "v0.15.0",
|
|
||||||
"date": "2025-02-08T18:45:30Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "apache/tika",
|
"name": "apache/tika",
|
||||||
"version": "2.9.3",
|
"version": "2.9.3",
|
||||||
@ -1084,11 +1089,6 @@
|
|||||||
"version": "v0.4.15",
|
"version": "v0.4.15",
|
||||||
"date": "2024-12-19T03:19:49Z"
|
"date": "2024-12-19T03:19:49Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "mysql/mysql-server",
|
|
||||||
"version": "mysql-cluster-7.6.33",
|
|
||||||
"date": "2024-12-16T11:55:50Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "ArchiveBox/ArchiveBox",
|
"name": "ArchiveBox/ArchiveBox",
|
||||||
"version": "v0.7.3",
|
"version": "v0.7.3",
|
||||||
|
@ -61,7 +61,7 @@ if [[ "$INSTALL_WGD" =~ ^[Yy]$ ]]; then
|
|||||||
msg_ok "Installed additional dependencies for WGDashboard"
|
msg_ok "Installed additional dependencies for WGDashboard"
|
||||||
msg_info "Installing WGDashboard"
|
msg_info "Installing WGDashboard"
|
||||||
git clone -q https://github.com/donaldzou/WGDashboard.git /etc/wgdashboard
|
git clone -q https://github.com/donaldzou/WGDashboard.git /etc/wgdashboard
|
||||||
cd /etc/wgdashboard/src || exit
|
cd /etc/wgdashboard/src
|
||||||
chmod u+x wgd.sh
|
chmod u+x wgd.sh
|
||||||
$STD ./wgd.sh install
|
$STD ./wgd.sh install
|
||||||
msg_ok "Installed WGDashboard"
|
msg_ok "Installed WGDashboard"
|
||||||
@ -79,7 +79,7 @@ depend() {
|
|||||||
|
|
||||||
start() {
|
start() {
|
||||||
ebegin "Starting WGDashboard"
|
ebegin "Starting WGDashboard"
|
||||||
cd /etc/wgdashboard/src/ || exit 1
|
cd /etc/wgdashboard/src/
|
||||||
./wgd.sh start &
|
./wgd.sh start &
|
||||||
eend $?
|
eend $?
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ tar xzf "${RELEASE}".tar.gz
|
|||||||
VER=$(curl -fsSL https://api.github.com/repos/linuxserver/Heimdall/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
VER=$(curl -fsSL https://api.github.com/repos/linuxserver/Heimdall/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
rm -rf "${RELEASE}".tar.gz
|
rm -rf "${RELEASE}".tar.gz
|
||||||
mv Heimdall-"${VER}" /opt/Heimdall
|
mv Heimdall-"${VER}" /opt/Heimdall
|
||||||
cd /opt/Heimdall || exit
|
cd /opt/Heimdall
|
||||||
cp .env.example .env
|
cp .env.example .env
|
||||||
$STD php artisan key:generate
|
$STD php artisan key:generate
|
||||||
msg_ok "Installed Heimdall Dashboard ${RELEASE}"
|
msg_ok "Installed Heimdall Dashboard ${RELEASE}"
|
||||||
|
@ -34,7 +34,7 @@ chmod +x /usr/bin/yt-dlp
|
|||||||
msg_ok "Installed Additional Tools"
|
msg_ok "Installed Additional Tools"
|
||||||
|
|
||||||
msg_info "Installing Meilisearch"
|
msg_info "Installing Meilisearch"
|
||||||
cd /tmp || exit
|
cd /tmp
|
||||||
curl -fsSL "https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb" -o "meilisearch.deb"
|
curl -fsSL "https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb" -o "meilisearch.deb"
|
||||||
$STD dpkg -i meilisearch.deb
|
$STD dpkg -i meilisearch.deb
|
||||||
curl -fsSL "https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml" -o "/etc/meilisearch.toml"
|
curl -fsSL "https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml" -o "/etc/meilisearch.toml"
|
||||||
@ -59,21 +59,21 @@ $STD npm install -g corepack@0.31.0
|
|||||||
msg_ok "Installed Node.js"
|
msg_ok "Installed Node.js"
|
||||||
|
|
||||||
msg_info "Installing karakeep"
|
msg_info "Installing karakeep"
|
||||||
cd /opt || exit
|
cd /opt
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/karakeep-app/karakeep/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/karakeep-app/karakeep/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
curl -fsSL "https://github.com/karakeep-app/karakeep/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
|
curl -fsSL "https://github.com/karakeep-app/karakeep/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
|
||||||
unzip -q "v${RELEASE}.zip"
|
unzip -q "v${RELEASE}.zip"
|
||||||
mv karakeep-"${RELEASE}" /opt/karakeep
|
mv karakeep-"${RELEASE}" /opt/karakeep
|
||||||
cd /opt/karakeep || exit
|
cd /opt/karakeep
|
||||||
corepack enable
|
corepack enable
|
||||||
export PUPPETEER_SKIP_DOWNLOAD="true"
|
export PUPPETEER_SKIP_DOWNLOAD="true"
|
||||||
export NEXT_TELEMETRY_DISABLED=1
|
export NEXT_TELEMETRY_DISABLED=1
|
||||||
export CI="true"
|
export CI="true"
|
||||||
cd /opt/karakeep/apps/web || exit
|
cd /opt/karakeep/apps/web
|
||||||
$STD pnpm install --frozen-lockfile
|
$STD pnpm install --frozen-lockfile
|
||||||
$STD pnpm exec next build --experimental-build-mode compile
|
$STD pnpm exec next build --experimental-build-mode compile
|
||||||
cp -r /opt/karakeep/apps/web/.next/standalone/apps/web/server.js /opt/karakeep/apps/web
|
cp -r /opt/karakeep/apps/web/.next/standalone/apps/web/server.js /opt/karakeep/apps/web
|
||||||
cd /opt/karakeep/apps/workers || exit
|
cd /opt/karakeep/apps/workers
|
||||||
$STD pnpm install --frozen-lockfile
|
$STD pnpm install --frozen-lockfile
|
||||||
|
|
||||||
export DATA_DIR=/opt/karakeep_data
|
export DATA_DIR=/opt/karakeep_data
|
||||||
@ -103,7 +103,7 @@ msg_ok "Installed karakeep"
|
|||||||
|
|
||||||
msg_info "Running Database Migration"
|
msg_info "Running Database Migration"
|
||||||
mkdir -p ${DATA_DIR}
|
mkdir -p ${DATA_DIR}
|
||||||
cd /opt/karakeep/packages/db || exit
|
cd /opt/karakeep/packages/db
|
||||||
$STD pnpm migrate
|
$STD pnpm migrate
|
||||||
msg_ok "Database Migration Completed"
|
msg_ok "Database Migration Completed"
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ RELEASE=$(curl -fsSL https://api.github.com/repos/kimai/kimai/releases/latest |
|
|||||||
curl -fsSL "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip")
|
curl -fsSL "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/kimai/kimai/archive/refs/tags/${RELEASE}.zip")
|
||||||
unzip -q "${RELEASE}".zip
|
unzip -q "${RELEASE}".zip
|
||||||
mv kimai-"${RELEASE}" /opt/kimai
|
mv kimai-"${RELEASE}" /opt/kimai
|
||||||
cd /opt/kimai || exit
|
cd /opt/kimai
|
||||||
echo "export COMPOSER_ALLOW_SUPERUSER=1" >>~/.bashrc
|
echo "export COMPOSER_ALLOW_SUPERUSER=1" >>~/.bashrc
|
||||||
source ~/.bashrc
|
source ~/.bashrc
|
||||||
$STD composer install --no-dev --optimize-autoloader --no-interaction
|
$STD composer install --no-dev --optimize-autoloader --no-interaction
|
||||||
|
@ -58,10 +58,10 @@ $STD apt-get install -y \
|
|||||||
tesseract-ocr \
|
tesseract-ocr \
|
||||||
tesseract-ocr-eng
|
tesseract-ocr-eng
|
||||||
|
|
||||||
cd /tmp || exit
|
cd /tmp
|
||||||
curl -fsSL "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10040/ghostscript-10.04.0.tar.gz" -o $(basename "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10040/ghostscript-10.04.0.tar.gz")
|
curl -fsSL "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10040/ghostscript-10.04.0.tar.gz" -o $(basename "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10040/ghostscript-10.04.0.tar.gz")
|
||||||
$STD tar -xzf ghostscript-10.04.0.tar.gz
|
$STD tar -xzf ghostscript-10.04.0.tar.gz
|
||||||
cd ghostscript-10.04.0 || exit
|
cd ghostscript-10.04.0
|
||||||
$STD ./configure
|
$STD ./configure
|
||||||
$STD make
|
$STD make
|
||||||
$STD sudo make install
|
$STD sudo make install
|
||||||
@ -69,7 +69,7 @@ msg_ok "Installed OCR Dependencies"
|
|||||||
|
|
||||||
msg_info "Installing JBIG2"
|
msg_info "Installing JBIG2"
|
||||||
$STD git clone https://github.com/ie13/jbig2enc /opt/jbig2enc
|
$STD git clone https://github.com/ie13/jbig2enc /opt/jbig2enc
|
||||||
cd /opt/jbig2enc || exit
|
cd /opt/jbig2enc
|
||||||
$STD bash ./autogen.sh
|
$STD bash ./autogen.sh
|
||||||
$STD bash ./configure
|
$STD bash ./configure
|
||||||
$STD make
|
$STD make
|
||||||
@ -79,12 +79,12 @@ msg_ok "Installed JBIG2"
|
|||||||
|
|
||||||
msg_info "Installing Paperless-ngx (Patience)"
|
msg_info "Installing Paperless-ngx (Patience)"
|
||||||
Paperlessngx=$(curl -fsSL "https://github.com/paperless-ngx/paperless-ngx/releases/latest" | grep "title>Release" | cut -d " " -f 5)
|
Paperlessngx=$(curl -fsSL "https://github.com/paperless-ngx/paperless-ngx/releases/latest" | grep "title>Release" | cut -d " " -f 5)
|
||||||
cd /opt || exit
|
cd /opt
|
||||||
$STD curl -fsSL "https://github.com/paperless-ngx/paperless-ngx/releases/download/$Paperlessngx/paperless-ngx-$Paperlessngx.tar.xz" -o "paperless-ngx-$Paperlessngx.tar.xz"
|
$STD curl -fsSL "https://github.com/paperless-ngx/paperless-ngx/releases/download/$Paperlessngx/paperless-ngx-$Paperlessngx.tar.xz" -o "paperless-ngx-$Paperlessngx.tar.xz"
|
||||||
$STD tar -xf "paperless-ngx-$Paperlessngx.tar.xz" -C /opt/
|
$STD tar -xf "paperless-ngx-$Paperlessngx.tar.xz" -C /opt/
|
||||||
mv paperless-ngx paperless
|
mv paperless-ngx paperless
|
||||||
rm "paperless-ngx-$Paperlessngx.tar.xz"
|
rm "paperless-ngx-$Paperlessngx.tar.xz"
|
||||||
cd /opt/paperless || exit
|
cd /opt/paperless
|
||||||
$STD pip install --upgrade pip
|
$STD pip install --upgrade pip
|
||||||
$STD pip install -r requirements.txt
|
$STD pip install -r requirements.txt
|
||||||
curl -fsSL "https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/paperless.conf.example" -o /opt/paperless/paperless.conf
|
curl -fsSL "https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/paperless.conf.example" -o /opt/paperless/paperless.conf
|
||||||
@ -121,7 +121,7 @@ sed -i -e "s|#PAPERLESS_DBNAME=paperless|PAPERLESS_DBNAME=$DB_NAME|" /opt/paperl
|
|||||||
sed -i -e "s|#PAPERLESS_DBUSER=paperless|PAPERLESS_DBUSER=$DB_USER|" /opt/paperless/paperless.conf
|
sed -i -e "s|#PAPERLESS_DBUSER=paperless|PAPERLESS_DBUSER=$DB_USER|" /opt/paperless/paperless.conf
|
||||||
sed -i -e "s|#PAPERLESS_DBPASS=paperless|PAPERLESS_DBPASS=$DB_PASS|" /opt/paperless/paperless.conf
|
sed -i -e "s|#PAPERLESS_DBPASS=paperless|PAPERLESS_DBPASS=$DB_PASS|" /opt/paperless/paperless.conf
|
||||||
sed -i -e "s|#PAPERLESS_SECRET_KEY=change-me|PAPERLESS_SECRET_KEY=$SECRET_KEY|" /opt/paperless/paperless.conf
|
sed -i -e "s|#PAPERLESS_SECRET_KEY=change-me|PAPERLESS_SECRET_KEY=$SECRET_KEY|" /opt/paperless/paperless.conf
|
||||||
cd /opt/paperless/src || exit
|
cd /opt/paperless/src
|
||||||
$STD python3 manage.py migrate
|
$STD python3 manage.py migrate
|
||||||
msg_ok "Set up PostgreSQL database"
|
msg_ok "Set up PostgreSQL database"
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ msg_info "Installing Paymenter"
|
|||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/paymenter/paymenter/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/paymenter/paymenter/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/')
|
||||||
echo "${RELEASE}" >/opt/"${APPLICATION}"_version.txt
|
echo "${RELEASE}" >/opt/"${APPLICATION}"_version.txt
|
||||||
mkdir -p /opt/paymenter
|
mkdir -p /opt/paymenter
|
||||||
cd /opt/paymenter || exit
|
cd /opt/paymenter
|
||||||
curl -fsSL "https://github.com/paymenter/paymenter/releases/download/${RELEASE}/paymenter.tar.gz" -o paymenter.tar.gz
|
curl -fsSL "https://github.com/paymenter/paymenter/releases/download/${RELEASE}/paymenter.tar.gz" -o paymenter.tar.gz
|
||||||
$STD tar -xzvf paymenter.tar.gz
|
$STD tar -xzvf paymenter.tar.gz
|
||||||
chmod -R 755 storage/* bootstrap/cache/
|
chmod -R 755 storage/* bootstrap/cache/
|
||||||
|
@ -55,7 +55,7 @@ msg_ok "Set up MariaDB"
|
|||||||
msg_info "Installing Pelican Panel"
|
msg_info "Installing Pelican Panel"
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/pelican-dev/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/pelican-dev/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
mkdir /opt/pelican-panel
|
mkdir /opt/pelican-panel
|
||||||
cd /opt/pelican-panel || exit
|
cd /opt/pelican-panel
|
||||||
curl -fsSL "https://github.com/pelican-dev/panel/releases/download/v${RELEASE}/panel.tar.gz" -o $(basename "https://github.com/pelican-dev/panel/releases/download/v${RELEASE}/panel.tar.gz")
|
curl -fsSL "https://github.com/pelican-dev/panel/releases/download/v${RELEASE}/panel.tar.gz" -o $(basename "https://github.com/pelican-dev/panel/releases/download/v${RELEASE}/panel.tar.gz")
|
||||||
tar -xzf "panel.tar.gz"
|
tar -xzf "panel.tar.gz"
|
||||||
$STD composer install --no-dev --optimize-autoloader --no-interaction
|
$STD composer install --no-dev --optimize-autoloader --no-interaction
|
||||||
|
@ -21,7 +21,7 @@ msg_info "Installing Prowlarr"
|
|||||||
temp_file="$(mktemp)"
|
temp_file="$(mktemp)"
|
||||||
mkdir -p /var/lib/prowlarr/
|
mkdir -p /var/lib/prowlarr/
|
||||||
chmod 775 /var/lib/prowlarr/
|
chmod 775 /var/lib/prowlarr/
|
||||||
cd /var/lib/prowlarr/ || exit
|
cd /var/lib/prowlarr/
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Prowlarr/Prowlarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/Prowlarr/Prowlarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
curl -fsSL "https://github.com/Prowlarr/Prowlarr/releases/download/v${RELEASE}/Prowlarr.master.${RELEASE}.linux-core-x64.tar.gz" -o "$temp_file"
|
curl -fsSL "https://github.com/Prowlarr/Prowlarr/releases/download/v${RELEASE}/Prowlarr.master.${RELEASE}.linux-core-x64.tar.gz" -o "$temp_file"
|
||||||
$STD tar -xvzf "$temp_file"
|
$STD tar -xvzf "$temp_file"
|
||||||
|
@ -60,7 +60,7 @@ read -p "Enter your Last Name: " NAME_LAST
|
|||||||
msg_info "Installing pterodactyl Panel"
|
msg_info "Installing pterodactyl Panel"
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/pterodactyl/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/pterodactyl/panel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
mkdir /opt/pterodactyl-panel
|
mkdir /opt/pterodactyl-panel
|
||||||
cd /opt/pterodactyl-panel || exit
|
cd /opt/pterodactyl-panel
|
||||||
curl -fsSL "https://github.com/pterodactyl/panel/releases/download/v${RELEASE}/panel.tar.gz" -o $(basename "https://github.com/pterodactyl/panel/releases/download/v${RELEASE}/panel.tar.gz")
|
curl -fsSL "https://github.com/pterodactyl/panel/releases/download/v${RELEASE}/panel.tar.gz" -o $(basename "https://github.com/pterodactyl/panel/releases/download/v${RELEASE}/panel.tar.gz")
|
||||||
tar -xzf "panel.tar.gz"
|
tar -xzf "panel.tar.gz"
|
||||||
cp .env.example .env
|
cp .env.example .env
|
||||||
|
@ -21,7 +21,7 @@ msg_info "Installing Radarr"
|
|||||||
temp_file="$(mktemp)"
|
temp_file="$(mktemp)"
|
||||||
mkdir -p /var/lib/radarr/
|
mkdir -p /var/lib/radarr/
|
||||||
chmod 775 /var/lib/radarr/
|
chmod 775 /var/lib/radarr/
|
||||||
cd /var/lib/radarr/ || exit
|
cd /var/lib/radarr/
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Radarr/Radarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/Radarr/Radarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
curl -fsSL "https://github.com/Radarr/Radarr/releases/download/v${RELEASE}/Radarr.master.${RELEASE}.linux-core-x64.tar.gz" -o "$temp_file"
|
curl -fsSL "https://github.com/Radarr/Radarr/releases/download/v${RELEASE}/Radarr.master.${RELEASE}.linux-core-x64.tar.gz" -o "$temp_file"
|
||||||
$STD tar -xvzf "$temp_file"
|
$STD tar -xvzf "$temp_file"
|
||||||
|
@ -14,7 +14,7 @@ network_check
|
|||||||
update_os
|
update_os
|
||||||
|
|
||||||
msg_info "Installing Zabbix"
|
msg_info "Installing Zabbix"
|
||||||
cd /tmp || exit
|
cd /tmp
|
||||||
curl -fsSL "$(curl -fsSL https://repo.zabbix.com/zabbix/ |
|
curl -fsSL "$(curl -fsSL https://repo.zabbix.com/zabbix/ |
|
||||||
grep -oP '(?<=href=")[0-9]+\.[0-9]+(?=/")' | sort -V | tail -n1 |
|
grep -oP '(?<=href=")[0-9]+\.[0-9]+(?=/")' | sort -V | tail -n1 |
|
||||||
xargs -I{} echo "https://repo.zabbix.com/zabbix/{}/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb")" \
|
xargs -I{} echo "https://repo.zabbix.com/zabbix/{}/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb")" \
|
||||||
|
@ -1333,7 +1333,7 @@ build_container() {
|
|||||||
$PW
|
$PW
|
||||||
"
|
"
|
||||||
# This executes create_lxc.sh and creates the container and .conf file
|
# This executes create_lxc.sh and creates the container and .conf file
|
||||||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/create_lxc.sh)" || exit $?
|
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/create_lxc.sh)" $?
|
||||||
|
|
||||||
LXC_CONFIG=/etc/pve/lxc/${CTID}.conf
|
LXC_CONFIG=/etc/pve/lxc/${CTID}.conf
|
||||||
if [ "$CT_TYPE" == "0" ]; then
|
if [ "$CT_TYPE" == "0" ]; then
|
||||||
@ -1395,7 +1395,7 @@ http://dl-cdn.alpinelinux.org/alpine/latest-stable/community
|
|||||||
EOF'
|
EOF'
|
||||||
pct exec "$CTID" -- ash -c "apk add bash >/dev/null"
|
pct exec "$CTID" -- ash -c "apk add bash >/dev/null"
|
||||||
fi
|
fi
|
||||||
lxc-attach -n "$CTID" -- bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/install/"$var_install".sh)" || exit $?
|
lxc-attach -n "$CTID" -- bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/install/"$var_install".sh)" $?
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ while [ -z "${CTID:+x}" ]; do
|
|||||||
CTID=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Containers on $NODE" --radiolist \
|
CTID=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Containers on $NODE" --radiolist \
|
||||||
"\nSelect a container to add NetBird to:\n" \
|
"\nSelect a container to add NetBird to:\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
|
|
||||||
LXC_STATUS=$(pct status "$CTID" | awk '{print $2}')
|
LXC_STATUS=$(pct status "$CTID" | awk '{print $2}')
|
||||||
@ -84,7 +84,7 @@ curl -fsSL "https://pkgs.netbird.io/debian/public.key" | gpg --dearmor >/usr/sha
|
|||||||
echo "deb [signed-by=/usr/share/keyrings/netbird-archive-keyring.gpg] https://pkgs.netbird.io/debian stable main" >/etc/apt/sources.list.d/netbird.list
|
echo "deb [signed-by=/usr/share/keyrings/netbird-archive-keyring.gpg] https://pkgs.netbird.io/debian stable main" >/etc/apt/sources.list.d/netbird.list
|
||||||
apt-get update &>/dev/null
|
apt-get update &>/dev/null
|
||||||
apt-get install -y netbird-ui &>/dev/null
|
apt-get install -y netbird-ui &>/dev/null
|
||||||
' || exit
|
'
|
||||||
msg "\e[1;32m ✔ Installed NetBird.\e[0m"
|
msg "\e[1;32m ✔ Installed NetBird.\e[0m"
|
||||||
sleep 2
|
sleep 2
|
||||||
msg "\e[1;31m Reboot ${CTID} LXC to apply the changes, then run netbird up in the LXC console\e[0m"
|
msg "\e[1;31m Reboot ${CTID} LXC to apply the changes, then run netbird up in the LXC console\e[0m"
|
||||||
|
@ -49,7 +49,7 @@ while [ -z "${CTID:+x}" ]; do
|
|||||||
CTID=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Containers on $NODE" --radiolist \
|
CTID=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Containers on $NODE" --radiolist \
|
||||||
"\nSelect a container to add Tailscale to:\n" \
|
"\nSelect a container to add Tailscale to:\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
|
|
||||||
CTID_CONFIG_PATH=/etc/pve/lxc/${CTID}.conf
|
CTID_CONFIG_PATH=/etc/pve/lxc/${CTID}.conf
|
||||||
@ -66,7 +66,7 @@ curl -fsSL https://pkgs.tailscale.com/stable/$ID/$VER.noarmor.gpg | tee /usr/sha
|
|||||||
echo "deb [signed-by=/usr/share/keyrings/tailscale-archive-keyring.gpg] https://pkgs.tailscale.com/stable/$ID $VER main" >/etc/apt/sources.list.d/tailscale.list
|
echo "deb [signed-by=/usr/share/keyrings/tailscale-archive-keyring.gpg] https://pkgs.tailscale.com/stable/$ID $VER main" >/etc/apt/sources.list.d/tailscale.list
|
||||||
apt-get update &>/dev/null
|
apt-get update &>/dev/null
|
||||||
apt-get install -y tailscale &>/dev/null
|
apt-get install -y tailscale &>/dev/null
|
||||||
' || exit
|
'
|
||||||
TAGS=$(awk -F': ' '/^tags:/ {print $2}' /etc/pve/lxc/${CTID}.conf)
|
TAGS=$(awk -F': ' '/^tags:/ {print $2}' /etc/pve/lxc/${CTID}.conf)
|
||||||
TAGS="${TAGS:+$TAGS; }tailscale"
|
TAGS="${TAGS:+$TAGS; }tailscale"
|
||||||
pct set "$CTID" -tags "${TAGS}"
|
pct set "$CTID" -tags "${TAGS}"
|
||||||
|
@ -58,7 +58,7 @@ fi
|
|||||||
header_info
|
header_info
|
||||||
echo "Loading..."
|
echo "Loading..."
|
||||||
pveam update >/dev/null 2>&1
|
pveam update >/dev/null 2>&1
|
||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "All Templates" --yesno "This will allow for the creation of one of the many Template LXC Containers. Proceed?" 10 68 || exit
|
whiptail --backtitle "Proxmox VE Helper Scripts" --title "All Templates" --yesno "This will allow for the creation of one of the many Template LXC Containers. Proceed?" 10 68
|
||||||
TEMPLATE_MENU=()
|
TEMPLATE_MENU=()
|
||||||
MSG_MAX_LENGTH=0
|
MSG_MAX_LENGTH=0
|
||||||
while read -r TAG ITEM; do
|
while read -r TAG ITEM; do
|
||||||
@ -66,7 +66,7 @@ while read -r TAG ITEM; do
|
|||||||
((${#ITEM} + OFFSET > MSG_MAX_LENGTH)) && MSG_MAX_LENGTH=${#ITEM}+OFFSET
|
((${#ITEM} + OFFSET > MSG_MAX_LENGTH)) && MSG_MAX_LENGTH=${#ITEM}+OFFSET
|
||||||
TEMPLATE_MENU+=("$ITEM" "$TAG " "OFF")
|
TEMPLATE_MENU+=("$ITEM" "$TAG " "OFF")
|
||||||
done < <(pveam available)
|
done < <(pveam available)
|
||||||
TEMPLATE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "All Template LXCs" --radiolist "\nSelect a Template LXC to create:\n" 16 $((MSG_MAX_LENGTH + 58)) 10 "${TEMPLATE_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"') || exit
|
TEMPLATE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "All Template LXCs" --radiolist "\nSelect a Template LXC to create:\n" 16 $((MSG_MAX_LENGTH + 58)) 10 "${TEMPLATE_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"')
|
||||||
[ -z "$TEMPLATE" ] && {
|
[ -z "$TEMPLATE" ] && {
|
||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "No Template LXC Selected" --msgbox "It appears that no Template LXC container was selected" 10 68
|
whiptail --backtitle "Proxmox VE Helper Scripts" --title "No Template LXC Selected" --msgbox "It appears that no Template LXC container was selected" 10 68
|
||||||
msg "Done"
|
msg "Done"
|
||||||
@ -142,11 +142,11 @@ function select_storage() {
|
|||||||
}
|
}
|
||||||
header_info
|
header_info
|
||||||
# Get template storage
|
# Get template storage
|
||||||
TEMPLATE_STORAGE=$(select_storage template) || exit
|
TEMPLATE_STORAGE=$(select_storage template)
|
||||||
info "Using '$TEMPLATE_STORAGE' for template storage."
|
info "Using '$TEMPLATE_STORAGE' for template storage."
|
||||||
|
|
||||||
# Get container storage
|
# Get container storage
|
||||||
CONTAINER_STORAGE=$(select_storage container) || exit
|
CONTAINER_STORAGE=$(select_storage container)
|
||||||
info "Using '$CONTAINER_STORAGE' for container storage."
|
info "Using '$CONTAINER_STORAGE' for container storage."
|
||||||
|
|
||||||
# Download template
|
# Download template
|
||||||
|
@ -38,7 +38,7 @@ msg_ok() {
|
|||||||
|
|
||||||
header_info
|
header_info
|
||||||
|
|
||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Webmin Installer" --yesno "This Will Install Webmin on this LXC Container. Proceed?" 10 58 || exit
|
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Webmin Installer" --yesno "This Will Install Webmin on this LXC Container. Proceed?" 10 58
|
||||||
|
|
||||||
msg_info "Installing Prerequisites"
|
msg_info "Installing Prerequisites"
|
||||||
apt update &>/dev/null
|
apt update &>/dev/null
|
||||||
|
@ -74,13 +74,13 @@ while [ -z "${CTID_FROM:+x}" ]; do
|
|||||||
CTID_FROM=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
CTID_FROM=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
||||||
"\nWhich HA LXC would you like to copy FROM?\n" \
|
"\nWhich HA LXC would you like to copy FROM?\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
while [ -z "${CTID_TO:+x}" ]; do
|
while [ -z "${CTID_TO:+x}" ]; do
|
||||||
CTID_TO=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
CTID_TO=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
||||||
"\nWhich HA LXC would you like to copy TO?\n" \
|
"\nWhich HA LXC would you like to copy TO?\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
for i in ${!CTID_MENU[@]}; do
|
for i in ${!CTID_MENU[@]}; do
|
||||||
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
|
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
|
||||||
@ -91,7 +91,7 @@ done
|
|||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
|
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
|
||||||
"Are you sure you want to copy data between the following LXCs?
|
"Are you sure you want to copy data between the following LXCs?
|
||||||
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
||||||
Version: 2022.01.23" 13 50 || exit
|
Version: 2022.01.23" 13 50
|
||||||
info "Home Assistant Data from '$CTID_FROM' to '$CTID_TO'"
|
info "Home Assistant Data from '$CTID_FROM' to '$CTID_TO'"
|
||||||
if [ $(pct status "$CTID_TO" | sed 's/.* //') == 'running' ]; then
|
if [ $(pct status "$CTID_TO" | sed 's/.* //') == 'running' ]; then
|
||||||
msg "Stopping '$CTID_TO'..."
|
msg "Stopping '$CTID_TO'..."
|
||||||
|
@ -72,13 +72,13 @@ while [ -z "${CTID_FROM:+x}" ]; do
|
|||||||
CTID_FROM=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
CTID_FROM=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
||||||
"\nWhich HA Container LXC would you like to copy FROM?\n" \
|
"\nWhich HA Container LXC would you like to copy FROM?\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
while [ -z "${CTID_TO:+x}" ]; do
|
while [ -z "${CTID_TO:+x}" ]; do
|
||||||
CTID_TO=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
CTID_TO=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
||||||
"\nWhich HA Core LXC would you like to copy TO?\n" \
|
"\nWhich HA Core LXC would you like to copy TO?\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
for i in ${!CTID_MENU[@]}; do
|
for i in ${!CTID_MENU[@]}; do
|
||||||
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
|
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
|
||||||
@ -89,7 +89,7 @@ done
|
|||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
|
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
|
||||||
"Are you sure you want to copy data between the following LXCs?
|
"Are you sure you want to copy data between the following LXCs?
|
||||||
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
||||||
Version: 2022.10.02" 13 50 || exit
|
Version: 2022.10.02" 13 50
|
||||||
info "Home Assistant Data from '$CTID_FROM' to '$CTID_TO'"
|
info "Home Assistant Data from '$CTID_FROM' to '$CTID_TO'"
|
||||||
if [ $(pct status $CTID_TO | sed 's/.* //') == 'running' ]; then
|
if [ $(pct status $CTID_TO | sed 's/.* //') == 'running' ]; then
|
||||||
msg "Stopping '$CTID_TO'..."
|
msg "Stopping '$CTID_TO'..."
|
||||||
|
@ -74,13 +74,13 @@ while [ -z "${CTID_FROM:+x}" ]; do
|
|||||||
CTID_FROM=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
CTID_FROM=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
||||||
"\nWhich HA LXC would you like to copy FROM?\n" \
|
"\nWhich HA LXC would you like to copy FROM?\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
while [ -z "${CTID_TO:+x}" ]; do
|
while [ -z "${CTID_TO:+x}" ]; do
|
||||||
CTID_TO=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
CTID_TO=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
||||||
"\nWhich HA Podman LXC would you like to copy TO?\n" \
|
"\nWhich HA Podman LXC would you like to copy TO?\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
for i in ${!CTID_MENU[@]}; do
|
for i in ${!CTID_MENU[@]}; do
|
||||||
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
|
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
|
||||||
@ -91,7 +91,7 @@ done
|
|||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
|
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
|
||||||
"Are you sure you want to copy data between the following LXCs?
|
"Are you sure you want to copy data between the following LXCs?
|
||||||
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
||||||
Version: 2022.02.12" 13 50 || exit
|
Version: 2022.02.12" 13 50
|
||||||
info "Home Assistant Data from '$CTID_FROM' to '$CTID_TO'"
|
info "Home Assistant Data from '$CTID_FROM' to '$CTID_TO'"
|
||||||
if [ $(pct status $CTID_TO | sed 's/.* //') == 'running' ]; then
|
if [ $(pct status $CTID_TO | sed 's/.* //') == 'running' ]; then
|
||||||
msg "Stopping '$CTID_TO'..."
|
msg "Stopping '$CTID_TO'..."
|
||||||
|
@ -72,13 +72,13 @@ while [ -z "${CTID_FROM:+x}" ]; do
|
|||||||
CTID_FROM=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
CTID_FROM=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
||||||
"\nWhich HA Core LXC would you like to copy FROM?\n" \
|
"\nWhich HA Core LXC would you like to copy FROM?\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
while [ -z "${CTID_TO:+x}" ]; do
|
while [ -z "${CTID_TO:+x}" ]; do
|
||||||
CTID_TO=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
CTID_TO=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
||||||
"\nWhich HA Container LXC would you like to copy TO?\n" \
|
"\nWhich HA Container LXC would you like to copy TO?\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
for i in ${!CTID_MENU[@]}; do
|
for i in ${!CTID_MENU[@]}; do
|
||||||
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
|
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
|
||||||
@ -89,7 +89,7 @@ done
|
|||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
|
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
|
||||||
"Are you sure you want to copy data between the following LXCs?
|
"Are you sure you want to copy data between the following LXCs?
|
||||||
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
||||||
Version: 2022.10.02" 13 50 || exit
|
Version: 2022.10.02" 13 50
|
||||||
info "Home Assistant Data from '$CTID_FROM' to '$CTID_TO'"
|
info "Home Assistant Data from '$CTID_FROM' to '$CTID_TO'"
|
||||||
if [ $(pct status $CTID_TO | sed 's/.* //') == 'running' ]; then
|
if [ $(pct status $CTID_TO | sed 's/.* //') == 'running' ]; then
|
||||||
msg "Stopping '$CTID_TO'..."
|
msg "Stopping '$CTID_TO'..."
|
||||||
|
@ -67,13 +67,13 @@ while [ -z "${CTID_FROM:+x}" ]; do
|
|||||||
CTID_FROM=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
CTID_FROM=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
||||||
"\nWhich HA Core LXC would you like to copy FROM?\n" \
|
"\nWhich HA Core LXC would you like to copy FROM?\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
while [ -z "${CTID_TO:+x}" ]; do
|
while [ -z "${CTID_TO:+x}" ]; do
|
||||||
CTID_TO=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
CTID_TO=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
||||||
"\nWhich HA Core LXC would you like to copy TO?\n" \
|
"\nWhich HA Core LXC would you like to copy TO?\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
for i in ${!CTID_MENU[@]}; do
|
for i in ${!CTID_MENU[@]}; do
|
||||||
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
|
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
|
||||||
@ -84,7 +84,7 @@ done
|
|||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
|
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
|
||||||
"Are you sure you want to copy data between the following LXCs?
|
"Are you sure you want to copy data between the following LXCs?
|
||||||
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
||||||
Version: 2022.10.03" 13 50 || exit
|
Version: 2022.10.03" 13 50
|
||||||
info "Home Assistant Data from '$CTID_FROM' to '$CTID_TO'"
|
info "Home Assistant Data from '$CTID_FROM' to '$CTID_TO'"
|
||||||
if [ $(pct status $CTID_FROM | sed 's/.* //') == 'running' ]; then
|
if [ $(pct status $CTID_FROM | sed 's/.* //') == 'running' ]; then
|
||||||
msg "Stopping '$CTID_FROM'..."
|
msg "Stopping '$CTID_FROM'..."
|
||||||
|
@ -74,13 +74,13 @@ while [ -z "${CTID_FROM:+x}" ]; do
|
|||||||
CTID_FROM=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
CTID_FROM=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
||||||
"\nWhich Plex Media Server LXC would you like to copy FROM?\n" \
|
"\nWhich Plex Media Server LXC would you like to copy FROM?\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
while [ -z "${CTID_TO:+x}" ]; do
|
while [ -z "${CTID_TO:+x}" ]; do
|
||||||
CTID_TO=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
CTID_TO=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
||||||
"\nWhich Plex Media Server LXC would you like to copy TO?\n" \
|
"\nWhich Plex Media Server LXC would you like to copy TO?\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
for i in ${!CTID_MENU[@]}; do
|
for i in ${!CTID_MENU[@]}; do
|
||||||
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
|
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
|
||||||
@ -91,7 +91,7 @@ done
|
|||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
|
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
|
||||||
"Are you sure you want to copy data between the following LXCs?
|
"Are you sure you want to copy data between the following LXCs?
|
||||||
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
||||||
Version: 2022.01.24" 13 50 || exit
|
Version: 2022.01.24" 13 50
|
||||||
info "Plex Media Server Data from '$CTID_FROM' to '$CTID_TO'"
|
info "Plex Media Server Data from '$CTID_FROM' to '$CTID_TO'"
|
||||||
if [ $(pct status $CTID_TO | sed 's/.* //') == 'running' ]; then
|
if [ $(pct status $CTID_TO | sed 's/.* //') == 'running' ]; then
|
||||||
msg "Stopping '$CTID_TO'..."
|
msg "Stopping '$CTID_TO'..."
|
||||||
|
@ -74,13 +74,13 @@ while [ -z "${CTID_FROM:+x}" ]; do
|
|||||||
CTID_FROM=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
CTID_FROM=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
||||||
"\nWhich HA Podman LXC would you like to copy FROM?\n" \
|
"\nWhich HA Podman LXC would you like to copy FROM?\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
while [ -z "${CTID_TO:+x}" ]; do
|
while [ -z "${CTID_TO:+x}" ]; do
|
||||||
CTID_TO=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
CTID_TO=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
||||||
"\nWhich HA LXC would you like to copy TO?\n" \
|
"\nWhich HA LXC would you like to copy TO?\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
for i in ${!CTID_MENU[@]}; do
|
for i in ${!CTID_MENU[@]}; do
|
||||||
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
|
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
|
||||||
@ -91,7 +91,7 @@ done
|
|||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
|
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
|
||||||
"Are you sure you want to copy data between the following LXCs?
|
"Are you sure you want to copy data between the following LXCs?
|
||||||
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
||||||
Version: 2022.03.31" 13 50 || exit
|
Version: 2022.03.31" 13 50
|
||||||
info "Home Assistant Data from '$CTID_FROM' to '$CTID_TO'"
|
info "Home Assistant Data from '$CTID_FROM' to '$CTID_TO'"
|
||||||
if [ $(pct status $CTID_TO | sed 's/.* //') == 'running' ]; then
|
if [ $(pct status $CTID_TO | sed 's/.* //') == 'running' ]; then
|
||||||
msg "Stopping '$CTID_TO'..."
|
msg "Stopping '$CTID_TO'..."
|
||||||
|
@ -74,13 +74,13 @@ while [ -z "${CTID_FROM:+x}" ]; do
|
|||||||
CTID_FROM=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
CTID_FROM=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
||||||
"\nWhich Zigbee2MQTT LXC would you like to copy FROM?\n" \
|
"\nWhich Zigbee2MQTT LXC would you like to copy FROM?\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
while [ -z "${CTID_TO:+x}" ]; do
|
while [ -z "${CTID_TO:+x}" ]; do
|
||||||
CTID_TO=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
CTID_TO=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
||||||
"\nWhich Zigbee2MQTT LXC would you like to copy TO?\n" \
|
"\nWhich Zigbee2MQTT LXC would you like to copy TO?\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
for i in ${!CTID_MENU[@]}; do
|
for i in ${!CTID_MENU[@]}; do
|
||||||
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
|
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
|
||||||
@ -91,7 +91,7 @@ done
|
|||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
|
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
|
||||||
"Are you sure you want to copy data between the following LXCs?
|
"Are you sure you want to copy data between the following LXCs?
|
||||||
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
||||||
Version: 2022.01.23" 13 50 || exit
|
Version: 2022.01.23" 13 50
|
||||||
info "Zigbee2MQTT Data from '$CTID_FROM' to '$CTID_TO'"
|
info "Zigbee2MQTT Data from '$CTID_FROM' to '$CTID_TO'"
|
||||||
if [ $(pct status $CTID_TO | sed 's/.* //') == 'running' ]; then
|
if [ $(pct status $CTID_TO | sed 's/.* //') == 'running' ]; then
|
||||||
msg "Stopping '$CTID_TO'..."
|
msg "Stopping '$CTID_TO'..."
|
||||||
|
@ -75,13 +75,13 @@ while [ -z "${CTID_FROM:+x}" ]; do
|
|||||||
CTID_FROM=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
CTID_FROM=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
||||||
"\nWhich Zwavejs2MQTT LXC would you like to copy FROM?\n" \
|
"\nWhich Zwavejs2MQTT LXC would you like to copy FROM?\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
while [ -z "${CTID_TO:+x}" ]; do
|
while [ -z "${CTID_TO:+x}" ]; do
|
||||||
CTID_TO=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
CTID_TO=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "$TITLE" --radiolist \
|
||||||
"\nWhich Z-wave JS UI LXC would you like to copy TO?\n" \
|
"\nWhich Z-wave JS UI LXC would you like to copy TO?\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
for i in ${!CTID_MENU[@]}; do
|
for i in ${!CTID_MENU[@]}; do
|
||||||
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
|
[ "${CTID_MENU[$i]}" == "$CTID_FROM" ] &&
|
||||||
@ -92,7 +92,7 @@ done
|
|||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
|
whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "$TITLE" --yesno \
|
||||||
"Are you sure you want to copy data between the following LXCs?
|
"Are you sure you want to copy data between the following LXCs?
|
||||||
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
$CTID_FROM (${CTID_FROM_HOSTNAME}) -> $CTID_TO (${CTID_TO_HOSTNAME})
|
||||||
Version: 2022.09.21" 13 50 || exit
|
Version: 2022.09.21" 13 50
|
||||||
info "Zwavejs2MQTT Data from '$CTID_FROM' to '$CTID_TO'"
|
info "Zwavejs2MQTT Data from '$CTID_FROM' to '$CTID_TO'"
|
||||||
if [ $(pct status "$CTID_TO" | sed 's/.* //') == 'running' ]; then
|
if [ $(pct status "$CTID_TO" | sed 's/.* //') == 'running' ]; then
|
||||||
msg "Stopping '$CTID_TO'..."
|
msg "Stopping '$CTID_TO'..."
|
||||||
|
@ -23,7 +23,7 @@ GN=$(echo "\033[1;92m")
|
|||||||
CL=$(echo "\033[m")
|
CL=$(echo "\033[m")
|
||||||
header_info
|
header_info
|
||||||
echo "Loading..."
|
echo "Loading..."
|
||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Proxmox VE LXC Updater" --yesno "This Will Clean logs, cache and update apt lists on selected LXC Containers. Proceed?" 10 58 || exit
|
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Proxmox VE LXC Updater" --yesno "This Will Clean logs, cache and update apt lists on selected LXC Containers. Proceed?" 10 58
|
||||||
NODE=$(hostname)
|
NODE=$(hostname)
|
||||||
EXCLUDE_MENU=()
|
EXCLUDE_MENU=()
|
||||||
MSG_MAX_LENGTH=0
|
MSG_MAX_LENGTH=0
|
||||||
@ -33,7 +33,7 @@ while read -r TAG ITEM; do
|
|||||||
EXCLUDE_MENU+=("$TAG" "$ITEM " "OFF")
|
EXCLUDE_MENU+=("$TAG" "$ITEM " "OFF")
|
||||||
done < <(pct list | awk 'NR>1')
|
done < <(pct list | awk 'NR>1')
|
||||||
excluded_containers=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Containers on $NODE" --checklist "\nSelect containers to skip from cleaning:\n" \
|
excluded_containers=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Containers on $NODE" --checklist "\nSelect containers to skip from cleaning:\n" \
|
||||||
16 $((MSG_MAX_LENGTH + 23)) 6 "${EXCLUDE_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"') || exit
|
16 $((MSG_MAX_LENGTH + 23)) 6 "${EXCLUDE_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"')
|
||||||
|
|
||||||
function clean_container() {
|
function clean_container() {
|
||||||
container=$1
|
container=$1
|
||||||
|
@ -74,7 +74,7 @@ while [ -z "${CTID:+x}" ]; do
|
|||||||
CTID=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Containers on $NODE" --radiolist \
|
CTID=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Containers on $NODE" --radiolist \
|
||||||
"\nSelect a container to add support:\n" \
|
"\nSelect a container to add support:\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${CTID_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
|
|
||||||
# Add autodev settings
|
# Add autodev settings
|
||||||
|
@ -34,7 +34,7 @@ if [ "$ROOT_FS" != "ext4" ]; then
|
|||||||
fi
|
fi
|
||||||
whiptail --backtitle "Proxmox VE Helper Scripts" \
|
whiptail --backtitle "Proxmox VE Helper Scripts" \
|
||||||
--title "Proxmox VE LXC Filesystem Trim" \
|
--title "Proxmox VE LXC Filesystem Trim" \
|
||||||
--yesno "The LXC containers will undergo the fstrim command. Proceed?" 10 58 || exit
|
--yesno "The LXC containers will undergo the fstrim command. Proceed?" 10 58
|
||||||
|
|
||||||
NODE=$(hostname)
|
NODE=$(hostname)
|
||||||
EXCLUDE_MENU=()
|
EXCLUDE_MENU=()
|
||||||
|
@ -49,7 +49,7 @@ if ! pveversion | grep -Eq "pve-manager/8\.[0-4](\.[0-9]+)*"; then
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Add Intel HW Acceleration" --yesno "This Will Add Intel HW Acceleration to an existing LXC Container. Proceed?" 8 72 || exit
|
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Add Intel HW Acceleration" --yesno "This Will Add Intel HW Acceleration to an existing LXC Container. Proceed?" 8 72
|
||||||
NODE=$(hostname)
|
NODE=$(hostname)
|
||||||
PREV_MENU=()
|
PREV_MENU=()
|
||||||
MSG_MAX_LENGTH=0
|
MSG_MAX_LENGTH=0
|
||||||
@ -66,7 +66,7 @@ while read -r TAG ITEM; do
|
|||||||
PREV_MENU+=("$TAG" "$ITEM " "OFF")
|
PREV_MENU+=("$TAG" "$ITEM " "OFF")
|
||||||
done < <(echo "$privileged_containers")
|
done < <(echo "$privileged_containers")
|
||||||
|
|
||||||
privileged_container=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Privileged Containers on $NODE" --checklist "\nSelect a Container To Add Intel HW Acceleration:\n" 16 $((MSG_MAX_LENGTH + 23)) 6 "${PREV_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"') || exit
|
privileged_container=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Privileged Containers on $NODE" --checklist "\nSelect a Container To Add Intel HW Acceleration:\n" 16 $((MSG_MAX_LENGTH + 23)) 6 "${PREV_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"')
|
||||||
header_info
|
header_info
|
||||||
read -r -p "Verbose mode? <y/N> " prompt
|
read -r -p "Verbose mode? <y/N> " prompt
|
||||||
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
||||||
|
@ -37,7 +37,7 @@ function msg_ok() {
|
|||||||
echo -e "${BFR} ${CM} ${GN}${msg}${CL}"
|
echo -e "${BFR} ${CM} ${GN}${msg}${CL}"
|
||||||
}
|
}
|
||||||
|
|
||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Proxmox VE Kernel Pin" --yesno "This will Pin/Unpin Kernel Images, Proceed?" 10 68 || exit
|
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Proxmox VE Kernel Pin" --yesno "This will Pin/Unpin Kernel Images, Proceed?" 10 68
|
||||||
|
|
||||||
KERNEL_MENU=()
|
KERNEL_MENU=()
|
||||||
MSG_MAX_LENGTH=0
|
MSG_MAX_LENGTH=0
|
||||||
@ -47,7 +47,7 @@ while read -r TAG ITEM; do
|
|||||||
KERNEL_MENU+=("$TAG" "$ITEM " "OFF")
|
KERNEL_MENU+=("$TAG" "$ITEM " "OFF")
|
||||||
done < <(echo "$available_kernels")
|
done < <(echo "$available_kernels")
|
||||||
|
|
||||||
pin_kernel=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Current Kernel $current_kernel" --radiolist "\nSelect Kernel to pin:\nCancel to Unpin any Kernel" 16 $((MSG_MAX_LENGTH + 58)) 6 "${KERNEL_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"') || exit
|
pin_kernel=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Current Kernel $current_kernel" --radiolist "\nSelect Kernel to pin:\nCancel to Unpin any Kernel" 16 $((MSG_MAX_LENGTH + 58)) 6 "${KERNEL_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"')
|
||||||
[ -z "$pin_kernel" ] && {
|
[ -z "$pin_kernel" ] && {
|
||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "No Kernel Selected" --msgbox "It appears that no Kernel was selected\nUnpinning any pinned Kernel" 10 68
|
whiptail --backtitle "Proxmox VE Helper Scripts" --title "No Kernel Selected" --msgbox "It appears that no Kernel was selected\nUnpinning any pinned Kernel" 10 68
|
||||||
msg_info "Unpinning any Kernel"
|
msg_info "Unpinning any Kernel"
|
||||||
@ -59,7 +59,7 @@ pin_kernel=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Current K
|
|||||||
echo -e "${RD} REBOOT${CL}"
|
echo -e "${RD} REBOOT${CL}"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Proxmox VE Kernel Pin" --yesno "Would you like to pin the $pin_kernel Kernel?" 10 68 || exit
|
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Proxmox VE Kernel Pin" --yesno "Would you like to pin the $pin_kernel Kernel?" 10 68
|
||||||
|
|
||||||
msg_info "Pinning $pin_kernel"
|
msg_info "Pinning $pin_kernel"
|
||||||
proxmox-boot-tool kernel pin $pin_kernel &>/dev/null
|
proxmox-boot-tool kernel pin $pin_kernel &>/dev/null
|
||||||
|
@ -40,7 +40,7 @@ CM="${TAB}✔️${TAB}${CL}"
|
|||||||
|
|
||||||
header_info
|
header_info
|
||||||
echo "Loading..."
|
echo "Loading..."
|
||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Proxmox VE LXC Deletion" --yesno "This will delete LXC containers. Proceed?" 10 58 || exit
|
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Proxmox VE LXC Deletion" --yesno "This will delete LXC containers. Proceed?" 10 58
|
||||||
|
|
||||||
NODE=$(hostname)
|
NODE=$(hostname)
|
||||||
containers=$(pct list | tail -n +2 | awk '{print $0 " " $4}')
|
containers=$(pct list | tail -n +2 | awk '{print $0 " " $4}')
|
||||||
|
@ -61,7 +61,7 @@ intel() {
|
|||||||
MICROCODE_MENU+=("$TAG" "$ITEM " "OFF")
|
MICROCODE_MENU+=("$TAG" "$ITEM " "OFF")
|
||||||
done < <(echo "$intel_microcode")
|
done < <(echo "$intel_microcode")
|
||||||
|
|
||||||
microcode=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Current Microcode revision:${current_microcode}" --radiolist "\nSelect a microcode package to install:\n" 16 $((MSG_MAX_LENGTH + 58)) 6 "${MICROCODE_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"') || exit
|
microcode=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Current Microcode revision:${current_microcode}" --radiolist "\nSelect a microcode package to install:\n" 16 $((MSG_MAX_LENGTH + 58)) 6 "${MICROCODE_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"')
|
||||||
|
|
||||||
[ -z "$microcode" ] && {
|
[ -z "$microcode" ] && {
|
||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "No Microcode Selected" --msgbox "It appears that no microcode packages were selected" 10 68
|
whiptail --backtitle "Proxmox VE Helper Scripts" --title "No Microcode Selected" --msgbox "It appears that no microcode packages were selected" 10 68
|
||||||
@ -105,7 +105,7 @@ amd() {
|
|||||||
MICROCODE_MENU+=("$TAG" "$ITEM " "OFF")
|
MICROCODE_MENU+=("$TAG" "$ITEM " "OFF")
|
||||||
done < <(echo "$amd_microcode")
|
done < <(echo "$amd_microcode")
|
||||||
|
|
||||||
microcode=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Current Microcode revision:${current_microcode}" --radiolist "\nSelect a microcode package to install:\n" 16 $((MSG_MAX_LENGTH + 58)) 6 "${MICROCODE_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"') || exit
|
microcode=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Current Microcode revision:${current_microcode}" --radiolist "\nSelect a microcode package to install:\n" 16 $((MSG_MAX_LENGTH + 58)) 6 "${MICROCODE_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"')
|
||||||
|
|
||||||
[ -z "$microcode" ] && {
|
[ -z "$microcode" ] && {
|
||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "No Microcode Selected" --msgbox "It appears that no microcode packages were selected" 10 68
|
whiptail --backtitle "Proxmox VE Helper Scripts" --title "No Microcode Selected" --msgbox "It appears that no microcode packages were selected" 10 68
|
||||||
@ -135,7 +135,7 @@ if ! command -v pveversion >/dev/null 2>&1; then
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Proxmox VE Processor Microcode" --yesno "This will check for CPU microcode packages with the option to install. Proceed?" 10 58 || exit
|
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Proxmox VE Processor Microcode" --yesno "This will check for CPU microcode packages with the option to install. Proceed?" 10 58
|
||||||
|
|
||||||
msg_info "Checking CPU Vendor"
|
msg_info "Checking CPU Vendor"
|
||||||
cpu=$(lscpu | grep -oP 'Vendor ID:\s*\K\S+' | head -n 1)
|
cpu=$(lscpu | grep -oP 'Vendor ID:\s*\K\S+' | head -n 1)
|
||||||
|
@ -78,7 +78,7 @@ intel() {
|
|||||||
microcode=$(whiptail --backtitle "Proxmox Backup Server Helper Scripts" \
|
microcode=$(whiptail --backtitle "Proxmox Backup Server Helper Scripts" \
|
||||||
--title "Current Microcode Revision: ${current_microcode}" \
|
--title "Current Microcode Revision: ${current_microcode}" \
|
||||||
--radiolist "\nSelect a microcode package to install:\n" \
|
--radiolist "\nSelect a microcode package to install:\n" \
|
||||||
16 $((MSG_MAX_LENGTH + 58)) 6 "${MICROCODE_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"') || exit
|
16 $((MSG_MAX_LENGTH + 58)) 6 "${MICROCODE_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"')
|
||||||
|
|
||||||
[ -z "$microcode" ] && {
|
[ -z "$microcode" ] && {
|
||||||
whiptail --backtitle "Proxmox Backup Server Helper Scripts" --title "No Microcode Selected" --msgbox "No microcode package was selected." 10 68
|
whiptail --backtitle "Proxmox Backup Server Helper Scripts" --title "No Microcode Selected" --msgbox "No microcode package was selected." 10 68
|
||||||
@ -125,7 +125,7 @@ amd() {
|
|||||||
microcode=$(whiptail --backtitle "Proxmox Backup Server Helper Scripts" \
|
microcode=$(whiptail --backtitle "Proxmox Backup Server Helper Scripts" \
|
||||||
--title "Current Microcode Revision: ${current_microcode}" \
|
--title "Current Microcode Revision: ${current_microcode}" \
|
||||||
--radiolist "\nSelect a microcode package to install:\n" \
|
--radiolist "\nSelect a microcode package to install:\n" \
|
||||||
16 $((MSG_MAX_LENGTH + 58)) 6 "${MICROCODE_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"') || exit
|
16 $((MSG_MAX_LENGTH + 58)) 6 "${MICROCODE_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"')
|
||||||
|
|
||||||
[ -z "$microcode" ] && {
|
[ -z "$microcode" ] && {
|
||||||
whiptail --backtitle "Proxmox Backup Server Helper Scripts" --title "No Microcode Selected" --msgbox "No microcode package was selected." 10 68
|
whiptail --backtitle "Proxmox Backup Server Helper Scripts" --title "No Microcode Selected" --msgbox "No microcode package was selected." 10 68
|
||||||
@ -158,7 +158,7 @@ fi
|
|||||||
|
|
||||||
whiptail --backtitle "Proxmox Backup Server Helper Scripts" \
|
whiptail --backtitle "Proxmox Backup Server Helper Scripts" \
|
||||||
--title "Proxmox Backup Server Processor Microcode" \
|
--title "Proxmox Backup Server Processor Microcode" \
|
||||||
--yesno "This script searches for CPU microcode packages and offers the option to install them.\nProceed?" 10 68 || exit
|
--yesno "This script searches for CPU microcode packages and offers the option to install them.\nProceed?" 10 68
|
||||||
|
|
||||||
msg_info "Checking CPU vendor"
|
msg_info "Checking CPU vendor"
|
||||||
cpu=$(lscpu | grep -oP 'Vendor ID:\s*\K\S+' | head -n 1)
|
cpu=$(lscpu | grep -oP 'Vendor ID:\s*\K\S+' | head -n 1)
|
||||||
|
@ -15,7 +15,7 @@ header_info() {
|
|||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
header_info
|
header_info
|
||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "CPU Scaling Governors" --yesno "View/Change CPU Scaling Governors. Proceed?" 10 58 || exit
|
whiptail --backtitle "Proxmox VE Helper Scripts" --title "CPU Scaling Governors" --yesno "View/Change CPU Scaling Governors. Proceed?" 10 58
|
||||||
current_governor=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor)
|
current_governor=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor)
|
||||||
GOVERNORS_MENU=()
|
GOVERNORS_MENU=()
|
||||||
MSG_MAX_LENGTH=0
|
MSG_MAX_LENGTH=0
|
||||||
@ -24,7 +24,7 @@ while read -r TAG ITEM; do
|
|||||||
((${#ITEM} + OFFSET > MSG_MAX_LENGTH)) && MSG_MAX_LENGTH=${#ITEM}+OFFSET
|
((${#ITEM} + OFFSET > MSG_MAX_LENGTH)) && MSG_MAX_LENGTH=${#ITEM}+OFFSET
|
||||||
GOVERNORS_MENU+=("$TAG" "$ITEM " "OFF")
|
GOVERNORS_MENU+=("$TAG" "$ITEM " "OFF")
|
||||||
done < <(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors | tr ' ' '\n' | grep -v "$current_governor")
|
done < <(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors | tr ' ' '\n' | grep -v "$current_governor")
|
||||||
scaling_governor=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Current CPU Scaling Governor is set to $current_governor" --checklist "\nSelect the Scaling Governor to use:\n" 16 $((MSG_MAX_LENGTH + 58)) 6 "${GOVERNORS_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"') || exit
|
scaling_governor=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Current CPU Scaling Governor is set to $current_governor" --checklist "\nSelect the Scaling Governor to use:\n" 16 $((MSG_MAX_LENGTH + 58)) 6 "${GOVERNORS_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"')
|
||||||
[ -z "$scaling_governor" ] && {
|
[ -z "$scaling_governor" ] && {
|
||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "No CPU Scaling Governor Selected" --msgbox "It appears that no CPU Scaling Governor was selected" 10 68
|
whiptail --backtitle "Proxmox VE Helper Scripts" --title "No CPU Scaling Governor Selected" --msgbox "It appears that no CPU Scaling Governor was selected" 10 68
|
||||||
clear
|
clear
|
||||||
|
@ -26,7 +26,7 @@ GN=$(echo "\033[1;92m")
|
|||||||
CL=$(echo "\033[m")
|
CL=$(echo "\033[m")
|
||||||
header_info
|
header_info
|
||||||
echo "Loading..."
|
echo "Loading..."
|
||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Proxmox VE LXC Updater" --yesno "This Will Update LXC Containers. Proceed?" 10 58 || exit
|
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Proxmox VE LXC Updater" --yesno "This Will Update LXC Containers. Proceed?" 10 58
|
||||||
NODE=$(hostname)
|
NODE=$(hostname)
|
||||||
EXCLUDE_MENU=()
|
EXCLUDE_MENU=()
|
||||||
MSG_MAX_LENGTH=0
|
MSG_MAX_LENGTH=0
|
||||||
@ -35,7 +35,7 @@ while read -r TAG ITEM; do
|
|||||||
((${#ITEM} + OFFSET > MSG_MAX_LENGTH)) && MSG_MAX_LENGTH=${#ITEM}+OFFSET
|
((${#ITEM} + OFFSET > MSG_MAX_LENGTH)) && MSG_MAX_LENGTH=${#ITEM}+OFFSET
|
||||||
EXCLUDE_MENU+=("$TAG" "$ITEM " "OFF")
|
EXCLUDE_MENU+=("$TAG" "$ITEM " "OFF")
|
||||||
done < <(pct list | awk 'NR>1')
|
done < <(pct list | awk 'NR>1')
|
||||||
excluded_containers=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Containers on $NODE" --checklist "\nSelect containers to skip from updates:\n" 16 $((MSG_MAX_LENGTH + 23)) 6 "${EXCLUDE_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"') || exit
|
excluded_containers=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Containers on $NODE" --checklist "\nSelect containers to skip from updates:\n" 16 $((MSG_MAX_LENGTH + 23)) 6 "${EXCLUDE_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"')
|
||||||
|
|
||||||
function needs_reboot() {
|
function needs_reboot() {
|
||||||
local container=$1
|
local container=$1
|
||||||
|
@ -56,7 +56,7 @@ if systemctl is-active -q ping-instances.service; then
|
|||||||
systemctl stop ping-instances.service
|
systemctl stop ping-instances.service
|
||||||
fi
|
fi
|
||||||
header_info
|
header_info
|
||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "TurnKey LXCs" --yesno "This will allow for the creation of one of the many TurnKey LXC Containers. Proceed?" 10 68 || exit
|
whiptail --backtitle "Proxmox VE Helper Scripts" --title "TurnKey LXCs" --yesno "This will allow for the creation of one of the many TurnKey LXC Containers. Proceed?" 10 68
|
||||||
TURNKEY_MENU=()
|
TURNKEY_MENU=()
|
||||||
MSG_MAX_LENGTH=0
|
MSG_MAX_LENGTH=0
|
||||||
while read -r TAG ITEM; do
|
while read -r TAG ITEM; do
|
||||||
@ -88,7 +88,7 @@ wordpress Wordpress
|
|||||||
zoneminder ZoneMinder
|
zoneminder ZoneMinder
|
||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
turnkey=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "TurnKey LXCs" --radiolist "\nSelect a TurnKey LXC to create:\n" 16 $((MSG_MAX_LENGTH + 58)) 6 "${TURNKEY_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"') || exit
|
turnkey=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "TurnKey LXCs" --radiolist "\nSelect a TurnKey LXC to create:\n" 16 $((MSG_MAX_LENGTH + 58)) 6 "${TURNKEY_MENU[@]}" 3>&1 1>&2 2>&3 | tr -d '"')
|
||||||
[ -z "$turnkey" ] && {
|
[ -z "$turnkey" ] && {
|
||||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "No TurnKey LXC Selected" --msgbox "It appears that no TurnKey LXC container was selected" 10 68
|
whiptail --backtitle "Proxmox VE Helper Scripts" --title "No TurnKey LXC Selected" --msgbox "It appears that no TurnKey LXC container was selected" 10 68
|
||||||
msg "Done"
|
msg "Done"
|
||||||
@ -163,11 +163,11 @@ function select_storage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Get template storage
|
# Get template storage
|
||||||
TEMPLATE_STORAGE=$(select_storage template) || exit
|
TEMPLATE_STORAGE=$(select_storage template)
|
||||||
info "Using '$TEMPLATE_STORAGE' for template storage."
|
info "Using '$TEMPLATE_STORAGE' for template storage."
|
||||||
|
|
||||||
# Get container storage
|
# Get container storage
|
||||||
CONTAINER_STORAGE=$(select_storage container) || exit
|
CONTAINER_STORAGE=$(select_storage container)
|
||||||
info "Using '$CONTAINER_STORAGE' for container storage."
|
info "Using '$CONTAINER_STORAGE' for container storage."
|
||||||
|
|
||||||
# Update LXC template list
|
# Update LXC template list
|
||||||
@ -238,4 +238,4 @@ info "Proceed to the LXC console to complete the setup."
|
|||||||
echo
|
echo
|
||||||
info "login: root"
|
info "login: root"
|
||||||
info "password: $PASS"
|
info "password: $PASS"
|
||||||
echo
|
echo
|
||||||
|
@ -6,7 +6,6 @@
|
|||||||
|
|
||||||
source /dev/stdin <<<$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/api.func)
|
source /dev/stdin <<<$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/api.func)
|
||||||
|
|
||||||
|
|
||||||
function header_info {
|
function header_info {
|
||||||
clear
|
clear
|
||||||
cat <<"EOF"
|
cat <<"EOF"
|
||||||
@ -65,7 +64,7 @@ THIN="discard=on,ssd=1,"
|
|||||||
set -e
|
set -e
|
||||||
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
||||||
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
||||||
function error_handler() {
|
function error_handler() {
|
||||||
local exit_code="$?"
|
local exit_code="$?"
|
||||||
@ -94,7 +93,7 @@ pushd $TEMP_DIR >/dev/null
|
|||||||
if whiptail --backtitle "Proxmox VE Helper Scripts" --title "Arch Linux VM" --yesno "This will create a New Arch Linux VM. Proceed?" 10 58; then
|
if whiptail --backtitle "Proxmox VE Helper Scripts" --title "Arch Linux VM" --yesno "This will create a New Arch Linux VM. Proceed?" 10 58; then
|
||||||
:
|
:
|
||||||
else
|
else
|
||||||
header_info && echo -e "${CROSS}${RD}User exited script${CL}\n" && exit
|
header_info && echo -e "${CROSS}${RD}User exited script${CL}\n" && exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
function msg_info() {
|
function msg_info() {
|
||||||
@ -123,7 +122,7 @@ function check_root() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function pve_check() {
|
function pve_check() {
|
||||||
if ! pveversion | grep -Eq "pve-manager/8\.[1-4](\.[0-9]+)*"; then
|
if ! pveversion | grep -Eq "pve-manager/8\.[1-4](\.[0-9]+)*"; then
|
||||||
msg_error "${CROSS}${RD}This version of Proxmox Virtual Environment is not supported"
|
msg_error "${CROSS}${RD}This version of Proxmox Virtual Environment is not supported"
|
||||||
echo -e "Requires Proxmox Virtual Environment Version 8.1 or later."
|
echo -e "Requires Proxmox Virtual Environment Version 8.1 or later."
|
||||||
echo -e "Exiting..."
|
echo -e "Exiting..."
|
||||||
@ -228,7 +227,7 @@ function advanced_settings() {
|
|||||||
else
|
else
|
||||||
exit-script
|
exit-script
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if DISK_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Disk Size in GiB (e.g., 10, 20)" 8 58 "$DISK_SIZE" --title "DISK SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
|
if DISK_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Disk Size in GiB (e.g., 10, 20)" 8 58 "$DISK_SIZE" --title "DISK SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
|
||||||
DISK_SIZE=$(echo "$DISK_SIZE" | tr -d ' ')
|
DISK_SIZE=$(echo "$DISK_SIZE" | tr -d ' ')
|
||||||
if [[ "$DISK_SIZE" =~ ^[0-9]+$ ]]; then
|
if [[ "$DISK_SIZE" =~ ^[0-9]+$ ]]; then
|
||||||
@ -243,7 +242,7 @@ function advanced_settings() {
|
|||||||
else
|
else
|
||||||
exit-script
|
exit-script
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if DISK_CACHE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISK CACHE" --radiolist "Choose" --cancel-button Exit-Script 10 58 2 \
|
if DISK_CACHE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISK CACHE" --radiolist "Choose" --cancel-button Exit-Script 10 58 2 \
|
||||||
"0" "None (Default)" ON \
|
"0" "None (Default)" ON \
|
||||||
"1" "Write Through" OFF \
|
"1" "Write Through" OFF \
|
||||||
@ -416,7 +415,7 @@ else
|
|||||||
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
||||||
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
|
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
||||||
@ -495,11 +494,11 @@ EOF
|
|||||||
)
|
)
|
||||||
qm set "$VMID" -description "$DESCRIPTION" >/dev/null
|
qm set "$VMID" -description "$DESCRIPTION" >/dev/null
|
||||||
if [ -n "$DISK_SIZE" ]; then
|
if [ -n "$DISK_SIZE" ]; then
|
||||||
msg_info "Resizing disk to $DISK_SIZE GB"
|
msg_info "Resizing disk to $DISK_SIZE GB"
|
||||||
qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null
|
qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null
|
||||||
else
|
else
|
||||||
msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB"
|
msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB"
|
||||||
qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null
|
qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_ok "Created a Arch Linux VM ${CL}${BL}(${HN})"
|
msg_ok "Created a Arch Linux VM ${CL}${BL}(${HN})"
|
||||||
|
@ -63,7 +63,7 @@ THIN="discard=on,ssd=1,"
|
|||||||
set -e
|
set -e
|
||||||
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
||||||
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
||||||
function error_handler() {
|
function error_handler() {
|
||||||
local exit_code="$?"
|
local exit_code="$?"
|
||||||
@ -93,7 +93,7 @@ pushd $TEMP_DIR >/dev/null
|
|||||||
if whiptail --backtitle "Proxmox VE Helper Scripts" --title "Debian 12 VM" --yesno "This will create a New Debian 12 VM. Proceed?" 10 58; then
|
if whiptail --backtitle "Proxmox VE Helper Scripts" --title "Debian 12 VM" --yesno "This will create a New Debian 12 VM. Proceed?" 10 58; then
|
||||||
:
|
:
|
||||||
else
|
else
|
||||||
header_info && echo -e "${CROSS}${RD}User exited script${CL}\n" && exit
|
header_info && echo -e "${CROSS}${RD}User exited script${CL}\n" && exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
function msg_info() {
|
function msg_info() {
|
||||||
@ -122,7 +122,7 @@ function check_root() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function pve_check() {
|
function pve_check() {
|
||||||
if ! pveversion | grep -Eq "pve-manager/8\.[1-4](\.[0-9]+)*"; then
|
if ! pveversion | grep -Eq "pve-manager/8\.[1-4](\.[0-9]+)*"; then
|
||||||
msg_error "${CROSS}${RD}This version of Proxmox Virtual Environment is not supported"
|
msg_error "${CROSS}${RD}This version of Proxmox Virtual Environment is not supported"
|
||||||
echo -e "Requires Proxmox Virtual Environment Version 8.1 or later."
|
echo -e "Requires Proxmox Virtual Environment Version 8.1 or later."
|
||||||
echo -e "Exiting..."
|
echo -e "Exiting..."
|
||||||
@ -227,7 +227,7 @@ function advanced_settings() {
|
|||||||
else
|
else
|
||||||
exit-script
|
exit-script
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if DISK_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Disk Size in GiB (e.g., 10, 20)" 8 58 "$DISK_SIZE" --title "DISK SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
|
if DISK_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Disk Size in GiB (e.g., 10, 20)" 8 58 "$DISK_SIZE" --title "DISK SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
|
||||||
DISK_SIZE=$(echo "$DISK_SIZE" | tr -d ' ')
|
DISK_SIZE=$(echo "$DISK_SIZE" | tr -d ' ')
|
||||||
if [[ "$DISK_SIZE" =~ ^[0-9]+$ ]]; then
|
if [[ "$DISK_SIZE" =~ ^[0-9]+$ ]]; then
|
||||||
@ -416,7 +416,7 @@ else
|
|||||||
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
||||||
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
|
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
||||||
@ -494,12 +494,12 @@ EOF
|
|||||||
)
|
)
|
||||||
qm set "$VMID" -description "$DESCRIPTION" >/dev/null
|
qm set "$VMID" -description "$DESCRIPTION" >/dev/null
|
||||||
if [ -n "$DISK_SIZE" ]; then
|
if [ -n "$DISK_SIZE" ]; then
|
||||||
msg_info "Resizing disk to $DISK_SIZE GB"
|
msg_info "Resizing disk to $DISK_SIZE GB"
|
||||||
qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null
|
qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null
|
||||||
else
|
else
|
||||||
msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB"
|
msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB"
|
||||||
qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null
|
qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_ok "Created a Debian 12 VM ${CL}${BL}(${HN})"
|
msg_ok "Created a Debian 12 VM ${CL}${BL}(${HN})"
|
||||||
if [ "$START_VM" == "yes" ]; then
|
if [ "$START_VM" == "yes" ]; then
|
||||||
|
@ -44,7 +44,7 @@ THIN="discard=on,ssd=1,"
|
|||||||
set -e
|
set -e
|
||||||
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
||||||
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
||||||
function error_handler() {
|
function error_handler() {
|
||||||
local exit_code="$?"
|
local exit_code="$?"
|
||||||
@ -102,13 +102,13 @@ function check_root() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function pve_check() {
|
function pve_check() {
|
||||||
if ! pveversion | grep -Eq "pve-manager/8\.[1-4](\.[0-9]+)*"; then
|
if ! pveversion | grep -Eq "pve-manager/8\.[1-4](\.[0-9]+)*"; then
|
||||||
msg_error "This version of Proxmox Virtual Environment is not supported"
|
msg_error "This version of Proxmox Virtual Environment is not supported"
|
||||||
echo -e "Requires Proxmox Virtual Environment Version 8.1 or later."
|
echo -e "Requires Proxmox Virtual Environment Version 8.1 or later."
|
||||||
echo -e "Exiting..."
|
echo -e "Exiting..."
|
||||||
sleep 2
|
sleep 2
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function arch_check() {
|
function arch_check() {
|
||||||
@ -379,7 +379,7 @@ else
|
|||||||
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
||||||
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
|
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
||||||
@ -421,14 +421,13 @@ msg_ok "Installed libguestfs-tools successfully"
|
|||||||
|
|
||||||
msg_info "Adding Docker and Docker Compose Plugin to Debian 12 Qcow2 Disk Image"
|
msg_info "Adding Docker and Docker Compose Plugin to Debian 12 Qcow2 Disk Image"
|
||||||
virt-customize -q -a "${FILE}" --install qemu-guest-agent,apt-transport-https,ca-certificates,curl,gnupg,software-properties-common,lsb-release >/dev/null &&
|
virt-customize -q -a "${FILE}" --install qemu-guest-agent,apt-transport-https,ca-certificates,curl,gnupg,software-properties-common,lsb-release >/dev/null &&
|
||||||
virt-customize -q -a "${FILE}" --run-command "mkdir -p /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg" >/dev/null &&
|
virt-customize -q -a "${FILE}" --run-command "mkdir -p /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg" >/dev/null &&
|
||||||
virt-customize -q -a "${FILE}" --run-command "echo 'deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable' > /etc/apt/sources.list.d/docker.list" >/dev/null &&
|
virt-customize -q -a "${FILE}" --run-command "echo 'deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable' > /etc/apt/sources.list.d/docker.list" >/dev/null &&
|
||||||
virt-customize -q -a "${FILE}" --run-command "apt-get update -qq && apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin" >/dev/null &&
|
virt-customize -q -a "${FILE}" --run-command "apt-get update -qq && apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin" >/dev/null &&
|
||||||
virt-customize -q -a "${FILE}" --run-command "systemctl enable docker" >/dev/null &&
|
virt-customize -q -a "${FILE}" --run-command "systemctl enable docker" >/dev/null &&
|
||||||
virt-customize -q -a "${FILE}" --run-command "echo -n > /etc/machine-id" >/dev/null
|
virt-customize -q -a "${FILE}" --run-command "echo -n > /etc/machine-id" >/dev/null
|
||||||
msg_ok "Added Docker and Docker Compose Plugin to Debian 12 Qcow2 Disk Image successfully"
|
msg_ok "Added Docker and Docker Compose Plugin to Debian 12 Qcow2 Disk Image successfully"
|
||||||
|
|
||||||
|
|
||||||
msg_info "Creating a Docker VM"
|
msg_info "Creating a Docker VM"
|
||||||
qm create $VMID -agent 1${MACHINE} -tablet 0 -localtime 1 -bios ovmf${CPU_TYPE} -cores $CORE_COUNT -memory $RAM_SIZE \
|
qm create $VMID -agent 1${MACHINE} -tablet 0 -localtime 1 -bios ovmf${CPU_TYPE} -cores $CORE_COUNT -memory $RAM_SIZE \
|
||||||
-name $HN -tags community-script,debian12,docker -net0 virtio,bridge=$BRG,macaddr=$MAC$VLAN$MTU -onboot 1 -ostype l26 -scsihw virtio-scsi-pci
|
-name $HN -tags community-script,debian12,docker -net0 virtio,bridge=$BRG,macaddr=$MAC$VLAN$MTU -onboot 1 -ostype l26 -scsihw virtio-scsi-pci
|
||||||
@ -442,7 +441,8 @@ qm set $VMID \
|
|||||||
qm resize $VMID scsi0 8G >/dev/null
|
qm resize $VMID scsi0 8G >/dev/null
|
||||||
qm set $VMID --agent enabled=1 >/dev/null
|
qm set $VMID --agent enabled=1 >/dev/null
|
||||||
|
|
||||||
DESCRIPTION=$(cat <<EOF
|
DESCRIPTION=$(
|
||||||
|
cat <<EOF
|
||||||
<div align='center'>
|
<div align='center'>
|
||||||
<a href='https://Helper-Scripts.com' target='_blank' rel='noopener noreferrer'>
|
<a href='https://Helper-Scripts.com' target='_blank' rel='noopener noreferrer'>
|
||||||
<img src='https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/images/logo-81x112.png' alt='Logo' style='width:81px;height:112px;'/>
|
<img src='https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/images/logo-81x112.png' alt='Logo' style='width:81px;height:112px;'/>
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
|
|
||||||
source /dev/stdin <<<$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/api.func)
|
source /dev/stdin <<<$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/api.func)
|
||||||
|
|
||||||
|
|
||||||
function header_info {
|
function header_info {
|
||||||
clear
|
clear
|
||||||
cat <<"EOF"
|
cat <<"EOF"
|
||||||
@ -51,11 +50,11 @@ SPINNER_PID=""
|
|||||||
set -Eeuo pipefail
|
set -Eeuo pipefail
|
||||||
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
||||||
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
||||||
|
|
||||||
function error_handler() {
|
function error_handler() {
|
||||||
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 exit_code="$?"
|
local exit_code="$?"
|
||||||
local line_number="$1"
|
local line_number="$1"
|
||||||
@ -87,13 +86,13 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
function spinner() {
|
function spinner() {
|
||||||
local chars="/-\|"
|
local chars="/-\|"
|
||||||
local spin_i=0
|
local spin_i=0
|
||||||
printf "\e[?25l"
|
printf "\e[?25l"
|
||||||
while true; do
|
while true; do
|
||||||
printf "\r \e[36m%s\e[0m" "${chars:spin_i++%${#chars}:1}"
|
printf "\r \e[36m%s\e[0m" "${chars:spin_i++%${#chars}:1}"
|
||||||
sleep 0.1
|
sleep 0.1
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
function msg_info() {
|
function msg_info() {
|
||||||
@ -104,14 +103,14 @@ function msg_info() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function msg_ok() {
|
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}"
|
||||||
}
|
}
|
||||||
|
|
||||||
function msg_error() {
|
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}"
|
||||||
@ -134,7 +133,7 @@ function pve_check() {
|
|||||||
echo -e "Exiting..."
|
echo -e "Exiting..."
|
||||||
sleep 2
|
sleep 2
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function arch_check() {
|
function arch_check() {
|
||||||
@ -393,7 +392,6 @@ pve_check
|
|||||||
ssh_check
|
ssh_check
|
||||||
start_script
|
start_script
|
||||||
|
|
||||||
|
|
||||||
post_to_api_vm
|
post_to_api_vm
|
||||||
|
|
||||||
msg_info "Validating Storage"
|
msg_info "Validating Storage"
|
||||||
@ -416,12 +414,12 @@ elif [ $((${#STORAGE_MENU[@]} / 3)) -eq 1 ]; then
|
|||||||
STORAGE=${STORAGE_MENU[0]}
|
STORAGE=${STORAGE_MENU[0]}
|
||||||
else
|
else
|
||||||
while [ -z "${STORAGE:+x}" ]; do
|
while [ -z "${STORAGE:+x}" ]; do
|
||||||
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"
|
||||||
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
||||||
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
|
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
||||||
@ -485,5 +483,3 @@ if [ "$START_VM" == "yes" ]; then
|
|||||||
fi
|
fi
|
||||||
post_update_to_api "done" "none"
|
post_update_to_api "done" "none"
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
|
|
||||||
source /dev/stdin <<<$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/api.func)
|
source /dev/stdin <<<$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/api.func)
|
||||||
|
|
||||||
|
|
||||||
function header_info {
|
function header_info {
|
||||||
cat <<"EOF"
|
cat <<"EOF"
|
||||||
__ ____ __ __ _ __ ____ __ ____ _____ ________ ______
|
__ ____ __ __ _ __ ____ __ ____ _____ ________ ______
|
||||||
@ -50,7 +49,7 @@ shopt -s expand_aliases
|
|||||||
alias die='EXIT=$? LINE=$LINENO error_exit'
|
alias die='EXIT=$? LINE=$LINENO error_exit'
|
||||||
trap die ERR
|
trap die ERR
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
||||||
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
||||||
function error_exit() {
|
function error_exit() {
|
||||||
trap - ERR
|
trap - ERR
|
||||||
@ -244,7 +243,7 @@ else
|
|||||||
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
||||||
"Which storage pool you would like to use for the Mikrotik RouterOS CHR VM?\n\n" \
|
"Which storage pool you would like to use for the Mikrotik RouterOS CHR VM?\n\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
||||||
|
@ -46,7 +46,7 @@ THIN="discard=on,ssd=1"
|
|||||||
set -e
|
set -e
|
||||||
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
||||||
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
||||||
function error_handler() {
|
function error_handler() {
|
||||||
local exit_code="$?"
|
local exit_code="$?"
|
||||||
@ -110,7 +110,7 @@ function pve_check() {
|
|||||||
echo -e "Exiting..."
|
echo -e "Exiting..."
|
||||||
sleep 2
|
sleep 2
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function arch_check() {
|
function arch_check() {
|
||||||
@ -380,7 +380,7 @@ else
|
|||||||
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
||||||
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
|
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
||||||
|
@ -49,7 +49,7 @@ CROSS="${RD}✗${CL}"
|
|||||||
set -Eeo pipefail
|
set -Eeo pipefail
|
||||||
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
||||||
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
||||||
function error_handler() {
|
function error_handler() {
|
||||||
local exit_code="$?"
|
local exit_code="$?"
|
||||||
@ -176,7 +176,7 @@ function pve_check() {
|
|||||||
echo -e "Exiting..."
|
echo -e "Exiting..."
|
||||||
sleep 2
|
sleep 2
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function arch_check() {
|
function arch_check() {
|
||||||
@ -440,7 +440,7 @@ else
|
|||||||
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
||||||
"Which storage pool you would like to use for the OpenWrt VM?\n\n" \
|
"Which storage pool you would like to use for the OpenWrt VM?\n\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
||||||
|
@ -8,7 +8,7 @@ source /dev/stdin <<<$(curl -fsSL https://raw.githubusercontent.com/community-sc
|
|||||||
|
|
||||||
function header_info {
|
function header_info {
|
||||||
clear
|
clear
|
||||||
cat <<"EOF"
|
cat <<"EOF"
|
||||||
____ ____ _ __
|
____ ____ _ __
|
||||||
/ __ \/ __ \/ | / /_______ ____ ________
|
/ __ \/ __ \/ | / /_______ ____ ________
|
||||||
/ / / / /_/ / |/ / ___/ _ \/ __ \/ ___/ _ \
|
/ / / / /_/ / |/ / ___/ _ \/ __ \/ ___/ _ \
|
||||||
@ -230,8 +230,8 @@ function default_settings() {
|
|||||||
echo -e "${DGN}Allocated Cores: ${BGN}${CORE_COUNT}${CL}"
|
echo -e "${DGN}Allocated Cores: ${BGN}${CORE_COUNT}${CL}"
|
||||||
echo -e "${DGN}Allocated RAM: ${BGN}${RAM_SIZE}${CL}"
|
echo -e "${DGN}Allocated RAM: ${BGN}${RAM_SIZE}${CL}"
|
||||||
if ! grep -q "^iface ${BRG}" /etc/network/interfaces; then
|
if ! grep -q "^iface ${BRG}" /etc/network/interfaces; then
|
||||||
msg_error "Bridge '${BRG}' does not exist in /etc/network/interfaces"
|
msg_error "Bridge '${BRG}' does not exist in /etc/network/interfaces"
|
||||||
exit
|
exit
|
||||||
else
|
else
|
||||||
echo -e "${DGN}Using LAN Bridge: ${BGN}${BRG}${CL}"
|
echo -e "${DGN}Using LAN Bridge: ${BGN}${BRG}${CL}"
|
||||||
fi
|
fi
|
||||||
@ -518,7 +518,7 @@ else
|
|||||||
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
||||||
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
|
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
||||||
@ -530,7 +530,7 @@ msg_ok "${CL}${BL}${URL}${CL}"
|
|||||||
curl -f#SL -o "$(basename "$URL")" "$URL"
|
curl -f#SL -o "$(basename "$URL")" "$URL"
|
||||||
echo -en "\e[1A\e[0K"
|
echo -en "\e[1A\e[0K"
|
||||||
FILE=Fressbsd.qcow2
|
FILE=Fressbsd.qcow2
|
||||||
unxz -cv $(basename $URL) > ${FILE}
|
unxz -cv $(basename $URL) >${FILE}
|
||||||
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
|
msg_ok "Downloaded ${CL}${BL}${FILE}${CL}"
|
||||||
|
|
||||||
STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}')
|
STORAGE_TYPE=$(pvesm status -storage $STORAGE | awk 'NR>1 {print $2}')
|
||||||
@ -564,10 +564,11 @@ qm set $VMID \
|
|||||||
-efidisk0 ${DISK0_REF}${FORMAT} \
|
-efidisk0 ${DISK0_REF}${FORMAT} \
|
||||||
-scsi0 ${DISK1_REF},${DISK_CACHE}${THIN}size=2G \
|
-scsi0 ${DISK1_REF},${DISK_CACHE}${THIN}size=2G \
|
||||||
-boot order=scsi0 \
|
-boot order=scsi0 \
|
||||||
-serial0 socket >/dev/null \
|
-serial0 socket \
|
||||||
-tags community-script
|
-tags community-script >/dev/null
|
||||||
qm resize $VMID scsi0 10G >/dev/null
|
qm resize $VMID scsi0 10G >/dev/null
|
||||||
DESCRIPTION=$(cat <<EOF
|
DESCRIPTION=$(
|
||||||
|
cat <<EOF
|
||||||
<div align='center'>
|
<div align='center'>
|
||||||
<a href='https://Helper-Scripts.com' target='_blank' rel='noopener noreferrer'>
|
<a href='https://Helper-Scripts.com' target='_blank' rel='noopener noreferrer'>
|
||||||
<img src='https://raw.githubusercontent.com/michelroegl-brunner/ProxmoxVE/refs/heads/develop/misc/images/logo-81x112.png' alt='Logo' style='width:81px;height:112px;'/>
|
<img src='https://raw.githubusercontent.com/michelroegl-brunner/ProxmoxVE/refs/heads/develop/misc/images/logo-81x112.png' alt='Logo' style='width:81px;height:112px;'/>
|
||||||
@ -596,76 +597,76 @@ qm resize $VMID scsi0 10G >/dev/null
|
|||||||
</div>
|
</div>
|
||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
qm set "$VMID" -description "$DESCRIPTION" >/dev/null
|
qm set "$VMID" -description "$DESCRIPTION" >/dev/null
|
||||||
|
|
||||||
msg_info "Bridge interfaces are being added."
|
msg_info "Bridge interfaces are being added."
|
||||||
qm set $VMID \
|
qm set $VMID \
|
||||||
-net0 virtio,bridge=${BRG},macaddr=${MAC}${VLAN}${MTU} 2>/dev/null
|
-net0 virtio,bridge=${BRG},macaddr=${MAC}${VLAN}${MTU} 2>/dev/null
|
||||||
msg_ok "Bridge interfaces have been successfully added."
|
msg_ok "Bridge interfaces have been successfully added."
|
||||||
|
|
||||||
msg_ok "Created a OPNsense VM ${CL}${BL}(${HN})"
|
|
||||||
msg_ok "Starting OPNsense VM (Patience this takes 20-30 minutes)"
|
|
||||||
qm start $VMID
|
|
||||||
sleep 90
|
|
||||||
send_line_to_vm "root"
|
|
||||||
send_line_to_vm "fetch https://raw.githubusercontent.com/opnsense/update/master/src/bootstrap/opnsense-bootstrap.sh.in"
|
|
||||||
qm set $VMID \
|
|
||||||
-net1 virtio,bridge=${WAN_BRG},macaddr=${WAN_MAC} &>/dev/null
|
|
||||||
sleep 10
|
|
||||||
send_line_to_vm "sh ./opnsense-bootstrap.sh.in -y -f -r 25.1"
|
|
||||||
msg_ok "OPNsense VM is being installed, do not close the terminal, or the installation will fail."
|
|
||||||
#We need to wait for the OPNsense build proccess to finish, this takes a few minutes
|
|
||||||
sleep 1000
|
|
||||||
send_line_to_vm "root"
|
|
||||||
send_line_to_vm "opnsense"
|
|
||||||
send_line_to_vm "2"
|
|
||||||
|
|
||||||
if [ "$IP_ADDR" != "" ]; then
|
msg_ok "Created a OPNsense VM ${CL}${BL}(${HN})"
|
||||||
send_line_to_vm "1"
|
msg_ok "Starting OPNsense VM (Patience this takes 20-30 minutes)"
|
||||||
send_line_to_vm "n"
|
qm start $VMID
|
||||||
send_line_to_vm "${IP_ADDR}"
|
sleep 90
|
||||||
send_line_to_vm "${NETMASK}"
|
send_line_to_vm "root"
|
||||||
send_line_to_vm "${LAN_GW}"
|
send_line_to_vm "fetch https://raw.githubusercontent.com/opnsense/update/master/src/bootstrap/opnsense-bootstrap.sh.in"
|
||||||
send_line_to_vm "n"
|
qm set $VMID \
|
||||||
send_line_to_vm " "
|
-net1 virtio,bridge=${WAN_BRG},macaddr=${WAN_MAC} &>/dev/null
|
||||||
send_line_to_vm "n"
|
sleep 10
|
||||||
send_line_to_vm "n"
|
send_line_to_vm "sh ./opnsense-bootstrap.sh.in -y -f -r 25.1"
|
||||||
send_line_to_vm " "
|
msg_ok "OPNsense VM is being installed, do not close the terminal, or the installation will fail."
|
||||||
send_line_to_vm "n"
|
#We need to wait for the OPNsense build proccess to finish, this takes a few minutes
|
||||||
send_line_to_vm "n"
|
sleep 1000
|
||||||
send_line_to_vm "n"
|
send_line_to_vm "root"
|
||||||
send_line_to_vm "n"
|
send_line_to_vm "opnsense"
|
||||||
send_line_to_vm "n"
|
send_line_to_vm "2"
|
||||||
else
|
|
||||||
send_line_to_vm "1"
|
if [ "$IP_ADDR" != "" ]; then
|
||||||
send_line_to_vm "y"
|
send_line_to_vm "1"
|
||||||
send_line_to_vm "n"
|
send_line_to_vm "n"
|
||||||
send_line_to_vm "n"
|
send_line_to_vm "${IP_ADDR}"
|
||||||
send_line_to_vm " "
|
send_line_to_vm "${NETMASK}"
|
||||||
send_line_to_vm "n"
|
send_line_to_vm "${LAN_GW}"
|
||||||
send_line_to_vm "n"
|
send_line_to_vm "n"
|
||||||
send_line_to_vm "n"
|
send_line_to_vm " "
|
||||||
fi
|
send_line_to_vm "n"
|
||||||
#we need to wait for the Config changes to be saved
|
send_line_to_vm "n"
|
||||||
sleep 20
|
send_line_to_vm " "
|
||||||
if [ "$WAN_IP_ADDR" != "" ]; then
|
send_line_to_vm "n"
|
||||||
send_line_to_vm "2"
|
send_line_to_vm "n"
|
||||||
send_line_to_vm "2"
|
send_line_to_vm "n"
|
||||||
send_line_to_vm "n"
|
send_line_to_vm "n"
|
||||||
send_line_to_vm "${WAN_IP_ADDR}"
|
send_line_to_vm "n"
|
||||||
send_line_to_vm "${NETMASK}"
|
else
|
||||||
send_line_to_vm "${LAN_GW}"
|
send_line_to_vm "1"
|
||||||
send_line_to_vm "n"
|
send_line_to_vm "y"
|
||||||
send_line_to_vm " "
|
send_line_to_vm "n"
|
||||||
send_line_to_vm "n"
|
send_line_to_vm "n"
|
||||||
send_line_to_vm " "
|
send_line_to_vm " "
|
||||||
send_line_to_vm "n"
|
send_line_to_vm "n"
|
||||||
send_line_to_vm "n"
|
send_line_to_vm "n"
|
||||||
send_line_to_vm "n"
|
send_line_to_vm "n"
|
||||||
fi
|
fi
|
||||||
sleep 10
|
#we need to wait for the Config changes to be saved
|
||||||
send_line_to_vm "0"
|
sleep 20
|
||||||
msg_ok "Started OPNsense VM"
|
if [ "$WAN_IP_ADDR" != "" ]; then
|
||||||
|
send_line_to_vm "2"
|
||||||
|
send_line_to_vm "2"
|
||||||
|
send_line_to_vm "n"
|
||||||
|
send_line_to_vm "${WAN_IP_ADDR}"
|
||||||
|
send_line_to_vm "${NETMASK}"
|
||||||
|
send_line_to_vm "${LAN_GW}"
|
||||||
|
send_line_to_vm "n"
|
||||||
|
send_line_to_vm " "
|
||||||
|
send_line_to_vm "n"
|
||||||
|
send_line_to_vm " "
|
||||||
|
send_line_to_vm "n"
|
||||||
|
send_line_to_vm "n"
|
||||||
|
send_line_to_vm "n"
|
||||||
|
fi
|
||||||
|
sleep 10
|
||||||
|
send_line_to_vm "0"
|
||||||
|
msg_ok "Started OPNsense VM"
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
if [ "$IP_ADDR" != "" ]; then
|
if [ "$IP_ADDR" != "" ]; then
|
||||||
|
@ -46,7 +46,7 @@ THIN="discard=on,ssd=1"
|
|||||||
set -e
|
set -e
|
||||||
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
||||||
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
||||||
function error_handler() {
|
function error_handler() {
|
||||||
local exit_code="$?"
|
local exit_code="$?"
|
||||||
@ -104,13 +104,13 @@ function check_root() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function pve_check() {
|
function pve_check() {
|
||||||
if ! pveversion | grep -Eq "pve-manager/8\.[1-4](\.[0-9]+)*"; then
|
if ! pveversion | grep -Eq "pve-manager/8\.[1-4](\.[0-9]+)*"; then
|
||||||
msg_error "This version of Proxmox Virtual Environment is not supported"
|
msg_error "This version of Proxmox Virtual Environment is not supported"
|
||||||
echo -e "Requires Proxmox Virtual Environment Version 8.1 or later."
|
echo -e "Requires Proxmox Virtual Environment Version 8.1 or later."
|
||||||
echo -e "Exiting..."
|
echo -e "Exiting..."
|
||||||
sleep 2
|
sleep 2
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function arch_check() {
|
function arch_check() {
|
||||||
@ -380,7 +380,7 @@ else
|
|||||||
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
||||||
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
|
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
||||||
|
@ -58,7 +58,7 @@ shopt -s expand_aliases
|
|||||||
alias die='EXIT=$? LINE=$LINENO error_exit'
|
alias die='EXIT=$? LINE=$LINENO error_exit'
|
||||||
trap die ERR
|
trap die ERR
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
||||||
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
||||||
function error_exit() {
|
function error_exit() {
|
||||||
trap - ERR
|
trap - ERR
|
||||||
@ -84,10 +84,10 @@ function cleanup() {
|
|||||||
}
|
}
|
||||||
TEMP_DIR=$(mktemp -d)
|
TEMP_DIR=$(mktemp -d)
|
||||||
pushd $TEMP_DIR >/dev/null
|
pushd $TEMP_DIR >/dev/null
|
||||||
if ! command -v whiptail &> /dev/null; then
|
if ! command -v whiptail &>/dev/null; then
|
||||||
echo "Installing whiptail..."
|
echo "Installing whiptail..."
|
||||||
apt-get update &>/dev/null
|
apt-get update &>/dev/null
|
||||||
apt-get install -y whiptail &>/dev/null
|
apt-get install -y whiptail &>/dev/null
|
||||||
fi
|
fi
|
||||||
if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "PiMox HAOS VM" --yesno "This will create a New PiMox HAOS VM. Proceed?" 10 58); then
|
if (whiptail --backtitle "Proxmox VE Helper Scripts" --title "PiMox HAOS VM" --yesno "This will create a New PiMox HAOS VM. Proceed?" 10 58); then
|
||||||
echo "User selected Yes"
|
echo "User selected Yes"
|
||||||
@ -287,7 +287,7 @@ else
|
|||||||
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
||||||
"Which storage pool you would like to use for the HAOS VM?\n\n" \
|
"Which storage pool you would like to use for the HAOS VM?\n\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
||||||
|
@ -63,7 +63,7 @@ THIN="discard=on,ssd=1,"
|
|||||||
set -e
|
set -e
|
||||||
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
||||||
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
||||||
function error_handler() {
|
function error_handler() {
|
||||||
local exit_code="$?"
|
local exit_code="$?"
|
||||||
@ -92,7 +92,7 @@ pushd $TEMP_DIR >/dev/null
|
|||||||
if whiptail --backtitle "Proxmox VE Helper Scripts" --title "Ubuntu 22.04 VM" --yesno "This will create a New Ubuntu 22.04 VM. Proceed?" 10 58; then
|
if whiptail --backtitle "Proxmox VE Helper Scripts" --title "Ubuntu 22.04 VM" --yesno "This will create a New Ubuntu 22.04 VM. Proceed?" 10 58; then
|
||||||
:
|
:
|
||||||
else
|
else
|
||||||
header_info && echo -e "${CROSS}${RD}User exited script${CL}\n" && exit
|
header_info && echo -e "${CROSS}${RD}User exited script${CL}\n" && exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
function msg_info() {
|
function msg_info() {
|
||||||
@ -226,7 +226,7 @@ function advanced_settings() {
|
|||||||
else
|
else
|
||||||
exit-script
|
exit-script
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if DISK_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Disk Size in GiB (e.g., 10, 20)" 8 58 "$DISK_SIZE" --title "DISK SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
|
if DISK_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Disk Size in GiB (e.g., 10, 20)" 8 58 "$DISK_SIZE" --title "DISK SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
|
||||||
DISK_SIZE=$(echo "$DISK_SIZE" | tr -d ' ')
|
DISK_SIZE=$(echo "$DISK_SIZE" | tr -d ' ')
|
||||||
if [[ "$DISK_SIZE" =~ ^[0-9]+$ ]]; then
|
if [[ "$DISK_SIZE" =~ ^[0-9]+$ ]]; then
|
||||||
@ -241,7 +241,7 @@ function advanced_settings() {
|
|||||||
else
|
else
|
||||||
exit-script
|
exit-script
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if DISK_CACHE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISK CACHE" --radiolist "Choose" --cancel-button Exit-Script 10 58 2 \
|
if DISK_CACHE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISK CACHE" --radiolist "Choose" --cancel-button Exit-Script 10 58 2 \
|
||||||
"0" "None (Default)" ON \
|
"0" "None (Default)" ON \
|
||||||
"1" "Write Through" OFF \
|
"1" "Write Through" OFF \
|
||||||
@ -414,7 +414,7 @@ else
|
|||||||
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
||||||
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
|
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
||||||
@ -493,11 +493,11 @@ EOF
|
|||||||
)
|
)
|
||||||
qm set "$VMID" -description "$DESCRIPTION" >/dev/null
|
qm set "$VMID" -description "$DESCRIPTION" >/dev/null
|
||||||
if [ -n "$DISK_SIZE" ]; then
|
if [ -n "$DISK_SIZE" ]; then
|
||||||
msg_info "Resizing disk to $DISK_SIZE GB"
|
msg_info "Resizing disk to $DISK_SIZE GB"
|
||||||
qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null
|
qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null
|
||||||
else
|
else
|
||||||
msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB"
|
msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB"
|
||||||
qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null
|
qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_ok "Created a Ubuntu 22.04 VM ${CL}${BL}(${HN})"
|
msg_ok "Created a Ubuntu 22.04 VM ${CL}${BL}(${HN})"
|
||||||
|
@ -29,7 +29,7 @@ var_os="ubuntu"
|
|||||||
var_version="2404"
|
var_version="2404"
|
||||||
|
|
||||||
YW=$(echo "\033[33m")
|
YW=$(echo "\033[33m")
|
||||||
BL=$(echo "\033[36m")
|
BL=$(echo "\033[36m")
|
||||||
RD=$(echo "\033[01;31m")
|
RD=$(echo "\033[01;31m")
|
||||||
BGN=$(echo "\033[4;92m")
|
BGN=$(echo "\033[4;92m")
|
||||||
GN=$(echo "\033[1;92m")
|
GN=$(echo "\033[1;92m")
|
||||||
@ -64,7 +64,7 @@ THIN="discard=on,ssd=1,"
|
|||||||
set -e
|
set -e
|
||||||
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
||||||
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
||||||
function error_handler() {
|
function error_handler() {
|
||||||
local exit_code="$?"
|
local exit_code="$?"
|
||||||
@ -93,7 +93,7 @@ pushd $TEMP_DIR >/dev/null
|
|||||||
if whiptail --backtitle "Proxmox VE Helper Scripts" --title "Ubuntu 24.04 VM" --yesno "This will create a New Ubuntu 24.04 VM. Proceed?" 10 58; then
|
if whiptail --backtitle "Proxmox VE Helper Scripts" --title "Ubuntu 24.04 VM" --yesno "This will create a New Ubuntu 24.04 VM. Proceed?" 10 58; then
|
||||||
:
|
:
|
||||||
else
|
else
|
||||||
header_info && echo -e "${CROSS}${RD}User exited script${CL}\n" && exit
|
header_info && echo -e "${CROSS}${RD}User exited script${CL}\n" && exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
function msg_info() {
|
function msg_info() {
|
||||||
@ -122,7 +122,7 @@ function check_root() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function pve_check() {
|
function pve_check() {
|
||||||
if ! pveversion | grep -Eq "pve-manager/8\.[1-4](\.[0-9]+)*"; then
|
if ! pveversion | grep -Eq "pve-manager/8\.[1-4](\.[0-9]+)*"; then
|
||||||
msg_error "${CROSS}${RD}This version of Proxmox Virtual Environment is not supported"
|
msg_error "${CROSS}${RD}This version of Proxmox Virtual Environment is not supported"
|
||||||
echo -e "Requires Proxmox Virtual Environment Version 8.1 or later."
|
echo -e "Requires Proxmox Virtual Environment Version 8.1 or later."
|
||||||
echo -e "Exiting..."
|
echo -e "Exiting..."
|
||||||
@ -227,7 +227,7 @@ function advanced_settings() {
|
|||||||
else
|
else
|
||||||
exit-script
|
exit-script
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if DISK_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Disk Size in GiB (e.g., 10, 20)" 8 58 "$DISK_SIZE" --title "DISK SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
|
if DISK_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Disk Size in GiB (e.g., 10, 20)" 8 58 "$DISK_SIZE" --title "DISK SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
|
||||||
DISK_SIZE=$(echo "$DISK_SIZE" | tr -d ' ')
|
DISK_SIZE=$(echo "$DISK_SIZE" | tr -d ' ')
|
||||||
if [[ "$DISK_SIZE" =~ ^[0-9]+$ ]]; then
|
if [[ "$DISK_SIZE" =~ ^[0-9]+$ ]]; then
|
||||||
@ -242,7 +242,7 @@ function advanced_settings() {
|
|||||||
else
|
else
|
||||||
exit-script
|
exit-script
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if DISK_CACHE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISK CACHE" --radiolist "Choose" --cancel-button Exit-Script 10 58 2 \
|
if DISK_CACHE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISK CACHE" --radiolist "Choose" --cancel-button Exit-Script 10 58 2 \
|
||||||
"0" "None (Default)" ON \
|
"0" "None (Default)" ON \
|
||||||
"1" "Write Through" OFF \
|
"1" "Write Through" OFF \
|
||||||
@ -414,7 +414,7 @@ else
|
|||||||
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
||||||
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
|
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
||||||
@ -493,11 +493,11 @@ EOF
|
|||||||
)
|
)
|
||||||
qm set "$VMID" -description "$DESCRIPTION" >/dev/null
|
qm set "$VMID" -description "$DESCRIPTION" >/dev/null
|
||||||
if [ -n "$DISK_SIZE" ]; then
|
if [ -n "$DISK_SIZE" ]; then
|
||||||
msg_info "Resizing disk to $DISK_SIZE GB"
|
msg_info "Resizing disk to $DISK_SIZE GB"
|
||||||
qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null
|
qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null
|
||||||
else
|
else
|
||||||
msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB"
|
msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB"
|
||||||
qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null
|
qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_ok "Created a Ubuntu 24.04 VM ${CL}${BL}(${HN})"
|
msg_ok "Created a Ubuntu 24.04 VM ${CL}${BL}(${HN})"
|
||||||
|
@ -63,7 +63,7 @@ THIN="discard=on,ssd=1,"
|
|||||||
set -e
|
set -e
|
||||||
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
|
||||||
trap cleanup EXIT
|
trap cleanup EXIT
|
||||||
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
trap 'post_update_to_api "failed" "INTERRUPTED"' SIGINT
|
||||||
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
trap 'post_update_to_api "failed" "TERMINATED"' SIGTERM
|
||||||
function error_handler() {
|
function error_handler() {
|
||||||
local exit_code="$?"
|
local exit_code="$?"
|
||||||
@ -92,7 +92,7 @@ pushd $TEMP_DIR >/dev/null
|
|||||||
if whiptail --backtitle "Proxmox VE Helper Scripts" --title "Ubuntu 24.10 VM" --yesno "This will create a New Ubuntu 24.10 VM. Proceed?" 10 58; then
|
if whiptail --backtitle "Proxmox VE Helper Scripts" --title "Ubuntu 24.10 VM" --yesno "This will create a New Ubuntu 24.10 VM. Proceed?" 10 58; then
|
||||||
:
|
:
|
||||||
else
|
else
|
||||||
header_info && echo -e "${CROSS}${RD}User exited script${CL}\n" && exit
|
header_info && echo -e "${CROSS}${RD}User exited script${CL}\n" && exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
function msg_info() {
|
function msg_info() {
|
||||||
@ -121,7 +121,7 @@ function check_root() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function pve_check() {
|
function pve_check() {
|
||||||
if ! pveversion | grep -Eq "pve-manager/8\.[1-4](\.[0-9]+)*"; then
|
if ! pveversion | grep -Eq "pve-manager/8\.[1-4](\.[0-9]+)*"; then
|
||||||
msg_error "${CROSS}${RD}This version of Proxmox Virtual Environment is not supported"
|
msg_error "${CROSS}${RD}This version of Proxmox Virtual Environment is not supported"
|
||||||
echo -e "Requires Proxmox Virtual Environment Version 8.1 or later."
|
echo -e "Requires Proxmox Virtual Environment Version 8.1 or later."
|
||||||
echo -e "Exiting..."
|
echo -e "Exiting..."
|
||||||
@ -226,7 +226,7 @@ function advanced_settings() {
|
|||||||
else
|
else
|
||||||
exit-script
|
exit-script
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if DISK_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Disk Size in GiB (e.g., 10, 20)" 8 58 "$DISK_SIZE" --title "DISK SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
|
if DISK_SIZE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Disk Size in GiB (e.g., 10, 20)" 8 58 "$DISK_SIZE" --title "DISK SIZE" --cancel-button Exit-Script 3>&1 1>&2 2>&3); then
|
||||||
DISK_SIZE=$(echo "$DISK_SIZE" | tr -d ' ')
|
DISK_SIZE=$(echo "$DISK_SIZE" | tr -d ' ')
|
||||||
if [[ "$DISK_SIZE" =~ ^[0-9]+$ ]]; then
|
if [[ "$DISK_SIZE" =~ ^[0-9]+$ ]]; then
|
||||||
@ -241,7 +241,7 @@ function advanced_settings() {
|
|||||||
else
|
else
|
||||||
exit-script
|
exit-script
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if DISK_CACHE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISK CACHE" --radiolist "Choose" --cancel-button Exit-Script 10 58 2 \
|
if DISK_CACHE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "DISK CACHE" --radiolist "Choose" --cancel-button Exit-Script 10 58 2 \
|
||||||
"0" "None (Default)" ON \
|
"0" "None (Default)" ON \
|
||||||
"1" "Write Through" OFF \
|
"1" "Write Through" OFF \
|
||||||
@ -414,7 +414,7 @@ else
|
|||||||
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
|
||||||
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
|
"Which storage pool you would like to use for ${HN}?\nTo make a selection, use the Spacebar.\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3) || exit
|
"${STORAGE_MENU[@]}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
msg_ok "Using ${CL}${BL}$STORAGE${CL} ${GN}for Storage Location."
|
||||||
@ -493,11 +493,11 @@ EOF
|
|||||||
)
|
)
|
||||||
qm set "$VMID" -description "$DESCRIPTION" >/dev/null
|
qm set "$VMID" -description "$DESCRIPTION" >/dev/null
|
||||||
if [ -n "$DISK_SIZE" ]; then
|
if [ -n "$DISK_SIZE" ]; then
|
||||||
msg_info "Resizing disk to $DISK_SIZE GB"
|
msg_info "Resizing disk to $DISK_SIZE GB"
|
||||||
qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null
|
qm resize $VMID scsi0 ${DISK_SIZE} >/dev/null
|
||||||
else
|
else
|
||||||
msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB"
|
msg_info "Using default disk size of $DEFAULT_DISK_SIZE GB"
|
||||||
qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null
|
qm resize $VMID scsi0 ${DEFAULT_DISK_SIZE} >/dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_ok "Created a Ubuntu 24.10 VM ${CL}${BL}(${HN})"
|
msg_ok "Created a Ubuntu 24.10 VM ${CL}${BL}(${HN})"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user