Commit Graph

10194 Commits

Author SHA1 Message Date
CanbiZ (MickLesk)
8617bbfd35 Merge pull request #1801 from suprmorten/submit/forgejo-runner-fix
Submit/forgejo runner fix
2026-05-08 21:45:09 +02:00
MickLesk
74474325c8 Bump Stoatchat RAM, limit cargo, remove xyops env
Increase Stoatchat default RAM from 8192 to 10240 in ct/stoatchat.sh and json/stoatchat.json. Add cargo -j 2 to backend builds in ct/stoatchat.sh and install/stoatchat-install.sh to limit parallel jobs. Remove two environment variables (XYOPS_xysat_local and XYOPS_masters) from install/xyops-install.sh service definition to avoid hardcoded local settings.
2026-05-08 10:19:46 +02:00
github-actions[bot]
826ebc3c84 chore: update app headers [skip ci] 2026-05-08 07:14:47 +00:00
MickLesk
df5d0679ec Add Stoatchat and xyOps container/install scripts
Introduce new container templates, installers, and metadata for Stoatchat and xyOps. Adds ct scripts (ct/stoatchat.sh, ct/xyops.sh), full install scripts (install/stoatchat-install.sh, install/xyops-install.sh) that provision dependencies, build components, and create systemd services, plus app metadata JSON (json/stoatchat.json, json/xyops.json). Stoatchat installer handles Rust backend build, SolidJS frontend build, MinIO, RabbitMQ, MongoDB, nginx reverse proxy and multiple backend services (exposes on port 80). xyOps installer builds the Node app, sets up the xySat satellite, service unit, and uses port 5522 for the web UI. Default resource recommendations and notes are included in the JSON metadata.
2026-05-08 09:14:20 +02:00
Morten Nernes
b90d890bb4 Renamed back to community-scripts 2026-05-07 23:12:53 +02:00
Morten Nernes
e619f5757e Fixed deprecated command: forgejo-runner register. 2026-05-07 23:02:55 +02:00
MickLesk
4ff70ba166 Stop spinner on cleanup & simplify qm set
Call stop_spinner in cleanup() to ensure any active spinner is stopped on exit. Consolidate duplicated qm set branches in ubuntu2604-vm.sh into a single invocation to reduce code duplication and simplify VM disk/serial configuration. Remove the explicit ide2 cloudinit device and redundant cloud-init status messages; setup_cloud_init() is still invoked when USE_CLOUD_INIT is enabled, keeping cloud-init configuration centralized.
2026-05-07 11:24:02 +02:00
MickLesk
2a8c6b260f Add optional Cloud-Init and q35 support
Introduce optional Cloud-Init integration and better machine type handling for VMs. Changes include: loading cloud-init helpers lazily (load_cloud_init_functions), interactive cloud-init prompt/configuration (vm_prompt_cloud_init) and SSH key handling, a cloud icon for UI, and vm_machine_type_label for readable machine type display. Default machine type switched to q35 and displays the label in prompts and summaries. VM creation logic now conditionally attaches the cloudinit drive (ide2) and runs setup_cloud_init when enabled; otherwise it creates the VM without the cloudinit device. Post-install messaging now either shows cloud-init details or a guidance message about manual guest filesystem expansion. Minor UI/output adjustments and defaults updated accordingly.
2026-05-07 10:16:16 +02:00
github-actions[bot]
0c5240302c chore: update app headers [skip ci] 2026-05-07 07:53:22 +00:00
MickLesk
27f256a20f Refactor VM script to use shared vm-core helpers
Introduce a shared vm-core loader and refactor the Ubuntu 26.04 VM script to use reusable helper functions. misc/vm-core.func: add COMMUNITY_SCRIPTS_URL default and load_api_functions to dynamically source API helpers, then call load_api_functions from load_functions. vm/ubuntu2604-vm.sh: switch to sourcing the shared vm-core via COMMUNITY_SCRIPTS_URL, replace many inline UI and utility functions with generic vm_* helpers (vm_confirm_new_vm, vm_prompt_*, vm_select_storage, vm_define_disk_references, set_description, etc.), modernize quoting and pushd usage, simplify disk import/resizing logic, and set START_VM default to yes. Also update repository URLs to ProxmoxVED and adjust some behavior (machine type handling, storage/disk references). Overall this centralizes common functionality, reduces duplication, and prepares scripts to use the shared core utilities.
2026-05-07 09:52:57 +02:00
MickLesk
2f5a5771b0 Add interactive VM prompts and error handling
Introduce interactive whiptail-based helpers and robust error handling for VM creation.

- Add error_handler() to report failures (calls post_update_to_api if available), print contextual error info, and call cleanup_vmid.
- Ensure TEMP_DIR is removed in cleanup().
- Replace brittle pve_check with version parsing that supports Proxmox VE 8.0–8.9 and 9.0–9.1 (exits with code 105 on unsupported versions).
- Add ssh_check() to warn users running the script over SSH.
- Add sanitize_vm_hostname() and a suite of vm_* helper functions to prompt and validate interactive settings via whiptail: vm_confirm_new_vm, vm_choose_settings_mode, vm_prompt_vmid, vm_prompt_machine_type, vm_apply_machine_type, vm_prompt_disk_size, vm_prompt_disk_cache, vm_prompt_hostname, vm_prompt_cpu_model, vm_prompt_cpu_cores, vm_prompt_ram, vm_prompt_bridge, vm_prompt_mac, vm_prompt_vlan, vm_prompt_mtu, vm_prompt_start_vm.
- Add storage helpers: vm_select_storage, vm_apply_storage_layout, vm_define_disk_references to detect storage pools, set formats/extensions and prepare disk refs.
- Use APP/NSAPP for description title by introducing local description_title in set_description().

These changes centralize validation and interactive flow, improve UX, and harden error reporting and cleanup.
2026-05-07 09:45:45 +02:00
MickLesk
d1a1c795b7 Create ubuntu2604-vm.sh 2026-05-07 09:36:48 +02:00
MickLesk
e287504ab9 fix: improve HyperDX API build process in ClickHouse scripts
Co-authored-by: Copilot <copilot@github.com>
2026-05-06 10:07:08 +02:00
MickLesk
d1bd9de24a Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2026-05-06 09:10:04 +02:00
MickLesk
3850f46cdb fix clickstack 2026-05-06 09:10:02 +02:00
github-actions[bot]
850a4cf4b7 chore: update app headers [skip ci] 2026-05-06 07:09:05 +00:00
MickLesk
7376a73337 Refactor AlmaLinux VM installer & lobehub setup
Modernize and simplify VM installer and lobehub installation flows.

Key changes:
- install/lobehub-install.sh: consolidated apt invocation, replaced manual ParadeDB .deb download with fetch_and_deploy_gh_release helper, added postgresql pg_search preload configuration and restart, moved pnpm installation into setup_nodejs via NODE_MODULE, and adjusted build env handling.
- vm/almalinux-10-vm.sh: major refactor to source shared functions from COMMUNITY_SCRIPTS_URL, add load_functions, centralize cloud-init handling (configure_cloudinit_ssh_keys / setup_cloud_init), replace many custom UI/helper functions with standardized helpers and exit_script, update traps and error handling, simplify prompts/defaults, use $STD for apt operations, and streamline image customization and VM creation flow.
- Added vm/headers/almalinux-10-vm containing the VM header art and title.

These changes centralize common logic, improve cloud-init integration, reduce duplicated code, and make maintenance easier.
2026-05-06 09:08:38 +02:00
MickLesk
012fa20a03 dfv 2026-05-06 08:35:07 +02:00
MickLesk
1580612098 finalize hoodik
Co-authored-by: Copilot <copilot@github.com>
2026-05-06 08:34:10 +02:00
MickLesk
7b5bb6dfd9 Update domain configuration to use nip.io for subdomain routing and enhance documentation 2026-05-06 07:36:01 +02:00
MickLesk
bc51257aa7 Refactor build process in Puter installation and update JSON files to ensure proper formatting 2026-05-06 07:09:31 +02:00
CanbiZ (MickLesk)
98e1dd0133 Increase default disk size from 10GB to 16GB 2026-05-05 14:40:57 +02:00
github-actions[bot]
c340f4d4e9 Delete protonmail-bridge (ct) after migration to ProxmoxVE (#1785)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-04 17:20:40 +00:00
CanbiZ (MickLesk)
daf3d624ee Merge pull request #1779 from thieneret/update/authentik-fix-volume-attach
authentik:storage-fix
2026-05-04 07:34:47 +02:00
Thieneret
340cfd679c storage-fix 2026-05-04 00:26:09 +02:00
Stephen Chin
a0bffe7a4f feat(hermesagent): replace shim+system-unit pattern with hermes-native user services
The previous approach used a /usr/bin/hermes shim to proxy commands from root
to the hermes user, and a hand-crafted system-level systemd unit for the
gateway. This worked for the default profile but broke down for named profiles:

- hermes profile create <name> generates an alias script in
  ~/.local/bin/<name> that calls hermes with -p <name>. These aliases live
  in the hermes user's PATH, not root's, so root could not invoke them.
- Maintaining parity would require per-profile shims, a watcher daemon to
  create/remove them, and system-unit mirrors for each profile gateway — all
  of which would need to stay in sync with hermes internals across updates.

New approach — work with hermes, not around it:

- loginctl enable-linger hermes: ensures the hermes user's systemd session
  starts at boot and persists without login. All user-unit gateways (default
  and per-profile) now survive reboots automatically.
- Gateway service management delegated entirely to hermes: 'hermes gateway
  install' / 'hermes setup' create and enable the user unit natively.
  The install script no longer pre-installs the gateway; hermes prompts the
  user to do so at the end of 'hermes setup'.
- hermes-dashboard.service remains a system unit (no native install command
  exists for it). Its After= no longer references hermes-gateway.service
  since there is no system-unit gateway to depend on.
- /usr/bin/hermes shim removed. Root is guided to 'su - hermes' via a two-
  line /etc/profile.d/hermes-hint.sh message on login, with a one-liner to
  make the switch automatic. Once logged in as hermes, all hermes commands,
  profile aliases, and gateway management work natively.
- update_script simplified: only hermes-dashboard (our unit) is stopped and
  restarted. hermes update --yes handles gateway service lifecycle itself.
2026-05-03 15:22:11 -07:00
CanbiZ (MickLesk)
bd804eba5a Merge pull request #1776 from thieneret/update/authentik-outposts
authentik: add outposts
2026-05-02 22:32:32 +02:00
MickLesk
ec5341f9dd Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2026-05-02 21:48:29 +02:00
MickLesk
9a9138a051 fix
Co-authored-by: Copilot <copilot@github.com>
2026-05-02 21:48:23 +02:00
Stephen Chin
8afb182095 fix(hermesagent): shim handles hermes user invocation
runuser requires root. When the hermes user calls the shim directly
(e.g. via su - hermes), exec the binary directly instead.
2026-05-02 12:30:34 -07:00
Stephen Chin
be8d55fb83 fix(hermesagent): pass --yes to hermes update to avoid interactive prompt
hermes update prompts "Restore local changes now? [Y/n]" when run
in a TTY context. --yes skips all interactive prompts.
2026-05-02 12:21:18 -07:00
github-actions[bot]
6fe0684fb7 chore: update app headers [skip ci] 2026-05-02 19:13:37 +00:00
MickLesk
494d41392d add docuseal
Co-authored-by: Copilot <copilot@github.com>
2026-05-02 21:13:05 +02:00
Stephen Chin
21dfffd158 fix(hermesagent): correct JSON metadata
- default_credentials: username null/null (no SSH login for hermes
  service account; access is via root like all PVE Helper Scripts)
- Update setup note to reference root instead of hermes user
- Update dashboard tunnel note to use root and -fNL flags
2026-05-02 12:10:09 -07:00
Stephen Chin
aa975798a1 fix(hermesagent): correct SSH access instructions
The hermes service account has no password or SSH keys and cannot
be used to log in. Access is via root (standard PVE Helper Scripts
pattern). Also add -fN flags to the dashboard tunnel command so it
runs in the background without opening a shell session.
2026-05-02 12:09:56 -07:00
Stephen Chin
06d9c62e54 fix(hermes-agent): rename files to match NSAPP derivation
APP='Hermes Agent' produces NSAPP='hermesagent' via build.func's
lowercase+strip-spaces logic. Rename ct/, install/, json/, and
header files to match.
2026-05-02 09:45:59 -07:00
Stephen Chin
edf1a9604a fix(hermes-agent): harden .hermes directory permissions
The response_store.db and session JSON files under ~/.hermes/ are stored
in plaintext and readable by any process with filesystem access. Set
~/.hermes to 0700 (owner-only) and ~/home/hermes to 0750 to restrict
access to conversation history, credentials, and session data.

Ref: https://github.com/NousResearch/hermes-agent/issues/7486
2026-05-02 08:09:21 -07:00
Stephen Chin
e0aaacdb96 fix(hermes-agent): restrict /proc access in systemd services
Hermes strips sensitive env vars from tool subprocesses, but child
processes can recover them by reading /proc/<parent_pid>/environ. Add
ProtectProc=invisible and ProcSubset=pid to both systemd services to
hide other processes' /proc entries and limit /proc to the service's
own PID namespace.

Ref: https://github.com/NousResearch/hermes-agent/issues/4427
2026-05-02 08:09:00 -07:00
Stephen Chin
16e774083f fix(hermes-agent): set UMask=0077 on systemd services
The Anthropic OAuth helper writes credential files with the process
default umask, resulting in 0644 permissions on sensitive files. Set
UMask=0077 on both hermes-gateway and hermes-dashboard services so all
files created at runtime are owner-only (0600/0700).

Ref: https://github.com/NousResearch/hermes-agent/issues/11003
2026-05-02 08:08:41 -07:00
Stephen Chin
ed9630a783 fix(hermes-agent): enable secret redaction by default
HERMES_REDACT_SECRETS is off by default, exposing API keys in chat output
and session JSON files. Add HERMES_REDACT_SECRETS=true to the .env file
created by the installer.

Ref: https://github.com/NousResearch/hermes-agent/issues/17691
2026-05-02 08:08:23 -07:00
Stephen Chin
adbfd66056 feat: add Hermes Agent LXC
Adds container scripts for Hermes Agent (Nous Research), a self-improving
AI agent with LLM provider integration, terminal execution, web browsing,
and multi-platform messaging support.

Files:
- ct/hermes-agent.sh
- install/hermes-agent-install.sh
- json/hermes-agent.json
- ct/headers/hermes-agent

Deviations from standard patterns (justified):

1. Uses upstream installer (curl-pipe) instead of fetch_and_deploy_gh_release:
   Hermes is a uv-managed Python application with complex dependency
   resolution, virtualenv management, and binary placement—not a single
   binary or tarball from GitHub Releases.

2. Dedicated 'hermes' service user (not running as root):
   The agent executes arbitrary terminal commands on behalf of the user.
   Running as root would give the AI unrestricted system access. This
   follows the protonmail-bridge service-user pattern for isolation.

3. Dashboard (port 9119) bound to localhost only, requiring SSH tunnel:
   The web UI provides admin access to an AI that can execute commands.
   SSH tunnel provides an authentication/authorization boundary.

4. /usr/bin/hermes shim script:
   The hermes CLI validates cwd permissions; running 'hermes' as root
   from /root fails. The shim cd's to /home/hermes and exec's as the
   hermes user via runuser.

5. setsid --wait wrapping of upstream installer:
   The upstream installer probes /dev/tty for interactive prompts even
   with --skip-setup; setsid detaches the controlling terminal.
2026-05-02 06:25:28 -07:00
Thieneret
5a7c0025ef add outposts 2026-05-02 09:19:18 +02:00
tremor021
b0cb194bd5 soulsync: fix Micks stuff again 2026-04-30 18:53:22 +02:00
CanbiZ (MickLesk)
6d9d44642c Merge pull request #1645 from WaffleThief123/forgejo-runner-fix
forgejo-runner (FIX): support generated/unattended mode and configurable runner labels
2026-04-30 15:39:37 +02:00
CanbiZ (MickLesk)
0d04c568ad fix(invidious): companion key must be exactly 16 chars (rand -hex 8) 2026-04-30 15:30:21 +02:00
CanbiZ (MickLesk)
7aa3343e1f fix(ente): match actual subscriptions schema (storage column, attributes jsonb, no transaction_id) 2026-04-30 15:03:23 +02:00
CanbiZ (MickLesk)
8a10bfe155 fix(garmin-grafana): pass --homepath to grafana-cli plugin install 2026-04-30 15:02:14 +02:00
CanbiZ (MickLesk)
ca8ddd34a7 fix(ente): replace fragile HMAC email lookup with user_id-based admin/subscription setup 2026-04-30 15:00:56 +02:00
CanbiZ (MickLesk)
8058b92558 fix(invidious): bump RAM to 4GB / disk to 8GB (Crystal compile needs >=2.5GB free) 2026-04-30 14:57:00 +02:00
CanbiZ (MickLesk)
c7bc06aaa5 fix(garmin-grafana): avoid set -e abort on ((retries++)) returning 0 2026-04-30 14:51:02 +02:00