Article Collector セットアップガイド
整理日: 2026-03-16
#プログラミング #リファレンス #Obsidian #ClaudeCode
NZXT Windows PC(WSL2)上で24時間動く自動記事収集システム。 [[vision]] の「情報収集の自動化」に対応するプロジェクト。
概要
RSS/APIから記事を自動取得し、OllamaのローカルLLMでスコアリングして、 興味に合う記事だけをMarkdownレポートにまとめてObsidianに同期するシステム。
[RSS/API] → [Python Collector] → [Ollama スコアリング] → [Markdown] → [Google Drive] → [Obsidian]
構造図
flowchart TD
A["RSS/APIから記事を自動取得し、Ollamaのローカ.."]
A --> B["興味に合う記事だけをMarkdownレポートにまとめてO.."]
style B fill:#c05746,color:#fff,stroke:none
収集元
| サイト | 方式 | トピック | |--------|------|----------| | Zenn | RSS | LLM, Ollama, Python, Claude, Obsidian, 機械学習 | | Qiita | API + RSS | LLM, Python, Ollama, 機械学習 | | Hacker News | RSS (hnrss.org) | LLM, Ollama, Self-hosted, Local AI | | Reddit | RSS | r/LocalLLaMA, r/selfhosted, r/datascience | | DEV.to | RSS | AI, LLM, Python, Productivity |
ファイル構成
article-collector/
├── docker-compose.yml # Docker構成
├── Dockerfile # イメージ定義
├── config.yaml # 設定(フィード、興味、閾値等)
├── requirements.txt # Python依存
├── crontab # スケジュール(8時/20時)
├── entrypoint.sh # 起動スクリプト
├── setup.sh # セットアップスクリプト
├── run-now.sh # 手動実行
├── .env.example # 環境変数テンプレート
├── n8n-workflow.json # n8n版(代替オプション)
└── src/
└── collector.py # メインスクリプト
セットアップ手順
前提条件
- Docker / Docker Compose が動作中
- Ollamaコンテナが稼働中(ポート11434)
- rcloneインストール済み(Google Drive連携する場合)
Step 1: ファイルをWSL2に配置
# Windows側のパスからWSL2にコピー、または直接WSL2側で作業
cd ~/projects/ # 好きな場所
cp -r /path/to/article-collector ./
cd article-collector
Step 2: セットアップスクリプト実行
chmod +x setup.sh run-now.sh entrypoint.sh
./setup.sh
このスクリプトが以下を自動で行う:
- 必要なディレクトリ作成
- Ollamaのネットワーク名を検出して
.envに書き込み - 利用可能なOllamaモデルを表示
- rclone設定の確認
- Dockerイメージのビルド
Step 3: 設定の確認・調整
# config.yaml を編集
nano config.yaml
確認ポイント:
ollama.model: 実際にインストール済みのモデル名に合わせるgdrive.remote_path: Obsidian Vault内のパスに合わせるscoring.threshold: 最初は60くらいで試すのもあり
Step 4: rclone設定(Google Drive連携する場合)
# rcloneの初期設定(ブラウザでOAuth認証が必要)
rclone config
# 手順:
# 1. 'n' で新規リモート
# 2. リモート名: gdrive
# 3. タイプ: Google Drive (番号選択)
# 4. client_id, client_secret: 空欄でOK
# 5. scope: 1 (Full access)
# 6. OAuth認証をブラウザで完了
> 整理日: 2026-03-16
# 動作確認
rclone ls gdrive:kodachanSecondBrain/06_Literature/ --max-depth 1
Step 5: 起動
docker compose up -d --build
Step 6: 動作確認
# ログを確認
docker compose logs -f
# または
tail -f logs/collector.log
# 手動で即時実行
./run-now.sh
運用
よく使うコマンド
# 状態確認
docker compose ps
# ログ確認
docker compose logs -f article-collector
# 手動実行
./run-now.sh
# 再起動
docker compose restart
# 停止
docker compose down
# 設定変更後の反映
docker compose up -d --build
フィードの追加・削除
config.yaml の feeds セクションを編集するだけ。
enabled: false にすれば無効化できる。
- name: "新しいフィード"
url: "https://example.com/feed"
source: "Example"
enabled: true
スコア閾値の調整
最初は threshold: 60 で広めに拾い、ノイズが多ければ 70 や 80 に上げる。
SQLiteデータベース
処理済み記事は data/articles.db に記録される。
同じ記事は2回処理されない(重複排除)。
# DB確認
sqlite3 data/articles.db "SELECT score, title FROM articles ORDER BY fetched_at DESC LIMIT 20;"
トラブルシューティング
Ollamaに接続できない
# ネットワーク確認
docker network ls
docker inspect ollama --format '{{range $key, $val := .NetworkSettings.Networks}}{{$key}}{{end}}'
# .envのOLLAMA_NETWORKを修正
rcloneアップロード失敗
# rclone設定確認
rclone listremotes
rclone ls gdrive: --max-depth 1
# 認証が切れている場合は再認証
rclone config reconnect gdrive:
レポートが空
scoring.thresholdを下げてみるlogs/collector.logでスコアリング結果を確認- Ollamaのモデルが正しくロードされているか確認
関連ノート
- [[projects]] - プロジェクト一覧
- [[next-actions]] - 次のアクション