-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdevelopment.env.template
More file actions
86 lines (78 loc) · 5.32 KB
/
Copy pathdevelopment.env.template
File metadata and controls
86 lines (78 loc) · 5.32 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
# ==============================================================================
# MORGANA - DEVELOPMENT ENVIRONMENT
# ==============================================================================
# For building Morgana and Cauldron from source code.
# Versions are auto-generated from Directory.Build.props into .env.versions
#
# Usage:
# 1. Copy this file to .env
# 2. Fill in your secrets below
# 3. Build Morgana: dotnet build ./Morgana
# 4. Build Cauldron: dotnet build ./Channels/Cauldron
# 5A. Build Grimoire: dotnet build ./Channels/Grimoire
# 5B. Build Rune: dotnet build ./Channels/Rune
# 5C. Build Alembic: dotnet build ./Alembic/Distiller
# 6. Build docker image: docker compose --env-file .env --env-file .env.versions build
# 7. Manage docker image: docker compose --env-file .env --env-file .env.versions up|down|...
# Note: `up` starts Morgana + Cauldron only. Grimoire's Spectre.Console TUI needs its own terminal, so launch it interactively in a separate shell:
# docker compose --env-file .env --env-file .env.versions run --rm --service-ports --use-aliases grimoire
# `--use-aliases` is mandatory: `compose run` skips network aliases by default, so without it Morgana's webhook callback to http://grimoire:5004 fails DNS resolution.
# Alembic is profile-gated too, for an unrelated reason: it is the authoring workbench, talks to no Morgana instance and joins no network, so `up` skips it as well:
# docker compose --env-file .env --env-file .env.versions --profile authoring up alembic
# ==============================================================================
# ENCRYPTION
# ==============================================================================
# AES-256 key (32 bytes) encoded in Base64 for encrypting SQLite databases
# Generate a new key with:
# Linux/Mac: openssl rand -base64 32
# PowerShell: $bytes = New-Object byte[] 32; [System.Security.Cryptography.RandomNumberGenerator]::Fill($bytes); [Convert]::ToBase64String($bytes)
ENCRYPTIONKEY=YOUR_BASE64_ENCODED_256_BIT_KEY_HERE
# ==============================================================================
# JWT AUTHENTICATION
# ==============================================================================
# HMAC-SHA256 symmetric key for JWT token signing between Cauldron and Morgana
# Generate a new key with:
# Linux/Mac: openssl rand -base64 32
# PowerShell: $bytes = New-Object byte[] 32; [System.Security.Cryptography.RandomNumberGenerator]::Fill($bytes); [Convert]::ToBase64String($bytes)
JWT_SYMMETRIC_KEY=YOUR_BASE64_ENCODED_256_BIT_KEY_HERE
# ==============================================================================
# LLM PROVIDER
# ==============================================================================
# Choose LLM provider: "anthropic", "azureopenai", "ollama", "openai"
#LLM_PROVIDER=anthropic
# Each agent declares a fixed LLM tier ([RequiresLLMTier]): "Efficiency" (E-core —
# Morgana's own framework actors and any agent handling routine work) or
# "Performance" (P-core — reserved for agents whose author declares an existential
# need for deep reasoning/expressive power). Every tier the active provider's agents
# rely on must have a model name here. MagicDust pricing per tier is already baked
# into Morgana.Web/appsettings.json — these vars only override which model serves each tier.
# ==============================================================================
# ANTHROPIC CONFIGURATION (required if LLM_PROVIDER=anthropic)
# ==============================================================================
#ANTHROPIC_APIKEY=sk-ant-api03-YOUR_KEY_HERE
#ANTHROPIC_MODEL_EFFICIENCY=claude-YOUR_EFFICIENCY_TIER_MODEL_HERE
#ANTHROPIC_MODEL_PERFORMANCE=claude-YOUR_PERFORMANCE_TIER_MODEL_HERE
# ==============================================================================
# AZURE OPENAI CONFIGURATION (required if LLM_PROVIDER=azureopenai)
# ==============================================================================
#AZUREOPENAI_APIKEY=YOUR_AZURE_OPENAI_KEY_HERE
#AZUREOPENAI_ENDPOINT=https://your-resource-name.openai.azure.com
#AZUREOPENAI_DEPLOYMENTNAME_EFFICIENCY=YOUR_AZURE_OPENAI_EFFICIENCY_TIER_DEPLOYMENT_HERE
#AZUREOPENAI_DEPLOYMENTNAME_PERFORMANCE=YOUR_AZURE_OPENAI_PERFORMANCE_TIER_DEPLOYMENT_HERE
# ==============================================================================
# OLLAMA CONFIGURATION (required if LLM_PROVIDER=ollama)
# ==============================================================================
# A local Ollama deployment typically loads a single model in memory, so Morgana
# wires it to the "Efficiency" tier by default (see Morgana.Web/appsettings.json).
# An agent declared [RequiresLLMTier(Performance)] fails startup against this
# config — deliberately, there is no cross-tier fallback — so only add a
# Performance deployment var here if you actually keep two distinct local models
# loaded (E-core + P-core).
#OLLAMA_ENDPOINT=http://localhost:11434/
#OLLAMA_MODEL=YOUR_OLLAMA_MODEL_HERE
# ==============================================================================
# OPENAI CONFIGURATION (required if LLM_PROVIDER=openai)
# ==============================================================================
#OPENAI_APIKEY=YOUR_OPENAI_KEY_HERE
#OPENAI_MODEL_EFFICIENCY=YOUR_EFFICIENCY_TIER_MODEL_HERE
#OPENAI_MODEL_PERFORMANCE=YOUR_PERFORMANCE_TIER_MODEL_HERE