Home / Guides / Publish Self-Hosted Services
One-Command Service Publishing

Publish a self-hosted service with one command

NeedPorts gives your machine dedicated public ports over an outbound tunnel, so services behind CGNAT, on a GPU host, or on any network that blocks inbound ports become reachable. Built-in templates map a port to a known service in a single command.

View NeedPorts Plans See all client commands

How it works

Install the client, then map one of your assigned public ports to a local service. The template sets the right local port for you, and a restart applies it:

sudo needports use jellyfin <assigned-port>
sudo needports restart

For anything without a template, use the custom form with an explicit local port and label:

sudo needports expose custom --public-port <assigned-port> --local-port <local-port> --name "My app" --confirm

Built-in service templates

List them any time on an installed client with needports templates.

Why one command instead of manual config

Manual reverse-proxy or VPS relay setups mean editing config files, managing certificates, and keeping a server running. NeedPorts hands you dedicated ports and a stable public endpoint, and the template commands handle the local mapping, so you spend a minute instead of an afternoon.

Keep it secure

Publishing a service makes it reachable from the public internet. Only expose services you intend to be public, protect them with their own authentication, and be especially careful with SSH, dashboards, Jupyter, Ollama, and Open WebUI. Publish one service per port rather than opening a whole machine.

Plans start small

NeedPorts plans start at $5/month or $30/year for 25 dedicated ports, enough to publish several self-hosted services from one machine.

Related reading