mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-11-04 18:32:51 +00:00
Compare commits
220 Commits
2025-04-12
...
2025-05-06
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
67cd29e9f2 | ||
|
|
0f4c14ff41 | ||
|
|
5d9795139e | ||
|
|
0bbbd5de10 | ||
|
|
8963d8dec9 | ||
|
|
eeb7766f36 | ||
|
|
e7d4630fa5 | ||
|
|
0f19440864 | ||
|
|
d0a3510b96 | ||
|
|
0946b5220f | ||
|
|
d5a64ee41c | ||
|
|
067d60978c | ||
|
|
4b89174542 | ||
|
|
0a2a1b4692 | ||
|
|
4d99838209 | ||
|
|
27ac2633c7 | ||
|
|
1bff7fe861 | ||
|
|
a9c36a9417 | ||
|
|
8e26cd4d9d | ||
|
|
237c920893 | ||
|
|
354d95eb2d | ||
|
|
e7f0f09dee | ||
|
|
093a1aacf6 | ||
|
|
afbac8e2f0 | ||
|
|
17c3163a2a | ||
|
|
f0a96b9a7b | ||
|
|
e5766da56d | ||
|
|
0239abb126 | ||
|
|
06960d3023 | ||
|
|
fd813b8936 | ||
|
|
fa9c39f212 | ||
|
|
536c3d113d | ||
|
|
23281bdc0c | ||
|
|
cc5d8e162b | ||
|
|
5c43513295 | ||
|
|
6c648f4b89 | ||
|
|
9f88b1b1fb | ||
|
|
0ea0f56e1b | ||
|
|
bff0ab3d3d | ||
|
|
1f56a8cc6d | ||
|
|
eaebc184b1 | ||
|
|
b9594538ca | ||
|
|
8e56da691a | ||
|
|
c9f739ae3b | ||
|
|
2ba1aaa383 | ||
|
|
4510e7b4d8 | ||
|
|
9f1bf85b42 | ||
|
|
a2a528c294 | ||
|
|
15ec09d71c | ||
|
|
57a18aec76 | ||
|
|
8fa1743dd6 | ||
|
|
78bb1ee195 | ||
|
|
130031e4f9 | ||
|
|
ea9f91036e | ||
|
|
783e7518f8 | ||
|
|
64595b08ce | ||
|
|
43d67cff58 | ||
|
|
4ae2eb2bfa | ||
|
|
6220e272af | ||
|
|
dc36ba409c | ||
|
|
15deb9c658 | ||
|
|
07d87334d5 | ||
|
|
39300b2b6e | ||
|
|
3b2aa30d48 | ||
|
|
0c7052ae58 | ||
|
|
fa7aead863 | ||
|
|
b5dc4bdf59 | ||
|
|
9905012cd7 | ||
|
|
abfe9114c7 | ||
|
|
f65409be75 | ||
|
|
3fd0bdbf40 | ||
|
|
8d7ce2e84e | ||
|
|
0d5a697e99 | ||
|
|
fdc59fd418 | ||
|
|
7cfc8ce601 | ||
|
|
5c35dbfcdf | ||
|
|
885b22898c | ||
|
|
c842943b1b | ||
|
|
92b170267b | ||
|
|
53ebd3ceac | ||
|
|
ca35365e42 | ||
|
|
8e83943498 | ||
|
|
86706bbb4c | ||
|
|
c66fb807c8 | ||
|
|
0356697d5f | ||
|
|
dd4f291bf5 | ||
|
|
8089cc9b3e | ||
|
|
42a341a30c | ||
|
|
e09b216beb | ||
|
|
5825dfae88 | ||
|
|
7fb0c8e276 | ||
|
|
2ffac1d229 | ||
|
|
759e9598fb | ||
|
|
6b93a3fa18 | ||
|
|
aada00ce61 | ||
|
|
a2fdb4e236 | ||
|
|
57e5f23c72 | ||
|
|
c3b69f40fc | ||
|
|
592b310a81 | ||
|
|
e10a062de1 | ||
|
|
74a736dc9f | ||
|
|
b5fdb94246 | ||
|
|
129698dd3d | ||
|
|
77997d558c | ||
|
|
d65d4edea5 | ||
|
|
60c480042c | ||
|
|
956c13fa89 | ||
|
|
3aee31007a | ||
|
|
b82e988837 | ||
|
|
5cf162a3c9 | ||
|
|
ce76ebc68f | ||
|
|
cbe8e2f1b7 | ||
|
|
50c9a0e8f1 | ||
|
|
246c6e950d | ||
|
|
04d6171cba | ||
|
|
9556d63890 | ||
|
|
b26fbd0d70 | ||
|
|
50aa00109a | ||
|
|
c0398ef3b8 | ||
|
|
2676a48985 | ||
|
|
e8ff2fed45 | ||
|
|
65c674b4c1 | ||
|
|
6bb97836b6 | ||
|
|
89bef0fb41 | ||
|
|
51c4eba520 | ||
|
|
71a659e5b9 | ||
|
|
18e1e7d0b9 | ||
|
|
fe0a00d02d | ||
|
|
9068dbb7a2 | ||
|
|
8b489a9554 | ||
|
|
70e0d31f58 | ||
|
|
cd35b9b9a5 | ||
|
|
2852c5b374 | ||
|
|
2251f6bb5e | ||
|
|
98b8895de0 | ||
|
|
0608a4a285 | ||
|
|
be9784336e | ||
|
|
08ff2daa38 | ||
|
|
dc84667ad8 | ||
|
|
0d1492d527 | ||
|
|
9d62b9e064 | ||
|
|
398a25ce62 | ||
|
|
15be0b91a5 | ||
|
|
df93fc0ecf | ||
|
|
e24e9309d1 | ||
|
|
2f3892d29c | ||
|
|
6d4278a9e0 | ||
|
|
cf4a2c8ffe | ||
|
|
945a32dfef | ||
|
|
731dd70816 | ||
|
|
1c2e708ccf | ||
|
|
792d370c49 | ||
|
|
de89dd90cc | ||
|
|
fb3d0b24c7 | ||
|
|
c4caccfab1 | ||
|
|
f2fecc18e8 | ||
|
|
14313687c9 | ||
|
|
d28f33eb91 | ||
|
|
0bab7c06a6 | ||
|
|
90722de17d | ||
|
|
8a4dfa0cc7 | ||
|
|
e3c2fba599 | ||
|
|
563e73e65e | ||
|
|
235690658c | ||
|
|
8dddea132c | ||
|
|
46ca78abc8 | ||
|
|
933539ca7c | ||
|
|
2c46695b72 | ||
|
|
f46c3005b3 | ||
|
|
bad84322ee | ||
|
|
3b12c0ca62 | ||
|
|
2583c110d2 | ||
|
|
22c960c99c | ||
|
|
fcb674b755 | ||
|
|
0373324653 | ||
|
|
3297df1d50 | ||
|
|
80f1330a75 | ||
|
|
05fda7e56a | ||
|
|
73a42eaaae | ||
|
|
1ae420eef5 | ||
|
|
96fc1ea91d | ||
|
|
432c6837e7 | ||
|
|
2450baffc0 | ||
|
|
4be3bca2e3 | ||
|
|
1f93341311 | ||
|
|
5723abb81f | ||
|
|
5cfeb8a0bc | ||
|
|
8cf9658efb | ||
|
|
5dcb75a121 | ||
|
|
3c909cabb6 | ||
|
|
85a5bf2a55 | ||
|
|
6cdda0924f | ||
|
|
56c358cbdb | ||
|
|
9871de48d6 | ||
|
|
af7d8bac67 | ||
|
|
0acfc2f7d1 | ||
|
|
c04167ccac | ||
|
|
13a505df7a | ||
|
|
aec596a18a | ||
|
|
30e8cbf5b4 | ||
|
|
d557d01161 | ||
|
|
cabcdc272e | ||
|
|
e8e4748c96 | ||
|
|
4b275ae911 | ||
|
|
b25b823d69 | ||
|
|
d7757aa5d1 | ||
|
|
5def868c67 | ||
|
|
b87871f56c | ||
|
|
4403635733 | ||
|
|
2fd847215c | ||
|
|
6e2cb8d4e2 | ||
|
|
173bc7201c | ||
|
|
54b794da54 | ||
|
|
203d022db5 | ||
|
|
97c05542d6 | ||
|
|
20e5b1a2bf | ||
|
|
e5800a0ec5 | ||
|
|
21bdf2a828 | ||
|
|
2551cb4b22 | ||
|
|
0cb6ea8e4a |
@@ -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. -->
|
|
||||||
|
|||||||
107
.github/workflows/close-discussion.yml
vendored
107
.github/workflows/close-discussion.yml
vendored
@@ -1,8 +1,13 @@
|
|||||||
name: Close Discussion on PR Merge
|
name: Close Discussion on PR Merge
|
||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
push:
|
||||||
types: [closed]
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
discussions: write
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
close-discussion:
|
close-discussion:
|
||||||
@@ -11,56 +16,82 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout Repository
|
- name: Checkout Repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
|
||||||
repository: community-scripts/ProxmoxVE
|
|
||||||
ref: main
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Set Up Node.js
|
- name: Set Up Node.js
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: "20"
|
node-version: "20"
|
||||||
|
|
||||||
- name: Install Dependencies
|
- name: Install Dependencies
|
||||||
run: npm install zx @octokit/graphql
|
run: npm install zx @octokit/graphql
|
||||||
|
|
||||||
- name: Close Discussion
|
- name: Close Discussion
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.PAT_MICHEL }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
PR_BODY: ${{ github.event.pull_request.body }}
|
GITHUB_SHA: ${{ github.sha }}
|
||||||
PR_NUMBER: ${{ github.event.pull_request.number }}
|
GITHUB_REPOSITORY: ${{ github.repository }}
|
||||||
REPO_OWNER: ${{ github.repository_owner }}
|
|
||||||
REPO_NAME: ${{ github.event.repository.name }}
|
|
||||||
run: |
|
run: |
|
||||||
npx zx << 'EOF'
|
npx zx << 'EOF'
|
||||||
import { graphql } from "@octokit/graphql";
|
import { graphql } from "@octokit/graphql";
|
||||||
(async function() {
|
|
||||||
|
(async function () {
|
||||||
try {
|
try {
|
||||||
const token = process.env.GITHUB_TOKEN;
|
const token = process.env.GITHUB_TOKEN;
|
||||||
const prBody = process.env.PR_BODY;
|
const commitSha = process.env.GITHUB_SHA;
|
||||||
const prNumber = process.env.PR_NUMBER;
|
const [owner, repo] = process.env.GITHUB_REPOSITORY.split("/");
|
||||||
const owner = process.env.REPO_OWNER;
|
|
||||||
const repo = process.env.REPO_NAME;
|
|
||||||
|
|
||||||
if (!token || !prBody || !prNumber || !owner || !repo) {
|
if (!token || !commitSha || !owner || !repo) {
|
||||||
console.log("Missing required environment variables.");
|
console.log("Missing required environment variables.");
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const graphqlWithAuth = graphql.defaults({
|
||||||
|
headers: { authorization: `Bearer ${token}` },
|
||||||
|
});
|
||||||
|
|
||||||
|
// Find PR from commit SHA
|
||||||
|
const searchQuery = `
|
||||||
|
query($owner: String!, $repo: String!, $sha: GitObjectID!) {
|
||||||
|
repository(owner: $owner, name: $repo) {
|
||||||
|
object(oid: $sha) {
|
||||||
|
... on Commit {
|
||||||
|
associatedPullRequests(first: 1) {
|
||||||
|
nodes {
|
||||||
|
number
|
||||||
|
body
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
const prResult = await graphqlWithAuth(searchQuery, {
|
||||||
|
owner,
|
||||||
|
repo,
|
||||||
|
sha: commitSha,
|
||||||
|
});
|
||||||
|
|
||||||
|
const pr = prResult.repository.object.associatedPullRequests.nodes[0];
|
||||||
|
if (!pr) {
|
||||||
|
console.log("No PR found for this commit.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const prNumber = pr.number;
|
||||||
|
const prBody = pr.body;
|
||||||
|
|
||||||
const match = prBody.match(/#(\d+)/);
|
const match = prBody.match(/#(\d+)/);
|
||||||
if (!match) {
|
if (!match) {
|
||||||
console.log("No discussion ID found in PR body.");
|
console.log("No discussion ID found in PR body.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const discussionNumber = match[1];
|
const discussionNumber = match[1];
|
||||||
|
|
||||||
console.log(`Extracted Discussion Number: ${discussionNumber}`);
|
console.log(`Extracted Discussion Number: ${discussionNumber}`);
|
||||||
console.log(`PR Number: ${prNumber}`);
|
|
||||||
console.log(`Repository: ${owner}/${repo}`);
|
|
||||||
|
|
||||||
const graphqlWithAuth = graphql.defaults({
|
|
||||||
headers: { authorization: `Bearer ${token}` },
|
|
||||||
});
|
|
||||||
|
|
||||||
|
// Fetch GraphQL discussion ID
|
||||||
const discussionQuery = `
|
const discussionQuery = `
|
||||||
query($owner: String!, $repo: String!, $number: Int!) {
|
query($owner: String!, $repo: String!, $number: Int!) {
|
||||||
repository(owner: $owner, name: $repo) {
|
repository(owner: $owner, name: $repo) {
|
||||||
@@ -70,21 +101,26 @@ jobs:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const discussionResponse = await graphqlWithAuth(discussionQuery, {
|
//
|
||||||
|
try {
|
||||||
|
const discussionResponse = await graphqlWithAuth(discussionQuery, {
|
||||||
owner,
|
owner,
|
||||||
repo,
|
repo,
|
||||||
number: parseInt(discussionNumber, 10),
|
number: parseInt(discussionNumber, 10),
|
||||||
});
|
});
|
||||||
|
|
||||||
const discussionQLId = discussionResponse.repository.discussion.id;
|
const discussionQLId = discussionResponse.repository.discussion.id;
|
||||||
if (!discussionQLId) {
|
if (!discussionQLId) {
|
||||||
console.log("Failed to fetch discussion GraphQL ID.");
|
console.log("Failed to fetch discussion GraphQL ID.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Discussion not found or error occurred while fetching discussion:", error);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(`GraphQL Discussion ID: ${discussionQLId}`);
|
// Post comment
|
||||||
|
|
||||||
const commentMutation = `
|
const commentMutation = `
|
||||||
mutation($discussionId: ID!, $body: String!) {
|
mutation($discussionId: ID!, $body: String!) {
|
||||||
addDiscussionComment(input: { discussionId: $discussionId, body: $body }) {
|
addDiscussionComment(input: { discussionId: $discussionId, body: $body }) {
|
||||||
@@ -106,6 +142,7 @@ jobs:
|
|||||||
|
|
||||||
console.log(`Comment Posted Successfully! Comment ID: ${commentId}`);
|
console.log(`Comment Posted Successfully! Comment ID: ${commentId}`);
|
||||||
|
|
||||||
|
// Mark comment as answer
|
||||||
const markAnswerMutation = `
|
const markAnswerMutation = `
|
||||||
mutation($id: ID!) {
|
mutation($id: ID!) {
|
||||||
markDiscussionCommentAsAnswer(input: { id: $id }) {
|
markDiscussionCommentAsAnswer(input: { id: $id }) {
|
||||||
@@ -120,7 +157,7 @@ jobs:
|
|||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error:", error);
|
console.error("Error:", error);
|
||||||
return;
|
process.exit(1);
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
EOF
|
EOF
|
||||||
|
|||||||
51
.github/workflows/close-ttek-issues.yaml
vendored
Normal file
51
.github/workflows/close-ttek-issues.yaml
vendored
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
name: Auto-Close tteck Issues
|
||||||
|
on:
|
||||||
|
issues:
|
||||||
|
types: [opened]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
close_tteck_issues:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Auto-close if tteck script detected
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const issue = context.payload.issue;
|
||||||
|
const content = `${issue.title}\n${issue.body}`;
|
||||||
|
const issueNumber = issue.number;
|
||||||
|
|
||||||
|
// Check for tteck script mention
|
||||||
|
if (content.includes("tteck") || content.includes("tteck/Proxmox")) {
|
||||||
|
const message = `Hello, it looks like you are referencing the **old tteck repo**.
|
||||||
|
|
||||||
|
This repository is no longer used for active scripts.
|
||||||
|
**Please update your bookmarks** and use: [https://helper-scripts.com](https://helper-scripts.com)
|
||||||
|
|
||||||
|
Also make sure your Bash command starts with:
|
||||||
|
\`\`\`bash
|
||||||
|
bash <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/...)
|
||||||
|
\`\`\`
|
||||||
|
|
||||||
|
This issue is being closed automatically.`;
|
||||||
|
|
||||||
|
await github.rest.issues.createComment({
|
||||||
|
...context.repo,
|
||||||
|
issue_number: issueNumber,
|
||||||
|
body: message
|
||||||
|
});
|
||||||
|
|
||||||
|
// Optionally apply a label like "not planned"
|
||||||
|
await github.rest.issues.addLabels({
|
||||||
|
...context.repo,
|
||||||
|
issue_number: issueNumber,
|
||||||
|
labels: ["not planned"]
|
||||||
|
});
|
||||||
|
|
||||||
|
// Close the issue
|
||||||
|
await github.rest.issues.update({
|
||||||
|
...context.repo,
|
||||||
|
issue_number: issueNumber,
|
||||||
|
state: "closed"
|
||||||
|
});
|
||||||
|
}
|
||||||
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
|
||||||
|
|||||||
383
CHANGELOG.md
383
CHANGELOG.md
@@ -14,6 +14,389 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
|
All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
|
||||||
|
|
||||||
|
|
||||||
|
## 2025-05-06
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- alpine-transmission ([#4277](https://github.com/community-scripts/ProxmoxVE/pull/4277))
|
||||||
|
- streamlink-webui ([#4262](https://github.com/community-scripts/ProxmoxVE/pull/4262))
|
||||||
|
- Fumadocs ([#4263](https://github.com/community-scripts/ProxmoxVE/pull/4263))
|
||||||
|
- alpine-rclone ([#4265](https://github.com/community-scripts/ProxmoxVE/pull/4265))
|
||||||
|
- alpine-tinyauth ([#4264](https://github.com/community-scripts/ProxmoxVE/pull/4264))
|
||||||
|
- Re-Add: ActualBudget [@MickLesk](https://github.com/MickLesk) ([#4228](https://github.com/community-scripts/ProxmoxVE/pull/4228))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- whiptail menu - cancel button now exists the advanced menu [@MickLesk](https://github.com/MickLesk) ([#4259](https://github.com/community-scripts/ProxmoxVE/pull/4259))
|
||||||
|
|
||||||
|
## 2025-05-05
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Alpine-Komodo [@MickLesk](https://github.com/MickLesk) ([#4234](https://github.com/community-scripts/ProxmoxVE/pull/4234))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Docker VM: Fix variable doublequoting [@tremor021](https://github.com/tremor021) ([#4245](https://github.com/community-scripts/ProxmoxVE/pull/4245))
|
||||||
|
- Alpine-Vaultwarden: Fix sed and better cert generation [@tremor021](https://github.com/tremor021) ([#4232](https://github.com/community-scripts/ProxmoxVE/pull/4232))
|
||||||
|
- Apache Guacamole: Fix Version Grepping [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4229](https://github.com/community-scripts/ProxmoxVE/pull/4229))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Docker-VM: Add Disk Size choice [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4241](https://github.com/community-scripts/ProxmoxVE/pull/4241))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Komodo update logic [@MickLesk](https://github.com/MickLesk) ([#4231](https://github.com/community-scripts/ProxmoxVE/pull/4231))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- #### 💾 Core
|
||||||
|
|
||||||
|
- tools.func: better function handling + gs as new helper [@MickLesk](https://github.com/MickLesk) ([#4238](https://github.com/community-scripts/ProxmoxVE/pull/4238))
|
||||||
|
|
||||||
|
## 2025-05-04
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Code Server: Update misleading name, description and icon. [@ArmainAP](https://github.com/ArmainAP) ([#4211](https://github.com/community-scripts/ProxmoxVE/pull/4211))
|
||||||
|
|
||||||
|
## 2025-05-03
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Vaultwarden: Enable HTTPS by default [@tremor021](https://github.com/tremor021) ([#4197](https://github.com/community-scripts/ProxmoxVE/pull/4197))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Vaultwarden: Fix access URL [@tremor021](https://github.com/tremor021) ([#4199](https://github.com/community-scripts/ProxmoxVE/pull/4199))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- SFTPGo: Switch updatable to true on website [@tremor021](https://github.com/tremor021) ([#4186](https://github.com/community-scripts/ProxmoxVE/pull/4186))
|
||||||
|
|
||||||
|
## 2025-05-02
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- NetBox: Fix typo in sed command, preventing install [@tremor021](https://github.com/tremor021) ([#4179](https://github.com/community-scripts/ProxmoxVE/pull/4179))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Changed the random script button to be the same as all the other buttons [@BramSuurdje](https://github.com/BramSuurdje) ([#4183](https://github.com/community-scripts/ProxmoxVE/pull/4183))
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- Habitica: correct config path [@DrDonoso](https://github.com/DrDonoso) ([#4181](https://github.com/community-scripts/ProxmoxVE/pull/4181))
|
||||||
|
|
||||||
|
## 2025-05-01
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Readeck: Fix release crawling [@tremor021](https://github.com/tremor021) ([#4172](https://github.com/community-scripts/ProxmoxVE/pull/4172))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- homepage: Add build time var [@burgerga](https://github.com/burgerga) ([#4167](https://github.com/community-scripts/ProxmoxVE/pull/4167))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Bump vite from 6.2.6 to 6.3.4 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#4159](https://github.com/community-scripts/ProxmoxVE/pull/4159))
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- Grafana: add config path & documentation [@JamborJan](https://github.com/JamborJan) ([#4162](https://github.com/community-scripts/ProxmoxVE/pull/4162))
|
||||||
|
|
||||||
|
## 2025-04-30
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Refactor: Matterbridge [@MickLesk](https://github.com/MickLesk) ([#4148](https://github.com/community-scripts/ProxmoxVE/pull/4148))
|
||||||
|
- Refactor: Ollama & Adding to Website [@MickLesk](https://github.com/MickLesk) ([#4147](https://github.com/community-scripts/ProxmoxVE/pull/4147))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- mark Caddy as updateable [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4154](https://github.com/community-scripts/ProxmoxVE/pull/4154))
|
||||||
|
- Website: Add missing docs and config paths [@tremor021](https://github.com/tremor021) ([#4131](https://github.com/community-scripts/ProxmoxVE/pull/4131))
|
||||||
|
|
||||||
|
## 2025-04-29
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Umlautadaptarr Service File [@MickLesk](https://github.com/MickLesk) ([#4124](https://github.com/community-scripts/ProxmoxVE/pull/4124))
|
||||||
|
- CheckMK added filter to not install beta versions [@briodan](https://github.com/briodan) ([#4118](https://github.com/community-scripts/ProxmoxVE/pull/4118))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: sabnzbd [@MickLesk](https://github.com/MickLesk) ([#4127](https://github.com/community-scripts/ProxmoxVE/pull/4127))
|
||||||
|
- Refactor: Navidrome [@MickLesk](https://github.com/MickLesk) ([#4120](https://github.com/community-scripts/ProxmoxVE/pull/4120))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- core: add setup_uv() function to automate installation and updating of uv [@MickLesk](https://github.com/MickLesk) ([#4129](https://github.com/community-scripts/ProxmoxVE/pull/4129))
|
||||||
|
- core: persist /usr/local/bin via profile.d helper [@MickLesk](https://github.com/MickLesk) ([#4133](https://github.com/community-scripts/ProxmoxVE/pull/4133))
|
||||||
|
|
||||||
|
- #### 📝 Documentation
|
||||||
|
|
||||||
|
- SECURITY.md: add pve 8.4 as supported [@MickLesk](https://github.com/MickLesk) ([#4123](https://github.com/community-scripts/ProxmoxVE/pull/4123))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Feat: Random Script picker for Website [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4090](https://github.com/community-scripts/ProxmoxVE/pull/4090))
|
||||||
|
|
||||||
|
## 2025-04-28
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- umlautadaptarr ([#4093](https://github.com/community-scripts/ProxmoxVE/pull/4093))
|
||||||
|
- documenso ([#4080](https://github.com/community-scripts/ProxmoxVE/pull/4080))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Install rsync in ct/commafeed.sh [@mzhaodev](https://github.com/mzhaodev) ([#4086](https://github.com/community-scripts/ProxmoxVE/pull/4086))
|
||||||
|
- fstrim: cancel/no whiptail support [@PonyXplosion](https://github.com/PonyXplosion) ([#4101](https://github.com/community-scripts/ProxmoxVE/pull/4101))
|
||||||
|
- clean-lxc.sh: cancel/no whiptail support [@PonyXplosion](https://github.com/PonyXplosion) ([#4102](https://github.com/community-scripts/ProxmoxVE/pull/4102))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- karakeep: add cli and mcp build commands [@vhsdream](https://github.com/vhsdream) ([#4112](https://github.com/community-scripts/ProxmoxVE/pull/4112))
|
||||||
|
- Make apt-cacher-ng a client of its own server [@pgcudahy](https://github.com/pgcudahy) ([#4092](https://github.com/community-scripts/ProxmoxVE/pull/4092))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Add: tools.func [@MickLesk](https://github.com/MickLesk) ([#4100](https://github.com/community-scripts/ProxmoxVE/pull/4100))
|
||||||
|
|
||||||
|
- #### 💾 Core
|
||||||
|
|
||||||
|
- core: remove unneeded logging [@MickLesk](https://github.com/MickLesk) ([#4103](https://github.com/community-scripts/ProxmoxVE/pull/4103))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Website: Fix frontend path in footer [@tremor021](https://github.com/tremor021) ([#4108](https://github.com/community-scripts/ProxmoxVE/pull/4108))
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- GoMFT: Move configuration info into config_path [@tremor021](https://github.com/tremor021) ([#4106](https://github.com/community-scripts/ProxmoxVE/pull/4106))
|
||||||
|
|
||||||
|
## 2025-04-27
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Re-Add DeamonSync Package [@MickLesk](https://github.com/MickLesk) ([#4079](https://github.com/community-scripts/ProxmoxVE/pull/4079))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- add default configuration file location for Caddy LXC [@aly-yvette](https://github.com/aly-yvette) ([#4074](https://github.com/community-scripts/ProxmoxVE/pull/4074))
|
||||||
|
|
||||||
|
## 2025-04-26
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Element Synapse: Fix install script cd command error [@thegeorgeliu](https://github.com/thegeorgeliu) ([#4066](https://github.com/community-scripts/ProxmoxVE/pull/4066))
|
||||||
|
|
||||||
|
## 2025-04-25
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Element Synapse: Fix update for older versions [@tremor021](https://github.com/tremor021) ([#4050](https://github.com/community-scripts/ProxmoxVE/pull/4050))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Only show update source when app is marked updateable [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4059](https://github.com/community-scripts/ProxmoxVE/pull/4059))
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- Filebrowser: Add Category Files & Donwloads [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4055](https://github.com/community-scripts/ProxmoxVE/pull/4055))
|
||||||
|
|
||||||
|
### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Removal of Seafile due to recurring problems [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4058](https://github.com/community-scripts/ProxmoxVE/pull/4058))
|
||||||
|
|
||||||
|
## 2025-04-24
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Element Synapse: Fix Admin UI install and update procedure [@tremor021](https://github.com/tremor021) ([#4041](https://github.com/community-scripts/ProxmoxVE/pull/4041))
|
||||||
|
- SLSKD: always check for soularr update [@vhsdream](https://github.com/vhsdream) ([#4012](https://github.com/community-scripts/ProxmoxVE/pull/4012))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Element Synapse: Add Synapse-Admin web UI to manage Matrix [@tremor021](https://github.com/tremor021) ([#4010](https://github.com/community-scripts/ProxmoxVE/pull/4010))
|
||||||
|
- Pi-Hole: Fix Unbound update [@CrazyWolf13](https://github.com/CrazyWolf13) ([#4026](https://github.com/community-scripts/ProxmoxVE/pull/4026))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Feat: Add config path to website [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4005](https://github.com/community-scripts/ProxmoxVE/pull/4005))
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- Jellyfin: Mark as updateable [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4029](https://github.com/community-scripts/ProxmoxVE/pull/4029))
|
||||||
|
- Prepare JSON files for new website feature [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4004](https://github.com/community-scripts/ProxmoxVE/pull/4004))
|
||||||
|
|
||||||
|
## 2025-04-23
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Zipline: Add new ENV Variable and Change Update [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#3997](https://github.com/community-scripts/ProxmoxVE/pull/3997))
|
||||||
|
- karakeep: use nightly channel for yt-dlp [@vhsdream](https://github.com/vhsdream) ([#3992](https://github.com/community-scripts/ProxmoxVE/pull/3992))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- #### 📂 Github
|
||||||
|
|
||||||
|
- Fix Workflow to close discussions [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#3999](https://github.com/community-scripts/ProxmoxVE/pull/3999))
|
||||||
|
|
||||||
|
## 2025-04-22
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- reactive-resume ([#3980](https://github.com/community-scripts/ProxmoxVE/pull/3980))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- wger: Fix a bug in update procedure and general code maintenance [@tremor021](https://github.com/tremor021) ([#3974](https://github.com/community-scripts/ProxmoxVE/pull/3974))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- #### 📂 Github
|
||||||
|
|
||||||
|
- Add workflow to close ttek Repo relatate issues [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#3981](https://github.com/community-scripts/ProxmoxVE/pull/3981))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Fix Turnkey Source Link in Button Component [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#3978](https://github.com/community-scripts/ProxmoxVE/pull/3978))
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- qBittorrent: Update web page [@tremor021](https://github.com/tremor021) ([#3969](https://github.com/community-scripts/ProxmoxVE/pull/3969))
|
||||||
|
|
||||||
|
## 2025-04-19
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- LXC Iptag [@DesertGamer](https://github.com/DesertGamer) ([#3531](https://github.com/community-scripts/ProxmoxVE/pull/3531))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- seelf: Add missing gpg dependency [@tremor021](https://github.com/tremor021) ([#3953](https://github.com/community-scripts/ProxmoxVE/pull/3953))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- Tailscale: Clarify tailscale script instruction on website [@tremor021](https://github.com/tremor021) ([#3952](https://github.com/community-scripts/ProxmoxVE/pull/3952))
|
||||||
|
|
||||||
|
## 2025-04-18
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Changedetection: Increase connection timeout for older systems [@tremor021](https://github.com/tremor021) ([#3935](https://github.com/community-scripts/ProxmoxVE/pull/3935))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- VaultWarden: Update json with additonal information [@uSlackr](https://github.com/uSlackr) ([#3929](https://github.com/community-scripts/ProxmoxVE/pull/3929))
|
||||||
|
|
||||||
|
## 2025-04-17
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- fix minor grammatical error in several scripts [@jordanpatton](https://github.com/jordanpatton) ([#3921](https://github.com/community-scripts/ProxmoxVE/pull/3921))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- PeaNUT: Fix tar command [@tremor021](https://github.com/tremor021) ([#3925](https://github.com/community-scripts/ProxmoxVE/pull/3925))
|
||||||
|
- GoMFT: Fix install and update process (final time) [@tremor021](https://github.com/tremor021) ([#3922](https://github.com/community-scripts/ProxmoxVE/pull/3922))
|
||||||
|
|
||||||
|
## 2025-04-15
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- [core] remove unneeded vars from shellcheck [@MickLesk](https://github.com/MickLesk) ([#3899](https://github.com/community-scripts/ProxmoxVE/pull/3899))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- 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))
|
||||||
|
|
||||||
|
### 🧰 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
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- openziti-controller ([#3880](https://github.com/community-scripts/ProxmoxVE/pull/3880))
|
||||||
|
- Alpine-AdGuardHome [@MickLesk](https://github.com/MickLesk) ([#3875](https://github.com/community-scripts/ProxmoxVE/pull/3875))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Paymenter: bump php to 8.3 [@opastorello](https://github.com/opastorello) ([#3825](https://github.com/community-scripts/ProxmoxVE/pull/3825))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Neo4j: Add Java dependency [@tremor021](https://github.com/tremor021) ([#3871](https://github.com/community-scripts/ProxmoxVE/pull/3871))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor Cockpit update_script part [@MickLesk](https://github.com/MickLesk) ([#3878](https://github.com/community-scripts/ProxmoxVE/pull/3878))
|
||||||
|
|
||||||
## 2025-04-12
|
## 2025-04-12
|
||||||
|
|
||||||
### 🌐 Website
|
### 🌐 Website
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ This project currently supports the following versions of Proxmox VE:
|
|||||||
|
|
||||||
| Version | Supported |
|
| Version | Supported |
|
||||||
| ------- | ------------------ |
|
| ------- | ------------------ |
|
||||||
|
| 8.4.x | :white_check_mark: |
|
||||||
| 8.3.x | :white_check_mark: |
|
| 8.3.x | :white_check_mark: |
|
||||||
| 8.2.x | :white_check_mark: |
|
| 8.2.x | :white_check_mark: |
|
||||||
| 8.1.x | :white_check_mark: |
|
| 8.1.x | :white_check_mark: |
|
||||||
|
|||||||
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=
|
|
||||||
|
|||||||
67
ct/actualbudget.sh
Normal file
67
ct/actualbudget.sh
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: MickLesk (CanbiZ)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://actualbudget.org/
|
||||||
|
|
||||||
|
APP="Actual Budget"
|
||||||
|
var_tags="finance"
|
||||||
|
var_cpu="2"
|
||||||
|
var_ram="2048"
|
||||||
|
var_disk="4"
|
||||||
|
var_os="debian"
|
||||||
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if [[ ! -d /opt/actualbudget ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
NODE_VERSION="22"
|
||||||
|
install_node_and_modules
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
if [[ -f /opt/actualbudget-data/config.json ]]; then
|
||||||
|
if [[ ! -f /opt/actualbudget_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/actualbudget_version.txt)" ]]; then
|
||||||
|
msg_info "Stopping ${APP}"
|
||||||
|
systemctl stop actualbudget
|
||||||
|
msg_ok "${APP} Stopped"
|
||||||
|
|
||||||
|
msg_info "Updating ${APP} to ${RELEASE}"
|
||||||
|
$STD npm update -g @actual-app/sync-server
|
||||||
|
echo "${RELEASE}" >/opt/actualbudget_version.txt
|
||||||
|
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||||
|
|
||||||
|
msg_info "Starting ${APP}"
|
||||||
|
systemctl start actualbudget
|
||||||
|
msg_ok "Restarted ${APP}"
|
||||||
|
else
|
||||||
|
msg_info "${APP} is already up to date"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
msg_info "Old Installation Found, you need to migrate your data and recreate to a new container"
|
||||||
|
msg_info "Please follow the instructions on the ${APP} website to migrate your data"
|
||||||
|
msg_info "https://actualbudget.org/docs/backup-restore/backup"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:5006${CL}"
|
||||||
47
ct/alpine-adguard.sh
Normal file
47
ct/alpine-adguard.sh
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: MickLesk (CanbiZ)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://adguardhome.com/
|
||||||
|
|
||||||
|
APP="Alpine-AdGuard"
|
||||||
|
var_tags="${var_tags:-alpine;adblock}"
|
||||||
|
var_cpu="${var_cpu:-1}"
|
||||||
|
var_ram="${var_ram:-256}"
|
||||||
|
var_disk="${var_disk:-1}"
|
||||||
|
var_os="${var_os:-alpine}"
|
||||||
|
var_version="${var_version:-3.21}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
msg_info "Updating Alpine Packages"
|
||||||
|
$STD apk update
|
||||||
|
$STD apk upgrade
|
||||||
|
msg_ok "Updated Alpine Packages"
|
||||||
|
|
||||||
|
msg_info "Updating AdGuard Home"
|
||||||
|
$STD /opt/AdGuardHome/AdGuardHome --update
|
||||||
|
msg_ok "Updated AdGuard Home"
|
||||||
|
|
||||||
|
msg_info "Restarting AdGuard Home"
|
||||||
|
$STD rc-service adguardhome restart
|
||||||
|
msg_ok "Restarted AdGuard Home"
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
||||||
58
ct/alpine-komodo.sh
Normal file
58
ct/alpine-komodo.sh
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: MickLesk (CanbiZ)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://komo.do
|
||||||
|
|
||||||
|
APP="Alpine-Komodo"
|
||||||
|
var_tags="${var_tags:-docker,alpine}"
|
||||||
|
var_cpu="${var_cpu:-1}"
|
||||||
|
var_ram="${var_ram:-1024}"
|
||||||
|
var_disk="${var_disk:-10}"
|
||||||
|
var_os="${var_os:-alpine}"
|
||||||
|
var_version="${var_version:-3.21}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
[[ -d /opt/komodo ]] || {
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
msg_info "Updating ${APP}"
|
||||||
|
COMPOSE_FILE=$(find /opt/komodo -maxdepth 1 -type f -name '*.compose.yaml' ! -name 'compose.env' | head -n1)
|
||||||
|
if [[ -z "$COMPOSE_FILE" ]]; then
|
||||||
|
msg_error "No valid compose file found in /opt/komodo!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
COMPOSE_BASENAME=$(basename "$COMPOSE_FILE")
|
||||||
|
BACKUP_FILE="/opt/komodo/${COMPOSE_BASENAME}.bak_$(date +%Y%m%d_%H%M%S)"
|
||||||
|
cp "$COMPOSE_FILE" "$BACKUP_FILE" || {
|
||||||
|
msg_error "Failed to create backup of ${COMPOSE_BASENAME}!"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
GITHUB_URL="https://raw.githubusercontent.com/moghtech/komodo/main/compose/${COMPOSE_BASENAME}"
|
||||||
|
if ! curl -fsSL "$GITHUB_URL" -o "$COMPOSE_FILE"; then
|
||||||
|
msg_error "Failed to download ${COMPOSE_BASENAME} from GitHub!"
|
||||||
|
mv "$BACKUP_FILE" "$COMPOSE_FILE"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
$STD docker compose -p komodo -f "$COMPOSE_FILE" --env-file /opt/komodo/compose.env up -d
|
||||||
|
msg_ok "Updated ${APP}"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9120${CL}"
|
||||||
55
ct/alpine-rclone.sh
Normal file
55
ct/alpine-rclone.sh
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: Slaviša Arežina (tremor021)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/rclone/rclone
|
||||||
|
|
||||||
|
APP="Alpine-rclone"
|
||||||
|
var_tags="${var_tags:-alpine;backup}"
|
||||||
|
var_cpu="${var_cpu:-1}"
|
||||||
|
var_ram="${var_ram:-256}"
|
||||||
|
var_disk="${var_disk:-1}"
|
||||||
|
var_os="${var_os:-alpine}"
|
||||||
|
var_version="${var_version:-3.21}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if [ ! -d /opt/rclone ]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
RELEASE=$(curl -s https://api.github.com/repos/rclone/rclone/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
if [ "${RELEASE}" != "$(cat /opt/rclone_version.txt)" ] || [ ! -f /opt/rclone_version.txt ]; then
|
||||||
|
msg_info "Updating ${APP} LXC"
|
||||||
|
temp_file=$(mktemp)
|
||||||
|
curl -fsSL "https://github.com/rclone/rclone/releases/download/v${RELEASE}/rclone-v${RELEASE}-linux-amd64.zip" -o "$temp_file"
|
||||||
|
$STD unzip -o "$temp_file" '*/**' -d /opt/rclone
|
||||||
|
rm -f "$temp_file"
|
||||||
|
echo "${RELEASE}" >/opt/rclone_version.txt
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following IP:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
||||||
70
ct/alpine-tinyauth.sh
Normal file
70
ct/alpine-tinyauth.sh
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: Slaviša Arežina (tremor021)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/steveiliop56/tinyauth
|
||||||
|
|
||||||
|
APP="Alpine-tinyauth"
|
||||||
|
var_tags="${var_tags:-alpine;auth}"
|
||||||
|
var_cpu="${var_cpu:-1}"
|
||||||
|
var_ram="${var_ram:-512}"
|
||||||
|
var_disk="${var_disk:-3}"
|
||||||
|
var_os="${var_os:-alpine}"
|
||||||
|
var_version="${var_version:-3.21}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
if [[ ! -d /opt/tinyauth ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_info "Updating Alpine Packages"
|
||||||
|
$STD apk update
|
||||||
|
$STD apk upgrade
|
||||||
|
msg_ok "Updated Alpine Packages"
|
||||||
|
|
||||||
|
msg_info "Updating tinyauth"
|
||||||
|
RELEASE=$(curl -s https://api.github.com/repos/steveiliop56/tinyauth/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
if [ "${RELEASE}" != "$(cat /opt/tinyauth_version.txt)" ] || [ ! -f /opt/tinyauth_version.txt ]; then
|
||||||
|
$STD service tinyauth stop
|
||||||
|
temp_file=$(mktemp)
|
||||||
|
cp /opt/tinyauth/.env /opt
|
||||||
|
rm -rf /opt/tinyauth
|
||||||
|
mkdir -p /opt/tinyauth
|
||||||
|
curl -fsSL "https://github.com/steveiliop56/tinyauth/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
||||||
|
tar -xzf "$temp_file" -C /opt/tinyauth --strip-components=1
|
||||||
|
cd /opt/tinyauth/frontend
|
||||||
|
$STD bun install
|
||||||
|
$STD bun run build
|
||||||
|
mv dist /opt/tinyauth/internal/assets/
|
||||||
|
cd /opt/tinyauth
|
||||||
|
$STD go mod download
|
||||||
|
CGO_ENABLED=0 go build -ldflags "-s -w"
|
||||||
|
cp /opt/.env /opt/tinyauth
|
||||||
|
echo "${RELEASE}" >/opt/tinyauth_version.txt
|
||||||
|
rm -f "$temp_file"
|
||||||
|
msg_info "Restarting tinyauth"
|
||||||
|
$STD service tinyauth start
|
||||||
|
msg_ok "Restarted tinyauth"
|
||||||
|
msg_ok "Updated tinyauth"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
||||||
45
ct/alpine-transmission.sh
Normal file
45
ct/alpine-transmission.sh
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: Slaviša Arežina (tremor021)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://transmissionbt.com/
|
||||||
|
|
||||||
|
APP="Alpine-Transmission"
|
||||||
|
var_tags="${var_tags:-alpine;torrent}"
|
||||||
|
var_cpu="${var_cpu:-1}"
|
||||||
|
var_ram="${var_ram:-256}"
|
||||||
|
var_disk="${var_disk:-1}"
|
||||||
|
var_os="${var_os:-alpine}"
|
||||||
|
var_version="${var_version:-3.21}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
msg_info "Updating Alpine Packages"
|
||||||
|
$STD apk -U upgrade
|
||||||
|
msg_ok "Updated Alpine Packages"
|
||||||
|
|
||||||
|
msg_info "Updating Transmission"
|
||||||
|
$STD apk upgrade transmission-daemon
|
||||||
|
msg_ok "Updated Transmission"
|
||||||
|
|
||||||
|
msg_info "Restarting Transmission"
|
||||||
|
$STD rc-service transmission-daemon restart
|
||||||
|
msg_ok "Restarted Transmission"
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9091${CL}"
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }' | tr ' ' '\n' | grep -v '\-rc' | sort -V | tail -n 1)
|
RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }' | tr ' ' '\n' | grep -Ev 'rc|b' | sort -V | tail -n 1)
|
||||||
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 v${RELEASE}"
|
msg_info "Updating ${APP} to v${RELEASE}"
|
||||||
$STD omd stop monitoring
|
$STD omd stop monitoring
|
||||||
|
|||||||
@@ -41,44 +41,56 @@ function update_script() {
|
|||||||
msg_ok "Updated ${APP} LXC"
|
msg_ok "Updated ${APP} LXC"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$UPD" == "2" ]; then
|
if [ "$UPD" == "2" ]; then
|
||||||
msg_info "Installing dependencies (patience)"
|
msg_info "Installing dependencies (patience)"
|
||||||
$STD apt-get install -y attr
|
$STD apt-get install -y \
|
||||||
$STD apt-get install -y nfs-kernel-server
|
attr \
|
||||||
$STD apt-get install -y samba
|
nfs-kernel-server \
|
||||||
$STD apt-get install -y samba-common-bin
|
samba \
|
||||||
$STD apt-get install -y winbind
|
samba-common-bin \
|
||||||
$STD apt-get install -y gawk
|
winbind \
|
||||||
|
gawk
|
||||||
msg_ok "Installed dependencies"
|
msg_ok "Installed dependencies"
|
||||||
msg_info "Installing Cockpit file sharing"
|
msg_info "Installing Cockpit file sharing"
|
||||||
curl -fsSL "$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-file-sharing/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)" -o $(basename "$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-file-sharing/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)")
|
URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-file-sharing/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
|
||||||
$STD dpkg -i cockpit-file-sharing_*focal_all.deb
|
FILE=$(basename "$URL")
|
||||||
rm cockpit-file-sharing_*focal_all.deb
|
curl -fsSL "$URL" -o "$FILE"
|
||||||
|
$STD dpkg -i "$FILE" || $STD apt-get install -f -y
|
||||||
|
rm -f "$FILE"
|
||||||
msg_ok "Installed Cockpit file sharing"
|
msg_ok "Installed Cockpit file sharing"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$UPD" == "3" ]; then
|
if [ "$UPD" == "3" ]; then
|
||||||
msg_info "Installing dependencies (patience)"
|
msg_info "Installing dependencies (patience)"
|
||||||
$STD apt-get install -y psmisc
|
$STD apt-get install -y \
|
||||||
$STD apt-get install -y samba
|
psmisc \
|
||||||
$STD apt-get install -y samba-common-bin
|
samba \
|
||||||
|
samba-common-bin
|
||||||
msg_ok "Installed dependencies"
|
msg_ok "Installed dependencies"
|
||||||
msg_info "Installing Cockpit identities"
|
msg_info "Installing Cockpit identities"
|
||||||
curl -fsSL "$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-identities/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)" -o $(basename "$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-identities/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)")
|
URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-identities/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
|
||||||
$STD dpkg -i cockpit-identities_*focal_all.deb
|
FILE=$(basename "$URL")
|
||||||
rm cockpit-identities_*focal_all.deb
|
curl -fsSL "$URL" -o "$FILE"
|
||||||
|
$STD dpkg -i "$FILE" || $STD apt-get install -f -y
|
||||||
|
rm -f "$FILE"
|
||||||
msg_ok "Installed Cockpit identities"
|
msg_ok "Installed Cockpit identities"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$UPD" == "4" ]; then
|
if [ "$UPD" == "4" ]; then
|
||||||
msg_info "Installing dependencies"
|
msg_info "Installing dependencies"
|
||||||
$STD apt-get install -y rsync
|
$STD apt-get install -y \
|
||||||
$STD apt-get install -y zip
|
rsync \
|
||||||
|
zip
|
||||||
msg_ok "Installed dependencies"
|
msg_ok "Installed dependencies"
|
||||||
msg_info "Installing Cockpit navigator"
|
msg_info "Installing Cockpit navigator"
|
||||||
curl -fsSL "$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-navigator/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)" -o $(basename "$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-navigator/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)")
|
URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-navigator/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
|
||||||
$STD dpkg -i cockpit-navigator_*focal_all.deb
|
FILE=$(basename "$URL")
|
||||||
rm cockpit-navigator_*focal_all.deb
|
curl -fsSL "$URL" -o "$FILE"
|
||||||
|
$STD dpkg -i "$FILE" || $STD apt-get install -f -y
|
||||||
|
rm -f "$FILE"
|
||||||
msg_ok "Installed Cockpit navigator"
|
msg_ok "Installed Cockpit navigator"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -33,6 +33,13 @@ function update_script() {
|
|||||||
systemctl stop commafeed
|
systemctl stop commafeed
|
||||||
msg_ok "Stopped ${APP}"
|
msg_ok "Stopped ${APP}"
|
||||||
|
|
||||||
|
if ! [[ $(dpkg -s rsync 2>/dev/null) ]]; then
|
||||||
|
msg_info "Installing Dependencies"
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get install -y rsync
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
fi
|
||||||
|
|
||||||
msg_info "Updating ${APP} to ${RELEASE}"
|
msg_info "Updating ${APP} to ${RELEASE}"
|
||||||
curl -fsSL "https://github.com/Athou/commafeed/releases/download/${RELEASE}/commafeed-${RELEASE}-h2-jvm.zip" -o $(basename "https://github.com/Athou/commafeed/releases/download/${RELEASE}/commafeed-${RELEASE}-h2-jvm.zip")
|
curl -fsSL "https://github.com/Athou/commafeed/releases/download/${RELEASE}/commafeed-${RELEASE}-h2-jvm.zip" -o $(basename "https://github.com/Athou/commafeed/releases/download/${RELEASE}/commafeed-${RELEASE}-h2-jvm.zip")
|
||||||
unzip -q commafeed-"${RELEASE}"-h2-jvm.zip
|
unzip -q commafeed-"${RELEASE}"-h2-jvm.zip
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ function select_storage() {
|
|||||||
local STORAGE
|
local STORAGE
|
||||||
while [ -z "${STORAGE:+x}" ]; do
|
while [ -z "${STORAGE:+x}" ]; do
|
||||||
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 ${CONTENT_LABEL,,}?\nTo make a selection, use the Spacebar.\n" \
|
"Which storage pool would you like to use for the ${CONTENT_LABEL,,}?\nTo make a selection, use the Spacebar.\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${MENU[@]}" 3>&1 1>&2 2>&3) || {
|
"${MENU[@]}" 3>&1 1>&2 2>&3) || {
|
||||||
msg_error "Menu aborted."
|
msg_error "Menu aborted."
|
||||||
@@ -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."
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ function update_script() {
|
|||||||
cp -r /opt/docmost/data /opt/
|
cp -r /opt/docmost/data /opt/
|
||||||
rm -rf /opt/docmost
|
rm -rf /opt/docmost
|
||||||
temp_file=$(mktemp)
|
temp_file=$(mktemp)
|
||||||
curl -fsSL "https://github.com/docmost/docmost/archive/refs/tags/v${RELEASE}.tar.gz" -o ""$temp_file""
|
curl -fsSL "https://github.com/docmost/docmost/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
||||||
tar -xzf "$temp_file"
|
tar -xzf "$temp_file"
|
||||||
mv docmost-${RELEASE} /opt/docmost
|
mv docmost-${RELEASE} /opt/docmost
|
||||||
cd /opt/docmost
|
cd /opt/docmost
|
||||||
|
|||||||
72
ct/documenso.sh
Normal file
72
ct/documenso.sh
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: MickLesk (CanbiZ)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/documenso/documenso
|
||||||
|
|
||||||
|
APP="Documenso"
|
||||||
|
var_tags="${var_tags:-document}"
|
||||||
|
var_disk="${var_disk:-12}"
|
||||||
|
var_cpu="${var_cpu:-6}"
|
||||||
|
var_ram="${var_ram:-6144}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-12}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -d /opt/documenso ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/documenso/documenso/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
|
msg_info "Stopping ${APP}"
|
||||||
|
systemctl stop documenso
|
||||||
|
msg_ok "${APP} Stopped"
|
||||||
|
|
||||||
|
msg_info "Updating ${APP} to ${RELEASE}"
|
||||||
|
cp /opt/documenso/.env /opt/
|
||||||
|
rm -rf /opt/documenso
|
||||||
|
cd /opt
|
||||||
|
curl -fsSL "https://github.com/documenso/documenso/archive/refs/tags/v${RELEASE}.zip" -o v${RELEASE}.zip
|
||||||
|
unzip -q v${RELEASE}.zip
|
||||||
|
mv documenso-${RELEASE} /opt/documenso
|
||||||
|
cd /opt/documenso
|
||||||
|
mv /opt/.env /opt/documenso/.env
|
||||||
|
$STD npm install
|
||||||
|
$STD npm run build:web
|
||||||
|
$STD npm run prisma:migrate-deploy
|
||||||
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
|
msg_ok "Updated ${APP}"
|
||||||
|
|
||||||
|
msg_info "Starting ${APP}"
|
||||||
|
systemctl start documenso
|
||||||
|
msg_ok "Started ${APP}"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf /opt/v${RELEASE}.zip
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
||||||
@@ -20,18 +20,54 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /etc/matrix-synapse ]]; then
|
if [[ ! -d /etc/matrix-synapse ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
|
||||||
fi
|
|
||||||
msg_info "Updating $APP LXC"
|
|
||||||
$STD apt-get update
|
|
||||||
$STD apt-get -y upgrade
|
|
||||||
msg_ok "Updated $APP LXC"
|
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
if [[ ! -f /opt/"${APP}"_version.txt ]]; then
|
||||||
|
touch /opt/"${APP}"_version.txt
|
||||||
|
fi
|
||||||
|
if ! dpkg -l | grep -q '^ii.*gpg'; then
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get install -y gpg
|
||||||
|
fi
|
||||||
|
if [[ ! -x /usr/bin/node ]]; then
|
||||||
|
mkdir -p /etc/apt/keyrings
|
||||||
|
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
|
||||||
|
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get install -y nodejs
|
||||||
|
$STD npm install -g yarn
|
||||||
|
fi
|
||||||
|
msg_info "Updating $APP LXC"
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get -y upgrade
|
||||||
|
msg_ok "Updated $APP LXC"
|
||||||
|
|
||||||
|
if [[ -f /systemd/system/synapse-admin.service ]]; then
|
||||||
|
msg_info "Updating Synapse-Admin"
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/etkecc/synapse-admin/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
if [[ "${RELEASE}" != "$(cat /opt/"${APP}"_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||||
|
temp_file=$(mktemp)
|
||||||
|
systemctl stop synapse-admin
|
||||||
|
rm -rf /opt/synapse-admin
|
||||||
|
mkdir -p /opt/synapse-admin
|
||||||
|
curl -fsSL "https://github.com/etkecc/synapse-admin/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
||||||
|
tar xzf "$temp_file" -C /opt/synapse-admin --strip-components=1
|
||||||
|
cd /opt/synapse-admin
|
||||||
|
$STD yarn install --ignore-engines
|
||||||
|
systemctl start synapse-admin
|
||||||
|
echo "${RELEASE}" >/opt/"${APP}"_version.txt
|
||||||
|
rm -f "$temp_file"
|
||||||
|
msg_ok "Update Successful"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@@ -41,4 +77,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}:8008${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8008${CL}"
|
||||||
|
|||||||
@@ -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}"
|
||||||
|
|||||||
72
ct/fumadocs.sh
Normal file
72
ct/fumadocs.sh
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: MickLesk (CanbiZ)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/fuma-nama/fumadoc
|
||||||
|
|
||||||
|
APP="Fumadocs"
|
||||||
|
var_tags="${var_tags:-documentation}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-2048}"
|
||||||
|
var_disk="${var_disk:-5}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-12}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if [[ ! -d /opt/fumadocs ]]; then
|
||||||
|
msg_error "No installation found in /opt/fumadocs!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f /opt/fumadocs/.projectname ]]; then
|
||||||
|
msg_error "Project name file not found: /opt/fumadocs/.projectname!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
NODE_VERSION="22" NODE_MODULE="pnpm@latest" install_node_and_modules
|
||||||
|
PROJECT_NAME=$(</opt/fumadocs/.projectname)
|
||||||
|
PROJECT_DIR="/opt/fumadocs/${PROJECT_NAME}"
|
||||||
|
SERVICE_NAME="fumadocs_${PROJECT_NAME}.service"
|
||||||
|
|
||||||
|
if [[ ! -d "$PROJECT_DIR" ]]; then
|
||||||
|
msg_error "Project directory does not exist: $PROJECT_DIR"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_info "Stopping service $SERVICE_NAME"
|
||||||
|
systemctl stop "$SERVICE_NAME"
|
||||||
|
msg_ok "Stopped service $SERVICE_NAME"
|
||||||
|
|
||||||
|
msg_info "Updating dependencies using pnpm"
|
||||||
|
cd "$PROJECT_DIR"
|
||||||
|
$STD pnpm up --latest
|
||||||
|
$STD pnpm build
|
||||||
|
msg_ok "Updated dependencies using pnpm"
|
||||||
|
|
||||||
|
msg_info "Starting service $SERVICE_NAME"
|
||||||
|
systemctl start "$SERVICE_NAME"
|
||||||
|
msg_ok "Started service $SERVICE_NAME"
|
||||||
|
|
||||||
|
msg_ok "Fumadocs successfully updated"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
||||||
@@ -50,12 +50,9 @@ 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
|
$STD npm install
|
||||||
$STD npm ci
|
$STD npm run build
|
||||||
$STD node build.js
|
|
||||||
$STD go mod download
|
|
||||||
$STD go get -u github.com/a-h/templ
|
|
||||||
$STD "$HOME"/go/bin/templ generate
|
$STD "$HOME"/go/bin/templ generate
|
||||||
export CGO_ENABLED=1
|
export CGO_ENABLED=1
|
||||||
export GOOS=linux
|
export GOOS=linux
|
||||||
|
|||||||
6
ct/headers/actualbudget
Normal file
6
ct/headers/actualbudget
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
___ __ __ ____ __ __
|
||||||
|
/ | _____/ /___ ______ _/ / / __ )__ ______/ /___ ____ / /_
|
||||||
|
/ /| |/ ___/ __/ / / / __ `/ / / __ / / / / __ / __ `/ _ \/ __/
|
||||||
|
/ ___ / /__/ /_/ /_/ / /_/ / / / /_/ / /_/ / /_/ / /_/ / __/ /_
|
||||||
|
/_/ |_\___/\__/\__,_/\__,_/_/ /_____/\__,_/\__,_/\__, /\___/\__/
|
||||||
|
/____/
|
||||||
6
ct/headers/alpine-adguard
Normal file
6
ct/headers/alpine-adguard
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
___ __ _ ___ ________ __
|
||||||
|
/ | / /___ (_)___ ___ / | ____/ / ____/_ ______ __________/ /
|
||||||
|
/ /| | / / __ \/ / __ \/ _ \______/ /| |/ __ / / __/ / / / __ `/ ___/ __ /
|
||||||
|
/ ___ |/ / /_/ / / / / / __/_____/ ___ / /_/ / /_/ / /_/ / /_/ / / / /_/ /
|
||||||
|
/_/ |_/_/ .___/_/_/ /_/\___/ /_/ |_\__,_/\____/\__,_/\__,_/_/ \__,_/
|
||||||
|
/_/
|
||||||
6
ct/headers/alpine-komodo
Normal file
6
ct/headers/alpine-komodo
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
___ __ _ __ __ __
|
||||||
|
/ | / /___ (_)___ ___ / //_/___ ____ ___ ____ ____/ /___
|
||||||
|
/ /| | / / __ \/ / __ \/ _ \______/ ,< / __ \/ __ `__ \/ __ \/ __ / __ \
|
||||||
|
/ ___ |/ / /_/ / / / / / __/_____/ /| / /_/ / / / / / / /_/ / /_/ / /_/ /
|
||||||
|
/_/ |_/_/ .___/_/_/ /_/\___/ /_/ |_\____/_/ /_/ /_/\____/\__,_/\____/
|
||||||
|
/_/
|
||||||
6
ct/headers/alpine-rclone
Normal file
6
ct/headers/alpine-rclone
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
___ __ _ __
|
||||||
|
/ | / /___ (_)___ ___ __________/ /___ ____ ___
|
||||||
|
/ /| | / / __ \/ / __ \/ _ \______/ ___/ ___/ / __ \/ __ \/ _ \
|
||||||
|
/ ___ |/ / /_/ / / / / / __/_____/ / / /__/ / /_/ / / / / __/
|
||||||
|
/_/ |_/_/ .___/_/_/ /_/\___/ /_/ \___/_/\____/_/ /_/\___/
|
||||||
|
/_/
|
||||||
6
ct/headers/alpine-tinyauth
Normal file
6
ct/headers/alpine-tinyauth
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
___ __ _ __ _ __ __
|
||||||
|
/ | / /___ (_)___ ___ / /_(_)___ __ ______ ___ __/ /_/ /_
|
||||||
|
/ /| | / / __ \/ / __ \/ _ \______/ __/ / __ \/ / / / __ `/ / / / __/ __ \
|
||||||
|
/ ___ |/ / /_/ / / / / / __/_____/ /_/ / / / / /_/ / /_/ / /_/ / /_/ / / /
|
||||||
|
/_/ |_/_/ .___/_/_/ /_/\___/ \__/_/_/ /_/\__, /\__,_/\__,_/\__/_/ /_/
|
||||||
|
/_/ /____/
|
||||||
6
ct/headers/alpine-transmission
Normal file
6
ct/headers/alpine-transmission
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
___ __ _ ______ _ _
|
||||||
|
/ | / /___ (_)___ ___ /_ __/________ _____ _________ ___ (_)_________(_)___ ____
|
||||||
|
/ /| | / / __ \/ / __ \/ _ \______/ / / ___/ __ `/ __ \/ ___/ __ `__ \/ / ___/ ___/ / __ \/ __ \
|
||||||
|
/ ___ |/ / /_/ / / / / / __/_____/ / / / / /_/ / / / (__ ) / / / / / (__ |__ ) / /_/ / / / /
|
||||||
|
/_/ |_/_/ .___/_/_/ /_/\___/ /_/ /_/ \__,_/_/ /_/____/_/ /_/ /_/_/____/____/_/\____/_/ /_/
|
||||||
|
/_/
|
||||||
6
ct/headers/documenso
Normal file
6
ct/headers/documenso
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
____
|
||||||
|
/ __ \____ _______ ______ ___ ___ ____ _________
|
||||||
|
/ / / / __ \/ ___/ / / / __ `__ \/ _ \/ __ \/ ___/ __ \
|
||||||
|
/ /_/ / /_/ / /__/ /_/ / / / / / / __/ / / (__ ) /_/ /
|
||||||
|
/_____/\____/\___/\__,_/_/ /_/ /_/\___/_/ /_/____/\____/
|
||||||
|
|
||||||
6
ct/headers/fumadocs
Normal file
6
ct/headers/fumadocs
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
______ __
|
||||||
|
/ ____/_ ______ ___ ____ _____/ /___ __________
|
||||||
|
/ /_ / / / / __ `__ \/ __ `/ __ / __ \/ ___/ ___/
|
||||||
|
/ __/ / /_/ / / / / / / /_/ / /_/ / /_/ / /__(__ )
|
||||||
|
/_/ \__,_/_/ /_/ /_/\__,_/\__,_/\____/\___/____/
|
||||||
|
|
||||||
6
ct/headers/openziti-controller
Normal file
6
ct/headers/openziti-controller
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
_ __ _ __ ____
|
||||||
|
____ ____ ___ ____ ____ (_) /_(_) _________ ____ / /__________ / / /__ _____
|
||||||
|
/ __ \/ __ \/ _ \/ __ \/_ / / / __/ /_____/ ___/ __ \/ __ \/ __/ ___/ __ \/ / / _ \/ ___/
|
||||||
|
/ /_/ / /_/ / __/ / / / / /_/ / /_/ /_____/ /__/ /_/ / / / / /_/ / / /_/ / / / __/ /
|
||||||
|
\____/ .___/\___/_/ /_/ /___/_/\__/_/ \___/\____/_/ /_/\__/_/ \____/_/_/\___/_/
|
||||||
|
/_/
|
||||||
6
ct/headers/reactive-resume
Normal file
6
ct/headers/reactive-resume
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
____ __ _ ____
|
||||||
|
/ __ \___ ____ ______/ /_(_) _____ / __ \___ _______ ______ ___ ___
|
||||||
|
/ /_/ / _ \/ __ `/ ___/ __/ / | / / _ \______/ /_/ / _ \/ ___/ / / / __ `__ \/ _ \
|
||||||
|
/ _, _/ __/ /_/ / /__/ /_/ /| |/ / __/_____/ _, _/ __(__ ) /_/ / / / / / / __/
|
||||||
|
/_/ |_|\___/\__,_/\___/\__/_/ |___/\___/ /_/ |_|\___/____/\__,_/_/ /_/ /_/\___/
|
||||||
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
_____ _____ __
|
|
||||||
/ ___/___ ____ _/ __(_) /__
|
|
||||||
\__ \/ _ \/ __ `/ /_/ / / _ \
|
|
||||||
___/ / __/ /_/ / __/ / / __/
|
|
||||||
/____/\___/\__,_/_/ /_/_/\___/
|
|
||||||
|
|
||||||
6
ct/headers/streamlink-webui
Normal file
6
ct/headers/streamlink-webui
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
__ ___ __ __ _
|
||||||
|
_____/ /_________ ____ _____ ___ / (_)___ / /__ _ _____ / /_ __ __(_)
|
||||||
|
/ ___/ __/ ___/ _ \/ __ `/ __ `__ \/ / / __ \/ //_/____| | /| / / _ \/ __ \/ / / / /
|
||||||
|
(__ ) /_/ / / __/ /_/ / / / / / / / / / / / ,< /_____/ |/ |/ / __/ /_/ / /_/ / /
|
||||||
|
/____/\__/_/ \___/\__,_/_/ /_/ /_/_/_/_/ /_/_/|_| |__/|__/\___/_.___/\__,_/_/
|
||||||
|
|
||||||
6
ct/headers/umlautadaptarr
Normal file
6
ct/headers/umlautadaptarr
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
__ __ __ __ ___ __ __
|
||||||
|
/ / / /___ ___ / /___ ___ __/ /_/ | ____/ /___ _____ / /_____ ___________
|
||||||
|
/ / / / __ `__ \/ / __ `/ / / / __/ /| |/ __ / __ `/ __ \/ __/ __ `/ ___/ ___/
|
||||||
|
/ /_/ / / / / / / / /_/ / /_/ / /_/ ___ / /_/ / /_/ / /_/ / /_/ /_/ / / / /
|
||||||
|
\____/_/ /_/ /_/_/\__,_/\__,_/\__/_/ |_\__,_/\__,_/ .___/\__/\__,_/_/ /_/
|
||||||
|
/_/
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
_ ____ __
|
|
||||||
| | / / /_ ____ ____ ____ _/ /__
|
|
||||||
| | /| / / __ \/ __ \/ __ \/ __ `/ / _ \
|
|
||||||
| |/ |/ / / / / /_/ / /_/ / /_/ / / __/
|
|
||||||
|__/|__/_/ /_/\____/\____/\__, /_/\___/
|
|
||||||
/____/
|
|
||||||
@@ -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}"
|
||||||
|
|||||||
@@ -35,6 +35,15 @@ function update_script() {
|
|||||||
echo "Installed NPM..."
|
echo "Installed NPM..."
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
# ensure that jq is installed
|
||||||
|
if ! command -v jq &>/dev/null; then
|
||||||
|
$STD msg_info "Installing jq..."
|
||||||
|
$STD apt-get update -qq &>/dev/null
|
||||||
|
$STD apt-get install -y jq &>/dev/null || {
|
||||||
|
msg_error "Failed to install jq"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
fi
|
||||||
LOCAL_IP=$(hostname -I | awk '{print $1}')
|
LOCAL_IP=$(hostname -I | awk '{print $1}')
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/gethomepage/homepage/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/gethomepage/homepage/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||||
@@ -50,6 +59,7 @@ function update_script() {
|
|||||||
$STD npx --yes update-browserslist-db@latest
|
$STD npx --yes update-browserslist-db@latest
|
||||||
export NEXT_PUBLIC_VERSION="v$RELEASE"
|
export NEXT_PUBLIC_VERSION="v$RELEASE"
|
||||||
export NEXT_PUBLIC_REVISION="source"
|
export NEXT_PUBLIC_REVISION="source"
|
||||||
|
export NEXT_PUBLIC_BUILDTIME=$(curl -fsSL https://api.github.com/repos/gethomepage/homepage/releases/latest | jq -r '.published_at')
|
||||||
export NEXT_TELEMETRY_DISABLED=1
|
export NEXT_TELEMETRY_DISABLED=1
|
||||||
$STD pnpm build
|
$STD pnpm build
|
||||||
if [[ ! -f /opt/homepage/.env ]]; then
|
if [[ ! -f /opt/homepage/.env ]]; then
|
||||||
|
|||||||
@@ -33,6 +33,9 @@ function update_script() {
|
|||||||
msg_info "Stopping Services"
|
msg_info "Stopping Services"
|
||||||
systemctl stop karakeep-web karakeep-workers karakeep-browser
|
systemctl stop karakeep-web karakeep-workers karakeep-browser
|
||||||
msg_ok "Stopped Services"
|
msg_ok "Stopped Services"
|
||||||
|
msg_info "Updating yt-dlp"
|
||||||
|
$STD yt-dlp --update-to nightly
|
||||||
|
msg_ok "Updated yt-dlp"
|
||||||
msg_info "Updating ${APP} to v${RELEASE}"
|
msg_info "Updating ${APP} to v${RELEASE}"
|
||||||
if [[ $(corepack -v) < "0.31.0" ]]; then
|
if [[ $(corepack -v) < "0.31.0" ]]; then
|
||||||
$STD npm install -g corepack@0.31.0
|
$STD npm install -g corepack@0.31.0
|
||||||
@@ -40,7 +43,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 +52,19 @@ 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 build
|
||||||
cp -r /opt/karakeep/apps/web/.next/standalone/apps/web/server.js /opt/karakeep/apps/web
|
cd /opt/karakeep/apps/workers
|
||||||
cd /opt/karakeep/apps/workers || exit
|
|
||||||
$STD pnpm install --frozen-lockfile
|
$STD pnpm install --frozen-lockfile
|
||||||
|
cd /opt/karakeep/apps/cli
|
||||||
|
$STD pnpm install --frozen-lockfile
|
||||||
|
$STD pnpm build
|
||||||
|
cd /opt/karakeep/apps/mcp
|
||||||
|
$STD pnpm install --frozen-lockfile
|
||||||
|
$STD pnpm build
|
||||||
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
|
||||||
|
|||||||
62
ct/komodo.sh
62
ct/komodo.sh
@@ -20,42 +20,36 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/komodo ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
msg_info "Updating ${APP}"
|
|
||||||
COMPOSE_FILE=""
|
|
||||||
for file in /opt/komodo/*.compose.yaml; do
|
|
||||||
if [[ "$file" != "compose.env" ]]; then
|
|
||||||
COMPOSE_FILE="${file#/opt/komodo/}"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ -z "$COMPOSE_FILE" ]]; then
|
[[ -d /opt/komodo ]] || {
|
||||||
msg_error "No valid compose file found in /opt/komodo!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
}
|
||||||
|
|
||||||
BACKUP_FILE="${COMPOSE_FILE}.bak_$(date +%Y%m%d_%H%M%S)"
|
msg_info "Updating ${APP}"
|
||||||
mv "/opt/komodo/$COMPOSE_FILE" "/opt/komodo/$BACKUP_FILE" || {
|
COMPOSE_FILE=$(find /opt/komodo -maxdepth 1 -type f -name '*.compose.yaml' ! -name 'compose.env' | head -n1)
|
||||||
msg_error "Failed to create backup of $COMPOSE_FILE!"
|
if [[ -z "$COMPOSE_FILE" ]]; then
|
||||||
exit 1
|
msg_error "No valid compose file found in /opt/komodo!"
|
||||||
}
|
exit 1
|
||||||
|
fi
|
||||||
GITHUB_URL="https://raw.githubusercontent.com/moghtech/komodo/main/compose/${COMPOSE_FILE}"
|
COMPOSE_BASENAME=$(basename "$COMPOSE_FILE")
|
||||||
if ! curl -fsSL "$GITHUB_URL" -o "/opt/komodo/${COMPOSE_FILE}"; then
|
BACKUP_FILE="/opt/komodo/${COMPOSE_BASENAME}.bak_$(date +%Y%m%d_%H%M%S)"
|
||||||
msg_error "Failed to download ${COMPOSE_FILE} from GitHub!"
|
cp "$COMPOSE_FILE" "$BACKUP_FILE" || {
|
||||||
mv "/opt/komodo/${BACKUP_FILE}" "/opt/komodo/${COMPOSE_FILE}"
|
msg_error "Failed to create backup of ${COMPOSE_BASENAME}!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
}
|
||||||
|
GITHUB_URL="https://raw.githubusercontent.com/moghtech/komodo/main/compose/${COMPOSE_BASENAME}"
|
||||||
$STD docker compose -p komodo -f "/opt/komodo/$COMPOSE_FILE" --env-file /opt/komodo/compose.env up -d
|
if ! curl -fsSL "$GITHUB_URL" -o "$COMPOSE_FILE"; then
|
||||||
msg_ok "Updated ${APP}"
|
msg_error "Failed to download ${COMPOSE_BASENAME} from GitHub!"
|
||||||
|
mv "$BACKUP_FILE" "$COMPOSE_FILE"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
$STD docker compose -p komodo -f "$COMPOSE_FILE" --env-file /opt/komodo/compose.env up -d
|
||||||
|
msg_ok "Updated ${APP}"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
|
|||||||
@@ -28,6 +28,10 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||||
|
NODE_VERSION="22"
|
||||||
|
NODE_MODULE="yarn@latest"
|
||||||
|
install_node_and_modules
|
||||||
|
|
||||||
msg_info "Stopping ${APP}"
|
msg_info "Stopping ${APP}"
|
||||||
systemctl stop linkwarden
|
systemctl stop linkwarden
|
||||||
msg_ok "Stopped ${APP}"
|
msg_ok "Stopped ${APP}"
|
||||||
@@ -46,7 +50,7 @@ function update_script() {
|
|||||||
mv /opt/linkwarden/.env /opt/.env
|
mv /opt/linkwarden/.env /opt/.env
|
||||||
rm -rf /opt/linkwarden
|
rm -rf /opt/linkwarden
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
curl -fsSL "https://github.com/linkwarden/linkwarden/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/linkwarden/linkwarden/archive/refs/tags/${RELEASE}.zip")
|
curl -fsSL "https://github.com/linkwarden/linkwarden/archive/refs/tags/${RELEASE}.zip" -o ${RELEASE}.zip
|
||||||
unzip -q ${RELEASE}.zip
|
unzip -q ${RELEASE}.zip
|
||||||
mv linkwarden-${RELEASE:1} /opt/linkwarden
|
mv linkwarden-${RELEASE:1} /opt/linkwarden
|
||||||
cd /opt/linkwarden
|
cd /opt/linkwarden
|
||||||
@@ -54,8 +58,9 @@ function update_script() {
|
|||||||
$STD npx playwright install-deps
|
$STD npx playwright install-deps
|
||||||
$STD yarn playwright install
|
$STD yarn playwright install
|
||||||
cp /opt/.env /opt/linkwarden/.env
|
cp /opt/.env /opt/linkwarden/.env
|
||||||
$STD yarn build
|
$STD yarn prisma:generate
|
||||||
$STD yarn prisma migrate deploy
|
$STD yarn web:build
|
||||||
|
$STD yarn prisma:deploy
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,11 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
msg_error "Update via the Matterbridge UI"
|
$STD apt-get update
|
||||||
|
$STD apt-get upgrade -y
|
||||||
|
NODE_VERSION="22"
|
||||||
|
NODE_MODULE="matterbridge"
|
||||||
|
install_node_and_modules
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -38,4 +42,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}:8283${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8283${CL}"
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2025 tteck
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
# Author: tteck (tteckster)
|
# Author: MickLesk (CanbiZ)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://www.navidrome.org/
|
# Source: https://github.com/navidrome/navidrome
|
||||||
|
|
||||||
APP="Navidrome"
|
APP="Navidrome"
|
||||||
var_tags="${var_tags:-music}"
|
var_tags="${var_tags:-music}"
|
||||||
@@ -23,27 +23,35 @@ function update_script() {
|
|||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/navidrome ]]; then
|
if [[ ! -d /var/lib/navidrome ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/navidrome/navidrome/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -fsSL https://api.github.com/repos/navidrome/navidrome/releases/latest | grep "tag_name" | awk -F '"' '{print $4}')
|
||||||
msg_info "Stopping ${APP}"
|
if [[ ! -f /opt/${APP}_version.txt ]]; then touch /opt/${APP}_version.txt; fi
|
||||||
systemctl stop navidrome
|
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
msg_ok "Stopped Navidrome"
|
msg_info "Stopping Services"
|
||||||
|
systemctl stop navidrome
|
||||||
|
msg_ok "Services Stopped"
|
||||||
|
|
||||||
msg_info "Updating to v${RELEASE}"
|
msg_info "Updating ${APP} to ${RELEASE}"
|
||||||
cd /opt
|
TMP_DEB=$(mktemp --suffix=.deb)
|
||||||
curl -fsSL "https://github.com/navidrome/navidrome/releases/download/v${RELEASE}/navidrome_${RELEASE}_linux_amd64.tar.gz" -o "Navidrome.tar.gz"
|
curl -fsSL -o "${TMP_DEB}" "https://github.com/navidrome/navidrome/releases/download/${RELEASE}/navidrome_${RELEASE#v}_linux_amd64.deb"
|
||||||
$STD tar -xvzf Navidrome.tar.gz -C /opt/navidrome/
|
$STD apt-get install -y "${TMP_DEB}"
|
||||||
chmod +x /opt/navidrome/navidrome
|
echo "${RELEASE}" >/opt/"${APP}_version.txt"
|
||||||
msg_ok "Updated ${APP}"
|
msg_ok "Updated Navidrome"
|
||||||
rm -rf /opt/Navidrome.tar.gz
|
|
||||||
|
|
||||||
msg_info "Starting ${APP}"
|
msg_info "Starting Services"
|
||||||
systemctl start navidrome.service
|
systemctl start navidrome
|
||||||
msg_ok "Started ${APP}"
|
msg_ok "Started Services"
|
||||||
msg_ok "Updated Successfully"
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -f "${TMP_DEB}"
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
fi
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,4 +62,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}:4533${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:4533${CL}"
|
||||||
|
|||||||
36
ct/neo4j.sh
36
ct/neo4j.sh
@@ -20,18 +20,30 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /etc/neo4j ]]; then
|
if [[ ! -d /etc/neo4j ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
|
||||||
fi
|
|
||||||
msg_info "Updating ${APP}"
|
|
||||||
$STD apt-get update
|
|
||||||
$STD apt-get -y upgrade
|
|
||||||
msg_ok "Updated Successfully"
|
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
if ! dpkg -l | grep -q temurin-21-jre; then
|
||||||
|
msg_info "Installing Adoptium JDK"
|
||||||
|
$STD apt-get install -y \
|
||||||
|
gnupg2 \
|
||||||
|
lsb-release
|
||||||
|
mkdir -p /etc/apt/keyrings
|
||||||
|
curl -fsSL https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor >/etc/apt/trusted.gpg.d/adoptium.gpg
|
||||||
|
echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" >/etc/apt/sources.list.d/adoptium.list
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get install -y temurin-21-jre
|
||||||
|
msg_ok "Adoptium JDK installed"
|
||||||
|
fi
|
||||||
|
msg_info "Updating ${APP}"
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get -y upgrade
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@@ -41,4 +53,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}:7474${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7474${CL}"
|
||||||
|
|||||||
@@ -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}"
|
||||||
|
|||||||
54
ct/ollama.sh
54
ct/ollama.sh
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2025 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck | Co-Author: havardthom
|
# Author: havardthom | Co-Author: MickLesk (CanbiZ)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://ollama.com/
|
# Source: https://ollama.com/
|
||||||
|
|
||||||
@@ -9,9 +9,9 @@ APP="Ollama"
|
|||||||
var_tags="${var_tags:-ai}"
|
var_tags="${var_tags:-ai}"
|
||||||
var_cpu="${var_cpu:-4}"
|
var_cpu="${var_cpu:-4}"
|
||||||
var_ram="${var_ram:-4096}"
|
var_ram="${var_ram:-4096}"
|
||||||
var_disk="${var_disk:-24}"
|
var_disk="${var_disk:-35}"
|
||||||
var_os="${var_os:-ubuntu}"
|
var_os="${var_os:-ubuntu}"
|
||||||
var_version="${var_version:-22.04}"
|
var_version="${var_version:-24.04}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
variables
|
variables
|
||||||
@@ -19,18 +19,42 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/ollama ]]; then
|
if [[ ! -d /usr/local/lib/ollama ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No Ollama Installation Found!"
|
||||||
exit
|
|
||||||
fi
|
|
||||||
msg_info "Updating ${APP}"
|
|
||||||
$STD apt-get update
|
|
||||||
$STD apt-get -y upgrade
|
|
||||||
msg_ok "Updated Successfully"
|
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/ollama/ollama/releases/latest | grep "tag_name" | awk -F '"' '{print $4}')
|
||||||
|
if [[ ! -f /opt/Ollama_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/Ollama_version.txt)" ]]; then
|
||||||
|
if [[ ! -f /opt/Ollama_version.txt ]]; then
|
||||||
|
touch /opt/Ollama_version.txt
|
||||||
|
fi
|
||||||
|
msg_info "Stopping Services"
|
||||||
|
systemctl stop ollama
|
||||||
|
msg_ok "Services Stopped"
|
||||||
|
|
||||||
|
TMP_TAR=$(mktemp --suffix=.tgz)
|
||||||
|
curl -fL# -o "${TMP_TAR}" "https://github.com/ollama/ollama/releases/download/${RELEASE}/ollama-linux-amd64.tgz"
|
||||||
|
msg_info "Updating Ollama to ${RELEASE}"
|
||||||
|
tar -xzf "${TMP_TAR}" -C /usr/local/lib/ollama
|
||||||
|
ln -sf /usr/local/lib/ollama/bin/ollama /usr/local/bin/ollama
|
||||||
|
echo "${RELEASE}" >/opt/Ollama_version.txt
|
||||||
|
msg_ok "Updated Ollama to ${RELEASE}"
|
||||||
|
|
||||||
|
msg_info "Starting Services"
|
||||||
|
systemctl start ollama
|
||||||
|
msg_ok "Started Services"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -f "${TMP_TAR}"
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. Ollama is already at ${RELEASE}"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@@ -40,4 +64,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}:14434${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:11434${CL}"
|
||||||
|
|||||||
21
ct/omada.sh
21
ct/omada.sh
@@ -8,7 +8,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
APP="Omada"
|
APP="Omada"
|
||||||
var_tags="${var_tags:-tp-link;controller}"
|
var_tags="${var_tags:-tp-link;controller}"
|
||||||
var_cpu="${var_cpu:-2}"
|
var_cpu="${var_cpu:-2}"
|
||||||
var_ram="${var_ram:-2048}"
|
var_ram="${var_ram:-3072}"
|
||||||
var_disk="${var_disk:-8}"
|
var_disk="${var_disk:-8}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-12}"
|
var_version="${var_version:-12}"
|
||||||
@@ -53,17 +53,18 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
msg_info "Updating Omada Controller"
|
msg_info "Updating Omada Controller"
|
||||||
latest_url=$(curl -fsSL "https://support.omadanetworks.com/en/download/software/omada-controller/" | grep -o 'https://static\.tp-link\.com/upload/software/[^"]*linux_x64[^"]*\.deb' | head -n 1)
|
OMADA_URL=$(curl -fsSL "https://support.omadanetworks.com/en/download/software/omada-controller/" |
|
||||||
latest_version=$(basename "$latest_url")
|
grep -o 'https://static\.tp-link\.com/upload/software/[^"]*linux_x64[^"]*\.deb' |
|
||||||
if [ -z "${latest_version}" ]; then
|
head -n1)
|
||||||
msg_error "It seems that the server (tp-link.com) might be down. Please try again at a later time."
|
OMADA_PKG=$(basename "$OMADA_URL")
|
||||||
exit
|
if [ -z "$OMADA_PKG" ]; then
|
||||||
|
msg_error "Could not retrieve Omada package – server may be down."
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
curl -fsSL "$OMADA_URL" -o "$OMADA_PKG"
|
||||||
curl -fsSL "${latest_url}" -O
|
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
$STD dpkg -i ${latest_version}
|
$STD dpkg -i "$OMADA_PKG"
|
||||||
rm -rf ${latest_version}
|
rm -f "$OMADA_PKG"
|
||||||
msg_ok "Updated Omada Controller"
|
msg_ok "Updated Omada Controller"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
44
ct/openziti-controller.sh
Normal file
44
ct/openziti-controller.sh
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: emoscardini
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/openziti/ziti
|
||||||
|
|
||||||
|
APP="openziti-controller"
|
||||||
|
var_tags="network;openziti-controller"
|
||||||
|
var_cpu="2"
|
||||||
|
var_ram="1024"
|
||||||
|
var_disk="8"
|
||||||
|
var_os="debian"
|
||||||
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -d /opt/openziti ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
msg_info "Updating $APP LXC"
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get -y upgrade
|
||||||
|
msg_ok "Updated $APP LXC"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:<port>/zac${CL}"
|
||||||
@@ -20,45 +20,48 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/outline ]]; then
|
if [[ ! -d /opt/outline ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
|
||||||
fi
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/outline/outline/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
|
||||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
|
||||||
msg_info "Stopping Services"
|
|
||||||
systemctl stop outline
|
|
||||||
msg_ok "Services Stopped"
|
|
||||||
|
|
||||||
msg_info "Updating ${APP} to ${RELEASE}"
|
|
||||||
temp_file=$(mktemp)
|
|
||||||
rm -rf /opt/outline/node_modules
|
|
||||||
curl -fsSL "https://github.com/outline/outline/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
|
||||||
tar zxf $temp_file
|
|
||||||
cp -rf outline-${RELEASE}/* /opt/outline
|
|
||||||
cd /opt/outline
|
|
||||||
export NODE_OPTIONS="--max-old-space-size=3584"
|
|
||||||
$STD yarn install --frozen-lockfile
|
|
||||||
$STD yarn build
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
|
||||||
msg_ok "Updated ${APP}"
|
|
||||||
|
|
||||||
msg_info "Starting Services"
|
|
||||||
systemctl start outline
|
|
||||||
msg_ok "Started Services"
|
|
||||||
|
|
||||||
msg_info "Cleaning Up"
|
|
||||||
rm -rf $temp_file
|
|
||||||
rm -rf $HOME/outline-${RELEASE}
|
|
||||||
msg_ok "Cleaned"
|
|
||||||
msg_ok "Updated Successfully"
|
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
|
||||||
fi
|
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/outline/outline/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
|
msg_info "Stopping Services"
|
||||||
|
systemctl stop outline
|
||||||
|
msg_ok "Services Stopped"
|
||||||
|
|
||||||
|
msg_info "Updating ${APP} to ${RELEASE}"
|
||||||
|
temp_file=$(mktemp)
|
||||||
|
cp /opt/outline/.env /opt
|
||||||
|
rm -rf /opt/outline
|
||||||
|
curl -fsSL "https://github.com/outline/outline/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
||||||
|
tar zxf "$temp_file"
|
||||||
|
mv outline-"${RELEASE}" /opt/outline
|
||||||
|
cd /opt/outline
|
||||||
|
export NODE_ENV=development
|
||||||
|
export NODE_OPTIONS="--max-old-space-size=3584"
|
||||||
|
$STD yarn install --frozen-lockfile
|
||||||
|
$STD yarn build
|
||||||
|
mv /opt/.env /opt/outline
|
||||||
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
|
msg_ok "Updated ${APP}"
|
||||||
|
|
||||||
|
msg_info "Starting Services"
|
||||||
|
systemctl start outline
|
||||||
|
msg_ok "Started Services"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf "$temp_file"
|
||||||
|
rm -rf "$HOME"/outline-"${RELEASE}"
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@@ -68,4 +71,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}:3000${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
||||||
|
|||||||
@@ -28,6 +28,21 @@ 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)
|
||||||
|
if [[ "$CURRENT_PHP" != "8.3" ]]; then
|
||||||
|
msg_info "Migrating PHP $CURRENT_PHP to 8.3"
|
||||||
|
$STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
|
||||||
|
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
|
||||||
|
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get remove -y php"${CURRENT_PHP//./}"*
|
||||||
|
$STD apt-get install -y \
|
||||||
|
php8.3 \
|
||||||
|
php8.3-{common,cli,gd,mysql,mbstring,bcmath,xml,curl,zip,intl,redis,fpm}
|
||||||
|
sed -i 's|php8\.2-fpm\.sock|php8.3-fpm.sock|g' /etc/nginx/sites-available/paymenter.conf
|
||||||
|
$STD systemctl reload nginx
|
||||||
|
msg_ok "Migrated PHP $CURRENT_PHP to 8.3"
|
||||||
|
fi
|
||||||
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/')
|
||||||
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}"
|
||||||
@@ -48,4 +63,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}:80${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"
|
||||||
|
|||||||
@@ -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=1
|
||||||
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"
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,8 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
msg_info "Updating ${APP}"
|
msg_info "Updating ${APP}"
|
||||||
set +e
|
set +e
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get upgrade -y
|
||||||
/usr/local/bin/pihole -up
|
/usr/local/bin/pihole -up
|
||||||
msg_ok "Updated ${APP}"
|
msg_ok "Updated ${APP}"
|
||||||
exit
|
exit
|
||||||
@@ -41,4 +43,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}/admin${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}/admin${CL}"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
106
ct/reactive-resume.sh
Normal file
106
ct/reactive-resume.sh
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: vhsdream
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://rxresu.me
|
||||||
|
|
||||||
|
APP="Reactive-Resume"
|
||||||
|
var_tags="${var_tags:-documents}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-3072}"
|
||||||
|
var_disk="${var_disk:-8}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-12}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if [[ ! -f /etc/systemd/system/Reactive-Resume.service ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/AmruthPillai/Reactive-Resume/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||||
|
msg_info "Stopping services"
|
||||||
|
systemctl stop Reactive-Resume
|
||||||
|
msg_ok "Stopped services"
|
||||||
|
|
||||||
|
msg_info "Updating $APP to v${RELEASE}"
|
||||||
|
cp /opt/${APP}/.env /opt/rxresume.env
|
||||||
|
res_tmp=$(mktemp)
|
||||||
|
rm -rf /opt/${APP}
|
||||||
|
curl -fsSL "https://github.com/AmruthPillai/Reactive-Resume/archive/refs/tags/v${RELEASE}.zip" -O $res_tmp
|
||||||
|
unzip -q $res_tmp
|
||||||
|
mv ${APP}-${RELEASE}/ /opt/${APP}
|
||||||
|
cd /opt/${APP}
|
||||||
|
export PUPPETEER_SKIP_DOWNLOAD="true"
|
||||||
|
export NEXT_TELEMETRY_DISABLED=1
|
||||||
|
export CI="true"
|
||||||
|
export NODE_ENV="production"
|
||||||
|
$STD pnpm install --frozen-lockfile
|
||||||
|
$STD pnpm run build
|
||||||
|
$STD pnpm run prisma:generate
|
||||||
|
mv /opt/rxresume.env /opt/${APP}/.env
|
||||||
|
msg_ok "Updated $APP to v${RELEASE}"
|
||||||
|
|
||||||
|
msg_info "Updating Minio"
|
||||||
|
systemctl stop minio
|
||||||
|
cd /tmp
|
||||||
|
curl -fsSL https://dl.min.io/server/minio/release/linux-amd64/minio.deb -o minio.deb
|
||||||
|
$STD dpkg -i minio.deb
|
||||||
|
msg_ok "Updated Minio"
|
||||||
|
|
||||||
|
msg_info "Updating Browserless (Patience)"
|
||||||
|
systemctl stop browserless
|
||||||
|
cp /opt/browserless/.env /opt/browserless.env
|
||||||
|
rm -rf browserless
|
||||||
|
brwsr_tmp=$(mktemp)
|
||||||
|
TAG=$(curl -fsSL https://api.github.com/repos/browserless/browserless/tags?per_page=1 | grep "name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
curl -fsSL https://github.com/browserless/browserless/archive/refs/tags/v${TAG}.zip -O $brwsr_tmp
|
||||||
|
unzip -q $brwsr_tmp
|
||||||
|
mv browserless-${TAG}/ /opt/browserless
|
||||||
|
cd /opt/browserless
|
||||||
|
$STD npm install
|
||||||
|
rm -rf src/routes/{chrome,edge,firefox,webkit}
|
||||||
|
$STD node_modules/playwright-core/cli.js install --with-deps chromium
|
||||||
|
$STD npm run build
|
||||||
|
$STD npm run build:function
|
||||||
|
$STD npm prune production
|
||||||
|
mv /opt/browserless.env /opt/browserless/.env
|
||||||
|
msg_ok "Updated Browserless"
|
||||||
|
|
||||||
|
msg_info "Restarting services"
|
||||||
|
systemctl start minio Reactive-Resume browserless
|
||||||
|
msg_ok "Restarted services"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -f /tmp/minio.deb
|
||||||
|
rm -f $brwsr_tmp
|
||||||
|
rm -f $res_tmp
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
|
|
||||||
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
|
msg_ok "Update Successful"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
||||||
@@ -20,23 +20,23 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/readeck ]]; then
|
if [[ ! -d /opt/readeck ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
|
||||||
fi
|
|
||||||
msg_info "Updating ${APP}"
|
|
||||||
LATEST=$(curl -fsSL https://codeberg.org/readeck/readeck/releases/ | grep -oP '(?<=Version )\d+\.\d+\.\d+' | head -1)
|
|
||||||
systemctl stop readeck.service
|
|
||||||
rm -rf /opt/readeck/readeck
|
|
||||||
cd /opt/readeck
|
|
||||||
curl -fsSL "https://codeberg.org/readeck/readeck/releases/download/${LATEST}/readeck-${LATEST}-linux-amd64" -o "readeck"
|
|
||||||
chmod a+x readeck
|
|
||||||
systemctl start readeck.service
|
|
||||||
msg_ok "Updated ${APP}"
|
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
msg_info "Updating ${APP}"
|
||||||
|
LATEST=$(curl -fsSL https://codeberg.org/readeck/readeck/releases/ | grep -oP '/releases/tag/\K\d+\.\d+\.\d+' | head -1)
|
||||||
|
systemctl stop readeck.service
|
||||||
|
rm -rf /opt/readeck/readeck
|
||||||
|
cd /opt/readeck
|
||||||
|
curl -fsSL "https://codeberg.org/readeck/readeck/releases/download/${LATEST}/readeck-${LATEST}-linux-amd64" -o "readeck"
|
||||||
|
chmod a+x readeck
|
||||||
|
systemctl start readeck.service
|
||||||
|
msg_ok "Updated ${APP}"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@@ -46,4 +46,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}:8000${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000${CL}"
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2025 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster) | Co-Author: MickLesk (CanbiZ)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://sabnzbd.org/
|
# Source: https://sabnzbd.org/
|
||||||
|
|
||||||
APP="SABnzbd"
|
APP="SABnzbd"
|
||||||
var_tags="${var_tags:-downloader}"
|
var_tags="${var_tags:-downloader}"
|
||||||
var_cpu="${var_cpu:-2}"
|
var_cpu="${var_cpu:-2}"
|
||||||
var_ram="${var_ram:-4096}"
|
var_ram="${var_ram:-2048}"
|
||||||
var_disk="${var_disk:-8}"
|
var_disk="${var_disk:-5}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-12}"
|
var_version="${var_version:-12}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
@@ -20,29 +20,44 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/sabnzbd ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
if [[ ! -d /opt/sabnzbd ]]; then
|
||||||
exit
|
msg_error "No ${APP} Installation Found!"
|
||||||
fi
|
exit
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
fi
|
||||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
setup_uv
|
||||||
msg_info "Updating $APP to ${RELEASE}"
|
RELEASE=$(curl -fsSL https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
systemctl stop sabnzbd.service
|
if [[ -f /opt/${APP}_version.txt ]] && [[ "${RELEASE}" == "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
tar zxvf <(curl -fsSL https://github.com/sabnzbd/sabnzbd/releases/download/$RELEASE/SABnzbd-${RELEASE}-src.tar.gz)
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
cp -rf SABnzbd-${RELEASE}/* /opt/sabnzbd
|
exit
|
||||||
rm -rf SABnzbd-${RELEASE}
|
fi
|
||||||
cd /opt/sabnzbd
|
msg_info "Updating $APP to ${RELEASE}"
|
||||||
$STD python3 -m pip install -r requirements.txt
|
systemctl stop sabnzbd
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
cp -r /opt/sabnzbd /opt/sabnzbd_backup_$(date +%s)
|
||||||
systemctl start sabnzbd.service
|
temp_file=$(mktemp)
|
||||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
curl -fsSL "https://github.com/sabnzbd/sabnzbd/releases/download/${RELEASE}/SABnzbd-${RELEASE}-src.tar.gz" -o "$temp_file"
|
||||||
else
|
tar -xzf "$temp_file" -C /opt/sabnzbd --strip-components=1
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
rm -f "$temp_file"
|
||||||
fi
|
if [[ ! -d /opt/sabnzbd/venv ]]; then
|
||||||
exit
|
msg_info "Migrating SABnzbd to uv virtual environment"
|
||||||
|
$STD uv venv /opt/sabnzbd/venv
|
||||||
|
msg_ok "Created uv venv at /opt/sabnzbd/venv"
|
||||||
|
|
||||||
|
if grep -q "ExecStart=python3 SABnzbd.py" /etc/systemd/system/sabnzbd.service; then
|
||||||
|
sed -i "s|ExecStart=python3 SABnzbd.py|ExecStart=/opt/sabnzbd/venv/bin/python SABnzbd.py|" /etc/systemd/system/sabnzbd.service
|
||||||
|
systemctl daemon-reload
|
||||||
|
msg_ok "Updated SABnzbd service to use uv venv"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
$STD uv pip install --upgrade pip --python=/opt/sabnzbd/venv/bin/python
|
||||||
|
$STD uv pip install -r /opt/sabnzbd/requirements.txt --python=/opt/sabnzbd/venv/bin/python
|
||||||
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
|
systemctl start sabnzbd
|
||||||
|
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@@ -52,4 +67,5 @@ 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}:7777${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7777${CL}"
|
||||||
|
|
||||||
|
|||||||
@@ -1,43 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
|
||||||
# Copyright (c) 2021-2025 tteck
|
|
||||||
# Author: dave-yap (dave-yap)
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://seafile.com/
|
|
||||||
|
|
||||||
APP="Seafile"
|
|
||||||
var_tags="${var_tags:-documents}"
|
|
||||||
var_cpu="${var_cpu:-2}"
|
|
||||||
var_ram="${var_ram:-2048}"
|
|
||||||
var_disk="${var_disk:-20}"
|
|
||||||
var_os="${var_os:-debian}"
|
|
||||||
var_version="${var_version:-12}"
|
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
|
||||||
|
|
||||||
header_info "$APP"
|
|
||||||
base_settings
|
|
||||||
|
|
||||||
variables
|
|
||||||
color
|
|
||||||
catch_errors
|
|
||||||
|
|
||||||
function update_script() {
|
|
||||||
header_info
|
|
||||||
check_container_storage
|
|
||||||
check_container_resources
|
|
||||||
if [[ ! -f /etc/systemd/system/seafile.service ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
msg_ok "No upgrade path available now."
|
|
||||||
exit
|
|
||||||
}
|
|
||||||
|
|
||||||
start
|
|
||||||
build_container
|
|
||||||
description
|
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000${CL}"
|
|
||||||
51
ct/slskd.sh
51
ct/slskd.sh
@@ -31,9 +31,9 @@ function update_script() {
|
|||||||
|
|
||||||
RELEASE=$(curl -s https://api.github.com/repos/slskd/slskd/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
RELEASE=$(curl -s https://api.github.com/repos/slskd/slskd/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||||
msg_info "Stopping $APP and Soularr"
|
msg_info "Stopping $APP"
|
||||||
systemctl stop slskd soularr.timer soularr.service
|
systemctl stop slskd soularr.timer soularr.service
|
||||||
msg_ok "Stopped $APP and Soularr"
|
msg_ok "Stopped $APP"
|
||||||
|
|
||||||
msg_info "Updating $APP to v${RELEASE}"
|
msg_info "Updating $APP to v${RELEASE}"
|
||||||
tmp_file=$(mktemp)
|
tmp_file=$(mktemp)
|
||||||
@@ -42,31 +42,34 @@ function update_script() {
|
|||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated $APP to v${RELEASE}"
|
msg_ok "Updated $APP to v${RELEASE}"
|
||||||
|
|
||||||
msg_info "Updating Soularr"
|
msg_info "Starting $APP"
|
||||||
cp /opt/soularr/config.ini /opt/config.ini.bak
|
systemctl start slskd
|
||||||
cp /opt/soularr/run.sh /opt/run.sh.bak
|
msg_ok "Started $APP"
|
||||||
cd /tmp
|
|
||||||
rm -rf /opt/soularr
|
|
||||||
curl -fsSL -o main.zip https://github.com/mrusse/soularr/archive/refs/heads/main.zip
|
|
||||||
unzip -q main.zip
|
|
||||||
mv soularr-main /opt/soularr
|
|
||||||
cd /opt/soularr
|
|
||||||
$STD pip install -r requirements.txt
|
|
||||||
mv /opt/config.ini.bak /opt/soularr/config.ini
|
|
||||||
mv /opt/run.sh.bak /opt/soularr/run.sh
|
|
||||||
msg_ok "Soularr updated"
|
|
||||||
msg_info "Starting $APP and Soularr"
|
|
||||||
systemctl start slskd soularr.timer
|
|
||||||
msg_ok "Started $APP and Soularr"
|
|
||||||
|
|
||||||
msg_info "Cleaning Up"
|
|
||||||
rm -rf $tmp_file
|
rm -rf $tmp_file
|
||||||
rm -rf /tmp/main.zip
|
|
||||||
msg_ok "Cleanup Completed"
|
|
||||||
|
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
msg_ok "No ${APP} update required. ${APP} is already at v${RELEASE}"
|
||||||
fi
|
fi
|
||||||
|
msg_info "Updating Soularr"
|
||||||
|
cp /opt/soularr/config.ini /opt/config.ini.bak
|
||||||
|
cp /opt/soularr/run.sh /opt/run.sh.bak
|
||||||
|
cd /tmp
|
||||||
|
rm -rf /opt/soularr
|
||||||
|
curl -fsSL -o main.zip https://github.com/mrusse/soularr/archive/refs/heads/main.zip
|
||||||
|
unzip -q main.zip
|
||||||
|
mv soularr-main /opt/soularr
|
||||||
|
cd /opt/soularr
|
||||||
|
$STD pip install -r requirements.txt
|
||||||
|
mv /opt/config.ini.bak /opt/soularr/config.ini
|
||||||
|
mv /opt/run.sh.bak /opt/soularr/run.sh
|
||||||
|
msg_ok "Updated soularr"
|
||||||
|
|
||||||
|
msg_info "Starting soularr timer"
|
||||||
|
systemctl start soularr.timer
|
||||||
|
msg_ok "Started soularr timer"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf /tmp/main.zip
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
73
ct/streamlink-webui.sh
Normal file
73
ct/streamlink-webui.sh
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: CrazyWolf13
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/CrazyWolf13/streamlink-webui
|
||||||
|
|
||||||
|
APP="streamlink-webui"
|
||||||
|
var_tags="${var_tags:-download,streaming}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-2048}"
|
||||||
|
var_disk="${var_disk:-10}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-12}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if [[ ! -f /opt/streamlink-webui ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/CrazyWolf13/streamlink-webui/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
|
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||||
|
msg_info "Stopping $APP"
|
||||||
|
systemctl stop ${APP}
|
||||||
|
msg_ok "Stopped $APP"
|
||||||
|
|
||||||
|
rm -rf /opt/${APP}
|
||||||
|
NODE_VERSION="22"
|
||||||
|
NODE_MODULE="npm@latest,yarn@latest"
|
||||||
|
install_node_and_modules
|
||||||
|
setup_uv
|
||||||
|
fetch_and_deploy_gh_release "CrazyWolf13/streamlink-webui"
|
||||||
|
|
||||||
|
msg_info "Updating $APP to v${RELEASE}"
|
||||||
|
$STD uv venv /opt/"${APPLICATION}"/backend/src/.venv
|
||||||
|
source /opt/"${APPLICATION}"/backend/src/.venv/bin/activate
|
||||||
|
$STD uv pip install -r /opt/streamlink-webui/backend/src/requirements.txt --python=/opt/"${APPLICATION}"/backend/src/.venv
|
||||||
|
cd /opt/"${APPLICATION}"/frontend/src
|
||||||
|
$STD yarn install
|
||||||
|
$STD yarn build
|
||||||
|
chmod +x /opt/"${APPLICATION}"/start.sh
|
||||||
|
msg_ok "Updated $APP to v${RELEASE}"
|
||||||
|
|
||||||
|
msg_info "Starting $APP"
|
||||||
|
systemctl start ${APP}
|
||||||
|
msg_ok "Started $APP"
|
||||||
|
|
||||||
|
msg_ok "Update Successful"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000${CL}"
|
||||||
@@ -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}"
|
||||||
|
|||||||
58
ct/umlautadaptarr.sh
Normal file
58
ct/umlautadaptarr.sh
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/refs/heads/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: elvito
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/PCJones/UmlautAdaptarr
|
||||||
|
|
||||||
|
APP="UmlautAdaptarr"
|
||||||
|
var_tags="arr"
|
||||||
|
var_cpu="1"
|
||||||
|
var_ram="512"
|
||||||
|
var_disk="4"
|
||||||
|
var_os="debian"
|
||||||
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -d /opt/UmlautAdaptarr ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/PCJones/Umlautadaptarr/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
|
||||||
|
if [[ ! -f /opt/UmlautAdaptarr_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/UmlautAdaptarr_version.txt)" ]]; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop umlautadaptarr
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
msg_info "Updating ${APP}"
|
||||||
|
temp_file=$(mktemp)
|
||||||
|
curl -fsSL "https://github.com/PCJones/Umlautadaptarr/releases/download/${RELEASE}/linux-x64.zip" -o $temp_file
|
||||||
|
$STD unzip -u $temp_file '*/**' -d /opt/UmlautAdaptarr
|
||||||
|
msg_ok "Updated ${APP}"
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start umlautadaptarr
|
||||||
|
msg_ok "Started Service"
|
||||||
|
msg_ok "$APP has been updated to ${RELEASE}."
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5005${CL}"
|
||||||
@@ -76,12 +76,12 @@ function update_script() {
|
|||||||
msg_ok "Stopped Vaultwarden"
|
msg_ok "Stopped Vaultwarden"
|
||||||
|
|
||||||
msg_info "Updating Web-Vault to $WVRELEASE"
|
msg_info "Updating Web-Vault to $WVRELEASE"
|
||||||
$STD curl -fsSLO https://github.com/dani-garcia/bw_web_builds/releases/download/$WVRELEASE/bw_web_$WVRELEASE.tar.gz
|
$STD curl -fsSLO https://github.com/dani-garcia/bw_web_builds/releases/download/"$WVRELEASE"/bw_web_"$WVRELEASE".tar.gz
|
||||||
$STD tar -zxf bw_web_$WVRELEASE.tar.gz -C /opt/vaultwarden/
|
$STD tar -zxf bw_web_"$WVRELEASE".tar.gz -C /opt/vaultwarden/
|
||||||
msg_ok "Updated Web-Vault"
|
msg_ok "Updated Web-Vault"
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
msg_info "Cleaning up"
|
||||||
rm bw_web_$WVRELEASE.tar.gz
|
rm bw_web_"$WVRELEASE".tar.gz
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
|
||||||
msg_info "Starting Vaultwarden"
|
msg_info "Starting Vaultwarden"
|
||||||
@@ -94,7 +94,7 @@ function update_script() {
|
|||||||
if NEWTOKEN=$(whiptail --backtitle "Proxmox VE Helper Scripts" --passwordbox "Set the ADMIN_TOKEN" 10 58 3>&1 1>&2 2>&3); then
|
if NEWTOKEN=$(whiptail --backtitle "Proxmox VE Helper Scripts" --passwordbox "Set the ADMIN_TOKEN" 10 58 3>&1 1>&2 2>&3); then
|
||||||
if [[ -z "$NEWTOKEN" ]]; then exit; fi
|
if [[ -z "$NEWTOKEN" ]]; then exit; fi
|
||||||
if ! command -v argon2 >/dev/null 2>&1; then $STD apt-get install -y argon2; fi
|
if ! command -v argon2 >/dev/null 2>&1; then $STD apt-get install -y argon2; fi
|
||||||
TOKEN=$(echo -n ${NEWTOKEN} | argon2 "$(openssl rand -base64 32)" -t 2 -m 16 -p 4 -l 64 -e)
|
TOKEN=$(echo -n "${NEWTOKEN}" | argon2 "$(openssl rand -base64 32)" -t 2 -m 16 -p 4 -l 64 -e)
|
||||||
sed -i "s|ADMIN_TOKEN=.*|ADMIN_TOKEN='${TOKEN}'|" /opt/vaultwarden/.env
|
sed -i "s|ADMIN_TOKEN=.*|ADMIN_TOKEN='${TOKEN}'|" /opt/vaultwarden/.env
|
||||||
if [[ -f /opt/vaultwarden/data/config.json ]]; then
|
if [[ -f /opt/vaultwarden/data/config.json ]]; then
|
||||||
sed -i "s|\"admin_token\":.*|\"admin_token\": \"${TOKEN}\"|" /opt/vaultwarden/data/config.json
|
sed -i "s|\"admin_token\":.*|\"admin_token\": \"${TOKEN}\"|" /opt/vaultwarden/data/config.json
|
||||||
@@ -112,4 +112,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}:8000${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:8000${CL}"
|
||||||
|
|||||||
79
ct/wger.sh
79
ct/wger.sh
@@ -20,46 +20,45 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /home/wger ]]; then
|
if [[ ! -d /home/wger ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
|
||||||
fi
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/wger-project/wger/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
|
|
||||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
|
||||||
msg_info "Stopping $APP"
|
|
||||||
systemctl stop wger
|
|
||||||
msg_ok "Stopped $APP"
|
|
||||||
|
|
||||||
msg_info "Updating $APP to v${RELEASE}"
|
|
||||||
temp_file=$(mktemp)
|
|
||||||
cd $temp_file
|
|
||||||
curl -fsSL "https://github.com/wger-project/wger/archive/refs/tags/$RELEASE.tar.gz" -o "$temp_file"
|
|
||||||
tar xzf $temp_file
|
|
||||||
cp -rf wger-$RELEASE/* /home/wger/src
|
|
||||||
cd /home/wger/src
|
|
||||||
python3 manage.py migrate &>/dev/null
|
|
||||||
yarn install &>/dev/null
|
|
||||||
yarn build:css:sass &>/dev/null
|
|
||||||
python3 manage.py collectstatic --noinput &>/dev/null
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
|
||||||
msg_ok "Updated $APP to v${RELEASE}"
|
|
||||||
|
|
||||||
msg_info "Starting $APP"
|
|
||||||
systemctl start wger
|
|
||||||
msg_ok "Started $APP"
|
|
||||||
|
|
||||||
msg_info "Cleaning Up"
|
|
||||||
rm -rf $temp_file
|
|
||||||
msg_ok "Cleanup Completed"
|
|
||||||
|
|
||||||
msg_ok "Update Successful"
|
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
|
||||||
fi
|
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/wger-project/wger/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
|
||||||
|
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||||
|
msg_info "Stopping $APP"
|
||||||
|
systemctl stop wger
|
||||||
|
msg_ok "Stopped $APP"
|
||||||
|
|
||||||
|
msg_info "Updating $APP to v${RELEASE}"
|
||||||
|
temp_file=$(mktemp)
|
||||||
|
curl -fsSL "https://github.com/wger-project/wger/archive/refs/tags/$RELEASE.tar.gz" -o "$temp_file"
|
||||||
|
tar xzf "$temp_file"
|
||||||
|
cp -rf wger-"$RELEASE"/* /home/wger/src
|
||||||
|
cd /home/wger/src
|
||||||
|
python3 manage.py migrate &>/dev/null
|
||||||
|
yarn install &>/dev/null
|
||||||
|
yarn build:css:sass &>/dev/null
|
||||||
|
python3 manage.py collectstatic --noinput &>/dev/null
|
||||||
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
|
msg_ok "Updated $APP to v${RELEASE}"
|
||||||
|
|
||||||
|
msg_info "Starting $APP"
|
||||||
|
systemctl start wger
|
||||||
|
msg_ok "Started $APP"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf "$temp_file"
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
|
|
||||||
|
msg_ok "Update Successful"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@@ -69,4 +68,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}:3000${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
||||||
|
|||||||
@@ -1,44 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
|
||||||
# Copyright (c) 2021-2025 tteck
|
|
||||||
# Author: tteck (tteckster)
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://github.com/benbusby/whoogle-search
|
|
||||||
|
|
||||||
APP="Whoogle"
|
|
||||||
var_tags="${var_tags:-network;seaching}"
|
|
||||||
var_cpu="${var_cpu:-1}"
|
|
||||||
var_ram="${var_ram:-512}"
|
|
||||||
var_disk="${var_disk:-2}"
|
|
||||||
var_os="${var_os:-debian}"
|
|
||||||
var_version="${var_version:-12}"
|
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
|
||||||
|
|
||||||
header_info "$APP"
|
|
||||||
variables
|
|
||||||
color
|
|
||||||
catch_errors
|
|
||||||
|
|
||||||
function update_script() {
|
|
||||||
header_info
|
|
||||||
check_container_storage
|
|
||||||
check_container_resources
|
|
||||||
if [[ ! -f /usr/local/bin/whoogle-search ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
msg_info "Updating ${APP} LXC"
|
|
||||||
$STD pip3 install whoogle-search --upgrade
|
|
||||||
systemctl restart whoogle.service
|
|
||||||
msg_ok "Updated Successfully"
|
|
||||||
exit
|
|
||||||
}
|
|
||||||
|
|
||||||
start
|
|
||||||
build_container
|
|
||||||
description
|
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"
|
|
||||||
@@ -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")" \
|
||||||
|
|||||||
@@ -40,10 +40,12 @@ function update_script() {
|
|||||||
|
|
||||||
msg_info "Updating ${APP} to ${RELEASE}"
|
msg_info "Updating ${APP} to ${RELEASE}"
|
||||||
cp /opt/zipline/.env /opt/
|
cp /opt/zipline/.env /opt/
|
||||||
rm -R /opt/zipline
|
mkdir -p /opt/zipline-upload
|
||||||
|
cp -R /opt/zipline/upload/* /opt/zipline-upload/
|
||||||
curl -fsSL "https://github.com/diced/zipline/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/diced/zipline/archive/refs/tags/v${RELEASE}.zip")
|
curl -fsSL "https://github.com/diced/zipline/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/diced/zipline/archive/refs/tags/v${RELEASE}.zip")
|
||||||
unzip -q v${RELEASE}.zip
|
unzip -q v"${RELEASE}".zip
|
||||||
mv zipline-${RELEASE} /opt/zipline
|
rm -R /opt/zipline
|
||||||
|
mv zipline-"${RELEASE}" /opt/zipline
|
||||||
cd /opt/zipline
|
cd /opt/zipline
|
||||||
mv /opt/.env /opt/zipline/.env
|
mv /opt/.env /opt/zipline/.env
|
||||||
$STD pnpm install
|
$STD pnpm install
|
||||||
@@ -56,7 +58,7 @@ function update_script() {
|
|||||||
msg_ok "Started ${APP}"
|
msg_ok "Started ${APP}"
|
||||||
|
|
||||||
msg_info "Cleaning Up"
|
msg_info "Cleaning Up"
|
||||||
rm -rf v${RELEASE}.zip
|
rm -rf v"${RELEASE}".zip
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
90
frontend/package-lock.json
generated
90
frontend/package-lock.json
generated
@@ -3611,7 +3611,7 @@
|
|||||||
"version": "19.0.0-rc.1",
|
"version": "19.0.0-rc.1",
|
||||||
"resolved": "https://registry.npmjs.org/types-react/-/types-react-19.0.0-rc.1.tgz",
|
"resolved": "https://registry.npmjs.org/types-react/-/types-react-19.0.0-rc.1.tgz",
|
||||||
"integrity": "sha512-RshndUfqTW6K3STLPis8BtAYCGOkMbtvYsi90gmVNDZBXUyUc5juf2PE9LfS/JmOlUIRO8cWTS/1MTnmhjDqyQ==",
|
"integrity": "sha512-RshndUfqTW6K3STLPis8BtAYCGOkMbtvYsi90gmVNDZBXUyUc5juf2PE9LfS/JmOlUIRO8cWTS/1MTnmhjDqyQ==",
|
||||||
"dev": true,
|
"devOptional": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"csstype": "^3.0.2"
|
"csstype": "^3.0.2"
|
||||||
}
|
}
|
||||||
@@ -3621,7 +3621,7 @@
|
|||||||
"version": "19.0.0-rc.1",
|
"version": "19.0.0-rc.1",
|
||||||
"resolved": "https://registry.npmjs.org/types-react-dom/-/types-react-dom-19.0.0-rc.1.tgz",
|
"resolved": "https://registry.npmjs.org/types-react-dom/-/types-react-dom-19.0.0-rc.1.tgz",
|
||||||
"integrity": "sha512-VSLZJl8VXCD0fAWp7DUTFUDCcZ8DVXOQmjhJMD03odgeFmu14ZQJHCXeETm3BEAhJqfgJaFkLnGkQv88sRx0fQ==",
|
"integrity": "sha512-VSLZJl8VXCD0fAWp7DUTFUDCcZ8DVXOQmjhJMD03odgeFmu14ZQJHCXeETm3BEAhJqfgJaFkLnGkQv88sRx0fQ==",
|
||||||
"dev": true,
|
"devOptional": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/react": "*"
|
"@types/react": "*"
|
||||||
}
|
}
|
||||||
@@ -8207,7 +8207,6 @@
|
|||||||
"version": "3.5.3",
|
"version": "3.5.3",
|
||||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
|
||||||
"integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
|
"integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"bin": {
|
"bin": {
|
||||||
"prettier": "bin/prettier.cjs"
|
"prettier": "bin/prettier.cjs"
|
||||||
@@ -9655,6 +9654,51 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/tinyglobby": {
|
||||||
|
"version": "0.2.13",
|
||||||
|
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz",
|
||||||
|
"integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"fdir": "^6.4.4",
|
||||||
|
"picomatch": "^4.0.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/SuperchupuDev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/tinyglobby/node_modules/fdir": {
|
||||||
|
"version": "6.4.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz",
|
||||||
|
"integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peerDependencies": {
|
||||||
|
"picomatch": "^3 || ^4"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"picomatch": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/tinyglobby/node_modules/picomatch": {
|
||||||
|
"version": "4.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
|
||||||
|
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/jonschlinkert"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/tinypool": {
|
"node_modules/tinypool": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz",
|
||||||
@@ -9898,7 +9942,6 @@
|
|||||||
"version": "5.8.2",
|
"version": "5.8.2",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz",
|
||||||
"integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==",
|
"integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==",
|
||||||
"dev": true,
|
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"bin": {
|
"bin": {
|
||||||
"tsc": "bin/tsc",
|
"tsc": "bin/tsc",
|
||||||
@@ -10023,15 +10066,18 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/vite": {
|
"node_modules/vite": {
|
||||||
"version": "6.2.6",
|
"version": "6.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/vite/-/vite-6.2.6.tgz",
|
"resolved": "https://registry.npmjs.org/vite/-/vite-6.3.4.tgz",
|
||||||
"integrity": "sha512-9xpjNl3kR4rVDZgPNdTL0/c6ao4km69a/2ihNQbcANz8RuCOK3hQBmLSJf3bRKVQjVMda+YvizNE8AwvogcPbw==",
|
"integrity": "sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"esbuild": "^0.25.0",
|
"esbuild": "^0.25.0",
|
||||||
|
"fdir": "^6.4.4",
|
||||||
|
"picomatch": "^4.0.2",
|
||||||
"postcss": "^8.5.3",
|
"postcss": "^8.5.3",
|
||||||
"rollup": "^4.30.1"
|
"rollup": "^4.34.9",
|
||||||
|
"tinyglobby": "^0.2.13"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"vite": "bin/vite.js"
|
"vite": "bin/vite.js"
|
||||||
@@ -10137,6 +10183,34 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/vite/node_modules/fdir": {
|
||||||
|
"version": "6.4.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz",
|
||||||
|
"integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peerDependencies": {
|
||||||
|
"picomatch": "^3 || ^4"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"picomatch": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/vite/node_modules/picomatch": {
|
||||||
|
"version": "4.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
|
||||||
|
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/jonschlinkert"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/vitest": {
|
"node_modules/vitest": {
|
||||||
"version": "3.1.1",
|
"version": "3.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/vitest/-/vitest-3.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/vitest/-/vitest-3.1.1.tgz",
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
"documentation": null,
|
"documentation": null,
|
||||||
"website": "https://docs.2fauth.app/",
|
"website": "https://docs.2fauth.app/",
|
||||||
"logo": "https://raw.githubusercontent.com/Bubka/2FAuth/refs/heads/master/public/logo.svg",
|
"logo": "https://raw.githubusercontent.com/Bubka/2FAuth/refs/heads/master/public/logo.svg",
|
||||||
|
"config_path": "cat /opt/2fauth/.env",
|
||||||
"description": "2FAuth is a web based self-hosted alternative to One Time Passcode (OTP) generators like Google Authenticator, designed for both mobile and desktop. It aims to ease you perform your 2FA authentication steps whatever the device you handle, with a clean and suitable interface.",
|
"description": "2FAuth is a web based self-hosted alternative to One Time Passcode (OTP) generators like Google Authenticator, designed for both mobile and desktop. It aims to ease you perform your 2FA authentication steps whatever the device you handle, with a clean and suitable interface.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
@@ -40,4 +41,4 @@
|
|||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
35
frontend/public/json/actualbudget.json
Normal file
35
frontend/public/json/actualbudget.json
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"name": "Actual Budget",
|
||||||
|
"slug": "actualbudget",
|
||||||
|
"categories": [
|
||||||
|
23
|
||||||
|
],
|
||||||
|
"date_created": "2025-05-06",
|
||||||
|
"type": "ct",
|
||||||
|
"updateable": true,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": 5006,
|
||||||
|
"documentation": "https://github.com/community-scripts/ProxmoxVE/discussions/807",
|
||||||
|
"website": "https://actualbudget.org/",
|
||||||
|
"config_path": "/opt/actualbudget-data/config.json",
|
||||||
|
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/actual-budget.svg",
|
||||||
|
"description": "Actual Budget is a super fast and privacy-focused app for managing your finances. At its heart is the well proven and much loved Envelope Budgeting methodology.",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "ct/actualbudget.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 2,
|
||||||
|
"ram": 2048,
|
||||||
|
"hdd": 4,
|
||||||
|
"os": "debian",
|
||||||
|
"version": "12"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": null,
|
||||||
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": []
|
||||||
|
}
|
||||||
@@ -10,6 +10,7 @@
|
|||||||
"documentation": null,
|
"documentation": null,
|
||||||
"website": null,
|
"website": null,
|
||||||
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/proxmox.svg",
|
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/proxmox.svg",
|
||||||
|
"config_path": "/opt/lxc-iptag/iptag.conf",
|
||||||
"description": "This script automatically adds IP address as tags to LXC containers using a Systemd service. The service also updates the tags if a LXC IP address is changed.",
|
"description": "This script automatically adds IP address as tags to LXC containers using a Systemd service. The service also updates the tags if a LXC IP address is changed.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
@@ -33,13 +34,10 @@
|
|||||||
"text": "Execute within the Proxmox shell",
|
"text": "Execute within the Proxmox shell",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"text": "Configuration: `nano /opt/lxc-iptag/iptag.conf`. iptag.service must be restarted after change.",
|
|
||||||
"type": "info"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"text": "The Proxmox Node must contain ipcalc and net-tools. `apt-get install -y ipcalc net-tools`",
|
"text": "The Proxmox Node must contain ipcalc and net-tools. `apt-get install -y ipcalc net-tools`",
|
||||||
"type": "warning"
|
"type": "warning"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "NetBird",
|
"name": "NetBird",
|
||||||
"slug": "add-netbird-lxc",
|
"slug": "add-netbird-lxc",
|
||||||
"categories": [1],
|
"categories": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"date_created": "2024-05-19",
|
"date_created": "2024-05-19",
|
||||||
"type": "addon",
|
"type": "addon",
|
||||||
"updateable": false,
|
"updateable": false,
|
||||||
@@ -10,6 +12,7 @@
|
|||||||
"documentation": "https://docs.netbird.io/",
|
"documentation": "https://docs.netbird.io/",
|
||||||
"website": "https://netbird.io/",
|
"website": "https://netbird.io/",
|
||||||
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/netbird.svg",
|
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/netbird.svg",
|
||||||
|
"config_path": "",
|
||||||
"description": "NetBird combines a configuration-free peer-to-peer private network and a centralized access control system in a single platform, making it easy to create secure private networks for your organization or home.",
|
"description": "NetBird combines a configuration-free peer-to-peer private network and a centralized access control system in a single platform, making it easy to create secure private networks for your organization or home.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,15 +1,18 @@
|
|||||||
{
|
{
|
||||||
"name": "Tailscale",
|
"name": "Tailscale",
|
||||||
"slug": "add-tailscale-lxc",
|
"slug": "add-tailscale-lxc",
|
||||||
"categories": [1],
|
"categories": [
|
||||||
|
1
|
||||||
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "addon",
|
"type": "addon",
|
||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": "https://tailscale.com/kb/1017/install",
|
||||||
"website": "https://tailscale.com/",
|
"website": "https://tailscale.com/",
|
||||||
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/tailscale.svg",
|
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/tailscale.svg",
|
||||||
|
"config_path": "",
|
||||||
"description": "Tailscale is a software-defined networking solution that enables secure communication between devices over the internet. It creates a virtual private network (VPN) that enables devices to communicate with each other as if they were on the same local network. Tailscale works even when the devices are separated by firewalls or subnets, and provides secure and encrypted communication between devices. With Tailscale, users can connect devices, servers, computers, and cloud instances to create a secure network, making it easier to manage and control access to resources. Tailscale is designed to be easy to set up and use, providing a streamlined solution for secure communication between devices over the internet.",
|
"description": "Tailscale is a software-defined networking solution that enables secure communication between devices over the internet. It creates a virtual private network (VPN) that enables devices to communicate with each other as if they were on the same local network. Tailscale works even when the devices are separated by firewalls or subnets, and provides secure and encrypted communication between devices. With Tailscale, users can connect devices, servers, computers, and cloud instances to create a secure network, making it easier to manage and control access to resources. Tailscale is designed to be easy to set up and use, providing a streamlined solution for secure communication between devices over the internet.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
@@ -38,7 +41,7 @@
|
|||||||
"type": "info"
|
"type": "info"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "Execute within the Proxmox shell",
|
"text": "Execute within the Proxmox host shell",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
"documentation": "https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started",
|
"documentation": "https://github.com/AdguardTeam/AdGuardHome/wiki/Getting-Started",
|
||||||
"website": "https://adguard.com/en/adguard-home/overview.html",
|
"website": "https://adguard.com/en/adguard-home/overview.html",
|
||||||
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/adguard-home.svg",
|
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/adguard-home.svg",
|
||||||
|
"config_path": "/opt/AdGuardHome/AdGuardHome.yaml",
|
||||||
"description": "AdGuard Home is an open-source, self-hosted network-wide ad blocker. It blocks advertisements, trackers, phishing and malware websites, and provides protection against online threats. AdGuard Home is a DNS-based solution, which means it blocks ads and malicious content at the network level, before it even reaches your device. It runs on your home network and can be easily configured and managed through a web-based interface. It provides detailed statistics and logs, allowing you to see which websites are being blocked, and why. AdGuard Home is designed to be fast, lightweight, and easy to use, making it an ideal solution for home users who want to block ads, protect their privacy, and improve the speed and security of their online experience.",
|
"description": "AdGuard Home is an open-source, self-hosted network-wide ad blocker. It blocks advertisements, trackers, phishing and malware websites, and provides protection against online threats. AdGuard Home is a DNS-based solution, which means it blocks ads and malicious content at the network level, before it even reaches your device. It runs on your home network and can be easily configured and managed through a web-based interface. It provides detailed statistics and logs, allowing you to see which websites are being blocked, and why. AdGuard Home is designed to be fast, lightweight, and easy to use, making it an ideal solution for home users who want to block ads, protect their privacy, and improve the speed and security of their online experience.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
@@ -24,6 +25,17 @@
|
|||||||
"os": "debian",
|
"os": "debian",
|
||||||
"version": "12"
|
"version": "12"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "alpine",
|
||||||
|
"script": "ct/alpine-adguard.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 1,
|
||||||
|
"ram": 256,
|
||||||
|
"hdd": 1,
|
||||||
|
"os": "alpine",
|
||||||
|
"version": "3.21"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"default_credentials": {
|
"default_credentials": {
|
||||||
@@ -37,3 +49,4 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,39 +1,40 @@
|
|||||||
{
|
{
|
||||||
"name": "AdventureLog",
|
"name": "AdventureLog",
|
||||||
"slug": "adventurelog",
|
"slug": "adventurelog",
|
||||||
"categories": [
|
"categories": [
|
||||||
24
|
24
|
||||||
],
|
],
|
||||||
"date_created": "2024-10-26",
|
"date_created": "2024-10-26",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 3000,
|
"interface_port": 3000,
|
||||||
"documentation": null,
|
"documentation": "https://adventurelog.app/docs/intro/adventurelog_overview.html",
|
||||||
"website": "https://adventurelog.app/",
|
"website": "https://adventurelog.app/",
|
||||||
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/adventurelog.svg",
|
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/adventurelog.svg",
|
||||||
"description": "Adventure Log is an app designed to track outdoor activities and personal achievements, allowing users to log their adventures with photos, notes, and location data. It focuses on enhancing outdoor experiences by preserving memories and sharing them with others.",
|
"config_path": "/opt/adventurelog/backend/server/.env",
|
||||||
"install_methods": [
|
"description": "Adventure Log is an app designed to track outdoor activities and personal achievements, allowing users to log their adventures with photos, notes, and location data. It focuses on enhancing outdoor experiences by preserving memories and sharing them with others.",
|
||||||
{
|
"install_methods": [
|
||||||
"type": "default",
|
{
|
||||||
"script": "ct/adventurelog.sh",
|
"type": "default",
|
||||||
"resources": {
|
"script": "ct/adventurelog.sh",
|
||||||
"cpu": 2,
|
"resources": {
|
||||||
"ram": 2048,
|
"cpu": 2,
|
||||||
"hdd": 7,
|
"ram": 2048,
|
||||||
"os": "debian",
|
"hdd": 7,
|
||||||
"version": "12"
|
"os": "debian",
|
||||||
}
|
"version": "12"
|
||||||
}
|
}
|
||||||
],
|
}
|
||||||
"default_credentials": {
|
],
|
||||||
"username": null,
|
"default_credentials": {
|
||||||
"password": null
|
"username": null,
|
||||||
},
|
"password": null
|
||||||
"notes": [
|
},
|
||||||
{
|
"notes": [
|
||||||
"text": "AdventureLog uses an initial local IP, if you change your LXC-IP, you need to change the IP here: `/opt/adventurelog/backend/server/.env` and here: `/opt/adventurelog/frontend/.env`",
|
{
|
||||||
"type": "warning"
|
"text": "AdventureLog uses an initial local IP, if you change your LXC-IP, you need to change the IP here: `/opt/adventurelog/backend/server/.env` and here: `/opt/adventurelog/frontend/.env`",
|
||||||
}
|
"type": "warning"
|
||||||
]
|
}
|
||||||
}
|
]
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,34 +1,35 @@
|
|||||||
{
|
{
|
||||||
"name": "AgentDVR",
|
"name": "AgentDVR",
|
||||||
"slug": "agentdvr",
|
"slug": "agentdvr",
|
||||||
"categories": [
|
"categories": [
|
||||||
15
|
15
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": true,
|
"privileged": true,
|
||||||
"interface_port": 8090,
|
"interface_port": 8090,
|
||||||
"documentation": null,
|
"documentation": "https://www.ispyconnect.com/docs/agent/about",
|
||||||
"website": "https://www.ispyconnect.com/",
|
"website": "https://www.ispyconnect.com/",
|
||||||
"logo": "https://ispycontent.azureedge.net/img/ispy2.png?raw=true",
|
"logo": "https://ispycontent.azureedge.net/img/ispy2.png?raw=true",
|
||||||
"description": "AgentDVR a new video surveillance solution for the Internet Of Things.",
|
"config_path": "/opt/agentdvr/agent/Media/XML/config.json",
|
||||||
"install_methods": [
|
"description": "AgentDVR a new video surveillance solution for the Internet Of Things.",
|
||||||
{
|
"install_methods": [
|
||||||
"type": "default",
|
{
|
||||||
"script": "ct/agentdvr.sh",
|
"type": "default",
|
||||||
"resources": {
|
"script": "ct/agentdvr.sh",
|
||||||
"cpu": 2,
|
"resources": {
|
||||||
"ram": 2048,
|
"cpu": 2,
|
||||||
"hdd": 8,
|
"ram": 2048,
|
||||||
"os": "ubuntu",
|
"hdd": 8,
|
||||||
"version": "22.04"
|
"os": "ubuntu",
|
||||||
}
|
"version": "22.04"
|
||||||
}
|
}
|
||||||
],
|
}
|
||||||
"default_credentials": {
|
],
|
||||||
"username": null,
|
"default_credentials": {
|
||||||
"password": null
|
"username": null,
|
||||||
},
|
"password": null
|
||||||
"notes": []
|
},
|
||||||
}
|
"notes": []
|
||||||
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
"documentation": null,
|
"documentation": null,
|
||||||
"website": null,
|
"website": null,
|
||||||
"logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/proxmox.svg",
|
"logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/proxmox.svg",
|
||||||
|
"config_path": "",
|
||||||
"description": "A script designed to allow for the creation of one of the many free LXC templates. Great for creating system LXCs.\r\nThe script creates a `*.creds` file in the Proxmox root directory with the password of the newly created LXC.\r\nPlease take note that if you plan to use this script for creating TurnKey LXCs, you'll need to modify the hostname after creation.",
|
"description": "A script designed to allow for the creation of one of the many free LXC templates. Great for creating system LXCs.\r\nThe script creates a `*.creds` file in the Proxmox root directory with the password of the newly created LXC.\r\nPlease take note that if you plan to use this script for creating TurnKey LXCs, you'll need to modify the hostname after creation.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
@@ -35,3 +36,4 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
"documentation": null,
|
"documentation": null,
|
||||||
"website": "https://it-tools.tech/",
|
"website": "https://it-tools.tech/",
|
||||||
"logo": "https://raw.githubusercontent.com/CorentinTh/it-tools/08d977b8cdb7ffb76adfa18ba6eb4b73795ec814/public/safari-pinned-tab.svg",
|
"logo": "https://raw.githubusercontent.com/CorentinTh/it-tools/08d977b8cdb7ffb76adfa18ba6eb4b73795ec814/public/safari-pinned-tab.svg",
|
||||||
|
"config_path": "",
|
||||||
"description": "IT-Tools is a web-based suite of utilities designed to streamline and simplify various IT tasks, providing tools for developers and system administrators to manage their workflows efficiently.",
|
"description": "IT-Tools is a web-based suite of utilities designed to streamline and simplify various IT tasks, providing tools for developers and system administrators to manage their workflows efficiently.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
@@ -43,3 +44,4 @@
|
|||||||
},
|
},
|
||||||
"notes": []
|
"notes": []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
55
frontend/public/json/alpine-rclone.json
Normal file
55
frontend/public/json/alpine-rclone.json
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
{
|
||||||
|
"name": "Alpine-rclone",
|
||||||
|
"slug": "alpine-rclone",
|
||||||
|
"categories": [
|
||||||
|
11
|
||||||
|
],
|
||||||
|
"date_created": "2025-05-06",
|
||||||
|
"type": "ct",
|
||||||
|
"updateable": true,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": 3000,
|
||||||
|
"documentation": "https://rclone.org/docs/",
|
||||||
|
"website": "https://rclone.org/",
|
||||||
|
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/rclone.svg",
|
||||||
|
"config_path": "~/.config/rclone/rclone.conf",
|
||||||
|
"description": "Rclone is a command-line program to manage files on cloud storage. It is a feature-rich alternative to cloud vendors' web storage interfaces",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "ct/alpine-rclone.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 1,
|
||||||
|
"ram": 256,
|
||||||
|
"hdd": 1,
|
||||||
|
"os": "alpine",
|
||||||
|
"version": "3.21"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "alpine",
|
||||||
|
"script": "ct/alpine-rclone.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 1,
|
||||||
|
"ram": 256,
|
||||||
|
"hdd": 1,
|
||||||
|
"os": "alpine",
|
||||||
|
"version": "3.21"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": null,
|
||||||
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": [
|
||||||
|
{
|
||||||
|
"type": "info",
|
||||||
|
"text": "`cat ~/rclone.creds` to view login credentials"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "info",
|
||||||
|
"text": "`htpasswd -b -B /opt/rclone/login.pwd newuser newuserpassword` to add more users."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
51
frontend/public/json/alpine-tinyauth.json
Normal file
51
frontend/public/json/alpine-tinyauth.json
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
{
|
||||||
|
"name": "Alpine-tinyauth",
|
||||||
|
"slug": "alpine-tinyauth",
|
||||||
|
"categories": [
|
||||||
|
6
|
||||||
|
],
|
||||||
|
"date_created": "2025-05-06",
|
||||||
|
"type": "ct",
|
||||||
|
"updateable": true,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": 3000,
|
||||||
|
"documentation": "https://tinyauth.app/docs/getting-started.html",
|
||||||
|
"website": "https://tinyauth.app/",
|
||||||
|
"logo": "https://raw.githubusercontent.com/steveiliop56/tinyauth/refs/heads/main/frontend/public/android-chrome-192x192.png",
|
||||||
|
"config_path": "/opt/tinyauth/.env",
|
||||||
|
"description": "Tinyauth is a simple authentication middleware that adds simple username/password login or OAuth with Google, Github and any generic provider to all of your docker apps. It is designed for traefik but it can be extended to work with all reverse proxies like caddy and nginx.",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "ct/alpine-tinyauth.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 1,
|
||||||
|
"ram": 256,
|
||||||
|
"hdd": 3,
|
||||||
|
"os": "alpine",
|
||||||
|
"version": "3.21"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "alpine",
|
||||||
|
"script": "ct/alpine-tinyauth.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 1,
|
||||||
|
"ram": 256,
|
||||||
|
"hdd": 3,
|
||||||
|
"os": "alpine",
|
||||||
|
"version": "3.21"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": null,
|
||||||
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": [
|
||||||
|
{
|
||||||
|
"type": "info",
|
||||||
|
"text": "`cat ~/tinyauth.creds` to view login credentials"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -12,6 +12,7 @@
|
|||||||
"documentation": null,
|
"documentation": null,
|
||||||
"website": "https://www.alpinelinux.org/",
|
"website": "https://www.alpinelinux.org/",
|
||||||
"logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/alpinelinux.svg",
|
"logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/alpinelinux.svg",
|
||||||
|
"config_path": "",
|
||||||
"description": "A security-oriented, lightweight Linux distribution based on musl and BusyBox.\r\nBy default, the root password is set to alpine. If you choose to use advanced settings, you will need to define a password, autologin is currently unavailable.",
|
"description": "A security-oriented, lightweight Linux distribution based on musl and BusyBox.\r\nBy default, the root password is set to alpine. If you choose to use advanced settings, you will need to define a password, autologin is currently unavailable.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
@@ -48,3 +49,4 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,39 +1,35 @@
|
|||||||
{
|
{
|
||||||
"name": "Apache-Cassandra",
|
"name": "Apache-Cassandra",
|
||||||
"slug": "apache-cassandra",
|
"slug": "apache-cassandra",
|
||||||
"categories": [
|
"categories": [
|
||||||
8
|
8
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": null,
|
"interface_port": null,
|
||||||
"documentation": null,
|
"documentation": "https://cassandra.apache.org/doc/latest/",
|
||||||
"website": "https://cassandra.apache.org/",
|
"website": "https://cassandra.apache.org/",
|
||||||
"logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/apachecassandra.svg",
|
"logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/apachecassandra.svg",
|
||||||
"description": "Apache-Cassandra is an open source NoSQL distributed database trusted by thousands of companies for scalability and high availability without compromising performance.",
|
"config_path": "/etc/cassandra/cassandra.yaml",
|
||||||
"install_methods": [
|
"description": "Apache-Cassandra is an open source NoSQL distributed database trusted by thousands of companies for scalability and high availability without compromising performance.",
|
||||||
{
|
"install_methods": [
|
||||||
"type": "default",
|
{
|
||||||
"script": "ct/apache-cassandra.sh",
|
"type": "default",
|
||||||
"resources": {
|
"script": "ct/apache-cassandra.sh",
|
||||||
"cpu": 1,
|
"resources": {
|
||||||
"ram": 2048,
|
"cpu": 1,
|
||||||
"hdd": 4,
|
"ram": 2048,
|
||||||
"os": "debian",
|
"hdd": 4,
|
||||||
"version": "12"
|
"os": "debian",
|
||||||
}
|
"version": "12"
|
||||||
}
|
}
|
||||||
],
|
}
|
||||||
"default_credentials": {
|
],
|
||||||
"username": null,
|
"default_credentials": {
|
||||||
"password": null
|
"username": null,
|
||||||
},
|
"password": null
|
||||||
"notes": [
|
},
|
||||||
{
|
"notes": []
|
||||||
"text": "Apache-Cassandra Configuration: `nano /etc/cassandra/cassandra.yaml`",
|
}
|
||||||
"type": "info"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,39 +1,40 @@
|
|||||||
{
|
{
|
||||||
"name": "Apache-CouchDB",
|
"name": "Apache-CouchDB",
|
||||||
"slug": "apache-couchdb",
|
"slug": "apache-couchdb",
|
||||||
"categories": [
|
"categories": [
|
||||||
8
|
8
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": false,
|
"updateable": false,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 5984,
|
"interface_port": 5984,
|
||||||
"documentation": null,
|
"documentation": "https://docs.couchdb.org/en/stable/",
|
||||||
"website": "https://couchdb.apache.org/",
|
"website": "https://couchdb.apache.org/",
|
||||||
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/couchdb.svg",
|
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/couchdb.svg",
|
||||||
"description": "Apache-CouchDB Seamless multi-master sync, that scales from Big Data to Mobile, with an Intuitive HTTP/JSON API and designed for Reliability.",
|
"config_path": "etc/default.ini",
|
||||||
"install_methods": [
|
"description": "Apache-CouchDB Seamless multi-master sync, that scales from Big Data to Mobile, with an Intuitive HTTP/JSON API and designed for Reliability.",
|
||||||
{
|
"install_methods": [
|
||||||
"type": "default",
|
{
|
||||||
"script": "ct/apache-couchdb.sh",
|
"type": "default",
|
||||||
"resources": {
|
"script": "ct/apache-couchdb.sh",
|
||||||
"cpu": 2,
|
"resources": {
|
||||||
"ram": 4096,
|
"cpu": 2,
|
||||||
"hdd": 10,
|
"ram": 4096,
|
||||||
"os": "debian",
|
"hdd": 10,
|
||||||
"version": "12"
|
"os": "debian",
|
||||||
}
|
"version": "12"
|
||||||
}
|
}
|
||||||
],
|
}
|
||||||
"default_credentials": {
|
],
|
||||||
"username": null,
|
"default_credentials": {
|
||||||
"password": null
|
"username": null,
|
||||||
},
|
"password": null
|
||||||
"notes": [
|
},
|
||||||
{
|
"notes": [
|
||||||
"text": "Show Login Credentials: `cat CouchDB.creds`",
|
{
|
||||||
"type": "info"
|
"text": "Show Login Credentials: `cat CouchDB.creds`",
|
||||||
}
|
"type": "info"
|
||||||
]
|
}
|
||||||
}
|
]
|
||||||
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
"documentation": null,
|
"documentation": null,
|
||||||
"website": "https://guacamole.apache.org/",
|
"website": "https://guacamole.apache.org/",
|
||||||
"logo": "https://guacamole.apache.org/images/logos/guac-tricolor-logo.svg",
|
"logo": "https://guacamole.apache.org/images/logos/guac-tricolor-logo.svg",
|
||||||
|
"config_path": "/etc/guacamole/guacd.conf",
|
||||||
"description": "Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.",
|
"description": "Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
@@ -32,3 +33,4 @@
|
|||||||
},
|
},
|
||||||
"notes": []
|
"notes": []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,34 +1,40 @@
|
|||||||
{
|
{
|
||||||
"name": "Apache Tika",
|
"name": "Apache Tika",
|
||||||
"slug": "apache-tika",
|
"slug": "apache-tika",
|
||||||
"categories": [
|
"categories": [
|
||||||
12
|
12
|
||||||
],
|
],
|
||||||
"date_created": "2025-02-05",
|
"date_created": "2025-02-05",
|
||||||
"type": "ct",
|
"type": "ct",
|
||||||
"updateable": true,
|
"updateable": true,
|
||||||
"privileged": false,
|
"privileged": false,
|
||||||
"interface_port": 9998,
|
"interface_port": 9998,
|
||||||
"documentation": null,
|
"documentation": "https://cwiki.apache.org/confluence/display/tika",
|
||||||
"website": "https://tika.apache.org/",
|
"website": "https://tika.apache.org/",
|
||||||
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/apache-tika.svg",
|
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/apache-tika.svg",
|
||||||
"description": "The Apache Tika™ toolkit detects and extracts metadata and text from over a thousand different file types (such as PPT, XLS, and PDF). All of these file types can be parsed through a single interface, making Tika useful for search engine indexing, content analysis, translation, and much more.",
|
"config_path": "/opt/apache-tika/tika-config.xml",
|
||||||
"install_methods": [
|
"description": "The Apache Tika™ toolkit detects and extracts metadata and text from over a thousand different file types (such as PPT, XLS, and PDF). All of these file types can be parsed through a single interface, making Tika useful for search engine indexing, content analysis, translation, and much more.",
|
||||||
{
|
"install_methods": [
|
||||||
"type": "default",
|
{
|
||||||
"script": "ct/apache-tika.sh",
|
"type": "default",
|
||||||
"resources": {
|
"script": "ct/apache-tika.sh",
|
||||||
"cpu": 1,
|
"resources": {
|
||||||
"ram": 2024,
|
"cpu": 1,
|
||||||
"hdd": 10,
|
"ram": 2024,
|
||||||
"os": "debian",
|
"hdd": 10,
|
||||||
"version": "12"
|
"os": "debian",
|
||||||
}
|
"version": "12"
|
||||||
}
|
}
|
||||||
],
|
}
|
||||||
"default_credentials": {
|
],
|
||||||
"username": null,
|
"default_credentials": {
|
||||||
"password": null
|
"username": null,
|
||||||
},
|
"password": null
|
||||||
"notes": []
|
},
|
||||||
|
"notes": [
|
||||||
|
{
|
||||||
|
"text": "Configuration file is not created at install time. Example is at: `https://cwiki.apache.org/confluence/display/TIKA/TikaServer+in+Tika+2.x`",
|
||||||
|
"type": "info"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
"documentation": "https://cwiki.apache.org/confluence/display/TOMCAT",
|
"documentation": "https://cwiki.apache.org/confluence/display/TOMCAT",
|
||||||
"website": "https://tomcat.apache.org/",
|
"website": "https://tomcat.apache.org/",
|
||||||
"logo": "https://upload.wikimedia.org/wikipedia/commons/f/fe/Apache_Tomcat_logo.svg",
|
"logo": "https://upload.wikimedia.org/wikipedia/commons/f/fe/Apache_Tomcat_logo.svg",
|
||||||
|
"config_path": "",
|
||||||
"description": "Apache Tomcat is an open-source application server that runs Java Servlets and JavaServer Pages (JSP). It allows developers to deploy and manage Java web applications by handling HTTP requests and serving dynamic content. Tomcat is widely used for lightweight web applications and supports various Java EE features like WebSockets and JNDI.",
|
"description": "Apache Tomcat is an open-source application server that runs Java Servlets and JavaServer Pages (JSP). It allows developers to deploy and manage Java web applications by handling HTTP requests and serving dynamic content. Tomcat is widely used for lightweight web applications and supports various Java EE features like WebSockets and JNDI.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
@@ -37,3 +38,4 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
"documentation": null,
|
"documentation": null,
|
||||||
"website": "https://www.unix-ag.uni-kl.de/~bloch/acng/",
|
"website": "https://www.unix-ag.uni-kl.de/~bloch/acng/",
|
||||||
"logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/linux.svg",
|
"logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/linux.svg",
|
||||||
|
"config_path": "",
|
||||||
"description": "Apt-Cacher-NG is a caching proxy. Specialized for package files from Linux distributors, primarily for Debian (and Debian based) distributions.",
|
"description": "Apt-Cacher-NG is a caching proxy. Specialized for package files from Linux distributors, primarily for Debian (and Debian based) distributions.",
|
||||||
"install_methods": [
|
"install_methods": [
|
||||||
{
|
{
|
||||||
@@ -31,4 +32,4 @@
|
|||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": []
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user