-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
135 lines (121 loc) · 6.89 KB
/
Copy path.env.example
File metadata and controls
135 lines (121 loc) · 6.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# ============================================================
# Sentinel of Mnemosyne — Environment Configuration Template
# Copy this file to .env and fill in your values.
# NEVER commit .env to git.
# ============================================================
# NOTE: Secret values (API keys, tokens) are NOT stored in .env.
# Create one file per secret in the secrets/ directory instead.
# See secrets/README.md for the full list.
# This file contains only non-secret configuration.
# ------------------------------------------------------------
# AI Provider — LM Studio (default)
# LM Studio runs on the Mac Mini and exposes an OpenAI-compatible API at /v1/.
# host.docker.internal resolves to the Docker host (the Mac Mini) from inside containers.
# Start the server in LM Studio under Local Server before use.
# ------------------------------------------------------------
LMSTUDIO_BASE_URL=http://host.docker.internal:1234/v1
# Sentinel Core's chat model id (no provider prefix — `openai/` is added at the
# call site). Default below is the operator's current daily-driver in LM Studio.
MODEL_NAME=gemma-4-e4b-it-mlx
# ------------------------------------------------------------
# Obsidian — Mnemosyne Vault
# Install the "Local REST API" community plugin in Obsidian.
# Default port is 27124 (HTTPS with self-signed cert).
# If Docker runs on the same Mac as Obsidian, use:
# http://host.docker.internal:27124
# If Docker runs on a different machine, use the Mac's LAN IP.
# The API key goes in secrets/obsidian_api_key — not here.
# ------------------------------------------------------------
OBSIDIAN_API_URL=http://host.docker.internal:27124
# ------------------------------------------------------------
# Pathfinder Module — Obsidian direct access (D-27)
# The pathfinder module calls Obsidian directly, not through sentinel-core.
# OBSIDIAN_BASE_URL: HTTP port 27123 (non-encrypted) for Docker→Mac host.
# OBSIDIAN_API_KEY: blank if Obsidian REST API auth is disabled.
# ------------------------------------------------------------
OBSIDIAN_BASE_URL=http://host.docker.internal:27123
OBSIDIAN_API_KEY=
LITELLM_MODEL=openai/gemma-4-e4b-it-mlx
LITELLM_API_BASE=http://host.docker.internal:1234/v1
# LM Studio embedding model id (no provider prefix — `openai/` is added at the
# litellm call site). Used by the vault sweeper and note classifier.
EMBEDDING_MODEL=text-embedding-nomic-embed-text-v1.5
# Task-kind-specific model preferences (pathfinder module only — optional).
# Set any of these to pin a specific loaded model to a task kind. If unset,
# the selector discovers loaded models at LITELLM_API_BASE/models, consults
# litellm.get_model_info for capability metadata, and picks the best match.
# Falls through to LITELLM_MODEL above if nothing scores.
# LITELLM_MODEL_CHAT=openai/qwen2.5-14b-instruct
# LITELLM_MODEL_STRUCTURED=openai/qwen2.5-7b-instruct
# LITELLM_MODEL_FAST=openai/qwen2.5-3b-instruct
# ------------------------------------------------------------
# Discord Interface (only needed if using the Discord bot)
# Create a bot at https://discord.com/developers/applications
# The bot token goes in secrets/discord_bot_token — not here.
# ------------------------------------------------------------
# Comma-separated list of channel IDs the bot will respond in.
# Leave blank to allow all channels (not recommended).
DISCORD_ALLOWED_CHANNELS=
# Channel ID where Foundry VTT roll notifications are posted (FVT-02, Phase 35).
# If unset, falls back to the numerically smallest ID in DISCORD_ALLOWED_CHANNELS.
DISCORD_NOTIFY_CHANNEL_ID=
# ------------------------------------------------------------
# CORS — Foundry VTT / browser interface (Phase 28, MOD-02)
# Comma-separated list of explicit origins allowed to make credentialed requests to Sentinel Core.
# Add your Foundry LAN IP (e.g., http://192.168.1.100:30000) if accessing from the same LAN.
# WARNING: Do NOT use "*" — that breaks X-Sentinel-Key header delivery per the CORS specification.
# ------------------------------------------------------------
CORS_ALLOW_ORIGINS=http://localhost:30000
# Regex for Forge VTT subdomains (variable per user; can't be in the explicit list above).
# Set to empty string to disable Forge VTT support.
CORS_ALLOW_ORIGIN_REGEX=https://.*\.forge-vtt\.com
# ------------------------------------------------------------
# Alpaca Trading (only needed for the Stock Trader module)
# API keys go in secrets/alpaca_paper_api_key etc. — not here.
# ------------------------------------------------------------
# Set to "paper" or "live". Default is paper.
ALPACA_MODE=paper
# Maximum total portfolio value the trader is allowed to manage.
ALPACA_MAX_PORTFOLIO=500
# Maximum single trade size in dollars.
ALPACA_MAX_TRADE_SIZE=50
# ------------------------------------------------------------
# Logging
# Options: DEBUG, INFO, WARNING, ERROR
# Use DEBUG during development, INFO in normal use.
# ------------------------------------------------------------
LOG_LEVEL=INFO
# ------------------------------------------------------------
# Session Notes (Phase 34 / SES-01..03)
# D-10: auto-generate recap on session end
# D-13: timezone for event timestamps (IANA zone name)
# D-37: override recap LLM (defaults to LITELLM_MODEL if unset)
# ------------------------------------------------------------
SESSION_AUTO_RECAP=false
SESSION_TZ=America/New_York
# SESSION_RECAP_MODEL=
# ------------------------------------------------------------
# Foundry VTT Event Ingest (Phase 35 / FVT-01..03)
# D-12: Override narration LLM (defaults to LITELLM_MODEL if unset)
# D-14: Internal URL for Discord bot notification endpoint
# ------------------------------------------------------------
# FOUNDRY_NARRATION_MODEL=
DISCORD_BOT_INTERNAL_URL=http://discord-bot:8001
# sentinel-connector.js world settings (configured in Foundry module settings, not here):
#
# sentinelBaseUrl — Sentinel server URL.
# LAN play (same network as Mac Mini): http://192.168.1.x:8000
# Forge play via Tailscale HTTPS: https://mac-mini.tailXXXX.ts.net:8000
# Webhook-only mode (no Sentinel): leave empty
#
# discordWebhookUrl — Discord incoming webhook for direct roll embeds.
# Used as: primary when sentinelBaseUrl is empty, or fallback when Sentinel unreachable.
# Get it: Discord channel → Edit Channel → Integrations → Webhooks → New Webhook → Copy URL
# Enter the URL directly in Foundry module settings — do NOT put it in .env (it is a
# Foundry world setting stored in the Foundry database, not a server-side secret).
#
# For Forge play with Tailscale HTTPS (unlocks LLM narration for remote players):
# 1. On Mac Mini: tailscale cert mac-mini.tailXXXX.ts.net
# 2. Mount certs dir into pf2e-module container and configure Uvicorn with --ssl-keyfile/--ssl-certfile
# 3. Set sentinelBaseUrl in Foundry to: https://mac-mini.tailXXXX.ts.net:8000
# The PNACORSMiddleware in modules/pathfinder/app/main.py handles CORS + PNA headers automatically.