|
1 | 1 | # httpsdev |
2 | | -Zero-config HTTPS for any local dev server. Wraps npm/yarn/pnpm/python/rails/etc with a browser-trusted TLS cert via mkcert. |
| 2 | + |
| 3 | +**Zero-config HTTPS for any local dev server.** |
| 4 | + |
| 5 | +``` |
| 6 | +$ mkcert -install # one time, system-wide |
| 7 | +$ httpsdev 5173 # https://localhost:3443 → http://localhost:5173 |
| 8 | +``` |
| 9 | + |
| 10 | +Real browser-trusted cert. Works with Vite, Next, Rails, Django, Flask — any HTTP dev server. WebSocket + SSE pass through untouched, so HMR keeps working. |
| 11 | + |
| 12 | +## Why |
| 13 | + |
| 14 | +Every framework has its own HTTPS story (`--https`, `HTTPS=true`, experimental configs) and most default to self-signed certs that trip browser warnings, break service workers, and blow up OAuth callbacks. `httpsdev` sits in front of your existing dev server and gives it real HTTPS in one command. |
| 15 | + |
| 16 | +## Install |
| 17 | + |
| 18 | +Requires [`mkcert`](https://github.com/FiloSottile/mkcert) for the local CA: |
| 19 | + |
| 20 | +```bash |
| 21 | +brew install mkcert |
| 22 | +mkcert -install |
| 23 | +``` |
| 24 | + |
| 25 | +Then: |
| 26 | + |
| 27 | +```bash |
| 28 | +# Homebrew (coming in v0.2) |
| 29 | + |
| 30 | +# Go install |
| 31 | +go install github.com/ArpitRajputGithub/httpsdev@latest |
| 32 | + |
| 33 | +# Or grab a binary from Releases: |
| 34 | +# https://github.com/ArpitRajputGithub/httpsdev/releases |
| 35 | +``` |
| 36 | + |
| 37 | +## Usage |
| 38 | + |
| 39 | +``` |
| 40 | +httpsdev <target-port> [flags] |
| 41 | +
|
| 42 | + --listen <port> HTTPS listen port (default 3443) |
| 43 | + --host <name> Additional SAN for cert (default: none) |
| 44 | + --lan Bind on 0.0.0.0 for LAN (default: 127.0.0.1) |
| 45 | + --tui Full-screen dashboard mode (default: false) |
| 46 | + --version Print version |
| 47 | +``` |
| 48 | + |
| 49 | +### Log mode (default) |
| 50 | + |
| 51 | +``` |
| 52 | +$ httpsdev 5173 |
| 53 | +
|
| 54 | + ▲ httpsdev v0.1.0 |
| 55 | +
|
| 56 | + ➜ Local: https://localhost:3443 |
| 57 | + ➜ Upstream: http://localhost:5173 |
| 58 | + ➜ Cert: mkcert · valid 30 days |
| 59 | +
|
| 60 | + press Ctrl+C to quit |
| 61 | +
|
| 62 | +GET / 200 12ms |
| 63 | +GET /@vite/client 200 3ms |
| 64 | +POST /api/login 401 45ms |
| 65 | +``` |
| 66 | + |
| 67 | +### Dashboard mode |
| 68 | + |
| 69 | +```bash |
| 70 | +httpsdev --tui 5173 |
| 71 | +``` |
| 72 | + |
| 73 | +Full-screen Catppuccin Mocha TUI with live request feed, latency stats, and cert info tab. |
| 74 | + |
| 75 | +*(GIF placeholder — record with asciinema after v0.1 tag)* |
| 76 | + |
| 77 | +### Test on your phone |
| 78 | + |
| 79 | +```bash |
| 80 | +httpsdev --lan 5173 |
| 81 | +``` |
| 82 | + |
| 83 | +Binds on `0.0.0.0`. Your phone (on the same wifi) can hit `https://<mac-ip>:3443` — install the mkcert root CA on the phone via `mkcert -CAROOT` to make the padlock green. |
| 84 | + |
| 85 | +## What's out of scope for v0.1 |
| 86 | + |
| 87 | +- Wrapping the dev-server process (`httpsdev npm run dev`) — you run your dev server yourself. |
| 88 | +- Multi-service reverse proxy (`api.dev.local`, `web.dev.local`) — use [Caddy](https://caddyserver.com) for that. |
| 89 | +- Framework detection. |
| 90 | + |
| 91 | +All tracked as issues for v0.2+. |
| 92 | + |
| 93 | +## License |
| 94 | + |
| 95 | +MIT. |
0 commit comments