剪藏#剪藏#白数

手里有域名的看过来!NAS上安装 Domain Locker 全能型域名管理与监控系统

2025 年 12 月 30 日1 分钟
分享Twitter / XTelegram微博

朋友们,今天咱们来聊聊域名的事情, 如果你手里只有一两个域名,可能永远理解不了“域名管理焦虑”这件事。 但只要你开始折腾 NAS、自建服务、博客、反代、CDN,域名一多,问题就会接踵而来。这个域名到底在哪个注册商?SSL 证书什么时候过期?这个子域名之前是不是指向过别的 IP?DNS 是我改的,还是当时测试忘了还原?最近在整理自己 NAS 上跑的基础服务时,发现了 Domain Locker 这个开源项目,说实话,它把上面这些问题一次性捋顺了。

Notion image

01Domain Locker 是干什么的?

Notion image

一句话总结: 把你所有域名相关的信息,集中到一个可长期运行的控制台里。你只需要把域名加进去,后面的事它会帮你自动完成:

  • 分析域名注册与到期信息

  • 拉取 DNS、子域名、证书、IP、服务商等数据

  • 持续监控状态变化,并在关键节点提醒你

它不是“查一眼就走”的工具,而是更偏向 域名资产管理系统 ,适合长期跑在 NAS 或服务器上。

Notion image

Notion image

02这些功能,是真正戳中痛点的

Notion image

到期与变更提醒,不再靠记忆力域名到期、证书快失效、解析发生变化,这些都可以提前提醒你。 你可以按自己的习惯设置提前多久通知,避免“临近到期才发现”的被动局面。对域名多、注册商分散的人来说,这一点非常关键。子域名与 DNS 信息自动整理Domain Locker 会自动扫描并整理你添加的域名下的子域名和 DNS 记录。 当你做安全审计、服务迁移或者排查访问异常时,不需要再手动翻配置。所有信息都在一个页面里,清清楚楚。历史记录,解决“我到底改没改过”的问题这是我个人很喜欢的一点。DNS 改过什么证书什么时候换的指向的 IP 是否发生过变化这些都会留下记录。 当你哪天遇到问题,不再是靠猜,而是能直接回看历史。分类、标签和关联资源域名可以按用途打标签,比如:

  • 博客

  • 项目

  • 测试

  • 内网服务

同时还能关联:

  • SSL 证书

  • IP 地址

  • 主机和服务商

哪怕你有几十上百个域名,也能很快定位到目标。

Notion image

03对 NAS / 自托管玩家非常友好

Notion image

如果你和我一样,优先考虑 能不能本地部署、数据在不在自己手里 ,那 Domain Locker 是加分的。官方支持 Docker 部署项目本身就是围绕容器设计的,官方直接提供 Docker 方案,适合部署在:

  • 群晖 NAS

  • 飞牛 NAS

  • 普通 Linux 服务器

数据库支持 PostgreSQL ,这一点对 NAS 用户来说非常友好,基本是标配。隐私和可控性这块做得很克制

  • 不强制云依赖

  • 不默认埋追踪

  • 本地部署就是完整功能

你只是在管理自己的域名资产,而不是“顺便把数据交出去”。

Notion image

04细节设计,明显是给技术用户准备的

Notion image

用了一段时间,能明显感觉到这是一个 工程思维导向 的项目:

  • 多主题界面,深色模式下长时间看不累

  • 内置 API,可和其他自建服务联动

  • 自带诊断页面,排错不靠猜

  • 项目文档清晰,社区活跃,更新节奏稳定

它不是那种“看起来花哨,用起来糟心”的项目。

Notion image

05哪些人特别适合用它?

Notion image

如果你符合下面任意一条,都可以考虑试试:

  1. 手里有 10 个以上域名

  2. 域名分散在多个注册商

  3. NAS 上已经跑了不少自建服务

  4. 对数据隐私和可控性有要求

  5. 想把域名管理这件事系统化、长期化

Notion image

06部署教程

Notion image

演示在飞牛NAS上部署,其他系统请安装好Docker和docker compose

  • 打开飞牛NAS的系统设置--SSH--SSH功能--启用

  • 使用终端软件通过SSH连接到NAS,并切换到root状态下。

  • 演示在飞牛NAS上创建一个docker文件夹,作为部署所有项目的总文件夹(其他NAS系统可自行创建一个docker文件夹)

  • 打开飞牛的文件管理,点击docker文件夹--右键详细信息--常规--位置,复制该文件夹原始路径。

  • 在终端软件内进入该文件夹位置

  • # 将 /vol1/1000/docker 换成你实际的文件夹路径cd /vol1/1000/docker

  • 创建并进入项目文件夹

  • mkdir domain-locker && cd domain-locker

  • 创建项目子文件夹

  • mkdir dbmkdir postgres/data

  • 在线拉取所需的数据库结构文件(你也可以手动下载了放入到db文件夹内,可在文末选择高速网盘下载。)wget https://raw.githubusercontent.com/Lissy93/domain-locker/main/db/schema.sql -O db/schema.sql

  • 编辑 docker-compose.yml 文件vi docker-compose.yml

  • 按字母 i 键进入编辑模式,复制并粘贴下面的模板代码,按 Esc 键退出编辑模式,输入 :wq 保存并退出。

JAVASCRIPT
services:
  domain-locker:
    image: lissy93/domain-locker:latest
    container_name: domain-locker
    restart: unless-stopped
    # 加载 .env 环境变量
    env_file:
      - .env
    # 官方默认 Web 端口是 3000
    # NAS 上避免端口冲突就通过 3010 访问
    ports:
      - "3010:3000"
    # 确保数据库先启动
    depends_on:
      - postgres
    networks:
      - domainlocker-net
  postgres:
    image: postgres:15
    container_name: domain-locker-postgres
    restart: unless-stopped
    # 初始化数据库账号和库
    environment:
      POSTGRES_USER: domainlocker
      POSTGRES_PASSWORD: domainlocker_pass
      POSTGRES_DB: domainlocker
      TZ: Asia/Shanghai
    # 数据持久化
    volumes:
      - ./postgres/data:/var/lib/postgresql/data
    # 映射端口仅用于调试
    # 避开 NAS 本地 5432 端口冲突
    ports:
      - "55432:5432"
    networks:
      - domainlocker-net
networks:
  domainlocker-net:
    driver: bridge
  • 编辑 .env 文件vi .env

  • 按字母 i 键进入编辑模式,复制并粘贴下面的模板代码,按 Esc 键退出编辑模式,输入 :wq 保存并退出。

JAVASCRIPT
########################################
# Domain Locker 运行环境
########################################
# 环境类型
# 官方支持:selfHosted / dev / demo
DL_ENV_TYPE=selfHosted
########################################
# 访问地址(用于前端 / API / 回调)
########################################
# 对外访问地址
BASE_URL=http://192.168.2.200:3010    # 将IP地址换成你的NAS地址
DL_BASE_URL=http://192.168.2.200:3010    # 将IP地址换成你的NAS地址
########################################
# PostgreSQL 数据库配置
# 只要存在这些变量,Domain Locker 就会自动启用 Postgres
########################################
# 数据库主机名(Docker 内部使用服务名)
DL_PG_HOST=postgres
# 数据库端口(容器内部固定 5432
DL_PG_PORT=5432
# 数据库用户名
DL_PG_USER=domainlocker
# 数据库密码
DL_PG_PASSWORD=domainlocker_pass
# 数据库名称
DL_PG_NAME=domainlocker
########################################
# 其他基础配置
########################################
# 时区(日志 / 定时任务)
TZ=Asia/Shanghai
  • 执行命令拉取docker镜像
JAVASCRIPT
docker compose pull
  • 执行命令启动数据库容器
JAVASCRIPT
docker compose up -d postgres
  • 初始化数据库结构
JAVASCRIPT
docker exec -i domain-locker-postgres \
  psql -U domainlocker -d domainlocker < db/schema.sql
  • 执行之后出现“ role "postgres" does not exist ”,属于官方 schema 的已知问题,可忽略。

  • 启动项目容器

JAVASCRIPT
docker compose up -d
  • 查看项目容器的实时日志,按 Ctrl+C 中断查看。

  • docker compose logs -f

访问Domain Locker

  1. 打开浏览器,以你NAS的IP地址+设置的端口进行访问 以本机为例:http:// 192.168.2.200: 3010

  2. 点击开始(默认英文,无中文,需要自行打开浏览器翻译)

  3. 输入你想监控的域名之后点击下一步(这里注意只点一下即可,后台需要时间检索信息)

  4. 系统会在后台查询WHOIS信息,如果失败了则多次尝试/换个好的网络/手动填写,然后点击下一步。

  5. 这里根据你的需求进行启用,然后下拉到底部,点击下一步。

  6. 然后点击保存

  7. 现在就添加完成了。

  8. 点击回到首页之后就可以看到你的域名列表,你也可以继续按照相同的步骤添加你的更多域名。

Notion image

07写在最后

Notion image

域名是很多服务的“地基”,但管理却常常被忽视。 Domain Locker 做的事情并不花哨,但足够踏实。如果你已经在 NAS 上部署了一堆服务,不妨也给域名管理留一个位置。 把这些核心资产握在自己手里,心里会踏实很多。

下篇干货内容你还想看什么,你来说我来写。

原文地址: https://mp.weixin.qq.com/s?__biz=MzI1NDU5ODA0OQ==&mid=2247484827&idx=1&sn=fac8fdc53bcfb002bedcb51a9f1f45d6&chksm=e814826ed48d8aed48c64afe7370fc838aafa5c7917069606eaaab789271e88a0b70aada4e31&mpshare=1&scene=1&srcid=12303JlUqnfKb53mNLVSGY34&sharer_shareinfo=51eeca5539c048a9265259efe4de370a&sharer_shareinfo_first=51eeca5539c048a9265259efe4de370a#rd

相关文章