* pocketbase-bot: accept the var_ names and two missing fields cpu, ram, hdd, os and version were already reachable, but only under the PocketBase names. People type what the ct scripts call them, so "/pocketbase <slug> var_ram=4096" was rejected as an unknown field while "ram=4096" worked. The bot already carried the mapping as RESOURCE_TO_CT_VAR, for display only. Normalise the keys in parseKVPairs, so both the field=value path and the method path accept them, along with disk and memory as the other two names people reach for. Matching is case-insensitive. pin_reason and last_update_commit exist on the record and are worth editing, but were not in ALLOWED_FIELDS. slug, script_created and script_updated stay out: the first is the key the command looks the record up by, the other two belong to the timestamp workflow. notes and install_methods keep their own subcommands. * pocketbase-bot: write the sync PR against the PR template The sync PR body had its own Summary and Source headings, so the autolabeler found none of the template checkboxes it looks for and the PR came out with nothing but "needs triage". It also never referenced the issue the command came from. Write the body the way the template expects, with the Website update box ticked, which is what a PocketBase sync is. Tested thoroughly stays unticked and Tested on says not tested, because nothing here was run; close-invalid-pr-template skips bot authors, so that costs nothing. Reference the triggering number as Fixes when the command came from an issue and as a plain mention when it came from a PR comment, where Fixes would point the PR at itself. issue_comment carries both under github.event.issue, so the new IS_PR_COMMENT tells them apart. * ci: stop the .app header PR being closed as a new script allowedBots carried "community-scripts-pr-app" but not the "[bot]"-suffixed name GitHub actually reports, and the check is an exact match, so the exemption never applied to it. push-app-to-main is listed both ways; this one was not. PR #17304 was closed as an untested new script submission because of it. generate-app-headers.sh empties ct/headers, tools/headers and vm/headers and writes them again, so every run reports those files as added. That is what the autolabeler's new-script rule looks for, and the vm rule matched vm/headers too. Exclude the header directories from both, and skip them in the close workflow's own added-file fallback, so the label cannot come back by another route. Checked against minimatch with the shipped config: header files get neither label, ct/*.sh, install/*.sh and vm/*.sh still get theirs. * pocketbase-bot: label the sync PR as a bugfix The sync corrects CT defaults that no longer match the PocketBase record, so bugfix describes it better than website update, which is meant for metadata changes on the site itself.
Proxmox VE Helper-Scripts
One-command installations for services, containers, and VMs on Proxmox VE
A community project — built on the foundation of @tteck's original work
What is this?
Simplify your Proxmox VE setup with community-driven automation scripts.
Install and configure popular self-hosted services with a single command — no manual package hunting, no config file archaeology. Paste a command into your Proxmox shell, answer a few prompts, and your container or VM is up and running.
The collection covers hundreds of services across categories like home automation, media servers, networking tools, databases, monitoring stacks, and more.
Requirements
| Component | Details |
|---|---|
| Proxmox VE | Version 8.4, 9.0, 9.1, or 9.2 |
| Host OS | Proxmox VE (Debian-based) |
| Access | Root shell access on the Proxmox host |
| Network | Internet connection required during installation |
Getting Started
The fastest way to find and run scripts:
- Go to community-scripts.org
- Search for the service you want (e.g. "Home Assistant", "Nginx Proxy Manager", "Jellyfin")
- Copy the one-line install command from the script page
- Open your Proxmox Shell and paste it
- Choose between Default or Advanced setup and follow the prompts
Each script page documents what the container includes, default resource allocation, and post-install notes.
How Scripts Work
Every script follows the same pattern:
Default mode — Picks sensible resource defaults (CPU, RAM, storage) and asks only the minimum required questions. Most installs finish in under five minutes.
Advanced mode — Gives you full control over container settings, networking, storage backends, and application-level configuration before anything is installed.
After installation, each container ships with a post-install helper accessible from the Proxmox shell. It handles common tasks like:
- Applying updates to the installed service
- Changing application settings without manually editing config files
- Basic troubleshooting and log access
What's Included
The repository covers a wide range of categories. A few examples:
| Category | Examples |
|---|---|
| Home Automation | Home Assistant, Zigbee2MQTT, ESPHome, Node-RED |
| Media | Jellyfin, Plex, Radarr, Sonarr, Immich |
| Networking | AdGuard Home, Nginx Proxy Manager, Pi-hole, Traefik |
| Monitoring | Grafana, Prometheus, Uptime Kuma, Netdata |
| Databases | PostgreSQL, MariaDB, Redis, InfluxDB |
| Security | Vaultwarden, CrowdSec, Authentik |
| Dev & Tools | Gitea, Portainer, VS Code Server, n8n |
Browse the full list at community-scripts.org/categories — new scripts are added regularly.
Contributing
This project runs on community contributions. Whether you want to write new scripts, improve existing ones, or just report a bug — every bit helps.
Where to start
| I want to… | Go here |
|---|---|
| Add a new script | ProxmoxVED — new scripts are tested here first |
| Fix or improve an existing script | Contributing Guidelines — open a PR in this repo |
| Report a bug or broken script | Issues |
| Request a new script or feature | Discussions |
| Report a security vulnerability | Security Policy |
| Get help or chat with other users | Discord |
Before you open a PR
- New scripts go to ProxmoxVED, not here. PRs with new scripts opened directly against this repo will be closed.
- Bug fixes and improvements to existing scripts belong in this repo — read the Contributing Guidelines first.
- Keep PRs focused. One fix or feature per PR.
- Document what your script installs and any non-obvious decisions in the corresponding JSON metadata file.
Core Team
![]() MickLesk |
![]() michelroegl-brunner |
![]() BramSuurdje |
![]() CrazyWolf13 |
![]() tremor021 |
![]() vhsdream |
![]() asylumexp |
Project Activity
Support the Project
This project is maintained by volunteers. All infrastructure costs come out of pocket, and the work is done in people's spare time.
30% of all donations are forwarded directly to cancer research and hospice care — a cause that was important to tteck.
License
This project is licensed under the MIT License — free to use, modify, and redistribute for personal and commercial purposes.
See the full license text in LICENSE.
Maintained and expanded by the community · In memory of tteck
Proxmox® is a registered trademark of Proxmox Server Solutions GmbH






