Compare commits

..

48 Commits

Author SHA1 Message Date
github-actions[bot]
0ff2cbc2dc Update .app-headers file 2025-01-22 09:40:05 +00:00
Jc Miñarro
81c5f51a96
Update LubeLogger script (#1656) 2025-01-22 10:39:48 +01:00
CanbiZ
c5df1bbcea
Fix: SQL Server 2022 Install (#1669)
* Fix: SQL Server 2022 Install

* Update sqlserver2022.json
2025-01-22 10:25:39 +01:00
CanbiZ
8303f61647
Update sqlserver2022-install.sh
Some checks are pending
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
2025-01-22 08:57:51 +01:00
CanbiZ
eefbbdf4df
Update actualbudget-install.sh 2025-01-22 08:28:09 +01:00
CanbiZ
77c15f5a24
Update code-server.json 2025-01-22 08:08:29 +01:00
Camron B
e2c329b9c7
Moving SQL Server 2022 to database category (#1659)
Currently displaying in the "Adblock & DNS" category
2025-01-22 06:47:36 +01:00
CanbiZ
223eecdd8e
Update sqlserver2022-install.sh
Some checks are pending
Auto Update .app-headers / update-app-headers (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
2025-01-21 21:08:48 +01:00
community-scripts-pr-app[bot]
cf2942da9a
Update CHANGELOG.md (#1654)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-21 21:01:49 +01:00
dependabot[bot]
7a66f9b42f
Bump vite from 6.0.1 to 6.0.11 in /frontend (#1653)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.0.1 to 6.0.11.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.0.11/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-21 21:01:12 +01:00
CanbiZ
6ecef0ef94
Update actualbudget-install.sh 2025-01-21 20:49:54 +01:00
CanbiZ
0e19ad2859
Update actualbudget-install.sh 2025-01-21 20:35:56 +01:00
community-scripts-pr-app[bot]
b93d7bd632
Update CHANGELOG.md (#1650)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-21 20:25:52 +01:00
CanbiZ
4b292c3b2a
Update actualbudget-install.sh 2025-01-21 20:23:59 +01:00
CanbiZ
4340ccc15d
Update actualbudget-install.sh 2025-01-21 20:13:26 +01:00
CanbiZ
621416698a
Fix: Teddycloud Script (install, clean up & update) (#1652)
* Update teddycloud-install.sh

* Update teddycloud.sh
2025-01-21 20:11:31 +01:00
CanbiZ
e6404a9a4e
Update actualbudget-install.sh 2025-01-21 19:58:28 +01:00
CanbiZ
83aff658c5
Update actualbudget-install.sh 2025-01-21 19:47:42 +01:00
CanbiZ
db061db17e
Update docker-vm.sh 2025-01-21 19:45:03 +01:00
CanbiZ
e051e414a8
Update actualbudget-install.sh 2025-01-21 19:42:38 +01:00
CanbiZ
0a7d541261
Update docker-vm.sh 2025-01-21 19:38:51 +01:00
CanbiZ
ed8edcbf2d
Fix: Docker VM deprecated gpg (#1649) 2025-01-21 19:34:12 +01:00
CanbiZ
c3acbf09ed
Update actualbudget-install.sh
Some checks are pending
Auto Update .app-headers / update-app-headers (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
2025-01-21 16:38:50 +01:00
CanbiZ
9c415ca3f4
Update actualbudget-install.sh 2025-01-21 16:37:06 +01:00
CanbiZ
c1b3d14068
Update actualbudget-install.sh 2025-01-21 16:25:55 +01:00
CanbiZ
2f2d1eeec3
Update actualbudget-install.sh 2025-01-21 16:13:59 +01:00
CanbiZ
e76e5ec4a0
Update actualbudget.sh 2025-01-21 16:13:35 +01:00
CanbiZ
7df2297be0
Update actualbudget-install.sh 2025-01-21 15:54:50 +01:00
CanbiZ
35a66c5f1f
Update actualbudget-install.sh 2025-01-21 15:27:27 +01:00
CanbiZ
e7af6f31ad
Update actualbudget-install.sh 2025-01-21 15:15:16 +01:00
community-scripts-pr-app[bot]
8337ca06fa
Update CHANGELOG.md (#1644)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-21 14:40:17 +01:00
CanbiZ
dd0cdf5d25
ActualBudget: Fix Update-Function, Fix Wget Crawling, Add Versionscheck (#1643)
* Update actualbudget-install.sh

* Update actualbudget.sh

* Update actualbudget-install.sh

* Update actualbudget.sh
2025-01-21 14:38:38 +01:00
community-scripts-pr-app[bot]
3b37f6a5b7
Update CHANGELOG.md (#1642)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-21 14:08:26 +01:00
Nícolas Pastorello
5a93af33ba
Update glpi.json (#1641)
Change category
2025-01-21 14:06:26 +01:00
CanbiZ
d73f8f224a
Update photoprism-install.sh 2025-01-21 14:00:36 +01:00
CanbiZ
0e04db089e
fix description 2025-01-21 13:56:01 +01:00
CanbiZ
b1b3d5b80a
Update photoprism-install.sh 2025-01-21 13:49:42 +01:00
community-scripts-pr-app[bot]
3bbeaa8a9d
Update CHANGELOG.md (#1640)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-21 13:48:57 +01:00
CanbiZ
c5ba9493f8
Update photoprism-install.sh (#1639) 2025-01-21 13:44:42 +01:00
community-scripts-pr-app[bot]
6e0527dc19
Update CHANGELOG.md (#1638)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-21 13:38:42 +01:00
CanbiZ
f1e6e0ae56
Add new Script: LXC Delete (Proxmox) (#1636) 2025-01-21 13:22:52 +01:00
community-scripts-pr-app[bot]
804ea32190
Update CHANGELOG.md (#1634)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-21 11:07:53 +01:00
CanbiZ
038947416d
add port for beszel 2025-01-21 11:07:09 +01:00
CanbiZ
4cf043675e
update motd file to dynamic ip (#1633) 2025-01-21 11:02:11 +01:00
community-scripts-pr-app[bot]
9fd9ab00ff
Update CHANGELOG.md (#1631)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-21 10:35:05 +01:00
Michelle Zitzerman
50b5a7d1cf
Update docker-vm.json (#1630)
fix: fixed the issue on website showing "Docker VM VM" VM twice
2025-01-21 10:22:46 +01:00
github-actions[bot]
58ba921fec
Update .app-headers file (#1628)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-21 09:12:04 +01:00
community-scripts-pr-app[bot]
1c8a0a53d2
Update CHANGELOG.md (#1627)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-21 09:11:34 +01:00
20 changed files with 445 additions and 217 deletions

View File

@ -17,6 +17,33 @@ 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 Do not break established syntax in this file, as it is automatically updated by a Github Workflow
## 2025-01-21
### Changed
### ✨ New Scripts
- Add new Script: LXC Delete (Proxmox) [@MickLesk](https://github.com/MickLesk) ([#1636](https://github.com/community-scripts/ProxmoxVE/pull/1636))
- New script: ProjectSend [@bvdberg01](https://github.com/bvdberg01) ([#1616](https://github.com/community-scripts/ProxmoxVE/pull/1616))
- New Script: Beszel [@Sinofage](https://github.com/Sinofage) ([#1619](https://github.com/community-scripts/ProxmoxVE/pull/1619))
- New Script: Docker VM [@thost96](https://github.com/thost96) ([#1608](https://github.com/community-scripts/ProxmoxVE/pull/1608))
- New script: SQL Server 2022 [@kris701](https://github.com/kris701) ([#1482](https://github.com/community-scripts/ProxmoxVE/pull/1482))
### 🚀 Updated Scripts
- Fix: Teddycloud Script (install, clean up & update) [@MickLesk](https://github.com/MickLesk) ([#1652](https://github.com/community-scripts/ProxmoxVE/pull/1652))
- Fix: Docker VM deprecated gpg [@MickLesk](https://github.com/MickLesk) ([#1649](https://github.com/community-scripts/ProxmoxVE/pull/1649))
- ActualBudget: Fix Update-Function, Fix Wget Crawling, Add Versionscheck [@MickLesk](https://github.com/MickLesk) ([#1643](https://github.com/community-scripts/ProxmoxVE/pull/1643))
- Fix Photoprism missing folder & environments [@MickLesk](https://github.com/MickLesk) ([#1639](https://github.com/community-scripts/ProxmoxVE/pull/1639))
- Update MOTD: Add Dynamic IP with profile.d by @JcMinarro [@MickLesk](https://github.com/MickLesk) ([#1633](https://github.com/community-scripts/ProxmoxVE/pull/1633))
- PBS.sh: Fix wrong URL after Setup [@thost96](https://github.com/thost96) ([#1629](https://github.com/community-scripts/ProxmoxVE/pull/1629))
### 🌐 Website
- Bump vite from 6.0.1 to 6.0.11 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#1653](https://github.com/community-scripts/ProxmoxVE/pull/1653))
- Update glpi.json [@opastorello](https://github.com/opastorello) ([#1641](https://github.com/community-scripts/ProxmoxVE/pull/1641))
- Fix Docker-VM name on website [@Sinofage](https://github.com/Sinofage) ([#1630](https://github.com/community-scripts/ProxmoxVE/pull/1630))
## 2025-01-20 ## 2025-01-20
### Changed ### Changed

View File

@ -28,33 +28,48 @@ function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -d /opt/actualbudget ]]; then if [[ ! -d /opt/actualbudget ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
if ! command -v jq >/dev/null 2>&1; then if ! command -v jq >/dev/null 2>&1; then
echo "Installing jq..." echo "Installing jq..."
apt-get install -y jq >/dev/null 2>&1 apt-get install -y jq >/dev/null 2>&1
echo "Installed jq..." echo "Installed jq..."
fi fi
msg_info "Updating ${APP}"
systemctl stop actualbudget
RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output '.[0].name') RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output '.[0].name')
TEMPD="$(mktemp -d)" if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
cd "${TEMPD}" msg_info "Stopping ${APP}"
wget -q https://codeload.github.com/actualbudget/actual-server/legacy.tar.gz/refs/tags/${RELEASE} -O - | tar -xz systemctl stop actualbudget
mv /opt/actualbudget /opt/actualbudget_bak msg_ok "${APP} Stopped"
mkdir -p /opt/actualbudget/
mv actualbudget-actual-server-*/* /opt/actualbudget/ msg_info "Updating ${APP} to ${RELEASE}"
mv /opt/actualbudget_bak/.env /opt/actualbudget wget -q https://codeload.github.com/actualbudget/actual-server/legacy.tar.gz/refs/tags/${RELEASE} -O actual-server.tar.gz
mv /opt/actualbudget_bak/server-files /opt/actualbudget/server-files tar -xzvf actual-server.tar.gz >/dev/null 2>&1
cd /opt/actualbudget mv /opt/actualbudget /opt/actualbudget_bak
yarn install &>/dev/null mkdir -p /opt/actualbudget/
systemctl start actualbudget mv actual-server-* /opt/actualbudget
msg_ok "Successfully Updated ${APP} to ${RELEASE}" mv /opt/actualbudget_bak/.env /opt/actualbudget
rm -rf "${TEMPD}" mv /opt/actualbudget_bak/server-files /opt/actualbudget/server-files
rm -rf /opt/actualbudget_bak cd /opt/actualbudget
yarn install &>/dev/null
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP}"
msg_info "Starting ${APP}"
systemctl start actualbudget
msg_ok "Started ${APP}"
msg_info "Cleaning Up"
rm -rf /opt/actualbudget_bak
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit exit
} }

View File

@ -44,4 +44,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 IP:${CL}" echo -e "${INFO}${YW} Access it using the following IP:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"

View File

@ -42,14 +42,17 @@ function update_script() {
msg_info "Updating ${APP} to v${RELEASE}" msg_info "Updating ${APP} to v${RELEASE}"
cd /opt cd /opt
wget -q https://github.com/hargata/lubelog/releases/download/v${RELEASE}/LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip wget -q https://github.com/hargata/lubelog/releases/download/v${RELEASE}/LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip
mkdir -p /tmp/lubeloggerData/wwwroot mkdir -p /tmp/lubeloggerData/data
cp /opt/lubelogger/appsettings.json /tmp/lubeloggerData/appsettings.json cp /opt/lubelogger/appsettings.json /tmp/lubeloggerData/appsettings.json
cp -r /opt/lubelogger/config /tmp/lubeloggerData/ cp -r /opt/lubelogger/data/ /tmp/lubeloggerData/
cp -r /opt/lubelogger/data /tmp/lubeloggerData/
[[ -e /opt/lubelogger/wwwroot/translations ]] && cp -r /opt/lubelogger/wwwroot/translations /tmp/lubeloggerData/wwwroot/ # Lubelogger has moved multiples folders to the 'data' folder, and we need to move them before the update to keep the user data
[[ -e /opt/lubelogger/wwwroot/documents ]] && cp -r /opt/lubelogger/wwwroot/documents /tmp/lubeloggerData/wwwroot/ # Github Discussion: https://github.com/hargata/lubelog/discussions/787
[[ -e /opt/lubelogger/wwwroot/images ]] && cp -r /opt/lubelogger/wwwroot/images /tmp/lubeloggerData/wwwroot/ [[ -e /opt/lubelogger/config ]] && cp -r /opt/lubelogger/config /tmp/lubeloggerData/data/
[[ -e /opt/lubelogger/wwwroot/temp ]] && cp -r /opt/lubelogger/wwwroot/temp /tmp/lubeloggerData/wwwroot/ [[ -e /opt/lubelogger/wwwroot/translations ]] && cp -r /opt/lubelogger/wwwroot/translations /tmp/lubeloggerData/data/
[[ -e /opt/lubelogger/wwwroot/documents ]] && cp -r /opt/lubelogger/wwwroot/documents /tmp/lubeloggerData/data/
[[ -e /opt/lubelogger/wwwroot/images ]] && cp -r /opt/lubelogger/wwwroot/images /tmp/lubeloggerData/data/
[[ -e /opt/lubelogger/wwwroot/temp ]] && cp -r /opt/lubelogger/wwwroot/temp /tmp/lubeloggerData/data/
[[ -e /opt/lubelogger/log ]] && cp -r /opt/lubelogger/log /tmp/lubeloggerData/ [[ -e /opt/lubelogger/log ]] && cp -r /opt/lubelogger/log /tmp/lubeloggerData/
rm -rf /opt/lubelogger rm -rf /opt/lubelogger
unzip -qq LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip -d lubelogger unzip -qq LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip -d lubelogger

View File

@ -36,14 +36,12 @@ function update_script() {
msg_ok "Stopped ${APP}" msg_ok "Stopped ${APP}"
msg_info "Updating ${APP} to v${VERSION}" msg_info "Updating ${APP} to v${VERSION}"
PREVIOUS_VERSION="$(readlink -f /opt/teddycloud)" cd /opt
mv /opt/teddycloud /opt_teddycloud_bak
wget -q "https://github.com/toniebox-reverse-engineering/teddycloud/releases/download/${RELEASE}/teddycloud.amd64.release_v${VERSION}.zip" wget -q "https://github.com/toniebox-reverse-engineering/teddycloud/releases/download/${RELEASE}/teddycloud.amd64.release_v${VERSION}.zip"
unzip -q -d "/opt/teddycloud-${VERSION}" "teddycloud.amd64.release_v${VERSION}.zip" unzip -q -d /opt/teddycloud teddycloud.amd64.release_v${VERSION}.zip
ln -fns "/opt/teddycloud-${VERSION}" /opt/teddycloud cp -R /opt_teddycloud_bak/certs /opt_teddycloud_bak/config /opt_teddycloud_bak/data /opt/teddycloud
echo "${VERSION}" >"/opt/${APP}_version.txt" echo "${VERSION}" >"/opt/${APP}_version.txt"
cp -R "${PREVIOUS_VERSION}/certs" /opt/teddycloud
cp -R "${PREVIOUS_VERSION}/config" /opt/teddycloud
cp -R "${PREVIOUS_VERSION}/data" /opt/teddycloud
msg_ok "Updated ${APP} to v${VERSION}" msg_ok "Updated ${APP} to v${VERSION}"
msg_info "Starting ${APP}" msg_info "Starting ${APP}"
@ -51,8 +49,8 @@ function update_script() {
msg_ok "Started ${APP}" msg_ok "Started ${APP}"
msg_info "Cleaning up" msg_info "Cleaning up"
rm "teddycloud.amd64.release_v${VERSION}.zip" rm -rf /opt/teddycloud.amd64.release_v${VERSION}.zip
rm -rf "${PREVIOUS_VERSION}" rm -rf /opt/teddycloud_bak
msg_ok "Cleaned" msg_ok "Cleaned"
else else
msg_ok "No update required. ${APP} is already at v${VERSION}" msg_ok "No update required. ${APP} is already at v${VERSION}"

View File

@ -467,9 +467,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@esbuild/aix-ppc64": { "node_modules/@esbuild/aix-ppc64": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz",
"integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==",
"cpu": [ "cpu": [
"ppc64" "ppc64"
], ],
@ -484,9 +484,9 @@
} }
}, },
"node_modules/@esbuild/android-arm": { "node_modules/@esbuild/android-arm": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz",
"integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@ -501,9 +501,9 @@
} }
}, },
"node_modules/@esbuild/android-arm64": { "node_modules/@esbuild/android-arm64": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz",
"integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -518,9 +518,9 @@
} }
}, },
"node_modules/@esbuild/android-x64": { "node_modules/@esbuild/android-x64": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz",
"integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -535,9 +535,9 @@
} }
}, },
"node_modules/@esbuild/darwin-arm64": { "node_modules/@esbuild/darwin-arm64": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz",
"integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -552,9 +552,9 @@
} }
}, },
"node_modules/@esbuild/darwin-x64": { "node_modules/@esbuild/darwin-x64": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz",
"integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -569,9 +569,9 @@
} }
}, },
"node_modules/@esbuild/freebsd-arm64": { "node_modules/@esbuild/freebsd-arm64": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz",
"integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -586,9 +586,9 @@
} }
}, },
"node_modules/@esbuild/freebsd-x64": { "node_modules/@esbuild/freebsd-x64": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz",
"integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -603,9 +603,9 @@
} }
}, },
"node_modules/@esbuild/linux-arm": { "node_modules/@esbuild/linux-arm": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz",
"integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@ -620,9 +620,9 @@
} }
}, },
"node_modules/@esbuild/linux-arm64": { "node_modules/@esbuild/linux-arm64": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz",
"integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -637,9 +637,9 @@
} }
}, },
"node_modules/@esbuild/linux-ia32": { "node_modules/@esbuild/linux-ia32": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz",
"integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==",
"cpu": [ "cpu": [
"ia32" "ia32"
], ],
@ -654,9 +654,9 @@
} }
}, },
"node_modules/@esbuild/linux-loong64": { "node_modules/@esbuild/linux-loong64": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz",
"integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==",
"cpu": [ "cpu": [
"loong64" "loong64"
], ],
@ -671,9 +671,9 @@
} }
}, },
"node_modules/@esbuild/linux-mips64el": { "node_modules/@esbuild/linux-mips64el": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz",
"integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==",
"cpu": [ "cpu": [
"mips64el" "mips64el"
], ],
@ -688,9 +688,9 @@
} }
}, },
"node_modules/@esbuild/linux-ppc64": { "node_modules/@esbuild/linux-ppc64": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz",
"integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==",
"cpu": [ "cpu": [
"ppc64" "ppc64"
], ],
@ -705,9 +705,9 @@
} }
}, },
"node_modules/@esbuild/linux-riscv64": { "node_modules/@esbuild/linux-riscv64": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz",
"integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==",
"cpu": [ "cpu": [
"riscv64" "riscv64"
], ],
@ -722,9 +722,9 @@
} }
}, },
"node_modules/@esbuild/linux-s390x": { "node_modules/@esbuild/linux-s390x": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz",
"integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==",
"cpu": [ "cpu": [
"s390x" "s390x"
], ],
@ -739,9 +739,9 @@
} }
}, },
"node_modules/@esbuild/linux-x64": { "node_modules/@esbuild/linux-x64": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz",
"integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -755,10 +755,27 @@
"node": ">=18" "node": ">=18"
} }
}, },
"node_modules/@esbuild/netbsd-arm64": {
"version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz",
"integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT",
"optional": true,
"os": [
"netbsd"
],
"engines": {
"node": ">=18"
}
},
"node_modules/@esbuild/netbsd-x64": { "node_modules/@esbuild/netbsd-x64": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz",
"integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -773,9 +790,9 @@
} }
}, },
"node_modules/@esbuild/openbsd-arm64": { "node_modules/@esbuild/openbsd-arm64": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz",
"integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -790,9 +807,9 @@
} }
}, },
"node_modules/@esbuild/openbsd-x64": { "node_modules/@esbuild/openbsd-x64": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz",
"integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -807,9 +824,9 @@
} }
}, },
"node_modules/@esbuild/sunos-x64": { "node_modules/@esbuild/sunos-x64": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz",
"integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -824,9 +841,9 @@
} }
}, },
"node_modules/@esbuild/win32-arm64": { "node_modules/@esbuild/win32-arm64": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz",
"integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -841,9 +858,9 @@
} }
}, },
"node_modules/@esbuild/win32-ia32": { "node_modules/@esbuild/win32-ia32": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz",
"integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==",
"cpu": [ "cpu": [
"ia32" "ia32"
], ],
@ -858,9 +875,9 @@
} }
}, },
"node_modules/@esbuild/win32-x64": { "node_modules/@esbuild/win32-x64": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz",
"integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -4844,9 +4861,9 @@
} }
}, },
"node_modules/esbuild": { "node_modules/esbuild": {
"version": "0.24.0", "version": "0.24.2",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz",
"integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==",
"dev": true, "dev": true,
"hasInstallScript": true, "hasInstallScript": true,
"license": "MIT", "license": "MIT",
@ -4857,30 +4874,31 @@
"node": ">=18" "node": ">=18"
}, },
"optionalDependencies": { "optionalDependencies": {
"@esbuild/aix-ppc64": "0.24.0", "@esbuild/aix-ppc64": "0.24.2",
"@esbuild/android-arm": "0.24.0", "@esbuild/android-arm": "0.24.2",
"@esbuild/android-arm64": "0.24.0", "@esbuild/android-arm64": "0.24.2",
"@esbuild/android-x64": "0.24.0", "@esbuild/android-x64": "0.24.2",
"@esbuild/darwin-arm64": "0.24.0", "@esbuild/darwin-arm64": "0.24.2",
"@esbuild/darwin-x64": "0.24.0", "@esbuild/darwin-x64": "0.24.2",
"@esbuild/freebsd-arm64": "0.24.0", "@esbuild/freebsd-arm64": "0.24.2",
"@esbuild/freebsd-x64": "0.24.0", "@esbuild/freebsd-x64": "0.24.2",
"@esbuild/linux-arm": "0.24.0", "@esbuild/linux-arm": "0.24.2",
"@esbuild/linux-arm64": "0.24.0", "@esbuild/linux-arm64": "0.24.2",
"@esbuild/linux-ia32": "0.24.0", "@esbuild/linux-ia32": "0.24.2",
"@esbuild/linux-loong64": "0.24.0", "@esbuild/linux-loong64": "0.24.2",
"@esbuild/linux-mips64el": "0.24.0", "@esbuild/linux-mips64el": "0.24.2",
"@esbuild/linux-ppc64": "0.24.0", "@esbuild/linux-ppc64": "0.24.2",
"@esbuild/linux-riscv64": "0.24.0", "@esbuild/linux-riscv64": "0.24.2",
"@esbuild/linux-s390x": "0.24.0", "@esbuild/linux-s390x": "0.24.2",
"@esbuild/linux-x64": "0.24.0", "@esbuild/linux-x64": "0.24.2",
"@esbuild/netbsd-x64": "0.24.0", "@esbuild/netbsd-arm64": "0.24.2",
"@esbuild/openbsd-arm64": "0.24.0", "@esbuild/netbsd-x64": "0.24.2",
"@esbuild/openbsd-x64": "0.24.0", "@esbuild/openbsd-arm64": "0.24.2",
"@esbuild/sunos-x64": "0.24.0", "@esbuild/openbsd-x64": "0.24.2",
"@esbuild/win32-arm64": "0.24.0", "@esbuild/sunos-x64": "0.24.2",
"@esbuild/win32-ia32": "0.24.0", "@esbuild/win32-arm64": "0.24.2",
"@esbuild/win32-x64": "0.24.0" "@esbuild/win32-ia32": "0.24.2",
"@esbuild/win32-x64": "0.24.2"
} }
}, },
"node_modules/escalade": { "node_modules/escalade": {
@ -9535,13 +9553,13 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/vite": { "node_modules/vite": {
"version": "6.0.1", "version": "6.0.11",
"resolved": "https://registry.npmjs.org/vite/-/vite-6.0.1.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.11.tgz",
"integrity": "sha512-Ldn6gorLGr4mCdFnmeAOLweJxZ34HjKnDm4HGo6P66IEqTxQb36VEdFJQENKxWjupNfoIjvRUnswjn1hpYEpjQ==", "integrity": "sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"esbuild": "^0.24.0", "esbuild": "^0.24.2",
"postcss": "^8.4.49", "postcss": "^8.4.49",
"rollup": "^4.23.0" "rollup": "^4.23.0"
}, },

View File

@ -27,7 +27,7 @@ msg_ok "Installed Dependencies"
msg_info "Setting up Node.js Repository" msg_info "Setting up Node.js Repository"
mkdir -p /etc/apt/keyrings mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list 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
msg_ok "Set up Node.js Repository" msg_ok "Set up Node.js Repository"
msg_info "Installing Node.js" msg_info "Installing Node.js"
@ -36,10 +36,13 @@ $STD apt-get install -y nodejs
$STD npm install --global yarn $STD npm install --global yarn
msg_ok "Installed Node.js" msg_ok "Installed Node.js"
RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output '.[0].name') msg_info "Installing Actual Budget"
msg_info "Installing Actual Budget $RELEASE" RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
wget -q https://codeload.github.com/actualbudget/actual-server/legacy.tar.gz/refs/tags/${RELEASE} -O - | tar -xz cd /opt
mv actualbudget-actual-server-* /opt/actualbudget $STD git clone https://github.com/actualbudget/actual-server.git /opt/actualbudget
#$STD curl -L -o actual-server.tar.gz https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz
#$STD tar -xzvf v${RELEASE}.tar.gz
#mv *ctual-server-* /opt/actualbudget
mkdir -p /opt/actualbudget/server-files mkdir -p /opt/actualbudget/server-files
mkdir -p /opt/actualbudget-data mkdir -p /opt/actualbudget-data
chown -R root:root /opt/actualbudget/server-files chown -R root:root /opt/actualbudget/server-files
@ -52,6 +55,7 @@ PORT=5006
EOF EOF
cd /opt/actualbudget cd /opt/actualbudget
$STD yarn install $STD yarn install
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed Actual Budget" msg_ok "Installed Actual Budget"
msg_info "Creating Service" msg_info "Creating Service"

View File

@ -14,33 +14,35 @@ network_check
update_os update_os
msg_info "Installing Dependencies (Patience)" msg_info "Installing Dependencies (Patience)"
$STD apt-get install -y curl $STD apt-get install -y \
$STD apt-get install -y sudo curl \
$STD apt-get install -y mc sudo \
$STD apt-get install -y exiftool mc \
$STD apt-get install -y ffmpeg exiftool \
$STD apt-get install -y libheif1 ffmpeg \
$STD apt-get install -y libpng-dev libheif1 \
$STD apt-get install -y libjpeg-dev libpng-dev \
$STD apt-get install -y libtiff-dev libjpeg-dev \
$STD apt-get install -y imagemagick libtiff-dev \
$STD apt-get install -y darktable imagemagick \
$STD apt-get install -y rawtherapee darktable \
$STD apt-get install -y libvips42 rawtherapee \
libvips42 \
lsb-release
echo 'export PATH=/usr/local:$PATH' >>~/.bashrc echo 'export PATH=/usr/local:$PATH' >>~/.bashrc
export PATH=/usr/local:$PATH export PATH=/usr/local:$PATH
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Installing PhotoPrism (Patience)" msg_info "Installing PhotoPrism (Patience)"
mkdir -p /opt/photoprism/{cache,config,photos/originals,photos/import,storage,temp} mkdir -p /opt/photoprism/{cache,config,photos,storage,temp}
mkdir -p /opt/photoprism/photos/{originals,import}
mkdir -p /opt/photoprism_backups
wget -q -cO - https://dl.photoprism.app/pkg/linux/amd64.tar.gz | tar -xz -C /opt/photoprism --strip-components=1 wget -q -cO - https://dl.photoprism.app/pkg/linux/amd64.tar.gz | tar -xz -C /opt/photoprism --strip-components=1
if [[ ${PCT_OSTYPE} == "ubuntu" ]]; then LIBHEIF_URL=$(wget -q -O - "https://dl.photoprism.app/dist/libheif/" | grep -oP "libheif-$(lsb_release -cs)-amd64-v[0-9\.]+\.tar\.gz" | sort -V | tail -n 1)
wget -q -cO - https://dl.photoprism.app/dist/libheif/libheif-jammy-amd64-v1.17.1.tar.gz | tar -xzf - -C /usr/local --strip-components=1 wget -q -cO - "https://dl.photoprism.app/dist/libheif/$LIBHEIF_URL" | tar -xzf - -C /usr/local --strip-components=1
else
wget -q -cO - https://dl.photoprism.app/dist/libheif/libheif-bookworm-amd64-v1.17.1.tar.gz | tar -xzf - -C /usr/local --strip-components=1
fi
ldconfig ldconfig
chmod -R 755 /opt/photoprism/photos/originals
cat <<EOF >/opt/photoprism/config/.env cat <<EOF >/opt/photoprism/config/.env
PHOTOPRISM_AUTH_MODE='password' PHOTOPRISM_AUTH_MODE='password'
PHOTOPRISM_ADMIN_PASSWORD='changeme' PHOTOPRISM_ADMIN_PASSWORD='changeme'
@ -50,6 +52,14 @@ PHOTOPRISM_SITE_CAPTION='https://Helper-Scripts.com'
PHOTOPRISM_STORAGE_PATH='/opt/photoprism/storage' PHOTOPRISM_STORAGE_PATH='/opt/photoprism/storage'
PHOTOPRISM_ORIGINALS_PATH='/opt/photoprism/photos/originals' PHOTOPRISM_ORIGINALS_PATH='/opt/photoprism/photos/originals'
PHOTOPRISM_IMPORT_PATH='/opt/photoprism/photos/import' PHOTOPRISM_IMPORT_PATH='/opt/photoprism/photos/import'
PHOTOPRISM_BACKUP_PATH='/opt/photoprism_backups'
PHOTOPRISM_DATABASE_DRIVER='sqlite'
PHOTOPRISM_DISABLE_WEBDAV='false'
PHOTOPRISM_DISABLE_FACES='false'
PHOTOPRISM_AUTO_INDEX='300'
PHOTOPRISM_AUTO_IMPORT='-1'
PHOTOPRISM_PUBLIC='false'
PHOTOPRISM_DEBUG='false'
EOF EOF
ln -sf /opt/photoprism/bin/photoprism /usr/local/bin/photoprism ln -sf /opt/photoprism/bin/photoprism /usr/local/bin/photoprism
msg_ok "Installed PhotoPrism" msg_ok "Installed PhotoPrism"

View File

@ -22,15 +22,14 @@ $STD apt install -y \
coreutils coreutils
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Installing SQL Server 2022" msg_info "Get SQL Server 2022 Repository"
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg $STD curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc $STD curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc
curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | tee /etc/apt/sources.list.d/mssql-server-2022.list $STD curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | tee /etc/apt/sources.list.d/mssql-server-2022.list
$STD apt-get clean * $STD apt-get clean *
$STD apt-get update -y $STD apt-get update -y
$STD apt-get install -y mssql-server $STD apt-get install -y mssql-server
/opt/mssql/bin/mssql-conf setup msg_ok "Get SQL Server 2022 Repository"
msg_ok "Installed SQL Server 2022"
msg_info "Installing SQL Server Tools" msg_info "Installing SQL Server Tools"
curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc
@ -39,13 +38,19 @@ $STD apt-get update
$STD apt-get install -y \ $STD apt-get install -y \
mssql-tools18 \ mssql-tools18 \
unixodbc-dev unixodbc-dev
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bash_profile source ~/.bashrc
msg_ok "Installed SQL Server Tools" msg_ok "Installed SQL Server Tools"
read -r -p "Do you want to run the SQL server setup now? (Later is also possible) <y/N>" prompt
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
/opt/mssql/bin/mssql-conf setup
else
msg_ok "Skipping SQL Server setup. You can run it later with '/opt/mssql/bin/mssql-conf setup'."
fi
msg_info "Start Service" msg_info "Start Service"
systemctl enable -q mssql-server systemctl enable -q --now mssql-server
systemctl start -q mssql-server
msg_ok "Service started" msg_ok "Service started"
motd_ssh motd_ssh

View File

@ -30,6 +30,7 @@ VERSION="${RELEASE#tc_v}"
wget -q "https://github.com/toniebox-reverse-engineering/teddycloud/releases/download/${RELEASE}/teddycloud.amd64.release_v${VERSION}.zip" wget -q "https://github.com/toniebox-reverse-engineering/teddycloud/releases/download/${RELEASE}/teddycloud.amd64.release_v${VERSION}.zip"
unzip -q -d "/opt/teddycloud-${VERSION}" "teddycloud.amd64.release_v${VERSION}.zip" unzip -q -d "/opt/teddycloud-${VERSION}" "teddycloud.amd64.release_v${VERSION}.zip"
ln -fns "/opt/teddycloud-${VERSION}" /opt/teddycloud ln -fns "/opt/teddycloud-${VERSION}" /opt/teddycloud
rm -rf teddycloud.amd64.release_v${VERSION}.zip
echo "${VERSION}" >"/opt/${APPLICATION}_version.txt" echo "${VERSION}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed TeddyCloud" msg_ok "Installed TeddyCloud"

View File

@ -2,7 +2,9 @@
"name": "VS Code Server", "name": "VS Code Server",
"slug": "code-server", "slug": "code-server",
"categories": [ "categories": [
1 1,
20,
11
], ],
"date_created": "2024-05-02", "date_created": "2024-05-02",
"type": "misc", "type": "misc",

View File

@ -1,5 +1,5 @@
{ {
"name": "Docker VM", "name": "Docker",
"slug": "docker-vm", "slug": "docker-vm",
"categories": [ "categories": [
2 2

View File

@ -2,7 +2,7 @@
"name": "GLPI", "name": "GLPI",
"slug": "glpi", "slug": "glpi",
"categories": [ "categories": [
0 25
], ],
"date_created": "2025-01-06", "date_created": "2025-01-06",
"type": "ct", "type": "ct",

39
json/lxc-delete.json Normal file
View File

@ -0,0 +1,39 @@
{
"name": "Container LXC Deletion",
"slug": "lxc-delete",
"categories": [
1
],
"date_created": "2025-01-21",
"type": "misc",
"updateable": false,
"privileged": false,
"interface_port": null,
"documentation": null,
"website": null,
"logo": "https://raw.githubusercontent.com/home-assistant/brands/master/core_integrations/proxmoxve/icon.png",
"description": "This script helps manage and delete LXC containers on a Proxmox VE server. It lists all available containers, allowing the user to select one or more for deletion through an interactive menu. Running containers are automatically stopped before deletion, and the user is asked to confirm each action. The script ensures a controlled and efficient container management process.",
"install_methods": [
{
"type": "default",
"script": "misc/lxc-delete.sh",
"resources": {
"cpu": null,
"ram": null,
"hdd": null,
"os": null,
"version": null
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Execute within the Proxmox shell",
"type": "info"
}
]
}

View File

@ -2,7 +2,7 @@
"name":"SQL Server 2022", "name":"SQL Server 2022",
"slug":"sqlserver2022", "slug":"sqlserver2022",
"categories":[ "categories":[
5 8
], ],
"date_created":"2025-01-14", "date_created":"2025-01-14",
"type":"ct", "type":"ct",
@ -31,6 +31,10 @@
"password":null "password":null
}, },
"notes":[ "notes":[
{
"text":"if you not choose the install setup, execute: `/opt/mssql/bin/mssql-conf setup` in LXC shell.",
"type":"info"
},
{ {
"text":"You can setup the admin account 'SA' during installation", "text":"You can setup the admin account 'SA' during installation",
"type":"info" "type":"info"

View File

@ -1,4 +1,4 @@
### Generated on 01-21-2025 ### Generated on 01-22-2025
################################################## ##################################################
### 2fauth.sh ### 2fauth.sh

View File

@ -146,17 +146,16 @@ motd_ssh() {
OS_NAME="Alpine Linux" OS_NAME="Alpine Linux"
OS_VERSION="Unknown" OS_VERSION="Unknown"
fi fi
# Set MOTD with application info and system details
MOTD_FILE="/etc/motd" PROFILE_FILE="/etc/profile.d/00_lxc-details.sh"
if [ -f "$MOTD_FILE" ]; then echo "echo -e \"\"" > "$PROFILE_FILE"
echo -e "\n${BOLD}${APPLICATION} LXC Container${CL}" > "$MOTD_FILE" echo -e "echo -e \"${BOLD}${APPLICATION} LXC Container${CL}"\" >> "$PROFILE_FILE"
echo -e "${TAB}${GATEWAY}${YW} Provided by: ${GN}community-scripts ORG ${YW}| Project: ${GN}ProxmoxVE ${YW}| GitHub: ${GN}https://github.com/community-scripts/ProxmoxVE${CL}\n" >> "$MOTD_FILE" echo -e "echo -e \"${TAB}${GATEWAY}${YW} Provided by: ${GN}community-scripts ORG ${YW}| GitHub: ${GN}https://github.com/community-scripts/ProxmoxVE${CL}\"" >> "$PROFILE_FILE"
echo -e "${TAB}${OS}${YW} OS: ${GN}${OS_NAME} ${OS_VERSION}${CL}" >> "$MOTD_FILE" echo "echo \"\"" >> "$PROFILE_FILE"
echo -e "${TAB}${HOSTNAME}${YW} Hostname: ${GN}$(hostname)${CL}" >> "$MOTD_FILE" echo -e "echo -e \"${TAB}${OS}${YW} OS: ${GN}${OS_NAME} - Version: ${OS_VERSION}${CL}\"" >> "$PROFILE_FILE"
echo -e "${TAB}${INFO}${YW} IP Address: ${GN}${IP}${CL}" >> "$MOTD_FILE" echo -e "echo -e \"${TAB}${HOSTNAME}${YW} Hostname: ${GN}\$(hostname)${CL}\"" >> "$PROFILE_FILE"
else echo -e "echo -e \"${TAB}${INFO}${YW} IP Address: ${GN}\$(ip -4 addr show eth0 | awk '/inet / {print \$2}' | cut -d/ -f1 | head -n 1)${CL}\"" >> "$PROFILE_FILE"
echo -e "${RD}[WARNING] MOTD file does not exist!${CL}" >&2
fi
# Configure SSH if enabled # Configure SSH if enabled
if [[ "${SSH_ROOT}" == "yes" ]]; then if [[ "${SSH_ROOT}" == "yes" ]]; then
# Enable sshd service # Enable sshd service

View File

@ -202,9 +202,6 @@ motd_ssh() {
# Set terminal to 256-color mode # Set terminal to 256-color mode
grep -qxF "export TERM='xterm-256color'" /root/.bashrc || echo "export TERM='xterm-256color'" >> /root/.bashrc grep -qxF "export TERM='xterm-256color'" /root/.bashrc || echo "export TERM='xterm-256color'" >> /root/.bashrc
# Get the current private IP address
IP=$(hostname -I | awk '{print $1}') # Private IP
# Get OS information (Debian / Ubuntu) # Get OS information (Debian / Ubuntu)
if [ -f "/etc/os-release" ]; then if [ -f "/etc/os-release" ]; then
OS_NAME=$(grep ^NAME /etc/os-release | cut -d= -f2 | tr -d '"') OS_NAME=$(grep ^NAME /etc/os-release | cut -d= -f2 | tr -d '"')
@ -214,20 +211,14 @@ motd_ssh() {
OS_VERSION=$(cat /etc/debian_version) OS_VERSION=$(cat /etc/debian_version)
fi fi
# Set MOTD with application info, system details PROFILE_FILE="/etc/profile.d/00_lxc-details.sh"
MOTD_FILE="/etc/motd" echo "echo -e \"\"" > "$PROFILE_FILE"
if [ -f "$MOTD_FILE" ]; then echo -e "echo -e \"${BOLD}${APPLICATION} LXC Container${CL}"\" >> "$PROFILE_FILE"
# Start MOTD with application info and link echo -e "echo -e \"${TAB}${GATEWAY}${YW} Provided by: ${GN}community-scripts ORG ${YW}| GitHub: ${GN}https://github.com/community-scripts/ProxmoxVE${CL}\"" >> "$PROFILE_FILE"
echo -e "\n${BOLD}${APPLICATION} LXC Container${CL}" > "$MOTD_FILE" echo "echo \"\"" >> "$PROFILE_FILE"
echo -e "${TAB}${GATEWAY}${YW} Provided by: ${GN}community-scripts ORG ${YW}| GitHub: ${GN}https://github.com/community-scripts/ProxmoxVE${CL}\n" >> "$MOTD_FILE" echo -e "echo -e \"${TAB}${OS}${YW} OS: ${GN}${OS_NAME} - Version: ${OS_VERSION}${CL}\"" >> "$PROFILE_FILE"
echo -e "echo -e \"${TAB}${HOSTNAME}${YW} Hostname: ${GN}\$(hostname)${CL}\"" >> "$PROFILE_FILE"
# Add system information with icons echo -e "echo -e \"${TAB}${INFO}${YW} IP Address: ${GN}\$(hostname -I | awk '{print \$1}')${CL}\"" >> "$PROFILE_FILE"
echo -e "${TAB}${OS}${YW} OS: ${GN}${OS_NAME} - Version: ${OS_VERSION}${CL}" >> "$MOTD_FILE"
echo -e "${TAB}${HOSTNAME}${YW} Hostname: ${GN}$(hostname)${CL}" >> "$MOTD_FILE"
echo -e "${TAB}${INFO}${YW} IP Address: ${GN}${IP}${CL}" >> "$MOTD_FILE"
else
echo "MotD file does not exist!" >&2
fi
# Disable default MOTD scripts # Disable default MOTD scripts
chmod -x /etc/update-motd.d/* chmod -x /etc/update-motd.d/*

112
misc/lxc-delete.sh Normal file
View File

@ -0,0 +1,112 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
function header_info {
clear
cat <<"EOF"
____ ____ ____ _ __ __ _______ _ __ __ _ ________ ____ ________ __________________
/ __ \/ __ \/ __ \ |/ // |/ / __ \ |/ / / / | |/ / ____/ / __ \/ ____/ / / ____/_ __/ ____/
/ /_/ / /_/ / / / / // /|_/ / / / / / / / | / / / / / / __/ / / / __/ / / / __/
/ ____/ _, _/ /_/ / |/ / / / /_/ / | / /___/ / /___ / /_/ / /___/ /___/ /___ / / / /___
/_/ /_/ |_|\____/_/|_/_/ /_/\____/_/|_| /_____/_/|_\____/ /_____/_____/_____/_____/ /_/ /_____/
EOF
}
spinner() {
local pid=$1
local delay=0.1
local spinstr='|/-\'
while ps -p $pid > /dev/null; do
printf " [%c] " "$spinstr"
spinstr=${spinstr#?}${spinstr%"${spinstr#?}"}
sleep $delay
printf "\r"
done
printf " \r"
}
set -eEuo pipefail
YW=$(echo "\033[33m")
BL=$(echo "\033[36m")
RD=$(echo "\033[01;31m")
CM='\xE2\x9C\x94\033'
GN=$(echo "\033[1;92m")
CL=$(echo "\033[m")
header_info
echo "Loading..."
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Proxmox VE LXC Deletion" --yesno "This Will Delete LXC Containers. Proceed?" 10 58 || exit
NODE=$(hostname)
# Get list of containers with ID and hostname
containers=$(pct list | tail -n +2 | awk '{print $0 " " $4}')
# Exit if no containers are found
if [ -z "$containers" ]; then
whiptail --title "LXC Container Delete" --msgbox "There are no LXC Container available!" 10 60
exit 1
fi
menu_items=()
FORMAT="%-10s %-15s %-10s"
# Format container data for menu display
while read -r container; do
container_id=$(echo $container | awk '{print $1}')
container_name=$(echo $container | awk '{print $2}')
container_status=$(echo $container | awk '{print $3}')
formatted_line=$(printf "$FORMAT" "$container_name" "$container_status")
menu_items+=("$container_id" "$formatted_line" "OFF")
done <<< "$containers"
# Display selection menu
CHOICES=$(whiptail --title "LXC Container Delete" \
--checklist "Choose LXC container to delete:" 25 60 13 \
"${menu_items[@]}" 3>&2 2>&1 1>&3)
if [ -z "$CHOICES" ]; then
whiptail --title "LXC Container Delete" \
--msgbox "No containers have been selected!" 10 60
exit 1
fi
# Process selected containers
selected_ids=$(echo "$CHOICES" | tr -d '"' | tr -s ' ' '\n')
for container_id in $selected_ids; do
status=$(pct status $container_id)
# Stop container if running
if [ "$status" == "status: running" ]; then
echo -e "${BL}[Info]${GN} Stop container $container_id...${CL}"
pct stop $container_id &
sleep 5
echo -e "${BL}[Info]${GN} Container $container_id stopped.${CL}"
fi
# Confirm deletion
read -p "Are you sure you want to delete Container $container_id? (y/N): " CONFIRM
if [[ "$CONFIRM" =~ ^[Yy]$ ]]; then
echo -e "${BL}[Info]${GN} Deleting container $container_id...${CL}"
pct destroy "$container_id" -f &
pid=$!
spinner $pid
if [ $? -eq 0 ]; then
echo "Container $container_id was successfully deleted."
else
whiptail --title "Error" --msgbox "Error deleting container $container_id." 10 60
fi
elif [[ "$CONFIRM" =~ ^[Nn]$ ]]; then
echo -e "${BL}[Info]${RD} Skipping container $container_id...${CL}"
else
echo -e "${RD}[Error]${CL} Invalid input, skipping container $container_id."
fi
done
header_info
echo -e "${GN}The deletion process has been completed.${CL}\n"

View File

@ -402,18 +402,18 @@ for i in {0,1}; do
done done
msg_info "Installing Pre-Requisite libguestfs-tools onto Host" msg_info "Installing Pre-Requisite libguestfs-tools onto Host"
apt-get -qq update && apt-get -qq install libguestfs-tools -y >/dev/null apt-get -qq update && apt-get -qq install libguestfs-tools lsb-release -y >/dev/null
msg_ok "Installed libguestfs-tools successful" msg_ok "Installed libguestfs-tools successfully"
msg_info "Adding Docker and Docker Compose Plugin to Debian 12 Qcow2 Disk Image Image" msg_info "Adding Docker and Docker Compose Plugin to Debian 12 Qcow2 Disk Image"
virt-customize -q -a "${FILE}" --install qemu-guest-agent,apt-transport-https,ca-certificates,curl,gnupg-agent,software-properties-common,lsb-release >/dev/null && virt-customize -q -a "${FILE}" --install qemu-guest-agent,apt-transport-https,ca-certificates,curl,gnupg,software-properties-common,lsb-release >/dev/null &&
virt-customize -q -a "${FILE}" --root-password password:docker >/dev/null && virt-customize -q -a "${FILE}" --run-command "mkdir -p /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg" >/dev/null &&
virt-customize -q -a "${FILE}" --run-command "curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -" >/dev/null && virt-customize -q -a "${FILE}" --run-command "echo 'deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable' > /etc/apt/sources.list.d/docker.list" >/dev/null &&
virt-customize -q -a "${FILE}" --run-command "add-apt-repository \"deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/debian $(lsb_release -cs) stable\"" >/dev/null && virt-customize -q -a "${FILE}" --run-command "apt-get update -qq && apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin" >/dev/null &&
virt-customize -q -a "${FILE}" --run-command "apt-get update -y && apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin" >/dev/null && virt-customize -q -a "${FILE}" --run-command "systemctl enable docker" >/dev/null &&
virt-customize -q -a "${FILE}" --run-command "systemctl start docker && systemctl enable docker" >/dev/null &&
virt-customize -q -a "${FILE}" --run-command "echo -n > /etc/machine-id" >/dev/null virt-customize -q -a "${FILE}" --run-command "echo -n > /etc/machine-id" >/dev/null
msg_ok "Added Docker and Docker Compose Plugin to Debian 12 Qcow2 Disk Image successful" msg_ok "Added Docker and Docker Compose Plugin to Debian 12 Qcow2 Disk Image successfully"
msg_info "Creating a Docker VM" msg_info "Creating a Docker VM"
qm create $VMID -agent 1${MACHINE} -tablet 0 -localtime 1 -bios ovmf${CPU_TYPE} -cores $CORE_COUNT -memory $RAM_SIZE \ qm create $VMID -agent 1${MACHINE} -tablet 0 -localtime 1 -bios ovmf${CPU_TYPE} -cores $CORE_COUNT -memory $RAM_SIZE \