Compare commits

...

14 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
5e5c79ef29 Update CHANGELOG.md (#5572)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-30 01:16:40 +01:00
community-scripts-pr-app[bot]
4db81b8c41 Update versions.json (#5571)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-30 02:16:03 +02:00
community-scripts-pr-app[bot]
0b97f26b13 Update CHANGELOG.md (#5569)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-29 21:02:26 +01:00
Bram Suurd
f2a21617f7 update readme with valid discord link. other one expired (#5567) 2025-06-29 22:01:36 +02:00
community-scripts-pr-app[bot]
ed618b7144 Update CHANGELOG.md (#5568)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-29 21:01:29 +01:00
Meier Lukas
1ec71332bf Add cron-job api-key env variable to homarr script (#5204)
* Add cron-job api-key env variable to homarr script

* Update homarr.sh

---------

Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2025-06-29 22:01:04 +02:00
community-scripts-pr-app[bot]
5696dffd02 Update CHANGELOG.md (#5561)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-29 15:35:04 +01:00
ape364
1e93f131d2 Update script-item.tsx (#5549)
* Update script-item.tsx

add space

* Update script-item.tsx

* Update script-item.tsx

---------

Co-authored-by: Bram Suurd <78373894+BramSuurdje@users.noreply.github.com>
2025-06-29 16:34:24 +02:00
community-scripts-pr-app[bot]
022f88c30a Update versions.json (#5556)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-29 14:07:10 +02:00
community-scripts-pr-app[bot]
b661f3cbcc Update CHANGELOG.md (#5555)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-29 13:02:05 +01:00
community-scripts-pr-app[bot]
9b97e4974a Update CHANGELOG.md (#5554)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-29 13:01:26 +01:00
Slaviša Arežina
e2b36b540f Linkwarden: Add backing up of data folder to the update function (#5548)
* Add backing up of data folder also

* Check for directories before backing  up
2025-06-29 14:00:38 +02:00
community-scripts-pr-app[bot]
983a09c5db Update CHANGELOG.md (#5553)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-06-29 13:00:30 +01:00
Bram Suurd
f605085021 fix bug in tooltip that would always render 'updateable' (#5552)
* fix bug in tooltip that would always render 'updateable'

* Remove double InstallCommand component from ScriptItems
2025-06-29 14:00:01 +02:00
9 changed files with 73 additions and 189 deletions

View File

@@ -14,8 +14,34 @@ 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-06-30
## 2025-06-29 ## 2025-06-29
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Linkwarden: Add backing up of data folder to the update function [@tremor021](https://github.com/tremor021) ([#5548](https://github.com/community-scripts/ProxmoxVE/pull/5548))
- #### ✨ New Features
- Add cron-job api-key env variable to homarr script [@Meierschlumpf](https://github.com/Meierschlumpf) ([#5204](https://github.com/community-scripts/ProxmoxVE/pull/5204))
### 🧰 Maintenance
- #### 📝 Documentation
- update readme with valid discord link. other one expired [@BramSuurdje](https://github.com/BramSuurdje) ([#5567](https://github.com/community-scripts/ProxmoxVE/pull/5567))
### 🌐 Website
- Update script-item.tsx [@ape364](https://github.com/ape364) ([#5549](https://github.com/community-scripts/ProxmoxVE/pull/5549))
- #### 🐞 Bug Fixes
- fix bug in tooltip that would always render 'updateable' [@BramSuurdje](https://github.com/BramSuurdje) ([#5552](https://github.com/community-scripts/ProxmoxVE/pull/5552))
## 2025-06-28 ## 2025-06-28
### 🚀 Updated Scripts ### 🚀 Updated Scripts

View File

@@ -13,7 +13,7 @@
<a href="https://helper-scripts.com"> <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" /> <img src="https://img.shields.io/badge/Website-4c9b3f?style=for-the-badge&logo=github&logoColor=white" alt="Website" />
</a> </a>
<a href="https://discord.gg/jsYVk5JBxq"> <a href="https://discord.gg/3AnUqsXnmK">
<img src="https://img.shields.io/badge/Discord-7289da?style=for-the-badge&logo=discord&logoColor=white" alt="Discord" /> <img src="https://img.shields.io/badge/Discord-7289da?style=for-the-badge&logo=discord&logoColor=white" alt="Discord" />
</a> </a>
<a href="https://ko-fi.com/community_scripts"> <a href="https://ko-fi.com/community_scripts">
@@ -82,7 +82,7 @@ We appreciate any contributions to the project—whether it's bug reports, featu
Join our community for support: Join our community for support:
- **Discord**: Join our [Proxmox Helper Scripts Discord server](https://discord.gg/jsYVk5JBxq) for real-time support. - **Discord**: Join our [Proxmox Helper Scripts Discord server](https://discord.gg/3AnUqsXnmK) for real-time support.
- **GitHub Discussions**: [Ask questions or report issues](https://github.com/community-scripts/ProxmoxVE/discussions). - **GitHub Discussions**: [Ask questions or report issues](https://github.com/community-scripts/ProxmoxVE/discussions).
## 🤝 Report a Bug or Feature Request ## 🤝 Report a Bug or Feature Request

View File

@@ -48,6 +48,7 @@ source /opt/homarr/.env
set +a set +a
export DB_DIALECT='sqlite' export DB_DIALECT='sqlite'
export AUTH_SECRET=$(openssl rand -base64 32) export AUTH_SECRET=$(openssl rand -base64 32)
export CRON_JOB_API_KEY=$(openssl rand -base64 32)
node /opt/homarr_db/migrations/$DB_DIALECT/migrate.cjs /opt/homarr_db/migrations/$DB_DIALECT node /opt/homarr_db/migrations/$DB_DIALECT/migrate.cjs /opt/homarr_db/migrations/$DB_DIALECT
for dir in $(find /opt/homarr_db/migrations/migrations -mindepth 1 -maxdepth 1 -type d); do for dir in $(find /opt/homarr_db/migrations/migrations -mindepth 1 -maxdepth 1 -type d); do
dirname=$(basename "$dir") dirname=$(basename "$dir")
@@ -114,6 +115,7 @@ source /opt/homarr/.env
set +a set +a
export DB_DIALECT='sqlite' export DB_DIALECT='sqlite'
export AUTH_SECRET=$(openssl rand -base64 32) export AUTH_SECRET=$(openssl rand -base64 32)
export CRON_JOB_API_KEY=$(openssl rand -base64 32)
node /opt/homarr_db/migrations/$DB_DIALECT/migrate.cjs /opt/homarr_db/migrations/$DB_DIALECT node /opt/homarr_db/migrations/$DB_DIALECT/migrate.cjs /opt/homarr_db/migrations/$DB_DIALECT
for dir in $(find /opt/homarr_db/migrations/migrations -mindepth 1 -maxdepth 1 -type d); do for dir in $(find /opt/homarr_db/migrations/migrations -mindepth 1 -maxdepth 1 -type d); do
dirname=$(basename "$dir") dirname=$(basename "$dir")

View File

@@ -37,6 +37,7 @@ function update_script() {
msg_info "Updating ${APP} to ${RELEASE}" msg_info "Updating ${APP} to ${RELEASE}"
mv /opt/linkwarden/.env /opt/.env mv /opt/linkwarden/.env /opt/.env
[ -d /opt/linkwarden/data ] && mv /opt/linkwarden/data /opt/data.bak
rm -rf /opt/linkwarden rm -rf /opt/linkwarden
fetch_and_deploy_gh_release "linkwarden" "linkwarden/linkwarden" fetch_and_deploy_gh_release "linkwarden" "linkwarden/linkwarden"
cd /opt/linkwarden cd /opt/linkwarden
@@ -47,6 +48,7 @@ function update_script() {
$STD yarn prisma:generate $STD yarn prisma:generate
$STD yarn web:build $STD yarn web:build
$STD yarn prisma:deploy $STD yarn prisma:deploy
[ -d /opt/data.bak ] && mv /opt/data.bak /opt/linkwarden/data
msg_ok "Updated ${APP} to ${RELEASE}" msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Starting ${APP}" msg_info "Starting ${APP}"

View File

@@ -1,4 +1,39 @@
[ [
{
"name": "rcourtman/Pulse",
"version": "v3.32.0",
"date": "2025-06-25T22:27:01Z"
},
{
"name": "sysadminsmedia/homebox",
"version": "v0.20.0",
"date": "2025-06-29T18:50:03Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.2.19",
"date": "2025-06-28T06:53:45Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.50.5",
"date": "2025-06-29T08:54:47Z"
},
{
"name": "emqx/emqx",
"version": "e5.9.1-rc.1",
"date": "2025-06-29T07:27:21Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.2084",
"date": "2025-06-29T05:53:38Z"
},
{
"name": "theonedev/onedev",
"version": "v11.11.2",
"date": "2025-06-29T01:40:39Z"
},
{ {
"name": "home-assistant/core", "name": "home-assistant/core",
"version": "2025.6.3", "version": "2025.6.3",
@@ -20,20 +55,15 @@
"date": "2025-06-28T16:06:19Z" "date": "2025-06-28T16:06:19Z"
}, },
{ {
"name": "Jackett/Jackett", "name": "keycloak/keycloak",
"version": "v0.22.2075", "version": "26.2.5",
"date": "2025-06-28T10:16:17Z" "date": "2025-05-28T06:49:43Z"
}, },
{ {
"name": "Luligu/matterbridge", "name": "Luligu/matterbridge",
"version": "3.1.0", "version": "3.1.0",
"date": "2025-06-28T09:02:38Z" "date": "2025-06-28T09:02:38Z"
}, },
{
"name": "firefly-iii/firefly-iii",
"version": "v6.2.19",
"date": "2025-06-28T06:53:45Z"
},
{ {
"name": "esphome/esphome", "name": "esphome/esphome",
"version": "2025.6.2", "version": "2025.6.2",
@@ -74,11 +104,6 @@
"version": "version/2025.6.3", "version": "version/2025.6.3",
"date": "2025-06-27T14:01:06Z" "date": "2025-06-27T14:01:06Z"
}, },
{
"name": "keycloak/keycloak",
"version": "26.2.5",
"date": "2025-05-28T06:49:43Z"
},
{ {
"name": "rclone/rclone", "name": "rclone/rclone",
"version": "v1.70.2", "version": "v1.70.2",
@@ -179,11 +204,6 @@
"version": "r8.1.2-rc1", "version": "r8.1.2-rc1",
"date": "2025-06-25T22:42:04Z" "date": "2025-06-25T22:42:04Z"
}, },
{
"name": "rcourtman/Pulse",
"version": "v3.32.0",
"date": "2025-06-25T22:27:01Z"
},
{ {
"name": "gristlabs/grist-core", "name": "gristlabs/grist-core",
"version": "v1.6.1", "version": "v1.6.1",
@@ -329,21 +349,11 @@
"version": "v2.0.114", "version": "v2.0.114",
"date": "2025-06-21T11:20:21Z" "date": "2025-06-21T11:20:21Z"
}, },
{
"name": "theonedev/onedev",
"version": "v11.11.1",
"date": "2025-06-21T09:23:39Z"
},
{ {
"name": "pocketbase/pocketbase", "name": "pocketbase/pocketbase",
"version": "v0.28.4", "version": "v0.28.4",
"date": "2025-06-21T08:29:04Z" "date": "2025-06-21T08:29:04Z"
}, },
{
"name": "dgtlmoon/changedetection.io",
"version": "0.50.4",
"date": "2025-06-21T07:47:02Z"
},
{ {
"name": "go-gitea/gitea", "name": "go-gitea/gitea",
"version": "v1.24.2", "version": "v1.24.2",
@@ -494,11 +504,6 @@
"version": "2.36.1", "version": "2.36.1",
"date": "2025-06-16T19:20:54Z" "date": "2025-06-16T19:20:54Z"
}, },
{
"name": "emqx/emqx",
"version": "e5.9.1-alpha.1",
"date": "2025-06-16T15:34:01Z"
},
{ {
"name": "open-webui/open-webui", "name": "open-webui/open-webui",
"version": "v0.6.15", "version": "v0.6.15",
@@ -894,11 +899,6 @@
"version": "2025-05-07-r1", "version": "2025-05-07-r1",
"date": "2025-05-07T12:18:42Z" "date": "2025-05-07T12:18:42Z"
}, },
{
"name": "sysadminsmedia/homebox",
"version": "v0.19.0",
"date": "2025-05-06T18:05:42Z"
},
{ {
"name": "garethgeorge/backrest", "name": "garethgeorge/backrest",
"version": "v1.8.1", "version": "v1.8.1",

View File

@@ -1,148 +0,0 @@
import { Info } from "lucide-react";
import type { Script } from "@/lib/types";
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
import { Alert, AlertDescription } from "@/components/ui/alert";
import CodeCopyButton from "@/components/ui/code-copy-button";
import { basePath } from "@/config/site-config";
import { getDisplayValueFromType } from "../script-info-blocks";
function getInstallCommand(scriptPath = "", isAlpine = false, useGitea = false) {
const githubUrl = `https://raw.githubusercontent.com/community-scripts/${basePath}/main/${scriptPath}`;
const giteaUrl = `https://git.community-scripts.org/community-scripts/${basePath}/raw/branch/main/${scriptPath}`;
const url = useGitea ? giteaUrl : githubUrl;
return isAlpine ? `bash -c "$(curl -fsSL ${url})"` : `bash -c "$(curl -fsSL ${url})"`;
}
export default function InstallCommand({ item }: { item: Script }) {
const alpineScript = item.install_methods.find(method => method.type === "alpine");
const defaultScript = item.install_methods.find(method => method.type === "default");
const renderInstructions = (isAlpine = false) => (
<>
<p className="text-sm mt-2">
{isAlpine
? (
<>
As an alternative option, you can use Alpine Linux and the
{" "}
{item.name}
{" "}
package to create a
{" "}
{item.name}
{" "}
{getDisplayValueFromType(item.type)}
{" "}
container with faster creation time and minimal system resource usage.
You are also obliged to adhere to updates provided by the package maintainer.
</>
)
: item.type === "pve"
? (
<>
To use the
{" "}
{item.name}
{" "}
script, run the command below **only** in the Proxmox VE Shell. This script is
intended for managing or enhancing the host system directly.
</>
)
: item.type === "addon"
? (
<>
This script enhances an existing setup. You can use it inside a running LXC container or directly on the
Proxmox VE host to extend functionality with
{" "}
{item.name}
.
</>
)
: (
<>
To create a new Proxmox VE
{" "}
{item.name}
{" "}
{getDisplayValueFromType(item.type)}
, run the command below in the
Proxmox VE Shell.
</>
)}
</p>
{isAlpine && (
<p className="mt-2 text-sm">
To create a new Proxmox VE Alpine-
{item.name}
{" "}
{getDisplayValueFromType(item.type)}
, run the command below in
the Proxmox VE Shell.
</p>
)}
</>
);
const renderGiteaInfo = () => (
<Alert className="mt-3 mb-3">
<Info className="h-4 w-4" />
<AlertDescription className="text-sm">
<strong>When to use Gitea:</strong>
{" "}
GitHub may have issues including slow connections, delayed updates after bug
fixes, no IPv6 support, API rate limits (60/hour). Use our Gitea mirror as a reliable alternative when
experiencing these issues.
</AlertDescription>
</Alert>
);
const renderScriptTabs = (useGitea = false) => {
if (alpineScript) {
return (
<Tabs defaultValue="default" className="mt-2 w-full max-w-4xl">
<TabsList>
<TabsTrigger value="default">Default</TabsTrigger>
<TabsTrigger value="alpine">Alpine Linux</TabsTrigger>
</TabsList>
<TabsContent value="default">
{renderInstructions()}
<CodeCopyButton>{getInstallCommand(defaultScript?.script, false, useGitea)}</CodeCopyButton>
</TabsContent>
<TabsContent value="alpine">
{renderInstructions(true)}
<CodeCopyButton>{getInstallCommand(alpineScript.script, true, useGitea)}</CodeCopyButton>
</TabsContent>
</Tabs>
);
}
else if (defaultScript?.script) {
return (
<>
{renderInstructions()}
<CodeCopyButton>{getInstallCommand(defaultScript.script, false, useGitea)}</CodeCopyButton>
</>
);
}
return null;
};
return (
<div className="p-4">
<Tabs defaultValue="github" className="w-full max-w-4xl">
<TabsList>
<TabsTrigger value="github">GitHub</TabsTrigger>
<TabsTrigger value="gitea">Gitea</TabsTrigger>
</TabsList>
<TabsContent value="github">
{renderScriptTabs(false)}
</TabsContent>
<TabsContent value="gitea">
{renderGiteaInfo()}
{renderScriptTabs(true)}
</TabsContent>
</Tabs>
</div>
);
}

View File

@@ -61,6 +61,7 @@ function ScriptHeader({ item }: { item: Script }) {
<div className="mt-1 flex items-center gap-3 text-sm text-muted-foreground"> <div className="mt-1 flex items-center gap-3 text-sm text-muted-foreground">
<span> <span>
Added Added
{" "}
{extractDate(item.date_created)} {extractDate(item.date_created)}
</span> </span>
<span></span> <span></span>

View File

@@ -39,7 +39,7 @@ export default function Tooltips({ item }: { item: Script }) {
{item.privileged && ( {item.privileged && (
<TooltipBadge variant="warning" label="Privileged" content="This script will be run in a privileged LXC" /> <TooltipBadge variant="warning" label="Privileged" content="This script will be run in a privileged LXC" />
)} )}
{(item.updateable || item.type !== "pve") && ( {item.updateable && item.type !== "pve" && (
<TooltipBadge <TooltipBadge
variant="success" variant="success"
label="Updateable" label="Updateable"

View File

@@ -76,6 +76,7 @@ source /opt/homarr/.env
set +a set +a
export DB_DIALECT='sqlite' export DB_DIALECT='sqlite'
export AUTH_SECRET=$(openssl rand -base64 32) export AUTH_SECRET=$(openssl rand -base64 32)
export CRON_JOB_API_KEY=$(openssl rand -base64 32)
node /opt/homarr_db/migrations/$DB_DIALECT/migrate.cjs /opt/homarr_db/migrations/$DB_DIALECT node /opt/homarr_db/migrations/$DB_DIALECT/migrate.cjs /opt/homarr_db/migrations/$DB_DIALECT
for dir in $(find /opt/homarr_db/migrations/migrations -mindepth 1 -maxdepth 1 -type d); do for dir in $(find /opt/homarr_db/migrations/migrations -mindepth 1 -maxdepth 1 -type d); do
dirname=$(basename "$dir") dirname=$(basename "$dir")