Skip to content

Add Paperclip v2026.403.0#5298

Draft
aidencole98 wants to merge 5 commits intogetumbrel:masterfrom
aidencole98:add-paperclip
Draft

Add Paperclip v2026.403.0#5298
aidencole98 wants to merge 5 commits intogetumbrel:masterfrom
aidencole98:add-paperclip

Conversation

@aidencole98
Copy link
Copy Markdown
Contributor

@aidencole98 aidencole98 commented Apr 6, 2026

App name

Paperclip

SVG icon

TBD

Gallery images

TBD

Tested on

  • Umbrel Home on x86_64
  • Umbrel Pro on x86_64
  • local Docker on Linux x86_64
  • upstream GHCR image manifest verified for linux/amd64 and linux/arm64
  • fresh install
  • first-admin bootstrap invite generation
  • signup + bootstrap invite acceptance
  • company creation
  • restart persistence
  • uninstall / reinstall

Future / update notes

  • Uses the upstream ghcr.io/paperclipai/paperclip image
  • Includes pre-start and post-start hooks to create the initial config and generate the first bootstrap invite automatically
  • This package carries a workaround for the current upstream first-admin bootstrap UX in authenticated deployments: Improve first-admin bootstrap UX for appliance / hosted installs paperclipai/paperclip#2579
  • The tested happy path used umbrel.local; direct access by arbitrary hostnames or Tailscale IPs may still require adding an allowed hostname manually upstream

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 6, 2026

🎉   Linting finished with no errors or warnings   🎉

Thank you for your submission! This is an automated linter that checks for common issues in pull requests to the Umbrel App Store.

raccommode added a commit to raccommode/Raccommode-Umbrel-App-Store that referenced this pull request Apr 25, 2026
Adopt the structure validated in getumbrel/umbrel-apps#5298 (the PR
adding Paperclip to the official Umbrel store), adapted to this
community store's id `raccommode-paperclip`. Replaces the in-compose
shell wrapper + watcher with Umbrel-native pre-start / post-start
hooks and an exports.sh, which run on the host before/after the
container and have full access to host networking and `docker exec`.

- hooks/pre-start: seeds instances/default/config.json with
  auth.baseUrlMode=explicit + publicBaseUrl, chowns the data dir
  (replaces the inline shell wrapper).
- hooks/post-start: polls /api/health, runs `npx paperclipai auth
  bootstrap-ceo` exactly once, persists the invite URL to
  ${APP_DATA_DIR}/data/bootstrap-invite-url.txt and logs it
  (replaces the in-container watcher).
- exports.sh: discovers host LAN IPs via `hostname --all-ip-addresses`
  and exports APP_RACCOMMODE_PAPERCLIP_LOCAL_IPS so the allowlist can
  cover raw-IP access without falling back to exposure=public.
- docker-compose.yml: image pinned by digest, user 1000:1000 directly,
  PROXY_AUTH_ADD=false, exposure=private with a populated
  PAPERCLIP_ALLOWED_HOSTNAMES, BETTER_AUTH_SECRET=${APP_SEED},
  telemetry off.
- umbrel-app.yml: version bumped to 2026.403.0 to match the pinned
  upstream image; release notes updated.

Layout adapted from @aidencole98's umbrel-apps#5298.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

2 participants