Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1dcbafe3f9 | |||
| d4613af2ed | |||
| 63790a944c | |||
| b8a8d6a572 | |||
| 876731e6fd | |||
| 23d0c904a3 | |||
| 5d477b0b6e | |||
| 8a4ff0e7ce | |||
| ddc1278115 | |||
| f07237f231 |
@@ -572,7 +572,8 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- HomeTube ([#18172](https://github.com/community-scripts/ProxmoxVE/pull/18172))
|
||||
- Vane ([#18168](https://github.com/community-scripts/ProxmoxVE/pull/18168))
|
||||
- HomeTube ([#18172](https://github.com/community-scripts/ProxmoxVE/pull/18172))
|
||||
- Honcho ([#18169](https://github.com/community-scripts/ProxmoxVE/pull/18169))
|
||||
- YTPTube ([#18174](https://github.com/community-scripts/ProxmoxVE/pull/18174))
|
||||
- Stump ([#18173](https://github.com/community-scripts/ProxmoxVE/pull/18173))
|
||||
@@ -583,6 +584,7 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Immich: lock only this platform when mise installs the plugin tools [@MickLesk](https://github.com/MickLesk) ([#18241](https://github.com/community-scripts/ProxmoxVE/pull/18241))
|
||||
- Fix service name case for Splunkd [@CerberusStyle](https://github.com/CerberusStyle) ([#18238](https://github.com/community-scripts/ProxmoxVE/pull/18238))
|
||||
- VMs: pass the machine type, CPU, disk cache and discard settings to qm [@MickLesk](https://github.com/MickLesk) ([#18232](https://github.com/community-scripts/ProxmoxVE/pull/18232))
|
||||
- excalidash: bump Node.js from 20 to 24 [@github-actions[bot]](https://github.com/github-actions[bot]) ([#18213](https://github.com/community-scripts/ProxmoxVE/pull/18213))
|
||||
@@ -591,9 +593,18 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
- remove old -install.sh (verdaccio) [@github-actions[bot]](https://github.com/github-actions[bot]) ([#18218](https://github.com/community-scripts/ProxmoxVE/pull/18218))
|
||||
- meshcentral: bump Node.js from 22 to 24 [@github-actions[bot]](https://github.com/github-actions[bot]) ([#18215](https://github.com/community-scripts/ProxmoxVE/pull/18215))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- MeshCentral: update the npm package, not just the OS [@MickLesk](https://github.com/MickLesk) ([#18243](https://github.com/community-scripts/ProxmoxVE/pull/18243))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- feat: create containers from the linuxcontainers.org catalog when Proxmox has no template [@MickLesk](https://github.com/MickLesk) ([core#25](https://github.com/community-scripts/core/pull/25))
|
||||
- feat: let an install survive a closed console / dont sighup installs [@MickLesk](https://github.com/MickLesk) ([core#167](https://github.com/community-scripts/core/pull/167))
|
||||
- feat: create containers from the linuxcontainers.org catalog when Proxmox has no template [@MickLesk](https://github.com/MickLesk) ([core#25](https://github.com/community-scripts/core/pull/25))
|
||||
|
||||
### 📚 Documentation
|
||||
|
||||
- Ref: Docs / Readme [@MickLesk](https://github.com/MickLesk) ([#18233](https://github.com/community-scripts/ProxmoxVE/pull/18233))
|
||||
|
||||
## 2026-10-25
|
||||
|
||||
|
||||
@@ -191,7 +191,6 @@ create` still ran and the container was still built.
|
||||
## Notes
|
||||
|
||||
- **Website metadata** (name, description, logo, tags) is managed via the website — use the "Report Issue" link on any script page to request changes. Do not submit metadata changes via repo files.
|
||||
- **JSON files** in `json/` define script properties used by the website. See existing files for structure reference.
|
||||
- Keep PRs small and focused. One fix or feature per PR is ideal.
|
||||
- PRs with **new scripts** opened against ProxmoxVE will be closed — submit them to [DevScripts](https://github.com/community-scripts/DevScripts) instead.
|
||||
- PRs that fail CI checks will not be merged.
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
<div align="center">
|
||||
<img src="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/images/logo-81x112.png" height="112px" alt="Proxmox VE Helper-Scripts Logo" />
|
||||
<a href="misc/images/community-scripts.svg"><img src="misc/images/community-scripts.png" width="112" height="112" alt="Community Scripts — Proxmox VE logo" /></a>
|
||||
<!-- Editable artwork: misc/images/community-scripts.svg; PNG export: 512 × 512. -->
|
||||
|
||||
<h1>Proxmox VE Helper-Scripts</h1>
|
||||
<p><strong>One-command installations for services, containers, and VMs on Proxmox VE</strong><br/>
|
||||
<h1>Community Scripts — Proxmox VE</h1>
|
||||
<p><strong>One-command installations for services, containers and VMs on Proxmox VE</strong><br/>
|
||||
A community project — built on the foundation of <a href="https://github.com/tteck">@tteck</a>'s original work</p>
|
||||
|
||||
<p>
|
||||
<a href="https://community-scripts.org"><img src="https://img.shields.io/badge/Website-community--scripts.org-4c9b3f?style=flat-square" /></a>
|
||||
<a href="https://discord.gg/3AnUqsXnmK"><img src="https://img.shields.io/badge/Discord-Join_us-7289da?style=flat-square&logo=discord&logoColor=white" /></a>
|
||||
<a href="https://github.com/community-scripts/ProxmoxVE/stargazers"><img src="https://img.shields.io/github/stars/community-scripts/ProxmoxVE?style=flat-square&label=Stars&color=f5a623" /></a>
|
||||
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/CHANGELOG.md"><img src="https://img.shields.io/badge/Changelog-view-6c5ce7?style=flat-square" /></a>
|
||||
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue?style=flat-square" /></a>
|
||||
<a href="https://community-scripts.org"><img src="https://img.shields.io/badge/Website-community--scripts.org-4c9b3f?style=flat-square" alt="Website" /></a>
|
||||
<a href="https://discord.gg/3AnUqsXnmK"><img src="https://img.shields.io/badge/Discord-Join_us-7289da?style=flat-square&logo=discord&logoColor=white" alt="Discord" /></a>
|
||||
<a href="https://github.com/community-scripts/ProxmoxVE/stargazers"><img src="https://img.shields.io/github/stars/community-scripts/ProxmoxVE?style=flat-square&label=Stars&color=f5a623" alt="Stars" /></a>
|
||||
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/CHANGELOG.md"><img src="https://img.shields.io/badge/Changelog-view-6c5ce7?style=flat-square" alt="Changelog" /></a>
|
||||
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue?style=flat-square" alt="License" /></a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -18,94 +19,147 @@
|
||||
|
||||
## What is this?
|
||||
|
||||
**Simplify your Proxmox VE setup with community-driven automation scripts.**
|
||||
**The canonical application scripts.** More than 700 of them, covering home
|
||||
automation, media, networking, databases, monitoring, security and developer
|
||||
tooling. Paste one command into your Proxmox shell and the container or VM is
|
||||
built, configured and running.
|
||||
|
||||
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.
|
||||
A script only describes *what* to install. Creating the container, asking the
|
||||
questions and handling the errors is the job of the shared engine in
|
||||
[core](https://github.com/community-scripts/core), which every script loads at
|
||||
start-up. The same scripts run unchanged on an Incus host through
|
||||
[the Incus repository](https://github.com/community-scripts/Incus).
|
||||
|
||||
The collection covers hundreds of services across categories like home automation, media servers, networking tools, databases, monitoring stacks, and more.
|
||||
Ready-made commands for every application are on
|
||||
[community-scripts.org](https://community-scripts.org).
|
||||
|
||||
---
|
||||
|
||||
## Getting started
|
||||
|
||||
1. Go to **[community-scripts.org](https://community-scripts.org)**
|
||||
2. Search for the service you want — Home Assistant, Nginx Proxy Manager, Jellyfin
|
||||
3. Copy the one-line install command from the script page
|
||||
4. Open your **Proxmox shell** and paste it
|
||||
5. Choose **Default** or **Advanced** and follow the prompts
|
||||
|
||||
Each script page lists what the container includes, the default resources and
|
||||
the post-install notes.
|
||||
|
||||
> These commands run as root on your host. Every script is readable in this
|
||||
> repository, and each script page links to its source — read it before you
|
||||
> paste it, as you would with any installer.
|
||||
|
||||
---
|
||||
|
||||
## How scripts work
|
||||
|
||||
**Default** picks sensible resources and asks only what it has to. Most installs
|
||||
finish in a few minutes.
|
||||
|
||||
**Advanced** hands you container settings, networking, storage backend and
|
||||
application options before anything is created.
|
||||
|
||||
Every container gets an `update` command. Type it in the container console:
|
||||
|
||||
```bash
|
||||
update
|
||||
```
|
||||
|
||||
It updates the installed application and reaches settings that would otherwise
|
||||
mean editing config files by hand. VM scripts have no built-in updater — use the
|
||||
guest's own package manager.
|
||||
|
||||
---
|
||||
|
||||
## 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 |
|
||||
| Component | Details |
|
||||
| --------- | ------- |
|
||||
| **Proxmox VE** | 8.0 – 8.4, or 9.0 – 9.2 |
|
||||
| **Access** | Root shell on the Proxmox host |
|
||||
| **Network** | Internet access during installation |
|
||||
|
||||
Virtual machine scripts need the same versions as containers.
|
||||
|
||||
---
|
||||
|
||||
## Getting Started
|
||||
## Repository map
|
||||
|
||||
The fastest way to find and run scripts:
|
||||
|
||||
1. Go to **[community-scripts.org](https://community-scripts.org)**
|
||||
2. Search for the service you want (e.g. "Home Assistant", "Nginx Proxy Manager", "Jellyfin")
|
||||
3. Copy the one-line install command from the script page
|
||||
4. Open your **Proxmox Shell** and paste it
|
||||
5. 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.
|
||||
| Repository | Contains |
|
||||
| ---------- | -------- |
|
||||
| [core](https://github.com/community-scripts/core) | The engine — container and VM creation, the wizard, error handling |
|
||||
| **ProxmoxVE** (this repo) | Canonical application scripts, plus `tools/pve/`, `vm/` and `turnkey/` |
|
||||
| [Incus](https://github.com/community-scripts/Incus) | The same scripts on an Incus host, plus Incus VMs and host tooling |
|
||||
| [DevScripts](https://github.com/community-scripts/DevScripts) | Where new scripts are tested before they land here |
|
||||
|
||||
---
|
||||
|
||||
## How Scripts Work
|
||||
## Layout
|
||||
|
||||
Every script follows the same pattern:
|
||||
| Folder | Contents |
|
||||
| ------ | -------- |
|
||||
| `ct/` | Application scripts — the command you paste |
|
||||
| `install/` | What each script installs inside the container |
|
||||
| `vm/` | Virtual machine scripts |
|
||||
| `tools/pve/` | Host tooling: post-install, hardware passthrough, maintenance |
|
||||
| `turnkey/` | TurnKey Linux appliance helper |
|
||||
| `misc/` | Legacy engine copies — current scripts load [core](https://github.com/community-scripts/core) at runtime, so changes here never reach a running install |
|
||||
|
||||
**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
|
||||
Application metadata — name, description, logo, tags — is managed on the website,
|
||||
not in this repository. Use the **Report Issue** link on any script page to
|
||||
request a change.
|
||||
|
||||
---
|
||||
|
||||
## What's Included
|
||||
## Testing a fork or branch
|
||||
|
||||
The repository covers a wide range of categories. A few examples:
|
||||
Engine and scripts resolve independently, so either can point somewhere else.
|
||||
Put the variable on the command itself — nothing needs exporting.
|
||||
|
||||
| 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 |
|
||||
To run your own copy of the scripts:
|
||||
|
||||
> Browse the full list at **[community-scripts.org/categories](https://community-scripts.org/categories)** — new scripts are added regularly.
|
||||
```bash
|
||||
COMMUNITY_SCRIPTS_URL=https://raw.githubusercontent.com/YOU/ProxmoxVE/my-branch \
|
||||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/YOU/ProxmoxVE/my-branch/ct/debian.sh)"
|
||||
```
|
||||
|
||||
A `ct/` script fetched with `curl` cannot tell the engine where it came from, so
|
||||
without that variable it would look for its `install/` half upstream.
|
||||
|
||||
Only when you are changing the engine itself:
|
||||
|
||||
```bash
|
||||
COMMUNITY_SCRIPTS_CORE_URL=https://raw.githubusercontent.com/YOU/core/my-branch \
|
||||
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/debian.sh)"
|
||||
```
|
||||
|
||||
A local checkout of core wins over both — point at it with
|
||||
`COMMUNITY_SCRIPTS_CORE_DIR`.
|
||||
|
||||
---
|
||||
|
||||
## 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.
|
||||
This project runs on community contributions. New scripts, fixes, bug reports —
|
||||
all of it helps.
|
||||
|
||||
### Where to start
|
||||
|
||||
| I want to… | Go here |
|
||||
| ------------------------------------- | ------------------------------------------------------------------------------------------------- |
|
||||
| Add a **new** script | [DevScripts](https://github.com/community-scripts/DevScripts) — new scripts are tested here first |
|
||||
| Fix or improve an **existing** script | [Contributing Guidelines](CONTRIBUTING.md) — open a PR in this repo |
|
||||
| Report a bug or broken script | [Issues](https://github.com/community-scripts/ProxmoxVE/issues) |
|
||||
| Request a new script or feature | [Discussions](https://github.com/community-scripts/ProxmoxVE/discussions) |
|
||||
| Report a security vulnerability | [Security Policy](SECURITY.md) |
|
||||
| Get help or chat with other users | [Discord](https://discord.gg/3AnUqsXnmK) |
|
||||
| I want to… | Go here |
|
||||
| ---------- | ------- |
|
||||
| Add a **new** script | [DevScripts](https://github.com/community-scripts/DevScripts) — new scripts are tested there first |
|
||||
| Fix or improve an **existing** script | [Contributing Guidelines](CONTRIBUTING.md) — open a PR here |
|
||||
| Change how containers are built | [core](https://github.com/community-scripts/core) |
|
||||
| Report a bug or a broken script | [Issues](https://github.com/community-scripts/ProxmoxVE/issues) |
|
||||
| Request a script or a feature | [Discussions](https://github.com/community-scripts/ProxmoxVE/discussions) |
|
||||
| Report a security vulnerability | [Security Policy](SECURITY.md) |
|
||||
| Ask a question | [Discord](https://discord.gg/3AnUqsXnmK) |
|
||||
|
||||
### Before you open a PR
|
||||
|
||||
- **New scripts go to [DevScripts](https://github.com/community-scripts/DevScripts), 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](CONTRIBUTING.md) 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.
|
||||
- **New scripts go to [DevScripts](https://github.com/community-scripts/DevScripts), not here.** PRs adding new scripts to this repository will be closed.
|
||||
- Keep a PR to one fix or one feature.
|
||||
- A bug that also happens on Incus is an application or engine bug — say so in the report.
|
||||
- Read the [Contributing Guidelines](CONTRIBUTING.md) before your first PR.
|
||||
|
||||
---
|
||||
|
||||
@@ -137,6 +191,8 @@ This project runs on community contributions. Whether you want to write new scri
|
||||
<sub><b>CrazyWolf13</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="https://github.com/tremor021">
|
||||
<img src="https://github.com/tremor021.png" width="80" height="80" style="border-radius:50%" alt="tremor021" /><br/>
|
||||
@@ -155,6 +211,7 @@ This project runs on community contributions. Whether you want to write new scri
|
||||
<sub><b>asylumexp</b></sub>
|
||||
</a>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -194,9 +251,11 @@ This project runs on community contributions. Whether you want to write new scri
|
||||
|
||||
## 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.
|
||||
This project is maintained by volunteers. Infrastructure costs come out of
|
||||
pocket and the work happens 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.
|
||||
**30% of all donations are forwarded directly to cancer research and hospice
|
||||
care** — a cause that was important to tteck.
|
||||
|
||||
<div align="center">
|
||||
<a href="https://ko-fi.com/community_scripts">
|
||||
@@ -212,14 +271,13 @@ This project is maintained by volunteers. All infrastructure costs come out of p
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the [MIT License](LICENSE) — free to use, modify, and redistribute for personal and commercial purposes.
|
||||
|
||||
See the full license text in [LICENSE](LICENSE).
|
||||
MIT — free to use, modify and redistribute, for personal and commercial
|
||||
purposes. See [LICENSE](LICENSE).
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
<sub>Built on the foundation of <a href="https://github.com/tteck">tteck</a>'s original work · <a href="https://github.com/tteck/Proxmox">Original Repository</a></sub><br/>
|
||||
<sub>Maintained and expanded by the community · In memory of tteck</sub><br/>
|
||||
<sub><i>Proxmox® is a registered trademark of <a href="https://www.proxmox.com/en/about/company">Proxmox Server Solutions GmbH</a></i></sub>
|
||||
<sub><i>This is an independent community project. <b>Proxmox</b>® is a registered trademark of <a href="https://www.proxmox.com/en/about/company">Proxmox Server Solutions GmbH</a>.</i></sub>
|
||||
</div>
|
||||
|
||||
@@ -233,6 +233,7 @@ EOF
|
||||
cd "$SRC_DIR"
|
||||
export MISE_TRUSTED_CONFIG_PATHS="$SRC_DIR"/mise.toml
|
||||
export MISE_DISABLE_TOOLS=github:jellyfin/jellyfin-ffmpeg
|
||||
export MISE_LOCKFILE_MODE=merge MISE_LOCKFILE_PLATFORMS="linux-$(arch_resolve x64 arm64)"
|
||||
mise_ok=0
|
||||
for i in 1 2 3; do
|
||||
$STD mise install && {
|
||||
|
||||
@@ -22,18 +22,40 @@ color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /opt/meshcentral ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Updating ${APP} LXC"
|
||||
apt_update_safe
|
||||
$STD apt -y upgrade
|
||||
msg_ok "Updated successfully!"
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /opt/meshcentral ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
NODE_VERSION="24" setup_nodejs
|
||||
|
||||
CURRENT=$(node -p "require('/opt/meshcentral/node_modules/meshcentral/package.json').version" 2>/dev/null)
|
||||
LATEST=$(npm view meshcentral version 2>/dev/null)
|
||||
if [[ -z "$LATEST" ]]; then
|
||||
msg_error "Could not determine the latest MeshCentral version from npm"
|
||||
exit 250
|
||||
fi
|
||||
if [[ "$CURRENT" != "$LATEST" ]]; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop meshcentral
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Updating ${APP} from v${CURRENT} to v${LATEST}"
|
||||
cd /opt/meshcentral
|
||||
$STD npm install "meshcentral@${LATEST}"
|
||||
msg_ok "Updated ${APP} to v${LATEST}"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start meshcentral
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated successfully!"
|
||||
else
|
||||
msg_ok "${APP} is already at v${CURRENT}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
|
||||
@@ -31,12 +31,13 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "stalwart" "stalwartlabs/stalwart"; then
|
||||
RELEASE="v0.16.27"
|
||||
if check_for_gh_release "stalwart" "stalwartlabs/stalwart" "${RELEASE}" "Stalwart v1 changes the data store layout and requires an offline migration with stalwartlabs/stalwart-migrate; pinned until this script supports it"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop stalwart
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "stalwart" "stalwartlabs/stalwart" "prebuild" "latest" "/opt/stalwart" "stalwart-$(arch_resolve x86_64 aarch64)-unknown-linux-gnu.tar.gz"
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "stalwart" "stalwartlabs/stalwart" "prebuild" "${RELEASE}" "/opt/stalwart" "stalwart-$(arch_resolve x86_64 aarch64)-unknown-linux-gnu.tar.gz"
|
||||
chmod +x /opt/stalwart/stalwart
|
||||
|
||||
msg_info "Starting Service"
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
#!/usr/bin/env bash
|
||||
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
||||
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/ItzCrazyKns/Vane
|
||||
|
||||
APP="Vane"
|
||||
var_tags="${var_tags:-ai;search}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-4096}"
|
||||
var_disk="${var_disk:-12}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
var_arm64="${var_arm64:-yes}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -d /opt/vane ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "vane" "ItzCrazyKns/Vane"; then
|
||||
msg_info "Stopping Vane"
|
||||
systemctl stop vane
|
||||
msg_ok "Stopped Vane"
|
||||
|
||||
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "vane" "ItzCrazyKns/Vane" "tarball"
|
||||
|
||||
msg_info "Building Vane"
|
||||
cd /opt/vane
|
||||
$STD yarn install --frozen-lockfile --network-timeout 600000
|
||||
$STD yarn build
|
||||
$STD yarn cache clean
|
||||
rm -rf .next/cache
|
||||
cp -r public .next/standalone/
|
||||
cp -r .next/static .next/standalone/.next/
|
||||
cp -r drizzle .next/standalone/
|
||||
ln -s /opt/vane_data .next/standalone/data
|
||||
$STD npx playwright install --with-deps --only-shell chromium
|
||||
msg_ok "Built Vane"
|
||||
|
||||
msg_info "Starting Vane"
|
||||
systemctl start vane
|
||||
msg_ok "Started Vane"
|
||||
msg_ok "Updated Vane successfully!"
|
||||
fi
|
||||
|
||||
if check_for_gh_branch "searxng" "searxng/searxng" "master"; then
|
||||
msg_info "Stopping SearXNG"
|
||||
systemctl stop searxng
|
||||
msg_ok "Stopped SearXNG"
|
||||
|
||||
PYTHON_VERSION="3.13" setup_uv
|
||||
fetch_and_deploy_gh_branch "searxng" "searxng/searxng" "master"
|
||||
|
||||
msg_info "Updating SearXNG"
|
||||
cd /opt/searxng
|
||||
$STD uv pip install -p /opt/searxng/.venv/bin/python -r requirements.txt -r requirements-server.txt
|
||||
msg_ok "Updated SearXNG"
|
||||
|
||||
msg_info "Starting SearXNG"
|
||||
systemctl start searxng
|
||||
msg_ok "Started SearXNG"
|
||||
msg_ok "Updated SearXNG successfully!"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW}Access it using the following URL:${CL}"
|
||||
echo -e "${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
||||
@@ -397,6 +397,7 @@ cp LICENSE "$APP_DIR"
|
||||
cd "$SRC_DIR"
|
||||
export MISE_TRUSTED_CONFIG_PATHS="$SRC_DIR"/mise.toml
|
||||
export MISE_DISABLE_TOOLS=github:jellyfin/jellyfin-ffmpeg
|
||||
export MISE_LOCKFILE_MODE=merge MISE_LOCKFILE_PLATFORMS="linux-$(arch_resolve x64 arm64)"
|
||||
mise_ok=0
|
||||
for i in 1 2 3; do
|
||||
$STD mise install && {
|
||||
|
||||
@@ -13,7 +13,7 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
fetch_and_deploy_gh_release "stalwart" "stalwartlabs/stalwart" "prebuild" "latest" "/opt/stalwart" "stalwart-$(arch_resolve x86_64 aarch64)-unknown-linux-gnu.tar.gz"
|
||||
fetch_and_deploy_gh_release "stalwart" "stalwartlabs/stalwart" "prebuild" "v0.16.27" "/opt/stalwart" "stalwart-$(arch_resolve x86_64 aarch64)-unknown-linux-gnu.tar.gz"
|
||||
chmod +x /opt/stalwart/stalwart
|
||||
|
||||
msg_info "Configuring Stalwart"
|
||||
|
||||
@@ -0,0 +1,116 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/ItzCrazyKns/Vane
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt install -y build-essential
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs
|
||||
PYTHON_VERSION="3.13" setup_uv
|
||||
|
||||
fetch_and_deploy_gh_branch "searxng" "searxng/searxng" "master"
|
||||
|
||||
msg_info "Setting up SearXNG"
|
||||
cd /opt/searxng
|
||||
$STD uv venv /opt/searxng/.venv
|
||||
$STD uv pip install -p /opt/searxng/.venv/bin/python -r requirements.txt -r requirements-server.txt
|
||||
mkdir -p /etc/searxng
|
||||
cat <<EOF >/etc/searxng/settings.yml
|
||||
use_default_settings: true
|
||||
general:
|
||||
instance_name: "SearXNG"
|
||||
server:
|
||||
bind_address: "127.0.0.1"
|
||||
port: 8888
|
||||
secret_key: "$(openssl rand -hex 32)"
|
||||
limiter: false
|
||||
image_proxy: false
|
||||
search:
|
||||
autocomplete: "google"
|
||||
formats:
|
||||
- html
|
||||
- json
|
||||
engines:
|
||||
- name: wolframalpha
|
||||
disabled: false
|
||||
EOF
|
||||
chmod 600 /etc/searxng/settings.yml
|
||||
msg_ok "Set up SearXNG"
|
||||
|
||||
fetch_and_deploy_gh_release "vane" "ItzCrazyKns/Vane" "tarball"
|
||||
|
||||
msg_info "Building Vane"
|
||||
cd /opt/vane
|
||||
$STD yarn install --frozen-lockfile --network-timeout 600000
|
||||
$STD yarn build
|
||||
$STD yarn cache clean
|
||||
rm -rf .next/cache
|
||||
cp -r public .next/standalone/
|
||||
cp -r .next/static .next/standalone/.next/
|
||||
cp -r drizzle .next/standalone/
|
||||
mkdir -p /opt/vane_data
|
||||
# The standalone server chdirs into its own directory and keeps config.json, db.sqlite and uploads in ./data
|
||||
ln -s /opt/vane_data .next/standalone/data
|
||||
msg_ok "Built Vane"
|
||||
|
||||
msg_info "Installing Chromium for Vane"
|
||||
$STD npx playwright install --with-deps --only-shell chromium
|
||||
msg_ok "Installed Chromium for Vane"
|
||||
|
||||
msg_info "Creating Services"
|
||||
cat <<EOF >/etc/systemd/system/searxng.service
|
||||
[Unit]
|
||||
Description=SearXNG for Vane
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
WorkingDirectory=/opt/searxng
|
||||
Environment=SEARXNG_SETTINGS_PATH=/etc/searxng/settings.yml
|
||||
ExecStart=/opt/searxng/.venv/bin/granian --interface wsgi --host 127.0.0.1 --port 8888 searx.webapp:app
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
cat <<EOF >/etc/systemd/system/vane.service
|
||||
[Unit]
|
||||
Description=Vane
|
||||
After=network.target searxng.service
|
||||
Wants=searxng.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
WorkingDirectory=/opt/vane/.next/standalone
|
||||
Environment=NODE_ENV=production
|
||||
Environment=HOSTNAME=0.0.0.0
|
||||
Environment=PORT=3000
|
||||
Environment=SEARXNG_API_URL=http://127.0.0.1:8888
|
||||
ExecStart=/usr/bin/node /opt/vane/.next/standalone/server.js
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now searxng vane
|
||||
msg_ok "Created Services"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
cleanup_lxc
|
||||
|
After Width: | Height: | Size: 17 KiB |
@@ -0,0 +1,15 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Community Scripts - CS Amber</title>
|
||||
<desc id="desc">A continuous ivory C interlocks with a warm orange S on charcoal. Both letterforms use rounded, folded geometry.</desc>
|
||||
<rect width="512" height="512" rx="112" fill="#29262b"/>
|
||||
<defs>
|
||||
<mask id="weave-clearance" maskUnits="userSpaceOnUse" x="0" y="0" width="512" height="512">
|
||||
<rect width="512" height="512" fill="white"/>
|
||||
<path d="M390 142H322L270 172V220L322 250H348L392 276V338L338 370H284" fill="none" stroke="black" stroke-width="72" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</mask>
|
||||
</defs>
|
||||
<g fill="none" stroke-width="56" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M254 142H186L118 182V330L186 370H254" stroke="#f5f4eb" mask="url(#weave-clearance)"/>
|
||||
<path d="M390 142H322L270 172V220L322 250H348L392 276V338L338 370H284" stroke="#f29a67"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 997 B |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 63 KiB |