Skip to content

kikyujin/obsidian-viewer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Obsidian Vault Viewer

Obsidian Vault を PC / iPhone 等からブラウズ&閲覧するビューア。ファイル単位の共有リンク機能付き。

  • ポート: 9400(デフォルト)
  • 外部公開: Tailscale Funnel 対応

機能

ブラウザ閲覧(トークン認証、Cookie保持)

  • 初回アクセス時にログインフォーム表示、認証後は Cookie で90日間保持
  • Obsidian Vault 配下の全ファイルをブラウズ
  • Markdown → HTML レンダリング(テーブル、コードブロック、目次対応)
  • ダークテーマ、iPhone 最適化
  • ディレクトリ内フィルタ検索
  • パンくずナビゲーション
  • 📥 DL ボタン(生Markdownダウンロード)
  • .obsidian, .git 等の隠しディレクトリは非表示

管理API(トークン認証必須)

エンドポイント 用途
GET /api/ls/{path} ファイル一覧
GET /api/ls/{path}?recursive=true 再帰的ファイル一覧

認証は3通り:

  • クエリパラメータ: ?token=xxx
  • ヘッダ: Authorization: Bearer xxx
  • Cookie(ブラウザログイン済みの場合)

共有リンク(ファイル単位の公開URL)

エンドポイント 認証 用途
GET /api/share?file={path} 必須 共有リンク生成
GET /api/shares 必須 共有リンク一覧
DELETE /api/shares/{token} 必須 共有リンク削除
DELETE /api/shares 必須 共有リンク全削除
GET /api/shared/{token} 不要 共有リンクでファイル取得
  • ブラウザのMarkdown表示画面から「🔗 公開リンク」ボタンで発行可能
  • 共有トークンはSQLiteに永続化(shares.db

URL例

ブラウザ

URL 表示
https://<your-host>/ Vault 一覧
https://<your-host>/MyVault/ Vault 内のフォルダ・ファイル
https://<your-host>/MyVault/note.md レンダリング表示
https://<your-host>/MyVault/note.md?raw=1 生ファイルDL

API

# ファイル一覧
curl "https://<your-host>/api/ls/MyVault?token=xxx"

デプロイ手順

# 1. ファイル配置
mkdir -p ~/obsidian-viewer
# main.py, requirements.txt を配置

# 2. venv & 依存インストール
cd ~/obsidian-viewer
python3 -m venv venv
venv/bin/pip install -r requirements.txt

# 3. .env 作成
cp .env.sample .env
# OBSIDIAN_API_TOKEN, OBSIDIAN_ROOT 等を設定

# 4. 動作確認
venv/bin/uvicorn main:app --host 0.0.0.0 --port 9400

# 5. systemd 登録(任意)
sudo cp obsidian-viewer.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now obsidian-viewer

# 6. Tailscale Funnel(任意)
sudo tailscale funnel --bg 9400

ファイル構成

~/obsidian-viewer/
├── main.py                    # FastAPI アプリ本体
├── requirements.txt           # 依存パッケージ
├── .env                       # 環境変数(git管理外)
├── .env.sample                # .env のテンプレート
├── shares.db                  # 共有リンクDB(自動生成、git管理外)
├── venv/                      # Python仮想環境
├── obsidian-viewer.service    # systemd ユニットファイル
└── LICENSE                    # MIT License

環境変数

変数 デフォルト 説明
OBSIDIAN_ROOT /mnt/obsidian Vault のルートディレクトリ
OBSIDIAN_API_TOKEN (なし) API認証トークン(必須)
FUNNEL_BASE_URL (なし) Tailscale Funnel の公開URL(共有リンク生成に使用)
SHARE_DB shares.db 共有リンクDBのパス

ライセンス

MIT License

note

気球人🎈note

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages