Skip to content

Commit

Permalink
Merge branch 'main' of github.com:DysfunctionalProgramming/ProxmoxVE
Browse files Browse the repository at this point in the history
  • Loading branch information
yry-dev committed Nov 16, 2024
2 parents 613a72d + f8d302c commit dd7dfa8
Show file tree
Hide file tree
Showing 42 changed files with 1,802 additions and 93 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Problems with a script.
name: Problems with a script
description: Generate a report on an issue pertaining specifically to a script. For other inquires please share them in the Discussions section.
body:
- type: markdown
Expand Down
45 changes: 45 additions & 0 deletions .github/ISSUE_TEMPLATE/website-issue.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Problems with the website
description: Generate a report on an issue pertaining specifically to the website (https://community-scripts.github.io/ProxmoxVE/). For other inquires please share them in the Discussions section.
labels: ["website"]
body:
- type: markdown
attributes:
value: |
**IMPORTANT:** Failure to comply with the following guidelines may result in immediate closure.
- Prior to submitting, kindly search the closed issues to check if the problem you are reporting has already been addressed and resolved. If you come across a closed issue that pertains to your problem, please leave a comment on that issue instead of creating a new one.
- For suggestions, questions or feature/script requests, please share them in the [Discussions section.](https://github.com/community-scripts/ProxmoxVE/discussions)
- type: input
id: guidelines
attributes:
label: Please verify that you have read and understood the guidelines.
placeholder: 'yes'
validations:
required: true
- type: textarea
id: bug
attributes:
label: A clear and concise description of the issue.
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: Please provide a description of the expected behavior.
validations:
required: true
- type: textarea
id: screenshot
attributes:
label: If relevant, including screenshots or a code block can be helpful in clarifying the issue.
placeholder: Code blocks begin and conclude by enclosing the code with three backticks (```) above and below it.
validations:
required: false
- type: textarea
id: reproduce
attributes:
label: Please provide detailed steps to reproduce the issue.
placeholder: First do this, then this ...
validations:
required: false


71 changes: 71 additions & 0 deletions .github/autolabeler-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@

{
"breaking change": [
{
"fileStatus": "renamed",
"includeGlobs": ["ct/**", "install/**", "misc/**", "turnkey/**", "vm/**"],
"excludeGlobs": []
},
{
"fileStatus": "removed",
"includeGlobs": ["ct/**", "install/**", "misc/**", "turnkey/**", "vm/**"],
"excludeGlobs": []
}
],
"new script": [
{
"fileStatus": "added",
"includeGlobs": ["ct/**", "install/**", "misc/**", "turnkey/**", "vm/**"],
"excludeGlobs": []
}
],
"update script": [
{
"fileStatus": "modified",
"includeGlobs": ["ct/**", "install/**", "misc/**", "turnkey/**", "vm/**"],
"excludeGlobs": ["misc/build.func", "misc/install.func"]
}
],
"delete script": [
{
"fileStatus": "removed",
"includeGlobs": ["ct/**", "install/**", "misc/**", "turnkey/**", "vm/**"],
"excludeGlobs": []
}
],
"rename script": [
{
"fileStatus": "renamed",
"includeGlobs": ["ct/**", "install/**", "misc/**", "turnkey/**", "vm/**"],
"excludeGlobs": []
}
],
"frontend": [
{
"fileStatus": null,
"includeGlobs": ["frontend/**"],
"excludeGlobs": []
}
],
"documentation": [
{
"fileStatus": null,
"includeGlobs": ["json/**"],
"excludeGlobs": []
}
],
"maintenance": [
{
"fileStatus": null,
"includeGlobs": ["*.md", ".github/**"],
"excludeGlobs": []
}
],
"high risk": [
{
"fileStatus": null,
"includeGlobs": ["misc/build.func", "misc/install.func"],
"excludeGlobs": []
}
]
}
65 changes: 65 additions & 0 deletions .github/workflows/autolabeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Auto Label Pull Requests

on:
pull_request_target:
branches: ["main"]
types: [opened, synchronize, reopened, edited]

jobs:
autolabeler:
runs-on: ubuntu-latest
permissions:
pull-requests: write
env:
CONFIG_PATH: .github/autolabeler-config.json
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install minimatch
run: npm install minimatch

- name: Label PR based on config rules
uses: actions/github-script@v7
with:
script: |
const fs = require('fs').promises;
const path = require('path');
const { minimatch } = require('minimatch');
const configPath = path.resolve(process.env.CONFIG_PATH);
const fileContent = await fs.readFile(configPath, 'utf-8');
const autolabelerConfig = JSON.parse(fileContent);
const prNumber = context.payload.pull_request.number;
const prListFilesResponse = await github.rest.pulls.listFiles({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: prNumber,
});
const prFiles = prListFilesResponse.data;

for (const [label, rules] of Object.entries(autolabelerConfig)) {
const shouldAddLabel = prFiles.some((prFile) => {
return rules.some((rule) => {
const isFileStatusMatch = rule.fileStatus ? rule.fileStatus === prFile.status : true;
const isIncludeGlobMatch = rule.includeGlobs.some((glob) => minimatch(prFile.filename, glob));
const isExcludeGlobMatch = rule.excludeGlobs.some((glob) => minimatch(prFile.filename, glob));

return isFileStatusMatch && isIncludeGlobMatch && !isExcludeGlobMatch;
});
});

if (shouldAddLabel) {
console.log(`Adding label ${label} to PR ${prNumber}`);
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
labels: [label],
});
}
}



114 changes: 90 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,46 +1,112 @@
<div align="center">
<a href="#">
<img src="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/images/logo.png" height="100px" />
</a>
<p align="center">
<a href="#">
<img src="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/images/logo.png" height="100px" />
</a>
</p>
</div>

<div style="border: 2px solid #d1d5db; padding: 20px; border-radius: 8px; background-color: #f9fafb;">
<h2 align="center">Proxmox VE Helper-Scripts: A Community Legacy</h2>
<p>Dear Community,</p>
<p>In agreement with <a href="https://github.com/tteck">tteck</a> and <a href="https://github.com/community-scripts">Community-Scripts</a>, this project has now transitioned into a community-driven effort. We aim to continue his work, building on the foundation he laid to support Proxmox users worldwide.</p>
<p>tteck, whose contribution has been invaluable, shared recently that he is now in hospice care. His scripts have empowered thousands, and we honor his legacy by carrying this project forward with the same passion and commitment. We’re deeply grateful for his vision, which made Proxmox accessible to so many.</p>
<p>To tteck: Your impact will be felt in this community for years to come. We thank you for everything.</p>
<p>Warm regards,<br>The Community</p>
</div>

---
<p>In agreement with <a href="https://github.com/tteck">tteck</a> and <a href="https://github.com/community-scripts">Community-Scripts</a>, this project has now transitioned into a community-driven effort. We aim to continue his work, building on the foundation he laid to support Proxmox users worldwide. Tteck sadly <a href="https://github.com/community-scripts/ProxmoxVE/discussions/237">passed away in early November 2024</a>. This project will be a memorial for his incredible contribution to the community.</p>

<p align="center">
<a href="https://helper-scripts.com">Website</a> |
<a href="https://ko-fi.com/proxmoxhelperscripts">Ko-Fi (for tteck🙏)</a> |
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTING.md">Contribute</a> |
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/USER_SUBMITTED_GUIDES.md">Guides</a> |
<a href="https://discord.gg/UHrpNWGwkH">Discord</a> |
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/CHANGELOG.md">Changelog</a>
<a href="https://helper-scripts.com">
<img src="https://img.shields.io/badge/Website-4c9b3f?style=for-the-badge&logo=github&logoColor=white" alt="Website" />
</a>
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTING.md">
<img src="https://img.shields.io/badge/Contribute-ff4785?style=for-the-badge&logo=git&logoColor=white" alt="Contribute" />
</a>
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/USER_SUBMITTED_GUIDES.md">
<img src="https://img.shields.io/badge/Guides-0077b5?style=for-the-badge&logo=read-the-docs&logoColor=white" alt="Guides" />
</a>
<a href="https://discord.gg/UHrpNWGwkH">
<img src="https://img.shields.io/badge/Discord-7289da?style=for-the-badge&logo=discord&logoColor=white" alt="Discord" />
</a>
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/CHANGELOG.md">
<img src="https://img.shields.io/badge/Changelog-6c5ce7?style=for-the-badge&logo=git&logoColor=white" alt="Changelog" />
</a>
</p>

<hr>

## 🚀&nbsp; Introduction

**Proxmox VE Helper-Scripts** is a community-driven initiative that simplifies the setup of Proxmox Virtual Environment (VE). Originally created by [tteck](https://github.com/tteck), these scripts automate and streamline the process of creating and configuring Linux containers (LXC) and virtual machines (VMs) on Proxmox VE.

---

This community-managed project continues tteck’s original vision of simplifying Proxmox VE setup. The scripts allow users to create Linux containers or virtual machines interactively, with options for both simple and advanced configurations. While the basic setup adheres to default settings, the advanced setup offers extensive customization options for specific needs.
## 📦&nbsp; Features

All configuration choices are displayed in a dialog box, where users can select their preferences. The script then validates these inputs to generate a final configuration for the container or virtual machine.
- **Interactive Setup**: Select simple or advanced options for your VM or LXC container configurations.
- **Customizable Configuration**: Advanced setup allows you to fine-tune your environment.
- **Ease of Use**: Scripts automatically validate inputs to generate the final configuration.
- **Proxmox Integration**: Seamlessly integrates with Proxmox VE to provide a user-friendly experience.
- **Community-Driven**: This project is actively maintained and improved by the community.

<hr>

<p align="center">
Please exercise caution and thoroughly review scripts and automation tasks from external sources. <a href="https://github.com/community-scripts/ProxmoxVE/blob/main/CODE-AUDIT.md">Read more</a>
</p>
## 🚀&nbsp; Installation

To install the Proxmox Helper Scripts, simply follow these steps:

1. Open the [Website](https://helper-scripts.com/)
2. Search for the desired script, e.g. **"Home Assistant OS VM"**.
3. In the **"How To Install"** section, copy the provided **Bash command**.
4. Open the Proxmox shell on your **main node**.
5. Paste the command into the console, hit enter, and you are away! 🚀

For detailed instructions, check out our [official guides](https://github.com/community-scripts/ProxmoxVE/blob/main/USER_SUBMITTED_GUIDES.md).

---

### Note on the Transition:
This project is now maintained by the community in memory of tteck’s invaluable contribution. His dedication transformed the Proxmox experience for countless users, and we’re committed to continuing his work with the same dedication.
## ❤️&nbsp; Community and Contributions

The Proxmox Helper Scripts project is community-driven, and we highly appreciate any contributions — whether it's through reporting bugs, suggesting features, improving documentation, or spreading the word. We are committed to maintaining transparency and sustainability in this open-source effort.

### 💖&nbsp; Donate to Support the Project

We offer two donation options to help maintain and grow this project:

- **Ko-Fi for tteck**: [Donate to tteck's wife](https://ko-fi.com/proxmoxhelperscripts) - All donations will go directly to Angie, wife of the founder of this project [who passed away in early November 2024](https://github.com/community-scripts/ProxmoxVE/discussions/237).
- **Ko-Fi for Community Edition**: [Donate to this project](https://ko-fi.com/community_scripts) - All funds will go towards script maintenance infrastructure and server costs. **Our most immediate need is funding testing infrastructure**. Your contributions help keep the project running. To honor tteck's legacy this project will also raise money for charity (cancer research, hospice care). Of the money donated to this project, 30% will be donated to charity. Income, expenditure and charitable donations will be disclosed annually in a transparent manner.

<hr>

## 💬&nbsp; Get Help

Have a question or ran into an issue? Join the conversation and get help from fellow community members:

- **Discord**: Join our [Proxmox Helper Scripts Discord server](https://discord.gg/UHrpNWGwkH) to chat with other users and get support.
- **GitHub Discussions**: [Ask questions or report issues](https://github.com/community-scripts/ProxmoxVE/discussions).

<hr>

## 🤝&nbsp; Found a bug or missing feature?

If you’ve encountered an issue or identified an area for improvement, please file a new issue on our [GitHub issues page](https://github.com/community-scripts/ProxmoxVE/issues). If you’ve already found a solution or improvement, feel free to submit a pull request! We’d love to review and merge your contributions.

<hr>

## &nbsp; Requirements

To use the Proxmox VE Helper-Scripts, your system should meet the following requirements:

- **Proxmox VE version**: 8.x or higher
- **Linux**: Compatible with most distributions
- **Dependencies**: Ensure that your system has bash and curl installed.

<hr>

## 📜&nbsp; License

This project is licensed under the terms of the [MIT License](LICENSE).

---

<sub><div align="center"> Proxmox® is a registered trademark of Proxmox Server Solutions GmbH. </div></sub>
## 📢&nbsp; Acknowledgments

This community project is a memorial to the memory of [tteck](https://github.com/tteck). His foundational work created a thriving Proxmox community. Tteck worked on this project right until the end, even while in hospice. We are dedicated to keeping his vision alive and expanding upon it with the continued support of this vibrant community.

Proxmox® is a registered trademark of [Proxmox Server Solutions GmbH](https://www.proxmox.com/en/about/company).
27 changes: 1 addition & 26 deletions ct/adguard.sh
Original file line number Diff line number Diff line change
Expand Up @@ -52,35 +52,10 @@ function default_settings() {
VERB="no"
echo_default
}

function update_script() {
header_info
if [[ ! -d /opt/AdGuardHome ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
if (( $(df /boot | awk 'NR==2{gsub("%","",$5); print $5}') > 80 )); then
read -r -p "Warning: Storage is dangerously low, continue anyway? <y/N> " prompt
[[ ${prompt,,} =~ ^(y|yes)$ ]] || exit
fi
wget -qL https://static.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz
msg_info "Stopping AdguardHome"
systemctl stop AdGuardHome
msg_ok "Stopped AdguardHome"

msg_info "Updating AdguardHome"
tar -xvf AdGuardHome_linux_amd64.tar.gz &>/dev/null
mkdir -p adguard-backup
cp -r /opt/AdGuardHome/AdGuardHome.yaml /opt/AdGuardHome/data adguard-backup/
cp AdGuardHome/AdGuardHome /opt/AdGuardHome/AdGuardHome
cp -r adguard-backup/* /opt/AdGuardHome/
msg_ok "Updated AdguardHome"

msg_info "Starting AdguardHome"
systemctl start AdGuardHome
msg_ok "Started AdguardHome"

msg_info "Cleaning Up"
rm -rf AdGuardHome_linux_amd64.tar.gz AdGuardHome adguard-backup
msg_ok "Cleaned"
msg_ok "Updated Successfully"
msg_error "Adguard Home should be updated via the user interface."
exit
}

Expand Down
4 changes: 2 additions & 2 deletions ct/adventurelog.sh
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_v

msg_info "Updating ${APP} to ${RELEASE}"
cp /opt/adventurelog/backend/server/.env /opt/server.env
cp /opt/adventurelog/frontend/env /opt/frontend.env
cp /opt/adventurelog/frontend/.env /opt/frontend.env
wget -q "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip"
unzip -q v${RELEASE}.zip
mv AdventureLog-${RELEASE} /opt/adventurelog
Expand Down Expand Up @@ -107,4 +107,4 @@ description

msg_ok "Completed Successfully!\n"
echo -e "${APP} Setup should be reachable by going to the following URL.
${BL}http://${IP}:3000${CL} \n"
${BL}http://${IP}:3000${CL} \n"
1 change: 1 addition & 0 deletions ct/jellyfin.sh
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ if [[ ! -d /usr/lib/jellyfin ]]; then msg_error "No ${APP} Installation Found!";
msg_info "Updating ${APP} LXC"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
apt-get --with-new-pkgs upgrade jellyfin jellyfin-server &>/dev/null
msg_ok "Updated ${APP} LXC"
exit
}
Expand Down
3 changes: 3 additions & 0 deletions ct/jellyseerr.sh
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@ then
exit
fi
systemctl stop jellyseerr
rm -rf dist
rm -rf .next
rm -rf node_modules
export CYPRESS_INSTALL_BINARY=0
pnpm install --frozen-lockfile &>/dev/null
export NODE_OPTIONS="--max-old-space-size=3072"
Expand Down
Loading

0 comments on commit dd7dfa8

Please sign in to comment.