Turn your device into the cloud.

SelfHost connects your local machine to the global web via secure WebSocket tunnels. Map ports to public subdomains instantly with zero complex setups, firewalls, or fees.

bash (selfhost-agent)
$
https://react-app.selfhost.ishangautam7.com.np

React App Hosted Locally

Tunnelling localhost:3000 securely. Bypassing firewalls and NAT dynamically.

Get Live in 3 Simple Steps

Install the custom lightweight agent on your local computer, hook it to your account credentials, and connect your services instantly.

1

Install the Rust Host Agent

Download and compile the lightweight agent client. It sits on your server or developer environment and handles safe connections.

cargo install --git https://github.com/ishangautam7/SelfHost --bin agent
2

Obtain Your Connection Credentials

Every developer account comes with a unique Agent API Key. It authenticates your local machine tunnels and assigns subdomains automatically under your account.

3

Connect and Publish

Customize the parameters below to generate your direct CLI command. Run it in your terminal, and map your applications instantly!

agent connect \
  --server ws://localhost:3001/ws/tunnel \
  --api-key sh_usr_a1b2c3d4e5f6
Once the agent is connected, head to the Deploy New App page, register local port 3000, and get your public subdomain immediately!

Everything You Need to Host

SelfHost provides core production infrastructure utilities wrapped inside a simple user experience.

Instant Global Subdomains

Get a dedicated public URL for your apps (e.g. appname.selfhost.ishangautam7.com.np) with custom bindings. Route external requests instantly down to your terminal ports.

Secure Rust WebSockets

The high-performance Rust host agent uses persistent, low-overhead WebSocket tunnels to pass incoming HTTP data packages safely, bypassing firewalls and strict routers.

Resource Monitoring

Keep tabs on CPU cores, memory limits, and connection health directly from your developer dashboard. Stop, start, or delete tunnels on demand.

Frequently Asked Questions

Have questions about how SelfHost manages tunnels, security, or domain configuration? Here are the answers.

How does the tunnel routing work?

The SelfHost agent creates a persistent outgoing WebSocket connection to our Control Server. When an internet user visits your assigned subdomain, our server receives the request, wraps it, and sends it over the WebSocket to the agent on your machine. The agent forwards it to your local application, grabs the response, and sends it back securely.

Do I need to configure port forwarding or dynamic DNS?

No. Because the WebSocket connection is established from your local machine outwards, it bypasses routers, firewalls, double-NAT setups, and strict home networks automatically. No incoming port forwarding (such as port 80 or 443) is required.

Is the tunnel traffic secure?

Absolutely. All web traffic from the client browser to the Control Server is encrypted via SSL/TLS (HTTPS). The server then securely tunnels it to the local agent over a secure WebSocket (WSS) connection. No raw port exposures are made.

Can I host multiple applications simultaneously?

Yes! You can run multiple separate applications on different local ports (e.g., port 3000 for your React frontend and port 5000 for an Express API). You can deploy each app inside your SelfHost dashboard and associate them with different subdomains, all powered by a single running agent!