fix(cuprate): front the restricted RPC port with a Tor onion

The restricted-RPC port (18090) was `auth: none`, which the app gate
treats as fully exempt — no onion, no takeover, LAN/Tailscale IP only.
Flip it to `auth: open`: the gate still binds the external addresses
and fronts a Tor onion for the port, just without a dashboard login
challenge, since Monero wallet clients (Feather, monero-wallet-rpc,
GUI) speak plain HTTP JSON-RPC and can't hold a session cookie.

P2P (18183) stays `none` — no reason to Tor-front raw gossip.

Regenerated releases/app-catalog.json (unsigned) to embed the updated
manifest; needs scripts/sign-catalog.sh before it takes effect on any
node, since origin (catalog) wins over disk for catalog-covered apps.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NZnsiMtyJxiJBuvv7yLPUF
This commit is contained in:
2026-09-03 14:51:24 +00:00
co-authored by Claude Sonnet 5
parent cf240df4b6
commit f9a1ef031c
2 changed files with 3270 additions and 3268 deletions
+11 -7
View File
@@ -87,17 +87,21 @@ app:
# bind without an explicit i_know_what_im_doing override. # bind without an explicit i_know_what_im_doing override.
# Restricted RPC: Monero's own purpose-built safe-for-public subset — # Restricted RPC: Monero's own purpose-built safe-for-public subset —
# what wallets use when connecting to a "remote node". Disabled by # what wallets use when connecting to a "remote node". Disabled by
# cuprated's own default; enabled via files[] below. A dashboard login # cuprated's own default; enabled via files[] below. `open`, not `gated`:
# would break wallet clients connecting programmatically, same # the gate still takes the port over (loopback pin, external binds,
# reasoning as electrumx's port. The daemon still uses its canonical # fronts the Tor onion) but skips the dashboard login challenge, same
# container port 18089, but Penpot already owns host port 18089, so this # reasoning as electrumx's port — wallet clients (Feather,
# maps the public host port to the free 18090 instead. # monero-wallet-rpc, GUI) speak plain HTTP JSON-RPC programmatically and
# cannot complete a browser login or hold a session cookie. The daemon
# still uses its canonical container port 18089, but Penpot already owns
# host port 18089, so this maps the public host port to the free 18090
# instead.
- host: 18090 - host: 18090
container: 18089 container: 18089
protocol: tcp protocol: tcp
auth: none auth: open
auth_rationale: >- auth_rationale: >-
Monero restricted RPC — the subset upstream considers safe for public/remote-node use. Wallets (Feather, monero-wallet-rpc, GUI) connect directly over plain HTTP JSON-RPC and cannot hold a dashboard session cookie. Monero restricted RPC — the subset upstream considers safe for public/remote-node use. Wallets (Feather, monero-wallet-rpc, GUI) connect directly over plain HTTP JSON-RPC and cannot complete a browser login or hold a dashboard session cookie.
volumes: volumes:
- type: bind - type: bind
+3259 -3261
View File
File diff suppressed because one or more lines are too long