Skip to content

Expose an app

Pass a port, a host:port on your network, or a local HTTP(S) URL:

Terminal window
dockhive expose 3000 # http://localhost:3000
dockhive expose 192.168.1.20:8080 # another host on your network
dockhive expose https://localhost:8443 # a local HTTPS server (self-signed is fine)
dockhive expose 5173 --host-header rewrite # send Host: localhost:5173 to the app
dockhive expose 3000 --region eu # pick a region

Press Ctrl+C to close the tunnel.

Flag Meaning
--name <name> Use a name you keep: https://<name>.dockhive.live. Paid plans.
--region auto|us|eu|asia|africa|de auto (the default) picks the fastest region from where you are.
--host-header rewrite|<host> The Host header your app receives. rewrite sends the local address (for example localhost:5173); the default keeps the public hostname.
--dashboard-port 4040 Local dashboard port. The next free port is used if it’s taken.
--no-dashboard Don’t start the local dashboard.
--quiet Don’t print each request.
--no-failover Stay on the chosen region. By default, if your region goes down the CLI moves to the next-fastest one and keeps your URL.
--log <file|stderr> Write connection logs to a file (or stderr). Pair with --log-level debug|info|warn|error.

Dev servers that only answer to their own hostname (Vite, webpack dev server and similar) usually need --host-header rewrite.

Your app gets X-Forwarded-For, X-Forwarded-Proto: https and X-Forwarded-Host headers. Cookies your app sets are kept to its own tunnel address.

If the connection drops, the CLI reconnects on its own. If your region stays down after a few attempts, it moves to the next-fastest healthy region and keeps your URL: reserved names move with you, and random names are resumed. Use --no-failover to stay on one region.

Terminal window
dockhive doctor 3000

doctor checks your sign-in and credentials file, every region’s reachability and latency, your clock, your local app on the given port, and your version, and tells you what to fix.