浏览器运行Obsidian自托管平台Ignis

简介

什么是 Ignis ?

Ignis 是一个开源的自托管 Web 应用,可以在浏览器中运行 Obsidian 笔记软件,无需远程桌面,提供接近原生的使用体验。它通过兼容 Obsidian 使用的 Electron API,让 Obsidian 在标准浏览器中运行,同时将 vault 数据保存在服务器上。

主要特点

  • 浏览器原生运行:不同于 VNC 远程桌面方案,Ignis 直接在浏览器中提供 Obsidian 的原生体验,支持所有核心编辑器功能
  • 多 Vault 支持:可以创建、打开、切换、重命名和删除不同的 vault,每个 vault 可以在不同的浏览器标签页中打开
  • 文件上传下载:支持从本地机器上传文件,以及下载单个文件或整个文件夹为 ZIP 压缩包
  • 实时同步:通过 WebSocket 实现多个浏览器标签页之间的实时文件同步,编辑内容在一秒内传播
  • 工作区管理:支持通过 '?workspace=' URL 参数在不同浏览器标签页中打开保存的工作区
  • 服务器端同步:内置 Obsidian Headless 插件,无需保持浏览器标签页打开即可进行持续同步
  • 插件兼容:大多数基于 Obsidian 插件 API 的社区插件都可以正常工作
  • 开源免费:基于 GNU Affero General Public License v3.0 协议开源,可免费使用和修改

应用场景

  • 远程办公:在任何设备的浏览器中访问自己的 Obsidian 笔记库,实现随时随地的笔记管理
  • 多设备同步:通过 Obsidian Sync 或内置的 Headless 同步功能,实现多个设备之间的笔记同步
  • 团队协作:将 Obsidian 作为团队知识库,多人可以同时访问和编辑共享的 vault
  • 开发者测试:开发人员可以快速搭建 Obsidian 测试环境,用于插件开发和调试
  • 移动设备访问:在手机或平板电脑的浏览器中访问 Obsidian,无需安装原生应用
  • 自托管用户:对于注重数据隐私的用户,可以将笔记数据完全控制在自己的服务器上

Ignis 是一个功能强大的自托管 Obsidian Web 平台,为用户提供了在浏览器中使用 Obsidian 的便捷方式。

准备

下载文件

docker 文件夹中,创建一个新文件夹 ignis,并在其中建三个子文件夹 appdatavaults

挂载路径 描述
/vaults Vault 存储目录,每个子目录对应一个独立的 Vault
/data 插件状态与同步状态数据
/app Obsidian 应用缓存资源(建议持久化以避免重复下载)

用命令行也可以

1
2
3
4
5
# 新建文件夹 ignis 和 子目录
mkdir -p /volume1/docker/ignis/{app,data,vaults}

# 进入 ignis 目录
cd /volume1/docker/ignis

首次启动时,容器会从官方源码下载 Obsidian,并安装 Obsidian Headless CLI。这需要一两分钟。

如果容器第一次运行时无法访问 GitHub,可以先从网页 https://github.com/obsidianmd/obsidian-releases/releases 下载 obsidian_1.12.7_amd64.deb

然后上传放入到 ignis 目录中

需要比正常的安装多两行内容,以 docker-compose.yml 为例

1
2
3
4
volumes:
- ./obsidian_1.12.7_amd64.deb:/packages/obsidian.deb:ro
environment:
- OBSIDIAN_PACKAGE=/packages/obsidian.deb

其作用就是:将宿主机当前目录下的文件 obsidian_1.12.7_amd64.deb 只读挂载到容器内部的路径 /packages/obsidian.deb,并告诉容器里的启动脚本,Obsidian 安装包就在 /packages/obsidian.deb,别去网上下载了,直接用这个

反向代理

Ignis 必须使用 https 协议访问,否则页面上会显示红色的警告

HTTPS 要求:浏览器的加密和剪贴板 API 需要安全上下文才能正常工作。在非 localhostHTTP 环境下,图谱视图、大纲、剪贴板操作和同步功能会受到限制。建议使用 TLS 反向代理或 tailscale serve 来启用 HTTPS

假设实际访问地址为: https://ob.laosu.tech

域名 局域网地址 备注
ob.laosu.tech http://192.168.0.197:8314 Ignis 的访问地址

npm 中的设置

SSL 都勾选了

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 ignis,选择第二个 nobbe/ignis,版本选择 latest

本文写作时,latest 版本对应为 0.8.7

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 一键启动
docker run -d \
--name=ignis \
--restart=unless-stopped \
-p 8314:8080 \
-v $(pwd)/vaults:/vaults \
-v $(pwd)/data:/app/data \
-v $(pwd)/app:/app/obsidian-app \
-v $(pwd)/obsidian_1.12.7_amd64.deb:/packages/obsidian.deb:ro \
-e OBSIDIAN_VERSION=1.12.7 \
-e PUID=1000 \
-e PGID=1000 \
-e OBSIDIAN_PACKAGE=/packages/obsidian.deb \
nobbe/ignis:latest

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
services:
ignis:
image: nobbe/ignis:latest
container_name: ignis
restart: unless-stopped
ports:
- "8314:8080"
volumes:
- ./vaults:/vaults # vault 数据存储
- ./data:/app/data # 持久化配置
- ./app:/app/obsidian-app # Obsidian 缓存资源
- ./obsidian_1.12.7_amd64.deb:/packages/obsidian.deb:ro
environment:
- OBSIDIAN_VERSION=1.12.7 # 指定 Obsidian 版本
- PUID=1000 # 用户 ID
- PGID=1000 # 组 ID
- OBSIDIAN_PACKAGE=/packages/obsidian.deb

然后通过 SSH 登录到您的群晖,执行下面的命令:

1
2
3
4
# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中访问 https://ob.laosu.tech 即可进入 Web 界面

重要提示Ignis 没有内置身份验证,且默认提供 HTTP 服务。如果暴露到互联网,建议在前面添加身份验证层(如反向代理 Basic AuthSSO 代理或 VPN)。

首次使用需要创建或导入 vault

开始使用 Obsidian

写下了第一条笔记

注意事项

  1. 身份验证Ignis 没有内置身份验证,如果暴露到公网,必须在前面添加身份验证层(如反向代理 Basic AuthAutheliaOAuth2 ProxyVPN
  2. HTTPS 必需:浏览器的加密和剪贴板 API 需要安全上下文,在非 localhostHTTP 环境下功能受限,建议使用 TLS 反向代理
  3. 数据安全Vault 数据以普通文件形式存储在 /vaults 目录,建议定期备份
  4. 版本更新Obsidian 版本更新可能会影响兼容性,建议等待 Ignis 发布适配新版本后再更新
  5. 插件兼容:并非所有社区插件都支持,特别是需要 Node 原生模块或 child_process 的插件
  6. 离线安装:如果容器无法访问外网,可以手动下载 Obsidian.deb 文件并挂载到容器中
  7. safeStoragesafeStorage 功能目前为直通设计,通过此功能存储的数据会以明文形式保存在磁盘上

参考文档

Nystik-gh/ignis: Run Obsidian as a self-hosted web app. Not remote desktop, an actual web app.
地址:https://github.com/Nystik-gh/ignis

nobbe/ignis - Docker Hub
地址:https://hub.docker.com/r/nobbe/ignis

Ignis - Self-hosted Obsidian Web App
地址:https://ignis-demo.thiefling.com