AhFei
V2EX  ›  自托管

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

  •  
  •   AhFei · 4 days ago · 532 views

    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)

    1 replies    2026-07-12 21:51:00 +08:00
    bkmi
        1
    bkmi  
       4 days ago via Android
    Obsidian 终于支持 headless 了吗
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   964 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 21:49 · PVG 05:49 · LAX 14:49 · JFK 17:49
    ♥ Do have faith in what you're doing.