mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-11-05 02:42:50 +00:00
Compare commits
17 Commits
2025-02-20
...
2025-02-21
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a9362e0b4a | ||
|
|
10c46723fe | ||
|
|
666e170f7d | ||
|
|
109c48694e | ||
|
|
d0cd58e923 | ||
|
|
16b8bbfca6 | ||
|
|
209aa220b0 | ||
|
|
dd8db43dea | ||
|
|
7d40e148e9 | ||
|
|
ef6eeea608 | ||
|
|
0c13b71466 | ||
|
|
e1c25a3c8e | ||
|
|
e5bfb8f8a3 | ||
|
|
4dfcd32d92 | ||
|
|
167deb5d7f | ||
|
|
8cb3007d66 | ||
|
|
49bcd30e77 |
22
.github/changelog-pr-config.json
vendored
22
.github/changelog-pr-config.json
vendored
@@ -4,7 +4,7 @@
|
||||
"labels": ["breaking change"]
|
||||
},
|
||||
{
|
||||
"title": "✨ New Scripts",
|
||||
"title": "🆕 New Scripts",
|
||||
"labels": ["new script"]
|
||||
},
|
||||
{
|
||||
@@ -12,25 +12,29 @@
|
||||
"labels": ["update script"]
|
||||
},
|
||||
{
|
||||
"title": "🆕 Features",
|
||||
"labels": ["new feature"]
|
||||
"title": "🐞 Bug Fixes (Updated Scripts)",
|
||||
"labels": ["update script", "bugfix"]
|
||||
},
|
||||
{
|
||||
"title": "✨ Feature Updates (Updated Scripts)",
|
||||
"labels": ["update script", "feature"]
|
||||
},
|
||||
{
|
||||
"title": "✨ New Features",
|
||||
"labels": ["feature"]
|
||||
},
|
||||
{
|
||||
"title": "🌐 Website",
|
||||
"labels": ["website"]
|
||||
},
|
||||
{
|
||||
"title": "🐞 Bug Fixes",
|
||||
"labels": ["bug fix"]
|
||||
"title": "📡 API",
|
||||
"labels": ["api"]
|
||||
},
|
||||
{
|
||||
"title": "🧰 Maintenance",
|
||||
"labels": ["maintenance"]
|
||||
},
|
||||
{
|
||||
"title": "📡 API",
|
||||
"labels": ["api"]
|
||||
},
|
||||
{
|
||||
"title": "❔ Unlabelled",
|
||||
"labels": []
|
||||
|
||||
44
.github/workflows/autolabeler.yml
vendored
44
.github/workflows/autolabeler.yml
vendored
@@ -19,7 +19,7 @@ jobs:
|
||||
- name: Install minimatch
|
||||
run: npm install minimatch
|
||||
|
||||
- name: Label PR based on file changes
|
||||
- name: Label PR based on file changes and PR template
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
@@ -32,6 +32,12 @@ jobs:
|
||||
const autolabelerConfig = JSON.parse(fileContent);
|
||||
|
||||
const prNumber = context.payload.pull_request.number;
|
||||
const prBody = context.payload.pull_request.body.toLowerCase();
|
||||
|
||||
// Label-Sammlung (um doppelte API-Calls zu vermeiden)
|
||||
let labelsToAdd = new Set();
|
||||
|
||||
// Prüfe Datei-Änderungen
|
||||
const prListFilesResponse = await github.rest.pulls.listFiles({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
@@ -39,8 +45,6 @@ jobs:
|
||||
});
|
||||
const prFiles = prListFilesResponse.data;
|
||||
|
||||
let labelsToAdd = new Set();
|
||||
|
||||
for (const [label, rules] of Object.entries(autolabelerConfig)) {
|
||||
const shouldAddLabel = prFiles.some((prFile) => {
|
||||
return rules.some((rule) => {
|
||||
@@ -57,38 +61,26 @@ jobs:
|
||||
}
|
||||
}
|
||||
|
||||
if (labelsToAdd.size > 0) {
|
||||
console.log(`Adding labels ${Array.from(labelsToAdd).join(", ")} to PR ${prNumber}`);
|
||||
await github.rest.issues.addLabels({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: prNumber,
|
||||
labels: Array.from(labelsToAdd),
|
||||
});
|
||||
}
|
||||
|
||||
- name: Label PR based on PR template selections
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const prBody = context.payload.pull_request.body.toLowerCase();
|
||||
const prNumber = context.payload.pull_request.number;
|
||||
const labelMappings = {
|
||||
"🐞 bug fix": "bug fix",
|
||||
"✨ new feature": "new feature",
|
||||
// Prüfe PR-Template Checkboxen mit den korrekten Labels
|
||||
const templateLabelMappings = {
|
||||
"🐞 bug fix": "bugfix",
|
||||
"✨ new feature": "feature",
|
||||
"💥 breaking change": "breaking change",
|
||||
"🆕 new script": "new script"
|
||||
};
|
||||
|
||||
let labelsToAdd = new Set();
|
||||
|
||||
for (const [checkbox, label] of Object.entries(labelMappings)) {
|
||||
for (const [checkbox, label] of Object.entries(templateLabelMappings)) {
|
||||
const regex = new RegExp(`- \\[(.*?)\\] ${checkbox}`, "i");
|
||||
if (regex.test(prBody)) {
|
||||
const match = prBody.match(regex);
|
||||
if (match && match[1].trim() !== "") { // Checkbox ist gesetzt
|
||||
labelsToAdd.add(label);
|
||||
}
|
||||
}
|
||||
|
||||
// Debugging: Anzeigen, welche Labels tatsächlich erkannt wurden
|
||||
console.log(`Labels to add: ${Array.from(labelsToAdd).join(", ")}`);
|
||||
|
||||
// Labels setzen, falls neue erkannt wurden
|
||||
if (labelsToAdd.size > 0) {
|
||||
console.log(`Adding labels ${Array.from(labelsToAdd).join(", ")} to PR ${prNumber}`);
|
||||
await github.rest.issues.addLabels({
|
||||
|
||||
0
.editorconfig → .vscode/.editorconfig
vendored
0
.editorconfig → .vscode/.editorconfig
vendored
13
CHANGELOG.md
13
CHANGELOG.md
@@ -17,6 +17,19 @@ All LXC instances created using this repository come pre-installed with Midnight
|
||||
Do not break established syntax in this file, as it is automatically updated by a Github Workflow
|
||||
|
||||
|
||||
## 2025-02-21
|
||||
|
||||
### Changes
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- Add ZFS to Podman. Now it works on ZFS! [@jaminmc](https://github.com/jaminmc) ([#2526](https://github.com/community-scripts/ProxmoxVE/pull/2526))
|
||||
- Fix: Tianji - Downgrade Node [@MickLesk](https://github.com/MickLesk) ([#2530](https://github.com/community-scripts/ProxmoxVE/pull/2530))
|
||||
|
||||
### 🧰 Maintenance
|
||||
|
||||
- [gh] General Cleanup & Moving Files / Folders [@MickLesk](https://github.com/MickLesk) ([#2532](https://github.com/community-scripts/ProxmoxVE/pull/2532))
|
||||
|
||||
## 2025-02-20
|
||||
|
||||
### Changes
|
||||
|
||||
@@ -19,10 +19,10 @@
|
||||
<a href="https://ko-fi.com/community_scripts">
|
||||
<img src="https://img.shields.io/badge/Support-FF5F5F?style=for-the-badge&logo=ko-fi&logoColor=white" alt="Donate" />
|
||||
</a>
|
||||
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTING.md">
|
||||
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTOR_AND_GUIDES/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">
|
||||
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTOR_AND_GUIDES/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://github.com/community-scripts/ProxmoxVE/blob/main/CHANGELOG.md">
|
||||
|
||||
@@ -19,11 +19,72 @@ $STD apt-get install -y sudo
|
||||
$STD apt-get install -y mc
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
get_latest_release() {
|
||||
curl -sL https://api.github.com/repos/$1/releases/latest | grep '"tag_name":' | cut -d'"' -f4
|
||||
}
|
||||
|
||||
PORTAINER_LATEST_VERSION=$(get_latest_release "portainer/portainer")
|
||||
PORTAINER_AGENT_LATEST_VERSION=$(get_latest_release "portainer/agent")
|
||||
|
||||
if $STD mount | grep 'on / type zfs' > null && echo "ZFS"; then
|
||||
msg_info "Enabling ZFS support."
|
||||
mkdir -p /etc/containers
|
||||
cat <<'EOF' >/usr/local/bin/overlayzfsmount
|
||||
#!/bin/sh
|
||||
exec /bin/mount -t overlay overlay "$@"
|
||||
EOF
|
||||
chmod +x /usr/local/bin/overlayzfsmount
|
||||
cat <<'EOF' >/etc/containers/storage.conf
|
||||
[storage]
|
||||
driver = "overlay"
|
||||
runroot = "/run/containers/storage"
|
||||
graphroot = "/var/lib/containers/storage"
|
||||
|
||||
[storage.options]
|
||||
pull_options = {enable_partial_images = "false", use_hard_links = "false", ostree_repos=""}
|
||||
mount_program = "/usr/local/bin/overlayzfsmount"
|
||||
|
||||
[storage.options.overlay]
|
||||
mountopt = "nodev"
|
||||
EOF
|
||||
fi
|
||||
|
||||
msg_info "Installing Podman"
|
||||
$STD apt-get -y install podman
|
||||
$STD systemctl enable --now podman.socket
|
||||
echo -e 'unqualified-search-registries=["docker.io"]' >> /etc/containers/registries.conf
|
||||
msg_ok "Installed Podman"
|
||||
|
||||
read -r -p "Would you like to add Portainer? <y/N> " prompt
|
||||
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
||||
msg_info "Installing Portainer $PORTAINER_LATEST_VERSION"
|
||||
podman volume create portainer_data >/dev/null
|
||||
$STD podman run -d \
|
||||
-p 8000:8000 \
|
||||
-p 9443:9443 \
|
||||
--name=portainer \
|
||||
--restart=always \
|
||||
-v /run/podman/podman.sock:/var/run/docker.sock \
|
||||
-v portainer_data:/data \
|
||||
portainer/portainer-ce:latest
|
||||
msg_ok "Installed Portainer $PORTAINER_LATEST_VERSION"
|
||||
else
|
||||
read -r -p "Would you like to add the Portainer Agent? <y/N> " prompt
|
||||
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
||||
msg_info "Installing Portainer agent $PORTAINER_AGENT_LATEST_VERSION"
|
||||
podman volume create temp >/dev/null
|
||||
podman volume remove temp >/dev/null
|
||||
$STD podman run -d \
|
||||
-p 9001:9001 \
|
||||
--name portainer_agent \
|
||||
--restart=always \
|
||||
-v /run/podman/podman.sock:/var/run/docker.sock \
|
||||
-v /var/lib/containers/storage/volumes:/var/lib/docker/volumes \
|
||||
portainer/agent
|
||||
msg_ok "Installed Portainer Agent $PORTAINER_AGENT_LATEST_VERSION"
|
||||
fi
|
||||
fi
|
||||
|
||||
msg_info "Pulling Home Assistant Image"
|
||||
$STD podman pull docker.io/homeassistant/home-assistant:stable
|
||||
msg_ok "Pulled Home Assistant Image"
|
||||
|
||||
@@ -19,12 +19,73 @@ $STD apt-get install -y sudo
|
||||
$STD apt-get install -y mc
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
get_latest_release() {
|
||||
curl -sL https://api.github.com/repos/$1/releases/latest | grep '"tag_name":' | cut -d'"' -f4
|
||||
}
|
||||
|
||||
PORTAINER_LATEST_VERSION=$(get_latest_release "portainer/portainer")
|
||||
PORTAINER_AGENT_LATEST_VERSION=$(get_latest_release "portainer/agent")
|
||||
|
||||
if $STD mount | grep 'on / type zfs' > null && echo "ZFS"; then
|
||||
msg_info "Enabling ZFS support."
|
||||
mkdir -p /etc/containers
|
||||
cat <<'EOF' >/usr/local/bin/overlayzfsmount
|
||||
#!/bin/sh
|
||||
exec /bin/mount -t overlay overlay "$@"
|
||||
EOF
|
||||
chmod +x /usr/local/bin/overlayzfsmount
|
||||
cat <<'EOF' >/etc/containers/storage.conf
|
||||
[storage]
|
||||
driver = "overlay"
|
||||
runroot = "/run/containers/storage"
|
||||
graphroot = "/var/lib/containers/storage"
|
||||
|
||||
[storage.options]
|
||||
pull_options = {enable_partial_images = "false", use_hard_links = "false", ostree_repos=""}
|
||||
mount_program = "/usr/local/bin/overlayzfsmount"
|
||||
|
||||
[storage.options.overlay]
|
||||
mountopt = "nodev"
|
||||
EOF
|
||||
fi
|
||||
|
||||
msg_info "Installing Podman"
|
||||
$STD apt-get -y install podman
|
||||
$STD systemctl enable --now podman.socket
|
||||
echo -e 'unqualified-search-registries=["docker.io"]' >> /etc/containers/registries.conf
|
||||
msg_ok "Installed Podman"
|
||||
|
||||
read -r -p "Would you like to add Portainer? <y/N> " prompt
|
||||
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
||||
msg_info "Installing Portainer $PORTAINER_LATEST_VERSION"
|
||||
podman volume create portainer_data >/dev/null
|
||||
$STD podman run -d \
|
||||
-p 8000:8000 \
|
||||
-p 9443:9443 \
|
||||
--name=portainer \
|
||||
--restart=always \
|
||||
-v /run/podman/podman.sock:/var/run/docker.sock \
|
||||
-v portainer_data:/data \
|
||||
portainer/portainer-ce:latest
|
||||
msg_ok "Installed Portainer $PORTAINER_LATEST_VERSION"
|
||||
else
|
||||
read -r -p "Would you like to add the Portainer Agent? <y/N> " prompt
|
||||
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
|
||||
msg_info "Installing Portainer agent $PORTAINER_AGENT_LATEST_VERSION"
|
||||
podman volume create temp >/dev/null
|
||||
podman volume remove temp >/dev/null
|
||||
$STD podman run -d \
|
||||
-p 9001:9001 \
|
||||
--name portainer_agent \
|
||||
--restart=always \
|
||||
-v /run/podman/podman.sock:/var/run/docker.sock \
|
||||
-v /var/lib/containers/storage/volumes:/var/lib/docker/volumes \
|
||||
portainer/agent
|
||||
msg_ok "Installed Portainer Agent $PORTAINER_AGENT_LATEST_VERSION"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ msg_ok "Installed Dependencies"
|
||||
msg_info "Installing Node.js"
|
||||
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
|
||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
|
||||
$STD apt-get update
|
||||
$STD apt-get install -y nodejs
|
||||
$STD npm install -g pnpm@9.7.1
|
||||
|
||||
@@ -31,10 +31,6 @@
|
||||
"password": null
|
||||
},
|
||||
"notes": [
|
||||
{
|
||||
"text": "Doesn't work with ZFS",
|
||||
"type": "warning"
|
||||
},
|
||||
{
|
||||
"text": "If the LXC is created Privileged, the script will automatically set up USB passthrough.",
|
||||
"type": "warning"
|
||||
@@ -42,6 +38,10 @@
|
||||
{
|
||||
"text": "config path: `/var/lib/containers/storage/volumes/hass_config/_data`",
|
||||
"type": "info"
|
||||
},
|
||||
{
|
||||
"text": "Options to Install Portainer or Portainer Agent",
|
||||
"type": "warning"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -32,7 +32,7 @@
|
||||
},
|
||||
"notes": [
|
||||
{
|
||||
"text": "Doesn't work with ZFS",
|
||||
"text": "Options to Install Portainer or Portainer Agent",
|
||||
"type": "warning"
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user