← Back to home

Frequently Asked Questions

Technical details about how Node Proxy works.

Getting Started

Why Node Proxy?

Node Proxy turns hardware you already own into self-hosted infrastructure — a production server for your email, photos, and websites. Our edge proxy is the public-facing layer that handles HTTPS termination, MX routing, DDoS protection, caching, and rate limiting, so your home IP never appears in DNS records, email headers, or HTTP responses. AI inference runs on our hosted, private, OpenAI-compatible endpoint rather than on your hardware.

The pitch is ownership over rent: you bought the hardware (a Mac Mini for OpenClaw, a NAS, an old laptop) — stop paying separately for cloud storage and mailbox hosting for workloads it can already run, and get hosted AI inference bundled in instead of a separate provider bill. Every plan, including Free, includes a Node Proxy copilot that's integrated with the device and can manage your email, photos, and websites for you.

How do I get started?

  1. Run the base installer from the Node Proxy environment you want to join:
    • Linux/macOS/WSL2: curl -fsSL https://<current-environment-host>/install.sh | sh
    • Windows PowerShell: iwr -useb https://<current-environment-host>/install.ps1 | iex
  2. Run nodeproxy up after install. On non-production environments like test or staging, use nodeproxy --namespace <env> up.
  3. Approve the device in the browser when prompted.
  4. After approval, managed mail is enabled automatically unless you used nodeproxy up --enable-mail=false. Use the local control plane on that device for the mail password and autoconfig, plus optional Immich, WordPress, or the localhost OpenAI / OpenClaw setup.

If you want the machine-readable workflow and exact endpoints first, start from /mcp-agent-api.

What is the install command?

Use the installer endpoint for the environment you're on:

The follow-up registration step is separate: nodeproxy up on production, or nodeproxy --namespace <env> up on non-production environments.

How do I connect OpenClaw?

There are two supported paths:

If you want OpenClaw heartbeat behavior, the generated config already includes a heartbeat block.

How do I use the AI for coding?

Node Proxy bundles the open-source Qwen 3.6 35B A3B model and exposes it through an OpenAI-compatible API for use in coding agents and editors. Pick the path that matches your tool:

The endpoint speaks standard POST /v1/chat/completions and GET /v1/models, with streaming, tool calling, and structured outputs. Node Proxy copilot use is bundled and not token-billed; general hosted-inference use is metered against your plan's token allowance.

AI & Copilot

What does the copilot do for me on Node Proxy?

Node Proxy has two copilot surfaces with different permissions:

The account copilot should not read mailbox contents, edit WordPress content, manage Immich assets, set up DNS, change billing or payment terms, or approve device-local high-risk actions. Those belong on the device surface or the regular admin UI. Destructive or high-risk actions require explicit confirmation or local web control plane approval. Copilot use is bundled on every plan and is not token-billed.

Why are there separate account and device copilots?

The account copilot is for cloud/account routing and administrative state. The device copilot is for local services and personal data. Splitting them keeps device data on the device-control surface and avoids giving a hosted account chat broad local authority.

What's the difference between fast mode and non-fast mode?

The same Qwen 3.6 35B A3B model is served in two variants:

Most clients pin the fast variant as the default and reach for the non-fast variant only when extra thinking is worth the extra latency. OpenClaw drives its heartbeat schedule from HEARTBEAT.md; the generated /v1/agent/configs/openclaw config wires the non-fast variant into that block automatically.

How is the hosted inference API different from the bundled copilot?

Two separate lanes powered by the same self-hosted model:

Only the metering and rate-limiting differ between the two.

Does the copilot help filter spam and phishing?

Yes. Every inbound email passes through the edge proxy for protocol-level checks (SPF/DKIM/DMARC, ARC chain validation, MIME structure) and rspamd-style spam scoring before being delivered to the device. The copilot then layers AI analysis on the result, looking at:

The copilot surfaces a header-and-attachment risk summary alongside each message, so an agent can prioritize, quarantine, or auto-reply with full context.

Private Email

How does my device become a mail server?

When you install Node Proxy, your device runs a full embedded mail server stack. This includes local IMAP and SMTP servers bound to your machine, plus a local Maildir for storage. Your device isn't just a client — it's the actual mail server.

The public internet never talks to your device directly. Instead, our edge proxy is what the world sees (via MX records). It handles the hard parts of public SMTP — port 25 traffic, SPF/DKIM/DMARC verification, spam scoring, and DDoS protection. Once a message is accepted, it's pushed directly to your device over an encrypted WireGuard tunnel.

Can I use a normal email client like Thunderbird or Apple Mail?

Yes. Your device runs standard IMAP and SMTP submission servers on localhost. Open the local control plane on that machine, or call /localapi/v0/mail/client-config, to get the host, ports, mailbox username, password, and autoconfig URL. Then point any client — Thunderbird, Apple Mail, Outlook — at 127.0.0.1.

How do IMAP and SMTP credentials work?

Your local mail clients and local agents use password-based auth. Node Proxy generates a local mail password for the mailbox and enforces it on both IMAP and SMTP submission. The local control plane and /localapi/v0/mail/client-config expose the current username/password pair and autoconfig data.

Between the edge proxy and your device, mail still stays on the private WireGuard path. The public internet never authenticates directly to your laptop's SMTP submission port.

What happens when my laptop moves to a different network?

Your mail server follows you. MagicDNS means the edge proxy can always find your device — at home, in a coffee shop, or on a mobile hotspot — without needing to update DNS records. The WireGuard tunnel reconnects automatically when your network changes.

Can my AI agent read and respond to emails?

Yes. Because the mail server runs locally, your agent can access the mailbox through the local mail APIs or through standard IMAP/SMTP using the same local mail password. No OAuth tokens or third-party mailbox API are required. Your agent talks directly to your mailbox on your machine.

Can I use Node Proxy as a heartbeat model for OpenClaw?

Yes. The local OpenAI-compatible endpoint on your device can serve as a dedicated heartbeat model in OpenClaw. Set the non-fast model variant (Qwen/Qwen3.6-35B-A3B) as the heartbeat model — it runs periodic background checks like inbox triage, calendar alerts, and proactive notifications where reasoning quality matters more than latency. The generated OpenClaw config from /v1/agent/configs/openclaw already includes a heartbeat block.

Where is my email actually stored?

Your primary mailbox storage is a local Maildir on your hardware. If your device is offline, the edge can hold an age-encrypted copy of accepted inbound mail for the offline hold window on your plan. The private key stays on your device, so queued mail is not stored as readable plaintext on Node Proxy servers. After successful delivery, the held encrypted copy is removed.

How can my agent send and reply to email?

The local mail API on each device exposes everything an agent needs without going through OAuth or a third-party mailbox provider:

Auth uses the localhost token plus the synced agent API key. Plain IMAP/SMTP also works if your agent prefers protocol-level access — same local mail password as a desktop client.

Photos

How do I publish photos with Immich?

Immich runs on your hardware while a public Immich URL is minted on the edge. The flow:

  1. Enable Immich on the device: POST /localapi/v0/immich/enable. The local control plane and /localapi/v0/nodeproxy/status reflect Immich state.
  2. Assign a public URL to the device: POST /v1/immich-urls. List or remove URLs via GET|DELETE /v1/immich-urls.
  3. Manage albums and shared links via the local Immich API: GET /localapi/v0/immich/albums, POST /localapi/v0/immich/albums/update, GET /localapi/v0/immich/shared-links, POST /localapi/v0/immich/shared-links/update. Shared links can have expiry, password, slug, metadata visibility, and download/upload permissions.
  4. Tune the public-share image cache via POST /v1/immich-urls/{device_id}/cache-manifest and POST /v1/immich-urls/{device_id}/cache-refresh.

Free includes 1 GB/mo of public photo URL bandwidth; Pro includes 50 GB/mo, with optional $0.20/GB overage after usage-based scaling is enabled with a monthly cap. Storage is unlimited because the photos live on your hardware. The Immich mobile app handles automatic backup over the same secure tunnel.

Website Publishing

How do I publish a WordPress site?

WordPress runs on your device while the edge proxy fronts public traffic with HTTPS termination, caching, rate limits, and DDoS protection. The flow:

  1. Enable WordPress on the device: POST /localapi/v0/wordpress/enable. Stop or uninstall later with POST /localapi/v0/wordpress/disable or POST /localapi/v0/wordpress/delete.
  2. Reserve a public website route: POST /v1/website-routes. Update hostname, lifecycle status, admin mode, or cache manifest paths via PATCH /v1/website-routes/{id}. List or delete routes via GET|DELETE /v1/website-routes.
  3. Manage caching: POST /v1/website-routes/{id}/cache-manifest to declare the authoritative HTML cache manifest, and POST /v1/website-routes/{id}/cache-refresh to purge a host or path set.
  4. Edit content from an agent or the copilot via the local WordPress API — pages, front-page selection, page content, and wp-content filesystem CRUD.

Free: 1 managed hostname, 3 cached HTML paths, 1 GB/mo bandwidth. Pro: 1 hostname, 50 cached paths, 25 GB/mo, with optional $0.20/GB overage after usage-based scaling is enabled with a monthly cap. Custom domains are an add-on (see "How do I bring my own domain?").

Custom Domains

How do I bring my own domain?

Custom domains are a Pro add-on at $5/domain/mo and bundle email and website publishing on that domain.

For mail BYOD:

  1. Verify ownership via a TXT record: POST /v1/custom-domains/verify-ownership.
  2. Prepare SES identity and the required DNS records: POST /v1/custom-domains/prepare.
  3. Inspect current DNS state before changing routing: POST /v1/dns/scan. Apply fallback MX routing if you want Node Proxy in front: POST /v1/dns/fallback.
  4. Manage routes: GET|POST|PATCH /v1/email-routes.
  5. Attach mailboxes on the domain at $2/address/mo: POST /v1/byod-addresses. List or remove via GET|DELETE /v1/byod-addresses.

For website publishing on a custom domain, register the route via POST /v1/website-routes with your hostname; the same $5/domain/mo covers HTTPS termination, caching, and rate limiting at the edge. You can also reserve a vanity address on the Node Proxy domain (name@mail.nodeproxy.ai) at $2/address/mo without bringing a domain.

Architecture

What does the Node Proxy client actually install?

A lightweight daemon that connects your machine to our edge via an encrypted WireGuard tunnel. Once running, your hardware can receive email, serve websites, host photos, and expose APIs — all without opening ports or configuring DNS. The client handles the local protocol servers (IMAP, SMTP, HTTP) and the secure tunnel back to the edge.

What does the edge proxy do?

The edge proxy is the public-facing layer. It handles TLS termination, HTTPS, SMTP, DDoS protection, caching, and rate limiting. It's the front door that the internet talks to — then it relays traffic securely to your device over the WireGuard tunnel. Your home IP stays hidden.

Is my home IP address exposed?

No. All public traffic goes through the edge proxy. Your device connects outbound to the WireGuard mesh — it never accepts inbound connections from the public internet. Your home IP is never visible in DNS records, email headers, or HTTP responses.

What can the Node Proxy agent / MCP API do?

Node Proxy exposes two API surfaces that an agent (or the MCP server) can drive:

A live, machine-readable catalog of every endpoint with exact methods, paths, and request shapes is available at /mcp-agent-api. The hosted MCP server wraps the same surface for agents that prefer MCP tools instead of raw HTTP.

Billing & Payments

How is billing handled?

Free accounts are free. Paid plans are billed monthly through Stripe, which is also our processor for any usage-based overage charges (for example, hosted inference API tokens beyond your plan's included allowance). You'll only see overages if you've explicitly enabled usage-based scaling and set a monthly cap.

Where do I see invoices and update my payment method?

The Billing page in the admin console shows your current plan, included allowances, current-period usage, and past invoices. Updating your card, switching plans, or canceling all happen through the Stripe-hosted billing portal we link to from that page.

Does Node Proxy store my credit card?

No. All payment information is handled by Stripe, which is PCI DSS certified. We never see or store your full card number, CVC, or bank credentials — we only keep the Stripe customer and subscription identifiers needed to look up your plan and invoices. See the Privacy Policy for the full list of what we store.

What can the account copilot do with billing?

The account admin copilot can read billing context — your plan, current-period usage, included allowances, and invoice metadata — to help answer questions like "how much have I used this month?" or "what plan am I on?" It cannot change billing or payment terms; plan changes, payment-method updates, and cancellations always go through the Stripe billing portal so you confirm them yourself.

Security

How is traffic encrypted?

Every connection between the edge and your device uses WireGuard encryption with ACLs enforced at every node. Unauthorized machines never receive peer keys and can't even complete a handshake. Separately, the local IMAP and SMTP submission services on your device require the daemon-generated mail password.

Is my email encrypted at rest?

Yes. We use a zero-access encryption model for all inbound email. The edge proxy terminates the public SMTP connection, performs spam scanning, and then immediately encrypts the message payload using age (X25519) before it is ever written to the temporary edge spool.

The private key required to decrypt your mail is generated on—and never leaves—your physical device (the Connector). This means that even if the edge proxy or storage layer were compromised, your spooled mail cannot be read by anyone, including us. When your device pulls the mail over the WireGuard tunnel, it decrypts the message locally using its private key before presenting it to your email client.

How does this compare to Proton Mail?

Like Proton Mail, we offer zero-access storage, but our architectural approach is different:

Can Node Proxy read my data?

The edge proxy has to process some traffic in transit to route it, enforce policy, and run mail authentication and spam checks. For inbound mail, the message is visible to the edge during SMTP acceptance and scanning, then the accepted payload is encrypted with your device's age public key before any offline spool write. If your device is offline, Node Proxy holds that encrypted copy until reconnect and removes it after delivery; the private key stays on your device. Your long-term email, photos, and files live on your hardware. See the Privacy Policy for details.


Have a question not covered here? Reach out at support@nodeproxy.ai.