openvibers/openvibe.mail .env.example

.env.example

main 4.3 KB · 105 lines · plaintext

1# OpenVibe.Mail — environment (production: /etc/openvibe/mail.env). Names only; never commit values.
2
3NODE_ENV=production
4PORT=5250
5HOST=127.0.0.1
6BASE_URL=https://openvibe.email
7TRUST_PROXY=2
8
9# PostgreSQL (ADR-035), written by OpenVibe.Host roles/data/add-service.sh: the runtime role through PgBouncer,
10# the owner on a direct connection (migrations), and Valkey (per-address rate counters).
11# Without DATABASE_URL, development uses an embedded PGlite database in data/pglite.
12DATABASE_URL=
13DATABASE_DIRECT_URL=
14VALKEY_URL=
15VALKEY_PREFIX=ov:mail:
16#MAIL_PGLITE_DIR=./data/pglite
17
18# OpenVibe.Network: the person's token is verified offline against the JWKS; a typed token (a `typ` or `purpose`
19# claim) is not a person's session and is refused.
20OV_NETWORK_URL=https://openvibe.network
21OV_NETWORK_INTERNAL_URL=http://127.0.0.1:4000
22# OV_NETWORK_ISSUER=https://openvibe.network
23# OV_SESSION_AUDIENCE=openvibe.network
24# MAIL_AUDIENCE=openvibe.mail
25
26# Sign-in on openvibe.email (openvibe-sdk/sso, OAuth2 + PKCE). The client must be registered in the Network with
27# redirect https://openvibe.email/auth/callback. COOKIE_SECURE defaults to true in production.
28OV_OAUTH_CLIENT_ID=mail
29OV_OAUTH_CLIENT_SECRET=
30# OV_OAUTH_REDIRECT_URI=https://openvibe.email/auth/callback
31# OV_OAUTH_SCOPE=profile
32# COOKIE_SECURE=true
33
34# The addresses. Masks live on their own domain, burners rotate over the subdomains below, and an agent's inbox is
35# <agent>.<user>@<base domain>. A new burner domain needs no code: add it here and restart.
36MAIL_BASE_DOMAIN=openvibe.email
37MAIL_MASK_DOMAIN=mask.openvibe.email
38BURNER_DOMAINS=burn1.openvibe.email,burn2.openvibe.email,burn3.openvibe.email
39
40# Stalwart (the mail server itself), reached over loopback only. The admin credential is used for the management
41# API (domains, cache invalidation) and to read a person's mailbox over JMAP.
42STALWART_URL=http://127.0.0.1:8080
43STALWART_ADMIN_USER=admin
44STALWART_ADMIN_PASSWORD=
45
46# Stalwart's own settings (deploy/stalwart/config.toml reads the same names).
47STALWART_DB_HOST=127.0.0.1
48STALWART_DB_PORT=5432
49STALWART_DB_NAME=ov_mail
50STALWART_DB_USER=
51STALWART_DB_PASSWORD=
52
53# Blobs: local disk by default (M1). STALWART_BLOB_STORE=s3 turns on the B2/MinIO path below; with fs only
54# STALWART_BLOB_PATH and STALWART_BLOB_DEPTH matter. The depth must not change after blobs are written.
55STALWART_BLOB_STORE=fs
56STALWART_BLOB_PATH=/var/lib/openvibe-stalwart/blobs
57STALWART_BLOB_DEPTH=2
58STALWART_BLOB_ENDPOINT=
59STALWART_BLOB_BUCKET=
60STALWART_BLOB_ACCESS_KEY_ID=
61STALWART_BLOB_SECRET_KEY=
62STALWART_BLOB_REGION=us-east-1
63
64# OpenVibe.Events: the outbox relay publishes mail.received and mail.mask.created. Unset keeps the rows in the
65# outbox and status() says the relay is off.
66MAIL_EVENTS_URL=
67MAIL_EVENTS_CLIENT_ID=mail
68MAIL_EVENTS_CLIENT_SECRET=
69#MAIL_EVENTS_INTERVAL_MS=5000
70
71# Caps (server/domain/limits.js).
72#MAIL_MAX_MASKS=20
73#MAIL_MAX_LIVE_BURNERS=5
74# A global ceiling on anonymous burners alive at once: 503 mail.burner_capacity past it.
75#MAIL_MAX_LIVE_ANON_BURNERS=2000
76# Per IP: ten anonymous burners an hour, each living at most ten minutes.
77#MAIL_BURNERS_PER_IP_HOUR=10
78#MAIL_ANON_BURNER_TTL_MINUTES=10
79#MAIL_API_RATE_LIMIT_PER_MIN=240
80#MAIL_PURGE_INTERVAL_MS=60000
81
82# Sending an agent's reply (track HO6). A reply to one of our own domains (the base, the mask domain, a burner
83# domain) is handed to the mail server over loopback SMTP below: no relay and no packet off the host.
84# Sending to anyone else is NOT ours yet (plan M2: it waits on the owner for a separate mail IPv4, its PTR record
85# and Workers Paid for the relay). MAIL_OUTBOUND=on is the only way on, and it is OFF unless set: with it off a
86# reply to an outside address opens no connection at all and the agent's system turns it into the person's approval.
87MAIL_SMTP_HOST=127.0.0.1
88MAIL_SMTP_PORT=25
89# MX target for a person's custom domain. Set to the hostname that hands inbound SMTP to this Stalwart instance.
90# A custom domain cannot pass MX verification while this is empty.
91#MAIL_CUSTOM_DOMAIN_MX=mail.openvibe.email
92#MAIL_OUTBOUND=off
93#MAIL_RELAY_HOST=
94#MAIL_RELAY_PORT=587
95#MAIL_RELAY_USER=
96#MAIL_RELAY_PASSWORD=
97#MAIL_RELAY_SECURE=false
98#MAIL_RELAY_STARTTLS=true
99
100# Answering (track HO6): the due poll that tells an agent's system about the mail at its own address, for an inbox
101# whose switch the person turned on.
102#MAIL_AGENT_MAIL_INTERVAL_MS=30000
103#MAIL_AGENT_MAIL_BATCH=50
104#MAIL_AGENT_MAIL_SCAN=100
105