Ignis:把 Obsidian 变成 Web 应用跑在 NAS 上

Obsidian 用户有一个共同的痛点:笔记都在本地,换个设备就得装客户端、配同步。官方 Sync 要 $5/月,VNC 远程桌面又卡又难用。有没有办法把 Obsidian 像网页应用一样部署在 NAS 上,随时用浏览器打开?

答案来了——Ignis。GitHub 上 600+ 星的新项目,它不是远程桌面,而是把 Obsidian 原生核心搬进了浏览器。Docker 一行命令部署,数据全在自己手里。

Obsidian 官方 Logo

Ignis 是什么?

Ignis 是一个兼容性垫片(compatibility shim),它把 Obsidian 依赖的 Electron API 替换成了浏览器原生 API。结果就是:Obsidian 不再需要一个桌面窗口,而是在浏览器里以接近原生的体验运行。

和传统 VNC 方案的本质区别:

方案原理体验
VNC/RDP 远程桌面传输整个桌面画面(视频流)卡顿、延迟高、吃带宽
Ignis浏览器里直接加载 Obsidian JS 核心流畅、低延迟、只传数据

Ignis 的 Docker 容器在首次启动时会从 Obsidian 官方源下载 Obsidian 桌面版,然后用自己的兼容层把它”翻译”成浏览器能跑的 Web 应用。你的 vault 文件直接存在服务器上,和其他客户端的本地 vault 是同一份数据。

项目信息:

  • GitHub: Nystik-gh/ignis,601 Star,30 Fork
  • 许可证: AGPL-3.0
  • 最新版: v0.8.7 “Karm”(2026-06-19),对应 Obsidian 1.12.7
  • 语言: JavaScript (87.8%) + Svelte (8.8%)
  • Docker 镜像: nobbe/ignis:latest
Ignis 在浏览器中运行 Obsidian 的界面截图

为什么值得折腾?

1. 真正的浏览器原生体验,不是远程桌面

Ignis 不传输画面,不做视频流。你在浏览器里用的是经过适配的 Obsidian 核心 JS 代码,操作响应速度和本地客户端几乎一致。不需要 RDP、TeamViewer 或者 KasmVNC 那套东西。

2. 数据 100% 在你手里

vault 文件直接存储在服务器的文件系统上,和 Obsidian 客户端的本地 vault 完全兼容。你可以在 NAS 上用 Ignis 编辑,回到电脑上用 Obsidian 桌面版继续——操作的是同一份 .md 文件。

3. 绝大多数社区插件能用

基于 Obsidian 插件 API 的社区插件大多可以直接使用。Dataview、Templater、Calendar 这些热门插件在 Ignis 里都能跑。不过依赖 Node 原生模块(如 child_process)的插件不行,因为浏览器里没有 Node 运行时。

4. 多 Vault + 多标签 + 实时同步

Ignis 在 Obsidian 原版基础上还加了几个实用功能:

  • 多 vault 管理(创建、切换、重命名、删除)
  • 同一 vault 可在多个浏览器标签打开,WebSocket 实时同步(1 秒内)
  • 文件拖拽上传、右键下载
  • 服务器端同步(通过 Obsidian Headless 插件,无需浏览器标签页保持打开)

Docker 部署指南

Ignis 支持 Docker Compose 一键部署,官方镜像已发布到 Docker Hub。

基础 docker-compose.yml:

services:
  ignis:
    image: nobbe/ignis:latest
    ports:
      - "8080:8080"
    environment:
      - OBSIDIAN_VERSION=1.12.7
      - PUID=1000
      - PGID=1000
    volumes:
      - ./vaults:/vaults       # vault 存储目录
      - ./data:/app/data       # Ignis 配置和插件数据
      - obsidian-app:/app/obsidian-app  # Obsidian 缓存
    restart: unless-stopped

volumes:
  obsidian-app:

执行 docker compose up -d,首次启动容器会自动下载 Obsidian 1.12.7,需要等一两分钟。

迁移已有 vault:直接把现有的 Obsidian vault 目录放到 /vaults 下就行。每个子目录就是一个独立的 vault,Ignis 会自动识别。

有几个坑要注意

⚠️ 必须用 HTTPS

这是 Ignis 最大的坑——在非 localhost 的纯 HTTP 下,浏览器的 crypto 和 clipboard API 会被禁用,导致:

  • 图谱视图(Graph View)无法使用
  • 大纲(Outline)失效
  • Obsidian Sync 无法连接
  • 某些剪贴板操作不正常

三个解决方案:

  1. 反向代理加 TLS(推荐):用 Caddy/Nginx/Traefik 套一层 HTTPS
  2. Tailscale Serve:自动提供 HTTPS,无需证书管理
  3. 浏览器标记为安全源:Chrome 中访问 chrome://flags 手动添加你的 Ignis 地址(每台设备都要配)

⚠️ 没有内置认证

Ignis 没有内置认证功能。如果你暴露到公网,务必在反向代理层加认证:Nginx Basic Auth、Authelia/Authentik SSO、或者 Tailscale/WireGuard VPN。不要裸跑 Ignis——任何人拿到 URL 就能读写你的 vault。

⚠️ safeStorage 加密不可用

isEncryptionAvailable() 返回 false,依赖 safeStorage 的插件会以明文存储数据。服务器端加密方案计划中但尚未实现。

⚠️ 单人项目

Ignis 由 Nystik-gh 一个人独立开发维护。虽然代码质量不错(192 次提交、结构清晰),但 Bus Factor 摆在那。

Ignis 项目 Logo

实际体验

好的方面:

  • 启动速度很快,比 VNC 方案流畅得多。编辑 Markdown 几乎没有可感知的延迟
  • 主题和 CSS 片段完美继承桌面端的配置
  • 多标签功能很实用——可以在不同标签打开不同 vault
  • Dataview 查询、Templater 模板都能正常工作

不够好的方面:

  • 没有 HTTPS 时会有黄色警告条,虽然不影响核心编辑但有点碍眼
  • 同步文件选择对话框有临时兼容问题:Importer 插件在文件选择时会要求选两次
  • 插件兼容性在持续完善中,Node 原生模块插件不行

飞牛论坛用户实测经验:

飞牛社区有用户分享了完整的本地编译和固化流程。如果 Docker Hub 拉镜像太慢,可以下载源码本地编译,完成后 docker commit 固化为本地镜像(约 330MB)。编译时注意用国内镜像源(docker.m.daocloud.io)拉取 node:22-slim 基础镜像;容器内部监听端口是 8080 不是 3000,映射时别搞错。

和官方 Obsidian Sync 怎么选?

Obsidian SyncIgnis 自托管
费用$5/月免费(自己的服务器)
访问方式客户端 + 移动端 App任何浏览器
数据控制端到端加密,存 Obsidian 服务器数据完全在你自己手里
插件支持全部大部分(Node 原生模块的除外)
稳定性官方维护单人开源项目
多 Vault支持支持(且可同时打开多个标签)

Ignis 不是替代 Obsidian Sync,而是给浏览器访问多了一种选择。如果你对隐私极度敏感、想把数据完全放在自己手里,或者已经有 NAS/服务器在跑 7×24,Ignis 是个很棒的补充方案。

总结

Ignis 解决了 Obsidian 用户的一个真实痛点:不装客户端、不靠远程桌面、在任何浏览器里打开自己的知识库。601 个 star 说明需求确实存在,技术方案也够聪明——用 Electron API 兼容层而不是 VNC 视频流。

适合什么人?

  • 有 NAS 或 VPS、习惯自托管的技术用户
  • 想在公司电脑(不能装软件)上访问个人 Obsidian 的用户
  • 对 Obsidian Sync 收费或数据隐私有顾虑的人

不适合什么人?

  • 不熟悉 Docker/反向代理的新手
  • 重度依赖 Node 原生模块插件的用户
  • 需要移动端体验的(Ignis 目前只是 Web 版,移动端 UI 在窄屏下会自动切换但体验不如官方 App)

当前 v0.8.7 已经可用,虽然离”完美”还有距离,但作为 Obsidian 多端访问的补充方案,值得一试。如果你已经在跑 Docker,花 5 分钟搭一个,不亏。

GitHub: github.com/Nystik-gh/ignis
Demo: ignis-demo.thiefling.com
飞牛论坛实测: club.fnnas.com/forum.php?mod=viewthread&tid=66308

发表评论