devns
devns
Локальный домен https://<имя>.test без порта для macOS.
devns add webui 8080
# ✓ https://webui.test → 127.0.0.1:8080 (caddy admin load HTTP 200)Один CLI, который настраивает всё: dnsmasq (wildcard *.test → 127.0.0.1), Caddy (единственный владелец портов 80/443, автоматический HTTPS через внутренний CA) и опциональный локальный мост DoH, чтобы браузеры с Secure DNS могли открывать домены .test.
Зачем это нужно?
Без devns | С devns |
|
|
Конфликты портов между проектами | Уникальное имя для каждого проекта, без порта в URL |
Обычный HTTP | Доверенный HTTPS (cookie |
Secure DNS браузера блокирует локальные домены | Мост DoH: |
Related MCP server: DDEV MCP Server
Установка
Требуется: macOS + uv + Homebrew.
git clone https://github.com/apiep/devns && cd devns
uv tool install --editable .
devns init # sekali saja — minta sudo interaktif 2-3x
devns doh install # opsional: bridge DoH utk browser secure-DNSdevns init настраивает:
brew install dnsmasq caddy, если ещё не установлены/etc/resolver/test→ macOS направляет TLD.testна 127.0.0.1Блок
address=/.test/127.0.0.1вdnsmasq.conf+ служба от root на :53Основной Caddyfile (
import ~/.config/devns/sites/*.caddy) + служба от root на 80/443Внутренний CA Caddy в системное хранилище доверия (
sudo caddy trust)Мост DoH (
dnsproxyот AdGuard — бинарник автоматически загружается под ОС/архитектуру)
В повседневной работе вообще без sudo: add/rm/ls/open/doctor/doh/log.
Использование
devns add pueue 7337 # daftarkan domain + reload Caddy + cek port
devns add api 3000 --open # sekalian buka browser
devns ls # ● https://pueue.test → 127.0.0.1:7337
devns open pueue # buka di browser default
devns rm pueue # hapus (konfirmasi; -y skip)
devns doctor # kesehatan: resolver/DNS/Caddy/HTTPS/DoH
devns doh install # bridge DoH (LaunchAgent user-level)
devns doh status
devns doh log -f # ikuti log dnsproxy liveБраузеры с Secure DNS
После devns doh install установите Secure DNS на Custom: https://dns.test:8443/dns-query.
Запросы .test обрабатываются локально, все остальные запросы пересылаются зашифрованно к выбранному вышестоящему DoH (по умолчанию OpenDNS).
Архитектура
Browser ──DoH──> dns.test:8443 (dnsproxy, launchd io.devns.doh)
├─ [/test/] ──> dnsmasq :53 ──> 127.0.0.1
└─ lainnya ──> https://doh.opendns.com/dns-query
Browser ──HTTPS──> Caddy :443 ──reverse_proxy──> 127.0.0.1:<port-app>
──HTTP───> Caddy :80 ──308──> HTTPS
cert: Caddy Local Authority (tls internal), per-hostname on-demandРеестр:
~/.config/devns/registry.yaml— единственный источник истиныФайлы сайтов:
~/.config/devns/sites/<имя>.caddy(сгенерированные артефакты; шаблон используетflush_interval -1, чтобы SSE не буферизировался)Ежедневная перезагрузка: admin endpoint Caddy
localhost:2019с заголовкомContent-Type: text/caddyfile
MCP-сервер
devns включает MCP-сервер stdio без дополнительных зависимостей:
hermes mcp add devns --command devns-mcp # Hermes Agent
# atau konfigurasi MCP client lain (Claude Desktop dsb) dengan command "devns-mcp"Инструменты: list_domains, add_domain, remove_domain, check_health, doh_status.
Навык для AI-агентов
Репозиторий включает переносимый навык в skills/devns/SKILL.md (формат agentskills.io / Claude skills). Скопируйте или сделайте симлинк в каталог навыков вашего агента.
Заметки по дизайну (реальные уроки)
Wildcard
*.testотклоняется современными верификаторами — Chrome и curl отклоняют wildcard-сертификат, привязанный напрямую к TLD, даже если SAN валиден по RFC. Поэтому сертификаты создаются по каждому хосту по запросу внутренним CA Caddy.Порт 5353 уже занят mDNSResponder (Bonjour) → мост DoH использует 5335.
/etc/resolver/testзаставляет резолвер зависать (а не быстро падать), когда dnsmasq не работает — это признак активного резолвера, а не баг.
Лицензия
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables comprehensive DNS operations including lookups for various record types, reverse DNS queries, batch processing, and DNS resolution tracing. Supports multiple DNS servers with configurable caching and robust error handling.4212MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with DDEV local development environments by querying databases, managing project states, and executing container commands. It provides comprehensive control over local services with a security-first approach using whitelisted operations.5493GPL 2.0
- FlicenseNot gradedqualityDmaintenanceEnables checking domain availability using WHOIS and DNS resolution, with support for single and batch queries.28
- AlicenseBqualityDmaintenanceEnables domain name checking and related services through a standardized MCP interface.2MIT
Related MCP Connectors
Look up DNS information for any domain to troubleshoot issues and gather insights. Get fast, relia…
DNS lookups, health reports, SSL certs, security scans, GEO scoring, uptime checks
Domain search, registration, DNS, marketplace, and checkout with your AI agent.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/apiep/devns'
If you have feedback or need assistance with the MCP directory API, please join our Discord server