Email Agent — Configuration and Environment
Secrets
All secrets live in ~/.config/environment.d/10-secrets.conf on .13 (mode
600). The file is never committed. docker-compose.yml passes the names through
from the host environment.
| Key |
Purpose |
GMAIL_USER |
Gmail account that receives the forwarded mail. |
GMAIL_APP_PASSWORD |
Gmail app password for IMAP and SMTP. No OAuth. |
EMAIL_AGENT_SESSION_SECRET |
Session cookie signing key. |
EMAIL_AGENT_PASSWORD |
Login password for Sam. |
JEV_API_KEY |
JEV (TypeSafe System One) API key. |
OMNIROUTE_API_KEY |
OmniRoute API key for reply drafts. |
HUB_TOKEN |
Shared bearer token for the Hub API. |
APPRISE_URLS |
Apprise destination for the summary email. |
EMAIL_AGENT_SUMMARY_TO |
Summary recipient. |
environment.d reaches the systemd user manager. It does not reach a fresh SSH
shell. Read the values explicitly, or pass them to docker compose.
Runtime variables
| Variable |
Default |
Meaning |
EMAIL_AGENT_ENV |
development |
development, production, or test. |
EMAIL_AGENT_ADDR |
:8790 |
Listen address. |
EMAIL_AGENT_PORT |
8790 |
Listen port when ADDR is unset. |
EMAIL_AGENT_DB_PATH |
data/email_agent.db |
SQLite file. Container uses /data/email_agent.db. |
EMAIL_AGENT_LOG_LEVEL |
info |
debug, info, warn, error. |
EMAIL_AGENT_PUBLIC_BASE_URL |
— |
Public URL for links. |
Gmail variables
| Variable |
Default |
Meaning |
EMAIL_AGENT_IMAP_HOST |
imap.gmail.com |
IMAP host. |
EMAIL_AGENT_IMAP_PORT |
993 |
IMAP port. Implicit TLS. |
EMAIL_AGENT_IMAP_LOOKBACK_DAYS |
14 |
First-scan window. |
EMAIL_AGENT_IMAP_MAX_MESSAGES |
100 |
Per-scan message cap. |
EMAIL_AGENT_SMTP_HOST |
smtp.gmail.com |
SMTP submission host. |
EMAIL_AGENT_SMTP_PORT |
587 |
SMTP port. STARTTLS. |
The dialer uses tcp4. Gmail is reached over IPv4 only.
Model and integration variables
| Variable |
Default |
Meaning |
JEV_BASE_URL |
https://api.typesafe.ai |
JEV base URL. |
JEV_MODEL |
jev-latest |
System One model alias. |
EMAIL_AGENT_CLASSIFY_CONCURRENCY |
4 |
In-flight JEV requests. |
EMAIL_AGENT_CLASSIFY_MAX_MESSAGES |
200 |
Messages per classify run. |
OMNIROUTE_BASE_URL |
http://192.168.20.13:20129/v1 |
OmniRoute gateway. |
OMNIROUTE_MODEL |
auto/best-chat |
Reply-draft model. |
HUB_BASE_URL |
http://192.168.20.13:8788 |
Hub base URL. |
HUB_NOTIFY_TIMEOUT |
5s |
Notify call timeout. |
APPRISE_URL |
http://192.168.20.35:8210 |
Apprise API base. |
APPRISE_KEY |
— |
Stored Apprise configuration key. |
EMAIL_AGENT_SUMMARY_TO |
samuelrolfe@gmail.com |
Summary recipient. |
EMAIL_AGENT_RETENTION_DAYS |
30 |
Message-body window for -retain (AGENTS.md section 7). |
EMAIL_AGENT_ACTIONS_LOG_MAX_ROWS |
50000 |
Cap for the append-only actions_log. |
Config paths
| Path |
Role |
/home/sam/paseo/projects/email_agent/ |
Project source and docs. |
/home/sam/paseo/projects/email_agent/docker-compose.yml |
Own container and image. |
/home/sam/paseo/projects/email_agent/.env.example |
Full list of variable names. |
/data/email_agent.db |
SQLite file in the container. |
email_agent_data |
Docker named volume for the database. |
Ports
| Port |
Host |
Service |
8790 |
.13 |
Email Agent HTTP. |
443 |
.35 |
Caddy TLS for mail.lab.audasmedia.com.au. |
993 |
cloud |
Gmail IMAP to Gmail. |
587 |
cloud |
Gmail SMTP to Gmail. |
8788 |
.13 |
Central AI Hub. This service both serves and calls it. |
8210 |
.35 |
Apprise API. |
20129 |
.13 |
OmniRoute gateway. |