查看: 9|回复: 0

ignis:让原版 Obsidian 随处可用——浏览器访问,自动同步

[复制链接]

1

主题

0

回帖

3

积分

新手上路

积分
3
发表于 2026-7-12 17:54:10 | 显示全部楼层 |阅读模式
ignis 将原版 Obsidian 带到了浏览器。它不是 VNC 等远程桌面方案,而是真正的 Web 应用,保留了原版的编辑体验,支持绝大多数功能和插件,并能自动同步数据,让你在任何浏览器中无缝继续创作。

指标
描述

适用系统
支持 Docker 的 Linux 系统

走通流程时间
15 分钟



安装 ignis

创建应用目录

mkdir -p ~/myserve/ignis && cd ~/myserve/ignis && mkdir vaults data

创建 docker-compose.yml 文件

vim docker-compose.yml

services:
  ignis:
    image: nobbe/ignis:latest
    container_name: ignis
    ports:
      - "127.0.0.1:44682:8080"
    environment:
      - PUID=1000
      - PGID=1000
    volumes:
      - ./vaults:/vaults
      - ./data:/app/data
      - obsidian-app:/app/obsidian-app
    restart: unless-stopped

volumes:
  obsidian-app:

拉取镜像

docker compose pull

运行容器

docker compose up -d

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

反代 + 访问密码

获取证书

先了解如何获取证书:使用 acme.sh 申请和自动更新证书的完整指南 - 技焉洲

使用 root 用户执行获取证书的命令

sudo -i

注意修改下面的域名

申请证书

acme.sh --issue -d obsidian.vfly2.com --webroot /var/www/html

安装证书,并设置在自动更新证书后,重新加载 Nginx

acme.sh --install-cert -d obsidian.vfly2.com \
--key-file       /etc/ssl/private/obsidian.vfly2.com.key \
--fullchain-file /etc/ssl/certs/obsidian.vfly2.com.cer \
--reloadcmd "systemctl reload nginx"

创建访问密码

创建密码文件(如果提示缺少 htpasswd ,执行 sudo apt install apache2-utils)

需要修改命令中的 <username> 为你的用户名

sudo htpasswd -c /etc/nginx/.htpasswd <username>

Nginx 配置

创建 Nginx 配置文件(只需修改域名)

sudo vim /etc/nginx/sites-available/ignis

server {
    listen 80;
    server_name obsidian.vfly2.com;

    location /.well-known/acme-challenge/ {
        root /var/www/html;
    }

    location / {
        return 301 https://$server_name$request_uri;
    }
}

server {
    listen 443 ssl;
    server_name obsidian.vfly2.com;

    ssl_certificate /etc/ssl/certs/obsidian.vfly2.com.cer;
    ssl_certificate_key /etc/ssl/private/obsidian.vfly2.com.key;

    client_max_body_size 10m;
    proxy_buffering off;
    proxy_request_buffering off;

    location /.well-known/acme-challenge/ {
      root /var/www/html;
    }

    location / {
        auth_basic "Restricted Content";
        auth_basic_user_file /etc/nginx/.htpasswd;

        proxy_pass http://localhost:44682;

        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_connect_timeout 300;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location /favicon.png {
        proxy_pass http://localhost:44682;

        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

启用配置

sudo ln -s /etc/nginx/sites-available/ignis /etc/nginx/sites-enabled/ignis

检查配置并重启生效

sudo nginx -t && sudo systemctl reload nginx

使用 ignis

在网页上可以创建仓库,每一个仓库就是 ~/myserve/ignis/vaults 下的一个目录,和桌面版是一样的。

如果你想把现有的仓库在浏览器里打开,只需要复制到 vaults 目录下。

以下是手机浏览器打开的样子,极简美观。不过目前,手机浏览器无法切换仓库,我的办法是先以桌面版打开,切换仓库后,再改为手机版。



ignis 与桌面 Obsidian 互相同步

ignis 可以看作是 web 版的 Obsidian ,由于都对应着一个服务端,所以在任意浏览器打开都能看到相同的内容,编辑后会自动同步到每个浏览器。

可是,如果你同样在使用桌面端的原版 Obsidian ,想要 web 版的和桌面版的实现同步,可以借助第三方的文件同步功能,比如坚果云、Nextcloud 等网盘。

下面介绍 Nextcloud 的同步方案,使用其他应用也可以,理念是一样的,就是在服务端安装网盘的客户端,并定期进行同步即可。

Debian/Ubuntu 上安装 nextcloudcmd

sudo apt install nextcloud-desktop-cmd

第一次先手动执行一次同步(填入用户名、密码、Nextcloud 上的路径、本地系统的路径、网址)

nextcloudcmd -u <username> -p <password> --silent --path /Notes $HOME/myserve/ignis/vaults https://nextcloud.vfly2.com/

之后可以借助 crontab 定时同步:

crontab -e

例如每 3 分钟同步一次:

*/3 * * * * nextcloudcmd -u <username> -p <password> --non-interactive --silent --path /Notes /home/<username>/myserve/ignis/vaults https://nextcloud.vfly2.com/

原文链接: https://yanh.tech/2026/07/ignis-self-hosted-web-obsidian/

版权声明:本博客所有文章除特別声明外,均为 AhFei 原创,采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 技焉洲 (yanh.tech)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖
返回顶部