nandi/gleanpublic Fork 0
main
Commits
Clone
git clone https://git.rickub.com/nandi/glean.git
git clone ssh://git@rickub.com/nandi/glean.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

.env.example · 59 lines · 2.9 KBBash Blame HistoryRaw
 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
# Glean environment variables.
#
# ─────────────────────────────── BACKEND (Go API) ──────────────────────────────

# Listen address for the Go HTTP server. In the Docker setup this is loopback
# only: the SvelteKit server proxies to it.
GLEAN_ADDR=127.0.0.1:8080
# SQLite database base path (_users, _articles, _recs suffixes are appended).
GLEAN_DB=/data/glean.db
# HMAC key for signing session cookies. Generate with: openssl rand -hex 32
GLEAN_SESSION_KEY=change-me-to-a-random-string
# Public browser origin of the frontend. MUST be the origin users see in their
# browser (e.g. https://glean.at). The OAuth callback URL is derived from this.
GLEAN_FRONTEND_URL=https://glean.at

# ATProto / Jetstream.
GLEAN_JETSTREAM=wss://jetstream1.eurosky.network
GLEAN_PLC_URL=https://plc.eurosky.network
GLEAN_SYNC_INTERVAL=8h
GLEAN_CLUSTER_INTERVAL=60m
GLEAN_FETCH_INTERVAL=15m
# Delete articles older than this many days (by published date). 0 disables.
GLEAN_ARTICLE_RETENTION_DAYS=30
GLEAN_COLLECTION_DIR_URL=https://relay1.us-west.bsky.network/xrpc/com.atproto.sync.listReposByCollection?collection=at.glean.subscription
GLEAN_BACKFILL_CONCURRENCY=5

# OAuth. Leave GLEAN_OAUTH_CLIENT_ID empty for localhost dev (uses the OAuth
# localhost flow). In production set it to this server's client-metadata URL;
# it must resolve to /api/oauth/client-metadata on the public origin.
# The OAuth callback is always $GLEAN_FRONTEND_URL/api/auth/callback.
GLEAN_OAUTH_CLIENT_ID=https://glean.at/api/oauth/client-metadata

# Embeddings (recommended as it powers content-based feed/article recommendations).
# Point to any OpenAI-compatible /v1/embeddings endpoint (OpenAI, Ollama, etc.).
# Without embeddings, recommendations rely only on subscription overlap and social graph.
GLEAN_EMBED_BASE_URL=https://llms.example.com/v1
GLEAN_EMBED_API_KEY=API-KEY-001
GLEAN_EMBED_MODEL=qwen-embedding-4b
GLEAN_EMBED_DIMENSION=2560

# LLM for article language detection, digests, and other text tasks.
# Any OpenAI-compatible /v1/chat/completions endpoint works.
# Without an LLM, all articles default to English, language filtering is disabled,
# and digests are unavailable.
GLEAN_LLM_BASE_URL=https://llms.example.com/v1
GLEAN_LLM_API_KEY=API-KEY-001
GLEAN_LLM_MODEL=qwen3.5-35b-a3b

# Enable Go pprof profiling server (off by default).
# Set to a listen address like :6060 to enable, leave empty to disable.
# GLEAN_PPROF_ADDR=:6060

# ─────────────────────────────── FRONTEND (SvelteKit) ───────────────────────────

# Where the SvelteKit server finds the Go API. In the Docker setup they share a
# network namespace, so this is loopback.
GLEAN_API_URL=http://127.0.0.1:8080
# Port the SvelteKit Node server listens on.
PORT=3000