A server with a public IP
Any small VPS is enough. The tunnel server listens on TCP 7000 for CLI connections and 8090 for the API.
goport.uz / self-hosting
GoPort is MIT licensed end to end. The same code that runs goport.uz runs on your infrastructure, with your domain, your certificates, and no plan limits.
$ export GOPORT_SERVER_ADDR=tunnel.example.com:7000Route active
goport http 8080 → https://myapp.example.comWhy self-host
Hosted plans exist so you do not have to run a server. If you would rather run it, nothing is held back: self-hosting is the full product, not a stripped-down edition.
Any small VPS is enough. The tunnel server listens on TCP 7000 for CLI connections and 8090 for the API.
Point example.com and *.example.com at the server. Each tunnel becomes a subdomain of that domain.
Wildcard certificates need a DNS-01 challenge. The repository ships an init-ssl.sh script that walks through it with certbot.
Setup
Budget about five minutes, plus however long your DNS provider takes to propagate the wildcard record.
The tunnel server, the backend, and this website all live in the same MIT-licensed repository.
Run this in your terminal
git clone https://github.com/muhammad-deve/GoPort.git && cd GoPortCopy backend/app/.env.example and fill in your own secrets. Billing variables are optional: leave them empty and every account on your server is unlimited.
Run this in your terminal
cp backend/app/.env.example backend/app/.envRun the helper script and add the TXT record it prints to your DNS panel, then let certbot finish the challenge.
Run this in your terminal
./init-ssl.shDocker Compose brings up the backend, the dashboard, and the tunnel listener. Put your nginx config in front of them using nginx/goport.conf as the template.
Run this in your terminal
docker compose up -dThe CLI reads its target from the environment. Set these once in your shell profile and every goport command uses your server instead of goport.uz.
Run this in your terminal
export GOPORT_SERVER_ADDR=tunnel.example.com:7000export GOPORT_DOMAIN=example.comexport GOPORT_API_URL=https://back.example.comThe hosted Free plan gives you one tunnel and 5 GB a month with no card. You can move to your own server later without changing a single command, since only the environment variables differ.