Files
playchat/backend/.env.example
colcaroliandClaude Sonnet 5 1ad8b130c7 Add site-wide login gate protecting the whole app
Chat/memory/logs/models APIs were reachable without any auth even
though the app is deployed publicly behind Caddy HTTPS; only the
settings screen had a password. Add an optional SITE_PASSWORD-backed
session cookie gate in front of everything (settings included, on
top of its existing SETTINGS_PASSWORD), with a matching login screen
on the frontend. Stays fully backward compatible: with SITE_PASSWORD
unset the app behaves exactly as before.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 23:04:01 +09:00

74 lines
3.3 KiB
Bash

# LLM設定
DEFAULT_MODEL=gpt-5.4
# OpenAI
OPENAI_API_KEY=sk-...
# Anthropic
ANTHROPIC_API_KEY=sk-ant-...
# Ollama (ローカル) — APIキー不要、モデル名は ollama/llama3 形式で指定
OLLAMA_API_BASE=http://localhost:11434
# Amazon Bedrock (IAM経由 — Access Key方式) — モデル名は bedrock/anthropic.claude-3-5-sonnet-20241022-v2:0 形式で指定
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_REGION_NAME=us-east-1
# 旧: API key方式(Bearer Token)。IAMを使う場合は不要
AWS_BEARER_TOKEN_BEDROCK=
# デバッグ (true にすると LiteLLM の詳細ログが出力される)
DEBUG=false
# GUIの「設定」画面(APIキー等の変更)を保護する簡易パスワード。
# 未設定だと設定画面は常に403で拒否される(=GUIからのAPIキー変更機能を使わないなら空でよい)。
# HTTPS化していない環境ではBasic認証の資格情報が平文で流れるため、公開環境ではHTTPS化とセットで使うこと。
SETTINGS_PASSWORD=
# サイト全体(チャット含む全機能)を保護する簡易パスワード。SETTINGS_PASSWORDとは別物。
# 未設定だとこれまで通りサイト全体が無認証で使える。外部公開する場合は必ず設定すること。
SITE_PASSWORD=
# セッションCookieの署名鍵。未設定でも動くが、その場合バックエンド再起動のたびに全員ログインし直しになる。
# 公開環境では `openssl rand -hex 32` などで生成した値を設定しておくこと。
SESSION_SECRET_KEY=
# ローカルのhttp開発環境(HTTPS化していない)でログインが効かない場合のみ false にする。公開環境では変更しないこと。
SESSION_COOKIE_SECURE=true
# ログインセッションの有効日数
SESSION_MAX_AGE_DAYS=30
# Tavily Web検索(未設定だとweb_searchツールは何も検索せず空振りする)
TAVILY_API_KEY=
# 蓄積知識をシステムプロンプトに注入する際の最大件数
KNOWLEDGE_CONTEXT_LIMIT=15
# Web検索結果を構造的な要約にまとめる際に使うモデル(未設定ならDEFAULT_MODELを使用)
SEARCH_SUMMARY_MODEL=
# ローカルMarkdownナレッジベース(backend/knowledge_base/ 配下のファイルを話題に応じて注入)
LOCAL_KB_DIR=knowledge_base
# Ollamaを使う場合は ollama/nomic-embed-text のように指定(OLLAMA_API_BASEも参照される)
LOCAL_KB_EMBEDDING_MODEL=text-embedding-3-small
LOCAL_KB_TOP_K=3
LOCAL_KB_MIN_SCORE=0.75
# 天気予報 → Discord 通知
DISCORD_WEBHOOK_URL=
WEATHER_AREA_CODE=120000
WEATHER_AREA_KEYWORD=北西部
WEATHER_NOTIFY_HOUR=22
WEATHER_NOTIFY_MINUTE=0
# 通知文をLLMで生成する場合のモデル(未設定ならDEFAULT_MODELを使用)
WEATHER_NOTIFY_MODEL=
# Discord Bot(メンションへの自動返信用)
DISCORD_BOT_TOKEN=
# 未設定ならデフォルトの「お天気アプリ」ペルソナが使われる
DISCORD_BOT_SYSTEM_PROMPT=
# どうでもいいtipsを定期的にDiscordへ投稿
USELESS_TIPS_ENABLED=false
USELESS_TIPS_INTERVAL_HOURS=3
USELESS_TIPS_MODEL=
# 未設定ならDISCORD_WEBHOOK_URL(天気通知と同じ)を使う
DISCORD_WEBHOOK_URL_TIPS=
# アプリ設定
DATABASE_URL=sqlite:///./playchat.db
MEMORY_SUMMARIZE_THRESHOLD=20
CORS_ORIGINS=http://localhost:5173