Commit Graph

3223 Commits

Author SHA1 Message Date
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
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
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
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
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)
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)
328561e64d fix(invidious): use ~ as sed delimiter and anchor-based replacement (pipe in pattern broke sed) 2026-04-30 14:43:43 +02:00
CanbiZ (MickLesk)
cbd38c581e fix(authentik): align install with two-volume layout from ct/authentik.sh
- drop redundant curl of default.yml (file is part of release tarball)
- stop creating /opt/authentik-data dirs in install (mounted later as separate volume)
- enable services without --now in install (started after data volume is attached)
2026-04-30 14:37:57 +02:00
CanbiZ (MickLesk)
e84dca5efa fix(invidious): strip git invocations from invidious.cr before make 2026-04-30 14:35:57 +02:00
CanbiZ (MickLesk)
7dfe23a785 refactor(garmin-grafana): use fetch_and_deploy_gh_release for Chronograf, split config blocks 2026-04-30 14:35:52 +02:00
CanbiZ (MickLesk)
b920412247 fix(clickhouse): clarify URL labels (Play UI / HTTP API on 8123) 2026-04-30 14:35:47 +02:00
CanbiZ (MickLesk)
5b84bd9742 Update nagios.sh 2026-04-30 14:01:24 +02:00
CanbiZ (MickLesk)
bfc3b8b617 simplify nagios 2026-04-30 14:00:30 +02:00
CanbiZ (MickLesk)
f490247be0 Add GitLab checker; gate storyteller update
Introduce GitLab release helpers and use them to conditionally update Storyteller.

- misc/tools.func: add get_latest_gitlab_release and check_for_gl_release functions (GitLab API calls, token support, pinning, error handling, requires jq).
- ct/storyteller.sh: wrap update sequence with check_for_gl_release so rebuild/deploy only runs when a new GitLab release is detected; update author metadata.
- install/storyteller-install.sh: remove python3 from apt dependencies and drop NODE_OPTIONS export; minor whitespace cleanup.

These changes prevent unnecessary rebuilds by detecting upstream GitLab releases and improve robustness of release detection and error reporting.
2026-04-30 13:41:10 +02:00
github-actions[bot]
b8f9aa8b70 chore: update app headers [skip ci] 2026-04-30 07:46:37 +00:00
CanbiZ (MickLesk)
e8f006659e Fetch authentik default.yml; update app name
Download authentik's lib/default.yml for the specified AUTHENTIK_VERSION before running go mod/download and build (added curl to ct/authentik.sh and install/authentik-install.sh to write to /opt/authentik/authentik/lib/default.yml). Also normalize Bitfocus Companion app name to "Bitfocus-Companion" in ct/bitfocus-companion.sh.
2026-04-30 09:46:14 +02:00
CanbiZ (MickLesk)
df33695453 Update authentik.sh 2026-04-30 09:22:19 +02:00
CanbiZ (MickLesk)
cb699c820f reordner and some fixes 2026-04-30 09:13:01 +02:00
Cyra
72b1a6460b fix(forgejo-runner): revert COMMUNITY_SCRIPTS_URL override per review
Drop the env-var indirection on the build.func source URL; it was a dev
convenience for testing against a fork and adds no user-facing value.
2026-04-29 12:01:55 -07:00
github-actions[bot]
db4215b1cd chore: update app headers [skip ci] 2026-04-29 11:10:53 +00:00
CanbiZ (MickLesk)
fe5d872462 Merge pull request #1765 from programbo/codex/add-espconnect
feat: add ESPConnect LXC
2026-04-29 13:10:25 +02:00
github-actions[bot]
fe60619240 chore: update app headers [skip ci] 2026-04-29 10:58:07 +00:00
Michel Roegl-Brunner
ba7c59cece Merge pull request #1713 from fpulch/paperclip-helper-final-polish
feat: add Paperclip helper script
2026-04-29 12:57:49 +02:00
github-actions[bot]
f1a24c9445 chore: update app headers [skip ci] 2026-04-29 08:25:56 +00:00
CanbiZ (MickLesk)
8132aa0bcd Merge pull request #1735 from Eun/cinny
feat: add cinny
2026-04-29 10:25:31 +02:00
John Lombardo
290dbd0245 fix: align ESPConnect update flow with maintainer guidance 2026-04-29 12:40:00 +08:00
ethan
bfddb2a59c refactor(cyberchef): use -fsSL, update log messages and remove whitespace 2026-04-28 21:28:58 +02:00
Tobias Salzmann
16b5af6d2a Update Alpine version 2026-04-28 20:53:05 +02:00
ethan
ac031e937f feat: Add CyberChef 2026-04-28 20:00:23 +02:00
007hacky007
01577008e4 refactor: address MickLesk review feedback
Use literal 'Squid' in msg_* labels, add missing msg_ok and spacing in
update_script. Replace install_packages_with_retry/enable_and_start_service/
safe_service_restart helpers with plain apt and systemctl commands. Merge
auth setup and config validation into a single msg block. Drop the custom
/etc/profile.d MOTD heredoc and trailing htpasswd echo.
2026-04-28 19:08:12 +02:00
John Lombardo
1ed6dc4f7d fix: restart nginx if ESPConnect update fails 2026-04-28 22:38:07 +08:00
Tobias Salzmann
f31d3bf963 adjust pattern 2026-04-28 14:54:43 +02:00
John Lombardo
b319e478a2 chore: restore upstream helper URL 2026-04-28 20:09:29 +08:00
Tobias Salzmann
339b2b9c4d fix pattern and backup path 2026-04-28 14:03:31 +02:00
Tobias Salzmann
2a1c8912de fix 2026-04-28 13:56:14 +02:00
Tobias Salzmann
7031cfec28 prebuilt dist 2026-04-28 13:47:16 +02:00
Tobias Salzmann
6b8120e2b3 use fetch_and_deploy_gh_release 2026-04-28 13:30:06 +02:00
John Lombardo
abf2052dfd test: default ESPConnect helper URL to fork 2026-04-28 17:41:37 +08:00
John Lombardo
57e212ef69 fix: honor fork base URL for ESPConnect 2026-04-28 17:32:45 +08:00
John Lombardo
abae4da5df style: italicize ESPConnect header 2026-04-28 17:10:13 +08:00
John Lombardo
a295637aad fix: clarify ESPConnect header 2026-04-28 17:07:44 +08:00
John Lombardo
0fa17772cc feat: add ESPConnect LXC 2026-04-28 16:53:07 +08:00
CanbiZ (MickLesk)
497f09934f add injected code for openeuler
Co-authored-by: Copilot <copilot@github.com>
2026-04-28 10:37:09 +02:00