Skip to content

installer + docs: user service by default, uncensored opt-in, honest payout status - #184

Merged
ralyodio merged 1 commit into
masterfrom
fix/installer-trust-defaults
Nov 9, 2026
Merged

ralyodio merged 1 commit into
masterfrom
fix/installer-trust-defaults

Conversation

@ralyodio

@ralyodio ralyodio commented Nov 9, 2026

Copy link
Copy Markdown
Collaborator

Addresses the substantive feedback on the r/LocalLLM launch post: a root service, uncensored models served by default, and payouts being "just a PRD". Release signing is in a separate PR.

Installer (scripts/install.sh)

  • Starts the worker as a systemd user service (~/.config/systemd/user), with loginctl enable-linger so it still starts at boot. No root needed.
  • --system-service gives the old root-managed unit. An existing /etc/systemd/system/c0mpute-worker.service is kept on upgrade. Without sudo, the installer now prints the restart command instead of starting a second worker beside it; the old daemon fallback double-ran in that case.
  • --uncensored-models opts in to uncensored house models, which are off by default via house models: uncensored ones are opt-in InfernetProtocol/infernet-protocol#178. The notice says so.
  • Tested with shimmed systemctl/loginctl: fresh-box user path, existing-system-unit path. sh -n and shellcheck are clean.

Docs

🤖 Generated with Claude Code

…t-in; honest payout status

Answers public feedback on the r/LocalLLM launch post:

- Installer starts the worker as a systemd *user* service with lingering
  (no root, nothing outside $HOME). A root-managed system service only
  with --system-service, or when an earlier install made one; with such a
  unit present and no sudo it no longer starts a second worker beside it.
- --uncensored-models opts in to uncensored house models (off by default
  from Infernet with InfernetProtocol/infernet-protocol#178).
- docs/node-safety.md: what the installer and worker can touch, that jobs
  are not sandboxed beyond your user, models served, outbound requests,
  what pays today, and how to remove it.
- README + /providers: same facts; settlement for hosting/ads is built but
  off by default, storage payouts not live.
- CIP-006 status table (In progress; payments.rs #163, ads #162/#166).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown

ThreatCrush Security Scan

13 finding(s)

HIGH/CRITICAL: 1 | MEDIUM: 8 | LOW: 4

Severity Rule Location
HIGH js-ssrf-outbound-request apps/web/public/sw.js:24
MEDIUM js-unescaped-html-sink apps/web/src/app/blog/[slug]/page.tsx:53
MEDIUM js-unescaped-html-sink apps/web/src/app/layout.tsx:80
MEDIUM sh-remote-script-execution scripts/dev-setup.sh:25
MEDIUM sh-eval-expansion scripts/dev-setup.sh:35
MEDIUM sh-remote-script-execution scripts/install.sh:181
MEDIUM sh-remote-script-execution scripts/install.sh:206
MEDIUM sh-remote-script-execution scripts/install.sh:324
MEDIUM sh-remote-script-execution scripts/install.sh:366
LOW py-ssrf-outbound-request examples/business-strategist-agent/chat.py:37
LOW py-ssrf-outbound-request examples/business-strategist-agent/train.py:54
LOW secret-generic-credential node/crates/c0mpute-core/src/webhook.rs:1165
LOW py-path-traversal node/crates/c0mpute-core/tests/fixtures/fake-infernet-text:29

Snippets are redacted; ThreatCrush never prints matched credential material.

@ralyodio
ralyodio merged commit 85ff5a3 into master Nov 9, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant