Getting started
menfez gives a port on your machine a public HTTPS address under menfez.cloud. Requests and
WebSocket connections to that address are carried to your machine and handed to the local service.
Install
Section titled “Install”macOS and Linux:
curl -fsSL https://menfez.dev/install.sh | shWindows (PowerShell):
irm https://menfez.dev/install.ps1 | iexFrom source, with a Rust toolchain:
cargo install --locked --git https://github.com/menfez/menfez menfezLog in
Section titled “Log in”Save your token once; it goes into the config file.
menfez login <TOKEN>Open a tunnel
Section titled “Open a tunnel”Point menfez at the port your app listens on:
menfez http 3000menfez 0.1.0connected http https://k3x9m2p7qa4b.menfez.cloud -> localhost:3000The URL works until you stop menfez with Ctrl+C. If the connection drops, menfez reconnects by itself and gets the same URL back.
Want a fixed name?
menfez http 3000 --subdomain my-app# http https://my-app.menfez.cloud -> localhost:3000Dev servers that check the Host header
Section titled “Dev servers that check the Host header”Vite, Next.js, Django, Rails and others may refuse requests whose Host is not localhost.
Either allow .menfez.cloud in the framework, or let menfez send the local address instead:
menfez http 5173 --host-header rewriteSeveral tunnels
Section titled “Several tunnels”Define them in the config file and start them together:
[tunnels.web]addr = "3000"
[tunnels.api]addr = "8080"subdomain = "my-api"menfez start