Commit Graph

3982 Commits

Author SHA1 Message Date
nnsense
4ddf5beaf8 fix: align pinchflat lxc settings 2026-05-05 17:21:06 +00:00
nnsense
659bc5d5ce Merge branch 'community-scripts:main' into main 2026-05-04 23:00:11 +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
nnsense
f06e17e68a fix: add erlang runtime apps for pinchflat 2026-05-04 10:26:09 +00:00
nnsense
013e63d00f fix: add erlang xmerl for pinchflat 2026-05-04 00:38:19 +00:00
nnsense
cd618da487 fix: add erlang syntax tools for pinchflat 2026-05-04 00:30:34 +00:00
nnsense
2ec7001ff7 feat: add pinchflat lxc script 2026-05-04 00:10:49 +00: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
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
MickLesk
494d41392d add docuseal
Co-authored-by: Copilot <copilot@github.com>
2026-05-02 21:13:05 +02: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)
c7bc06aaa5 fix(garmin-grafana): avoid set -e abort on ((retries++)) returning 0 2026-04-30 14:51:02 +02:00
CanbiZ (MickLesk)
59331708a5 fix(invidious): broken sed address, key typo, wrong service paths, missing logrotate path 2026-04-30 14:46:36 +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)
50af211392 fix(garmin-grafana): revert chronograf to fetch_and_deploy_from_url (no .deb in GH releases) 2026-04-30 14:42:50 +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)
501b2145f1 fix(ente): use HMAC-SHA-256 email_hash for user lookup (schema has no plain email column) 2026-04-30 14:36:07 +02:00
CanbiZ (MickLesk)
90f77a81ca fix(plane): set anonymous download on MinIO uploads bucket, raise upload limits 2026-04-30 14:36:02 +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)
720b077c22 Update nagios-install.sh 2026-04-30 14:13:52 +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
CanbiZ (MickLesk)
520ea1cfe1 Update bitfocus-companion-install.sh 2026-04-30 10:06:52 +02: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)
3856b5c4cf reorder Authentik-Script / Fix little bugs 2026-04-30 09:05:33 +02:00
CanbiZ (MickLesk)
0ba356c916 Update twenty-install.sh 2026-04-30 08:48:48 +02:00
CanbiZ (MickLesk)
7184f20c42 Update twenty-install.sh 2026-04-29 13:14:49 +02: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
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
CanbiZ (MickLesk)
8132aa0bcd Merge pull request #1735 from Eun/cinny
feat: add cinny
2026-04-29 10:25:31 +02:00
John Lombardo
5b4abb2301 Remove unnecessary ESPConnect dependency 2026-04-29 11:28:12 +08:00
ethan
b7f769d1f4 refactor(cyberchef): use apt instead of apt-get 2026-04-28 21:23:23 +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