Поднимаем CloudFlare туннель с zero trust и публикуем сервисы одной командой.

Мне надоело настраивать Cloudflare Zero Trust вручную, поэтому я создал 15-секундную обёртку для CLI. Каждый раз, когда мне нужно было безопасно открыть доступ к новому локальному сервису (например, Grafana или API для разработчиков), процедура всегда была одинаковой:

  • Открыть панель управления Cloudflare.
  • Создать новый туннель
  • Настроить правила входящего трафика
  • Добавить запись DNS CNAME
  • Перейти на панель Zero Trust
  • Настроить политику доступа

Как это работает сейчас:

Когда мне нужно поделиться или открыть доступ к локальному сервису, я просто запускаю:zt up grafana 3000Примерно за 15 секунд он автоматически обрабатывает всю цепочку: Создает туннель Cloudflare, настраивает DNS и Ingress, вешает его за Cloudflare Access, запускает cloudflared в фоновом режиме и сохраняет состояние локально.

Если мне нужно, чтобы он был полностью публичным (например, конечная точка веб-хука), я просто передаю флаг: 
zt up api 8080 --public
Если я хочу поделиться им с конкретными коллегами:
--allow mail@example.com
Когда я закончил, zt down grafana очищает все и останавливает процесс.
Это единственный бинарник, написанный на Go, использующий официальный пакет Cloudflare API. Конфигурация и состояние хранятся локально в ~/.zt-config.json и ~/.zt-state.json (защищены правами 0600).

Я использую его ежедневно в своей домашней лаборатории и среде разработки, и это сэкономило мне часы на кликах по веб-морде клаудфлейр. Если вы управляете селф-хостед приложениями или часто нуждаетесь в безопасном открытии локальных портов, не стесняйтесь проверить тулзу, открыть issue или поставить звездочку. Я буду рад обратной связи.

1