# 如何搭建web版本obsidian ## 背景 最近大神开源了一个 ignis 项目,可以通过网页访问 obsidian,但是默认是 http,且无密码,对于公网无法安全使用。 下面这个方案完善了安全访问,采用了加密的 https,并且有需要用户名登陆才能访问。 ## 具体步骤 ### 申请一个免费的域名,比如 ob.xxxx.cc [搞一个免费 10 年的二级域名,公网访问飞牛 NAS](https://mp.weixin.qq.com/s?__biz=MzI2MTA5NzM5MA==&mid=2247499770&idx=1&sn=a5a1a3d78f3d729a45aa44204bb02694&scene=21&poc_token=HJpGeGqjYSRgiB6T6FdBh23s-6Fcjn90eBjF5E-6) ### 通过反向代理 caddy,通过 https 访问 web 版本 obsidian 1. 创建 4 个文件目录 - vaults - data - obsidian-app - caddy-data 2. 建立一个 caddyfile.txt 文件放到 caddy-data 目录 caddy 文件内容如下,注意: - ob.xxxx.cc 要改成自己的域名 - localhost 要改成自己服务器的 IP - 默认用户名:Bob - 默认密码:hiccup ```yml # 全局选项 { # 全局使用alidns acme_dns alidns { access_key_id LTAI5tQfd6bBCHDR7HUjpWQR access_key_secret b74sGYcTuwcvfiiQpTZtNWp5gCAQds } # 使用dnspod token # acme_dns dnspod 37456,ejbe9tb5tiasjz2yu5u688vrwegpm # 使用cloudflare api token # acme_dns cloudflare v3ipam6idiwcmfub4iee4yjqyvykx # 储存目录默认映射 storage file_system /data/cert # 注意storage目录文件默认权限不允许其他人访问 # 如果需要被其他程序访问,可以自己手动chmod -R # 关闭http自动重定向,可避免出现80端口占用问题(可手动加重定向配置) auto_https disable_redirects # 尝试申请Google CA # 你需要到Google获取eab key来使用,详见:https://pki.goog/ # eab key仅仅是使用这个服务的权限与域名无关,不管是哪个账号申请,都是通用的 # 申请eab key不用会自动过期 # 如果你有Google domains,可以一键申请https://domains.google.com # 注意:你需要自己解决https://dv.acme-v02.api.pki.goog/的科学访问 # email exmaple@gmail.com # cert_issuer acme https://dv.acme-v02.api.pki.goog/directory { # eab # } # 失败回退常规acme # cert_issuer acme # 屏幕打印日志,需要调试的时候可打开 # log { # output stdout # format console # level debug # } } ob.xxxx.cc {#这里要改成自己的域名 reverse_proxy http://localhost:88 #这里要改成自己服务器的IP basic_auth { # Username "Bob", password "hiccup" Bob $2a$14$Zkx19XLiW6VYouLHR5NmfOFU0z2GTNmpkT/5qqR7hx4IjWJPDhjvG } } ``` 3. 使用以下 docker compose 文件建立 docker 服务 ```yml version: '3' services: ignis: image: registry.cn-hangzhou.aliyuncs.com/yue-images/ignis:latest container_name: ignis2 ports: - "88: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 caddy: pull_policy: always image: registry.cn-hangzhou.aliyuncs.com/yue-images/caddy:latest container_name: caddy restart: unless-stopped environment: - TZ=Asia/Shanghai - DNS=223.5.5.5,8.8.8.8 volumes: - ./caddy_data:/data ports: # - '8000:80' - '8001:443' ``` ### 结果 ![image](assets/image-20260809181306-0e1qd33.png) ![Snipaste_2026-08-09_18-27-29](assets/Snipaste_2026-08-09_18-27-29-20260809183007-aavwkz2.png)