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

浏览器运行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

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

用命令行也可以

# 新建文件夹 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为例

volumes:-./obsidian_1.12.7_amd64.deb:/packages/obsidian.deb:roenvironment:-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.techhttp://192.168.0.197:8314Ignis的访问地址

npm中的设置

SSL都勾选了

安装

在群晖上以 Docker 方式安装。

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

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

docker cli 安装

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

# 一键启动dockerrun-d\--name=ignis\--restart=unless-stopped\-p8314: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\-eOBSIDIAN_VERSION=1.12.7\-ePUID=1000\-ePGID=1000\-eOBSIDIAN_PACKAGE=/packages/obsidian.deb\nobbe/ignis:latest

docker-compose 安装

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

services:ignis:image:nobbe/ignis:latestcontainer_name:ignisrestart:unless-stoppedports:-"8314:8080"volumes:-./vaults:/vaults# vault 数据存储-./data:/app/data# 持久化配置-./app:/app/obsidian-app# Obsidian 缓存资源-./obsidian_1.12.7_amd64.deb:/packages/obsidian.deb:roenvironment:-OBSIDIAN_VERSION=1.12.7# 指定 Obsidian 版本-PUID=1000# 用户 ID-PGID=1000# 组 ID-OBSIDIAN_PACKAGE=/packages/obsidian.deb

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

# 将 docker-compose.yml 放入当前目录# 一键启动docker-composeup-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