
Доверенный HTTPS для localhost — локальный CA, /etc/hosts, mDNS-обмен в LAN, обратный прокси. Преобразует https://name.local → localhost:port
Настоящий HTTPS для локальной разработки — с TUI и расшариванием в LAN.
mkdev запускает доверенный HTTPS на *.local. Один Go-бинарник: центр сертификации (CA) + обратный прокси + /etc/hosts + mDNS-вещание + полноценный TUI.
Что отличает его от других:
https://app.local с телефона или любого устройства в той же Wi-Fi-сети.mkdev без аргументов сразу открывает TUI.internal/safeexec). Никакой подмены через PATH, никаких group-writable лазеек.knownHost. Не wildcard, не предзаготовленные.mkdev install # CA + trust + daemon service + menu bar autostart
mkdev add myapp localhost:3000 # routes https://myapp.local → localhost:3000
curl https://myapp.local # 200 from your local app
install — разовая операция: генерирует CA, заносит его в системное хранилище доверия, устанавливает и включает пользовательский сервис демона (launchd / systemd), регистрирует автозапуск панели в строке меню при входе в систему и сразу запускает панель при наличии GUI-сессии. Демон владеет прокси; TUI (mkdev без аргументов) и mkdev add | remove | list общаются с ним через ~/.mkdev/daemon.sock.

Фирменная функция mkdev. Расшарьте маршрут на любое устройство в той же Wi-Fi-сети с настоящим TLS — без предупреждений и туннельных сервисов.
s, чтобы переключить колонку SHARE в LAN.<name>.local → LAN-IP этой машины.https://<name>.local. После того как устройство один раз доверится CA mkdev, предупреждений не будет..local. Другие TLD тоже проксируются, но недоступны в LAN по имени.s происходит на лету — mDNS-анонс и ACL со стороны LAN обновятся при следующем запросе. Без перезапуска.brew install venkatkrishna07/tap/mkdev
Обновление позже:
brew update
brew upgrade mkdev
go install github.com/venkatkrishna07/mkdev/cmd/mkdev@latest
Обновление до конкретной версии:
go install github.com/venkatkrishna07/mkdev/cmd/[email protected]
Готовые бинарники для macOS (Intel + Apple Silicon), Linux (amd64 + arm64) и Windows (amd64) публикуются на странице релизов. Каждый релиз включает checksums.txt и бесключевую подпись cosign (checksums.txt.sig + .pem) — команду проверки см. в SECURITY.md#verifying-releases.
На macOS, если Gatekeeper блокирует бинарник, скачанный напрямую:
xattr -d com.apple.quarantine ./mkdev
git clone https://github.com/venkatkrishna07/mkdev.git
cd mkdev
task build
cp bin/mkdev ~/bin/ # or /usr/local/bin
Требуется Go 1.25+.
mkdev install # CA, trust, daemon service, bar autostart — one command
mkdev # launch TUI
После install демон работает в фоне, а в строке меню появляется панель (macOS, Linux GNOME/KDE, Windows). Панель показывает статус демона, список маршрутов и переключатели включения / расшаривания в LAN для каждого маршрута; Quit закрывает панель, не останавливая демон.
Панель — это постоянно доступный UI. Она живёт в системном трее и общается с демоном через ~/.mkdev/daemon.sock. Запускается при входе в систему (автозапуск регистрируется install); также запускается в foreground командой mkdev bar.
Что показывает:
mkdev v0.4.0 + PID демона + время работы + порт прослушивания прокси.name.tld → target и суффикс-бейджи ( · disabled, · LAN).Что делает (клик по маршруту):
https://name.tld системным обработчиком по умолчанию.pbcopy / wl-copy / xclip / clip.exe).Enabled маршрута. Выключенные маршруты остаются в хранилище, но перестают проксироваться.Действия панели в целом:
DisableUnit, чтобы launchd / systemd KeepAlive не поднял его снова, затем отправляет команду завершения через сокет.Заметки:
mkdev daemon stop) корректно останавливают демон под наблюдением — прямое убийство процесса демона приведёт к его повторному запуску через launchd / systemd.Замените бинарник (brew upgrade / go install ...@latest / новая загрузка). При следующем запуске любой подкоманды mkdev бинарник синхронизирует всё, что живёт вне него: перепишет plist демона / systemd-юнит и запись автозапуска панели, чтобы они указывали на новый бинарник, повторно пропишет /etc/hosts для включённых маршрутов и заново добавит CA в доверенные, если его оттуда удалили. Запросы sudo появляются прямо в терминале. Если у вас запущен только демон и вы не трогаете CLI, демон сам выполнит безопасные (без sudo) шаги при своём старте, а остальные поставит в очередь до следующей команды CLI.
Повторный запуск mkdev install делает то же самое явно и всегда безопасен — каждый шаг идемпотентен.
| Платформа | Хранилище доверия | Повышение привилегий |
|---|---|---|
| macOS | System Keychain (security add-trusted-cert) | sudo / osascript |
| Linux | update-ca-trust / update-ca-certificates / trust extract-compat | sudo / pkexec |
| Windows | системное хранилище ROOT через crypt32.dll | UAC (PowerShell RunAs) |