3.6 KiB
3.6 KiB
如何搭建web版本obsidian
背景
最近大神开源了一个 ignis 项目,可以通过网页访问 obsidian,但是默认是 http,且无密码,对于公网无法安全使用。
下面这个方案完善了安全访问,采用了加密的 https,并且有需要用户名登陆才能访问。
具体步骤
申请一个免费的域名,比如 ob.xxxx.cc
通过反向代理 caddy,通过 https 访问 web 版本 obsidian
-
创建 4 个文件目录
- vaults
- data
- obsidian-app
- caddy-data
-
建立一个 caddyfile.txt 文件放到 caddy-data 目录
caddy 文件内容如下,注意:
- ob.xxxx.cc 要改成自己的域名
- localhost 要改成自己服务器的 IP
- 默认用户名:Bob
- 默认密码:hiccup
# 全局选项
{
# 全局使用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 <EAB_密钥_ID> <EAB_HMAC_密钥>
# }
# 失败回退常规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
}
}
- 使用以下 docker compose 文件建立 docker 服务
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'

