Refresh of the open-core distribution from the private tree. Included since the previous snapshot: - Mail module (ADR-158/159/160/169): composer, labels, scheduling, attachments, reply-tokens, IMAP/SMTP bridge + migrations 079-083 - Crawler-readable SSR for /blog and public spaces (ADR-190): blogSeo, publicDocsSeo, per-space SEO prefs, blog index/post pages - Registration policy + referral/promo settings (ADR-183/188) - Message translation + language detection (ADR-185) - Reddit connector for the agent-tool surface Excised from the public distribution (unchanged policy): infrastructure topology and host config, internal ops scripts, DB cleanup snapshots, business documents, throwaway debug scripts, and two private product lines (SC-SIM simulator, personal one-off tools). Real host addresses are replaced with placeholders; credential-shaped literals are redacted. Frontend build verified green on this tree.
76 lines
3.2 KiB
Text
76 lines
3.2 KiB
Text
# GOD CRM self-host configuration.
|
|
# Copy to `.env` (cp env.example .env) and fill in.
|
|
# `install.sh` creates this file and generates the secrets for you.
|
|
|
|
# ---- How you reach the app ----
|
|
# Host port the CRM is published on.
|
|
APP_PORT=5000
|
|
# Public origin(s) the browser uses, comma-separated. MUST match how you open
|
|
# the app (a mismatch serves a white screen — CORS gates the static assets).
|
|
# Examples: http://localhost:5000 | https://crm.example.com
|
|
PUBLIC_URL=http://localhost:5000
|
|
|
|
# ---- Database (CRM) ----
|
|
POSTGRES_DB=godcrm
|
|
POSTGRES_USER=godcrm
|
|
# REQUIRED. Generate: openssl rand -hex 24
|
|
POSTGRES_PASSWORD=
|
|
|
|
# ---- Secrets (REQUIRED) ----
|
|
# Generate each: openssl rand -hex 32 (SECRETS_MASTER_KEY: openssl rand -base64 32)
|
|
JWT_SECRET=
|
|
SESSION_SECRET=
|
|
ENCRYPTION_KEY=
|
|
MASTER_ENCRYPTION_KEY=
|
|
SECRETS_MASTER_KEY=
|
|
CRM_CREDENTIAL_KEY=
|
|
|
|
# Postgres image for the CRM database. pgvector/pgvector:pg16 is stock
|
|
# Postgres 16 plus the `vector` extension — it is the default in every mode so
|
|
# that turning memory on later never means swapping the image under an
|
|
# existing data volume.
|
|
DB_IMAGE=pgvector/pgvector:pg16
|
|
|
|
# ---- RCLL memory (OPTIONAL) ----
|
|
# Three modes; `install.sh` asks and sets this for you.
|
|
# none — no memory at all. Nothing below is used.
|
|
# embedded — memory lives in schema MEMORY_SCHEMA inside the CRM database.
|
|
# One database to run and back up. Memory migrations are DDL
|
|
# against your CRM database — see MEMORY_RUN_MIGRATIONS.
|
|
# standalone — memory gets its own database, container and volume. Two
|
|
# databases to back up; the CRM database is never touched by
|
|
# memory DDL.
|
|
# Same image and the same data model either way — this is a placement choice,
|
|
# not a feature tier. Change it later by re-running with the other profile
|
|
# (the data does not move by itself: dump and load it).
|
|
MEMORY_MODE=none
|
|
|
|
# Memory image. NOT PUBLISHED YET — this path goes live with the first
|
|
# release; until then, enabling memory needs an image you built yourself.
|
|
# Pin a digest here if you want to freeze the version.
|
|
MEMORY_IMAGE=ghcr.io/holetron-lab/fleet-memory:0.1.0
|
|
|
|
# Where the CRM finds memory. Both topologies answer on the same alias —
|
|
# leave as-is unless you run memory outside this compose file.
|
|
HINDSIGHT_URL=http://hindsight:5100
|
|
|
|
# embedded only — the schema memory owns inside the CRM database. It is
|
|
# created and upgraded by memory's own migrations; nothing else writes there.
|
|
MEMORY_SCHEMA=hindsight_v2
|
|
|
|
# Run memory migrations on container start. A FRESH install needs this once to
|
|
# build the schema. In `embedded` mode this is DDL against your CRM database on
|
|
# every restart — once you are past the first boot, set it to false and run
|
|
# upgrades deliberately (after a backup).
|
|
MEMORY_RUN_MIGRATIONS=true
|
|
|
|
# standalone only — password for memory's own database. Generate: openssl rand -hex 24
|
|
HINDSIGHT_DB_PASSWORD=
|
|
|
|
# LLM used to CLASSIFY memories on write. The read path never calls a model.
|
|
# `none` is fully supported: writes still work, only classification quality
|
|
# degrades. Leave LLM_PROVIDER=none if you have no key — a real provider with
|
|
# an empty key fails to boot and restarts forever.
|
|
LLM_PROVIDER=none
|
|
LLM_API_KEY=
|
|
LLM_MODEL=gpt-4o-mini
|