Run your own provider network: the pieces, the personas, and where to start.

Self-Hosting Overview - node.you

node.you is built to be self-hosted. With the public repositories and a domain of your own, you can run a complete provider network with full feature parity: accounts, nodes, verification, and profile services, all under your control. This guide explains the moving pieces and where to go next.

The pieces

A network is made of one coordinator and one or more service servers (which can be the same machine):

                 Clients (web / desktop / Android)
                              |
                              v  https://yourdomain
+---------------------------------------------------------+
| Coordinator                                             |
|   nginx (TLS, routing)                                  |
|   nodeyou-api (accounts, nodes, provisioning)           |
|   PostgreSQL                                            |
|   ny-service-agent (container, loopback :8001)          |
+---------------------------------------------------------+
                              |
                              |  private network (WireGuard)
              +---------------+---------------+
              v                               v
+--------------------------+   +--------------------------+
| Service server           |   | Service server           |
|   ny-service-agent       |   |   ny-service-agent       |
|   profile containers     |   |   profile containers     |
+--------------------------+   +--------------------------+
  • nodeyou-api is the coordinator: it owns the database, terminates TLS, routes node subdomains, and decides where profile services run.
  • ny-service-agent is a small API that runs on every server that hosts profile containers, including the coordinator itself. The coordinator sends it provisioning commands; it manages the containers.
  • ny-profile-api is the profile service itself. You build its Docker image locally on each server that runs profiles; every profile gets its own isolated container and SQLite database.
  • The client app needs no changes: the Host Provider field on the Start screen points it at your coordinator, and everything else (including billing configuration) is discovered from your server.

Two ways to run a network

Unmetered. No billing at all: you decide who gets accounts (open, invite-only, or closed registration) and grant service allowances by hand or through invite codes. This fits a homelab, a group of friends, or an organization hosting for its own people. It is the default: a deployment with no billing credentials configured runs unmetered.

Billing provider. You charge users for services through your own Stripe account. Stripe transfers cleanly to self-hosted networks; Google Play billing does not (it is bound to the official app's Play Console listing) and stays a node.you feature. See Billing with Stripe.

What you need

  • A domain with DNS you control (a wildcard record is required for node subdomains).
  • An Ubuntu server reachable from the internet. A small VPS runs a complete single-server network.
  • Optionally, more servers for profile capacity later. You can start with one box and grow.

Where to go next

  1. Single-Server Setup stands up the whole stack on one machine. Start here.
  2. Network Administration covers registration gating, invites, allowances, and the in-app Admin pane.
  3. Adding Service Servers grows your network onto additional machines over WireGuard.
  4. Billing with Stripe turns your network into a paid provider.
Appearance
Theme
—