V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
zewenzhang
V2EX  ›  Node.js

DnsGit——使用Git管理域名

  •  
  •   zewenzhang · May 20, 2013 · 6420 views
    This topic created in 4738 days ago, the information mentioned may be changed or developed.
    网址:http://dnsgit.com

    你还在用网站管理域名吗?推荐一种更新潮的方式,使用命令行就可以搞定一切,支持各种回滚和版本控制,一键将域名还原到历史状态有木有!


    特点:
    1. 用命令行就可以搞定域名管理。
    2. 任意回滚域名记录。
    3. 后端解析由DNSPod提供,稳定和安全有保障。
    4. 用github仓库生成器可以一键将DNSPod域名记录生成github仓库,方便用户转入。
    5. 网站同时支持http和https

    工作原理
    1. 后端解析采用DNSPod。
    2. Git仓库选用GitHub。
    3. 在GitHub仓库上加hook,所以每次推代码上去,DnsGit的都会得到通知,分析文件并调用DNSPod接口。

    使用方法:
    1. 确保你有DNSPod帐号,且域名已经转入DNSPod(也可以随便找个不存在的域名做测试)
    2. 用DNSPod OAuth登录DnsGit
    3. 使用“Create GitHub Repo”功能自动生成仓库(这里需要GitHub OAuth)
    4. 按照文档中的格式,修改文件,推代码
    5. 解析生效

    语法:
    每个域名是一个文件,文件名就是域名
    每一行是一条记录例如:A(@, 1.1.1.1, 默认, 600)

    -- @type[required] = record type(A, CNAME, MX, NS ...)
    -- @name[required] = relative name
    -- @value[required] = record value( iPad ress, domain ...)
    -- @ttl[optional] = TTL (default: user default TTL)
    -- @mx[optional] = MX Priority (default: 5)
    type(name, value, ttl, mx)

    建议只填写 type(name, value),TTL采用默认值,否则你要确保TTL不会超出DNSPod的限制(不然添加不上哦)。

    下一版本:
    1. 支持微信和短信通知
    2. 支持历史记录在网页的查看

    技术选型:
    后端:Node.js + express
    前端:requirejs + backbone
    28 replies    1970-01-01 08:00:00 +08:00
    honk
        1
    honk  
       May 20, 2013
    不錯!

    " iPad ress" 我看了半天才明白
    wickydong
        2
    wickydong  
       May 20, 2013
    顶,感受了一下,非常方便,可以回滚,再也不怕误删记录了,擦
    Zhongwei
        3
    Zhongwei  
       May 20, 2013
    第一次使用真的需要勇气 --- DnsGit 首位小白鼠用户
    wjeasys
        4
    wjeasys  
       May 20, 2013
    进入这个帖子的css让人看起来很奇葩
    zewenzhang
        5
    zewenzhang  
    OP
       May 20, 2013
    @wjeasys 样式确实没用心做,直接bootstrap拿过来的,前端嘛最开森的就是改版了,会改版的。
    zewenzhang
        6
    zewenzhang  
    OP
       May 20, 2013
    @Zhongwei 您那是一个月前的事情了
    zewenzhang
        7
    zewenzhang  
    OP
       May 20, 2013
    @zewenzhang 哎。。,你说的是帖子,被误伤了
    sbilly
        8
    sbilly  
       May 20, 2013
    想法的确不错~ :)
    yangzh
        9
    yangzh  
       May 20, 2013
    这样子不就把自己的所有 dns 配置暴露出来了吗?
    yangzh
        10
    yangzh  
       May 20, 2013
    @honk iPad ress 什么意思?

    另外建议 “默认”改为 “default” 或者两个都行。当然为了和 dnspod 对应也可以不改。
    hit9
        11
    hit9  
       May 20, 2013
    想法很有意思!
    Sunyanzi
        12
    Sunyanzi  
       May 20, 2013
    @zewenzhang 我只是想说 ... 难道不是 iPad dress 么 ..?
    jiangle
        13
    jiangle  
       May 20, 2013
    不错的样子,支持了。
    0racleTink
        14
    0racleTink  
       May 20, 2013
    好高级
    chilaoqi
        15
    chilaoqi  
       May 20, 2013
    Good idea!
    nice work!
    47jm9ozp
        16
    47jm9ozp  
       May 20, 2013
    不错的样子

    不过看到 ”3. 后端解析由DNSPod提供,稳定和安全有保障。“ 就不敢用了。。dnspod前段时间抽风好多次
    caomu
        17
    caomu  
       May 20, 2013 via Android   ❤️ 1
    @yangzh 本来也能dig出来吧。
    Frannk
        18
    Frannk  
       May 20, 2013
    很不错
    zewenzhang
        19
    zewenzhang  
    OP
       May 20, 2013
    @Sunyanzi 不知道什么是 iPad dress,没google到,请教一下
    zewenzhang
        20
    zewenzhang  
    OP
       May 20, 2013   ❤️ 1
    @yangzh dns配置本来就是公开的,@caomu说的对,可以dig出来。
    zewenzhang
        21
    zewenzhang  
    OP
       May 20, 2013
    @yangzh 目前不考虑提供英文线路的解决方案,因为DNSPod经常增加线路,字典难以维护。常用的就是“默认”线路,省略就好了。
    shierji
        22
    shierji  
       May 20, 2013
    感觉……好蛋疼的样子。。。。
    sumanx
        23
    sumanx  
       May 20, 2013
    @zewenzhang iPad dress可拆为IP address或 iPad dress,这帮人在耍冷呢。
    vietor
        24
    vietor  
       May 21, 2013
    @shierji 我看着也挺蛋疼的。

    使用Git作为前端的DNS更新方式,算是一种不错的方式,对DNS集群还是非常有意义的,只是和其他前端没本质区别,倒是省去了使用WEB前端的罗嗦,可能楼主对WEB不太感冒,喜欢无界面的东东。
    honk
        25
    honk  
       May 21, 2013
    @yangzh LZ 將 IP adress 輸成了 iPad dress
    zewenzhang
        26
    zewenzhang  
    OP
       May 27, 2013
    @honk 晕,原来是由我引起的血案!
    chuangbo
        27
    chuangbo  
       May 31, 2013 via iPad
    好棒~管理文本看起来就是比在页面上点鼠标感觉靠谱,还能记录所有历史。
    就是编写的格式我觉得最好还是使用一个众所周知的规范,比如 ini yaml json 甚至 python 脚本,因为我经常会因为不知道转义规则而困惑。我记得还以前有个叫 luadns 的东西。
    zewenzhang
        28
    zewenzhang  
    OP
       Jun 8, 2013
    @chuangbo 谢谢chuangbo的支持,以后会支持zone文件,luadns现在是我的竞争对手,我在设计语法时参考了lua的语法
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1256 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 62ms · UTC 17:21 · PVG 01:21 · LAX 10:21 · JFK 13:21
    ♥ Do have faith in what you're doing.