summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md105
1 files changed, 71 insertions, 34 deletions
diff --git a/README.md b/README.md
index 4f70b41..7512620 100644
--- a/README.md
+++ b/README.md
@@ -1,64 +1,101 @@
# ollama-web
-Ollama を用いた Web アプリケーションプロジェクト。
+Ollama をブラウザから利用するためのローカル Web UI です。
-## セットアップ
+Starlette ベースの軽量なサーバーで、チャット、セッション保存、ファイル添付、Web 検索/取得ツール、PDF テキスト抽出を提供します。既定ではローカルホストのみで待ち受け、PIN ログインで UI と API を保護します。
-```bash
-# 仮想環境の作成
-uv venv .venv
+## Features
-# 依存パッケージのインストール
-uv pip install -r requirements.txt -p .venv
+- Ollama モデルとのストリーミングチャット
+- 会話セッションと添付ファイルのローカル保存
+- 画像添付のリサイズと vision モデル向け送信
+- Web 検索、URL スクレイピング、ファイル検索/取得、PDF テキスト抽出ツール
+- PIN 認証、CSRF 保護、CSP、ローカル配布のフロントエンド依存ファイル
+- SSRF 対策付きの外部 URL 取得
+
+## Requirements
-# 開発用パッケージのインストール
+- Python 3.10+
+- Ollama が起動していること
+- `uv` 推奨
+
+既定では Ollama API を `http://127.0.0.1:11434` として扱います。
+
+## Installation
+
+```bash
+uv venv .venv
uv pip install -e ".[dev]" -p .venv
```
-## プロジェクト構成
+`requirements.txt` から本番依存だけを入れる場合:
+```bash
+uv venv .venv
+uv pip install -r requirements.txt -p .venv
```
-ollama-web/
-├── src/
-│ └── ollama_web/ # メインパッケージ
-│ ├── __init__.py
-│ └── main.py # エントリポイント
-├── tests/ # テストコード
-├── docs/ # ドキュメント
-├── scripts/ # スクリプト類
-├── .gitignore
-├── pyproject.toml # プロジェクト設定 (ruff, pytest, mypy 等)
-├── requirements.txt # 本番依存パッケージ
-└── README.md
-```
-## 使い方
+## Usage
+
+ローカルPCだけで利用する場合:
```bash
-# アプリケーションの実行
ollama-web
+```
-# LAN内のスマホ等からアクセスする場合
-# PINを固定し、待受アドレスを明示してください
+`OLLAMA_WEB_PIN` を設定していない場合、起動時にランダムな PIN がコンソールに表示されます。ブラウザで `http://127.0.0.1:8000` を開き、その PIN でログインしてください。
+
+LAN 内のスマホなど別端末からアクセスする場合:
+
+```bash
OLLAMA_WEB_PIN=123456 OLLAMA_WEB_HOST=0.0.0.0 ollama-web
+```
+
+PowerShell では次のように指定します。
+
+```powershell
+$env:OLLAMA_WEB_PIN = "123456"
+$env:OLLAMA_WEB_HOST = "0.0.0.0"
+ollama-web
+```
+
+## Configuration
+
+| Environment variable | Default | Description |
+| --- | --- | --- |
+| `OLLAMA_HOST` | `http://127.0.0.1:11434` | 接続先 Ollama API |
+| `OLLAMA_WEB_MODEL` | `llama3.2` | 既定で選択するモデル |
+| `OLLAMA_WEB_HOST` | `127.0.0.1` | Web UI の待受ホスト |
+| `OLLAMA_WEB_PORT` | `8000` | Web UI の待受ポート |
+| `OLLAMA_WEB_DATA_DIR` | `data` | セッションと添付ファイルの保存先 |
+| `OLLAMA_WEB_MAX_UPLOAD_MB` | `20` | アップロードファイルの上限サイズ |
+| `OLLAMA_WEB_PIN` | 起動時に自動生成 | ログイン用 PIN |
+| `OLLAMA_WEB_SECRET_KEY` | 起動時に自動生成 | Cookie 署名鍵 |
+| `OLLAMA_WEB_ALLOWED_ORIGINS` | 未設定 | CORS 許可オリジンのカンマ区切り |
+
+### Security Notes
-# テストの実行
+- 既定の待受は `127.0.0.1` です。LAN に公開する場合だけ `OLLAMA_WEB_HOST=0.0.0.0` を明示してください。
+- `OLLAMA_WEB_PIN` 未設定時の PIN は起動ごとに変わります。継続利用する場合は固定値を設定してください。
+- CORS は既定で無効です。外部オリジンから API を呼ぶ必要がある場合のみ `OLLAMA_WEB_ALLOWED_ORIGINS` を設定してください。
+- Web 取得系ツールは localhost/private IP/metadata IP へのアクセスを拒否します。
+
+## Development
+
+```bash
+# テスト
pytest
-# リント
+# Lint
ruff check .
# 型チェック
mypy src/
```
-## セキュリティ設定
+このリポジトリでは `pyproject.toml` に pytest、ruff、mypy の設定をまとめています。
-- 既定の待受は `127.0.0.1` です。LAN公開する場合だけ `OLLAMA_WEB_HOST=0.0.0.0` を指定してください。
-- `OLLAMA_WEB_PIN` 未設定時は起動ごとにランダムPINが表示されます。
-- CORSは既定で無効です。必要な場合のみ `OLLAMA_WEB_ALLOWED_ORIGINS` に許可オリジンをカンマ区切りで指定してください。
-- Cookie署名鍵は `OLLAMA_WEB_SECRET_KEY` で固定できます。
-## ライセンス
+## License
MIT