annotate mrjunejune/.config.development @ 272:41a49c29a28f

polish JRPG conversation experience Integrate desktop conversations into the utility panel, simplify the mobile frame, add modal destinations and a reusable Zenbu composer lab, and preserve explicit conversation resume behavior. Co-authored-by: Copilot <[email protected]>
author MrJuneJune <me@mrjunejune.com>
date Fri, 07 Aug 2026 16:05:29 -0700
parents 056790c4fb0d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
264
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
1 # MrJuneJune Server Configuration — DEVELOPMENT TEMPLATE
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
2 #
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
3 # This file is a copyable filler only. It contains no real secrets, hashes,
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
4 # or credentials. Copy it to .config (which is VCS-ignored) and fill in your
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
5 # local values before starting the server.
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
6 #
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
7 # cp mrjunejune/.config.development mrjunejune/.config
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
8 #
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
9 # ─────────────────────────────────────────────────────────────────────────────
200
90dfcef375fb Added my own s3 bucket uploader url to mrjunejune.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
10 # Auth token for S3 upload API
264
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
11 # Client must send: Authorization: Bearer <token>
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
12 UPLOAD_AUTH_TOKEN=REPLACE_WITH_LOCAL_TOKEN
200
90dfcef375fb Added my own s3 bucket uploader url to mrjunejune.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
13
90dfcef375fb Added my own s3 bucket uploader url to mrjunejune.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
14 # S3 Configuration
264
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
15 S3_REGION=REPLACE_WITH_REGION
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
16 S3_BUCKET=REPLACE_WITH_BUCKET
200
90dfcef375fb Added my own s3 bucket uploader url to mrjunejune.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
17
90dfcef375fb Added my own s3 bucket uploader url to mrjunejune.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
18 # Presigned URL expiration (seconds)
264
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
19 S3_URL_EXPIRES=3600
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
20
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
21 # ─────────────────────────────────────────────────────────────────────────────
265
056790c4fb0d add role-aware Epi assistant prompts
MrJuneJune <me@mrjunejune.com>
parents: 264
diff changeset
22 # This is the authoritative runtime configuration source for the server and
056790c4fb0d add role-aware Epi assistant prompts
MrJuneJune <me@mrjunejune.com>
parents: 264
diff changeset
23 # inference stack. Normal Bazel workflows require no shell exports. Environment
056790c4fb0d add role-aware Epi assistant prompts
MrJuneJune <me@mrjunejune.com>
parents: 264
diff changeset
24 # values are used only for tests, backwards compatibility when no config file is
056790c4fb0d add role-aware Epi assistant prompts
MrJuneJune <me@mrjunejune.com>
parents: 264
diff changeset
25 # present, and internal supervisor-to-child wiring. Never commit real values.
264
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
26 #
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
27 # AUTH_COOKIE_SECRET
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
28 # A cryptographically random 32-byte secret encoded as a lowercase hex string
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
29 # (64 hex chars). Used to sign session and guest cookies via HMAC-SHA-256.
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
30 # Generate with:
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
31 # openssl rand -hex 32
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
32 # Minimum: 64 hex chars (32 bytes). Maximum: 2048 hex chars (1024 bytes).
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
33 AUTH_COOKIE_SECRET=REPLACE_WITH_OUTPUT_OF_openssl_rand_hex_32
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
34
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
35 # AUTH_BOOTSTRAP_USERNAME / AUTH_BOOTSTRAP_PASSWORD_HASH
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
36 # Creates the initial admin account on first startup if no admin exists yet.
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
37 # Both must be set together, or both must be absent.
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
38 # Generate the hash with:
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
39 # bazel run //auth:hash_password
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
40 # Then enter the desired bootstrap password at the prompt.
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
41 # Example format (do not use this value — it is a public test fixture):
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
42 # zenbu-scrypt$v=1$N=32768$r=8$p=1$<salt>$<hash>
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
43 AUTH_BOOTSTRAP_USERNAME=admin
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
44 AUTH_BOOTSTRAP_PASSWORD_HASH=REPLACE_WITH_OUTPUT_OF_bazel_run_//auth:hash_password
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
45
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
46 # AUTH_TRUSTED_PROXY
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
47 # Exact direct-peer IP address of your reverse proxy (e.g. nginx/Caddy).
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
48 # When set, the server trusts X-Real-IP from this peer for client-IP binding.
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
49 # Leave commented out if the server receives direct connections.
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
50 # Must be a valid IPv4 or IPv6 address.
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
51 # AUTH_TRUSTED_PROXY=10.0.0.1
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
52
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
53 # AUTH_SESSION_IDLE_TTL / AUTH_SESSION_ABS_TTL
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
54 # Idle TTL: seconds since last request before a session expires (default 7 d).
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
55 # Abs TTL: absolute session lifetime regardless of activity (default 30 d).
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
56 # Idle must not exceed Abs. Both must be 60–31536000.
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
57 # AUTH_SESSION_IDLE_TTL=604800
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
58 # AUTH_SESSION_ABS_TTL=2592000
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
59
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
60 # AUTH_GUEST_TTL
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
61 # Lifetime of a guest identity record in seconds (default 30 d).
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
62 # AUTH_GUEST_TTL=2592000
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
63
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
64 # AUTH_DEV_INSECURE_COOKIE
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
65 # Set to true to issue cookies without the Secure attribute.
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
66 # ONLY valid when SERVER_HOST is a loopback address (127.0.0.1, ::1, or localhost).
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
67 # Must NOT be set in production or on a non-loopback bind.
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
68 AUTH_DEV_INSECURE_COOKIE=true
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
69
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
70 # ─────────────────────────────────────────────────────────────────────────────
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
71 # SERVER_HOST
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
72 # IP address the server listens on. Defaults to 0.0.0.0 (all interfaces).
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
73 # For local development, set to 127.0.0.1 — required when
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
74 # AUTH_DEV_INSECURE_COOKIE=true.
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
75 # In production, either leave unset (0.0.0.0) or set to a specific interface.
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
76 SERVER_HOST=127.0.0.1
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
77
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
78 # ─────────────────────────────────────────────────────────────────────────────
265
056790c4fb0d add role-aware Epi assistant prompts
MrJuneJune <me@mrjunejune.com>
parents: 264
diff changeset
79 # Inference stack
056790c4fb0d add role-aware Epi assistant prompts
MrJuneJune <me@mrjunejune.com>
parents: 264
diff changeset
80 # The local stack generates and persists LITELLM_MASTER_KEY into the ignored
056790c4fb0d add role-aware Epi assistant prompts
MrJuneJune <me@mrjunejune.com>
parents: 264
diff changeset
81 # .config on the first live run if this is left empty.
056790c4fb0d add role-aware Epi assistant prompts
MrJuneJune <me@mrjunejune.com>
parents: 264
diff changeset
82 LITELLM_MASTER_KEY=
056790c4fb0d add role-aware Epi assistant prompts
MrJuneJune <me@mrjunejune.com>
parents: 264
diff changeset
83 LITELLM_HOST=127.0.0.1
056790c4fb0d add role-aware Epi assistant prompts
MrJuneJune <me@mrjunejune.com>
parents: 264
diff changeset
84 LITELLM_PORT=4000
056790c4fb0d add role-aware Epi assistant prompts
MrJuneJune <me@mrjunejune.com>
parents: 264
diff changeset
85 LITELLM_MODEL=jrpg-copilot
056790c4fb0d add role-aware Epi assistant prompts
MrJuneJune <me@mrjunejune.com>
parents: 264
diff changeset
86 LITELLM_WIRE_API=completions
056790c4fb0d add role-aware Epi assistant prompts
MrJuneJune <me@mrjunejune.com>
parents: 264
diff changeset
87 MRJUNEJUNE_ALLOW_GUEST_INFERENCE=false
056790c4fb0d add role-aware Epi assistant prompts
MrJuneJune <me@mrjunejune.com>
parents: 264
diff changeset
88 # GITHUB_COPILOT_TOKEN_DIR=/absolute/path/to/litellm-copilot
056790c4fb0d add role-aware Epi assistant prompts
MrJuneJune <me@mrjunejune.com>
parents: 264
diff changeset
89 # MRJUNEJUNE_INFERENCE_STATE=/absolute/path/to/inference-state
056790c4fb0d add role-aware Epi assistant prompts
MrJuneJune <me@mrjunejune.com>
parents: 264
diff changeset
90 #
056790c4fb0d add role-aware Epi assistant prompts
MrJuneJune <me@mrjunejune.com>
parents: 264
diff changeset
91 # Guest inference quota
264
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
92 # These integer values control per-guest rate limits.
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
93 # Malformed or out-of-range values cause startup failure.
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
94 # AUTH_GUEST_DAILY_TURNS=10
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
95 # AUTH_GUEST_DAILY_OUTPUT_TOKENS=20000
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
96 # AUTH_GUEST_REQUEST_OUTPUT_TOKENS=2048
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
97
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
98 # ─────────────────────────────────────────────────────────────────────────────
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
99 # OPERATIONAL NOTES
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
100 #
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
101 # Bootstrap password rotation:
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
102 # After the bootstrap admin logs in for the first time, change the password
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
103 # via the /account/password page. To rotate the bootstrap credential itself:
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
104 # 1. Generate a new hash: bazel run //auth:hash_password
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
105 # 2. Update AUTH_BOOTSTRAP_PASSWORD_HASH in .config.
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
106 # 3. Use Admin_API or SQL to reset the stored hash for the admin user.
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
107 # (Bootstrap only creates the user on first startup when no admin exists.)
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
108 #
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
109 # Guest data retention:
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
110 # Guest identity rows accumulate in the auth SQLite database. Rows expire
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
111 # after AUTH_GUEST_TTL seconds from last activity. Auth_Store automatically
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
112 # skips expired rows on reads; periodic cleanup of very old rows can be done
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
113 # with: DELETE FROM guest_identities WHERE expires_at < strftime('%s','now');
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
114 # Run this against the auth database (DB_PATH, default mrjunejune/data/).
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
115 #
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
116 # Secure cookie policy:
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
117 # Production deployments must NOT set AUTH_DEV_INSECURE_COOKIE=true.
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
118 # Ensure your reverse proxy terminates TLS and forwards via SERVER_HOST.
04fee26ecce0 add authenticated JRPG conversation platform
MrJuneJune <me@mrjunejune.com>
parents: 200
diff changeset
119 # The Secure cookie attribute is enforced automatically on non-loopback hosts.