Ignis 自托管 Web 版 Obsidian 部署

本卡片记录如何在 VPS 上通过 Docker Compose 部署 Ignis(Web 版自托管 Obsidian),并无缝接入本地 Wiki 知识库,同时配合 Cloudflare Tunnel 实现安全的零端口暴露外网访问。


一、 部署准备

  • 知识库路径/root/HermesAgent/wiki(即本地 Obsidian 库 / Vault 所在路径)。
  • 外部网络:已创建并运行的 Cloudflare Tunnel 容器所属的全局网络 cf-gateway
  • 安全性原则:不暴露宿主机端口,完全通过 Docker 内部网络进行反代,防范外部扫描。

二、 编写 docker-compose.yml

在服务器创建部署工作目录 ~/ignis/,并编写 docker-compose.yml 配置文件:

version: '3.8'
 
services:
  ignis:
    image: nobbe/ignis:latest
    container_name: ignis
    environment:
      # 必须以 root 运行以确保能正常读取宿主机 /root 目录下的知识库文件
      - PUID=0
      - PGID=0
      - TZ=Asia/Shanghai
    volumes:
      # 核心挂载:将宿主机实际知识库路径映射到容器的 vaults 目录下
      - /root/HermesAgent/wiki:/vaults/wiki
      # 挂载配置与插件缓存数据实现持久化
      - ./data:/app/data
      - obsidian-app:/app/obsidian-app
    restart: unless-stopped
    # 加入全局网关网络,供 Cloudflare Tunnel 穿透访问
    networks:
      - cf-gateway
 
volumes:
  obsidian-app:
 
# 引用外部已存在的全局网络
networks:
  cf-gateway:
    external: true

三、 详细部署步骤

  1. 创建数据及配置持久化目录:
    mkdir -p ~/ignis/data
  2. 将上述 YAML 配置文件写入 ~/ignis/docker-compose.yml
  3. 启动容器运行:
    cd ~/ignis && docker compose up -d
    注:首次启动时,Ignis 会在后台自动从官方源下载 Obsidian 的 headless 运行包,需要 1-2 分钟完成初始化。

四、 Cloudflare Tunnel 穿透配置

由于 Ignis 没有向宿主机暴露任何端口,我们需要在其所在的 cf-gateway 网络中通过 Tunnel 进行内网穿透:

  • 穿透配置(Zero Trust 控制台): 在 Tunnel 的 Public Hostname 页面中添加一个子域名,并设置指向:
    • TypeHTTP
    • URLignis:8080(直接使用容器名及容器内部的 8080 默认端口)

五、 首次登录与配置

  1. 浏览器访问解析好的子域名,进入自托管的 Obsidian 界面。
  2. 在初始化选项中,选择 Open folder as vault(打开文件夹作为库)。
  3. 路径输入框中填写容器内路径: /vaults/wiki
  4. 此时,你的双链知识库卡片将完整加载在浏览器中,支持实时编辑和阅读,且所有改动会自动保存在宿主机目录下,由 Git 脚本自动完成版本控制。

相关链接