静看光阴荏苒
不管不顾不问不说也不念

Ignis:在浏览器中运行Obsidian

Ignis介绍:

Ignis通过Obsidian官方的 Electron API 实现,使Obsidian能够在标准浏览器中运行,同时将您的保险库保留在服务器上。Obsidian本身不包含在本项目中,也不随本项目一起分发,Docker容器会在首次运行时直接从其官方仓库下载Obsidian。

虽然Obsidian的本地优先策略对大多数用户来说效果不错,但如果用户想远程访问自己的Obsidian却只能通过基于VNC的解决方案来实现,用户体验不佳。Ignis为希望通过浏览器以接近原生方式访问Obsidian的用户提供了一种替代方案。

请注意,Ignis不是远程桌面,不是类似VNC这样的东西,它是一个真正的Web APP。且Ignis只能工作在HTTPS下,为此你必须配置反向代理。

Ignis在Obsidian的基础功能上还增加了一些功能,比较实用的有:

保险库(Vaults)

  • 为Obsidian的多保险库支持定制的用户界面,允许创建、打开、切换、重命名和删除。
  • 不同的保险库可以在不同的浏览器标签页中加载。

文件(Files)

  • 通过功能区图标从本地计算机上传文件,右键单击文件夹->上传文件,或将文件拖放到用户界面中。
  • 通过右键单击任何笔记->下载,或通过右键单击任何文件夹->下载为ZIP来下载文件和文件夹。

服务器端同步

  • Obsidian Headless 以服务器端插件的形式实现,无需活动浏览器标签页即可执行持续同步。

安装NGINX、CertBot、Docker:

apt update
apt install curl nginx python3-certbot-nginx apache2-utils
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

新建compose文件:

mkdir /opt/ignis && cd /opt/ignis && nano docker-compose.yml

写入如下内容:

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

volumes:
  obsidian-app:

离线/受限网络安装,例如你的机子无法通过Github下载Obsidian安装包,可以事先准备好deb软件包:

wget https://github.com/obsidianmd/obsidian-releases/releases/download/v1.12.7/obsidian_1.12.7_amd64.deb

修改compose文件使用如下配置:

services:
  ignis:
    image: nobbe/ignis:latest
    ports:
      - "127.0.0.1:18080:8080"
    environment:
      - OBSIDIAN_VERSION=1.12.7
      - OBSIDIAN_PACKAGE=/packages/obsidian.deb
      - PUID=1000
      - PGID=1000
    volumes:
      - ./obsidian_1.12.7_amd64.deb:/packages/obsidian.deb:ro
      - ./vaults:/vaults
      - ./data:/app/data
      - obsidian-app:/app/obsidian-app
    restart: unless-stopped

volumes:
  obsidian-app:

启动:

docker compose up -d

1.全部可配置的环境变量,见Ignis官方文档

2.Ignis目前没有原生身份验证能力,如果你将其暴露在公网运行,务必配置一个身份验证,你可以使用OIDC / SSO或者Basic Auth。

这里我配置一个NGINX Basic Auth,创建htpasswd文件:

htpasswd -c /etc/nginx/.htpasswd imlala

新建NGINX站点配置文件,请注意Ignis需要WebSocket支持:

nano /etc/nginx/sites-available/ignis

写入如下内容:

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

server {
    listen 80;
    server_name ignis.example.com;
    client_max_body_size 5G;

    auth_basic "auth";
    auth_basic_user_file /etc/nginx/.htpasswd;

    location / {
        proxy_pass http://127.0.0.1:18080;
        proxy_http_version 1.1;
        proxy_set_header Host $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_set_header Upgrade    $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }
}

启用站点:

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

签发证书:

certbot --nginx

首次使用,需要创建一个保险库(Vault)

效果:

赞(0)
未经允许不得转载:荒岛 » Ignis:在浏览器中运行Obsidian
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

分享创造快乐

广告合作资源投稿