#
Configuration
Complete configuration reference for all bridge components.
#
Environment Variables
#
Common Variables
#
Inbound Service
#
SMTP Mode
#
Mailgun Mode
#
Outbound Service
#
SMTP Provider
#
Mailgun Provider
#
NIP-05 Service
#
Example Configurations
#
Minimal Self-Hosted Setup
# .env
INBOUND_PRIVATE_KEY=<your-hex-key>
BRIDGE_PRIVATE_KEY=<your-hex-key>
RELAYS=wss://relay.damus.io,wss://nos.lol
OUTBOUND_PROVIDER=smtp
FROM_DOMAIN=mail.yourdomain.com
SMTP_HOST=localhost
SMTP_PORT=25
#
Mailgun Setup
# .env
INBOUND_PRIVATE_KEY=<your-hex-key>
BRIDGE_PRIVATE_KEY=<your-hex-key>
MAILGUN_API_KEY=key-xxxxxxxxxx
MAILGUN_DOMAIN=mail.yourdomain.com
MAILGUN_WEBHOOK_SECRET=xxxxxxxxxx
RELAYS=wss://relay.damus.io,wss://nos.lol
OUTBOUND_PROVIDER=mailgun
FROM_DOMAIN=mail.yourdomain.com
HTTP_PORT=3001
#
With Plugin Filtering
# .env
INBOUND_PRIVATE_KEY=<your-hex-key>
RELAYS=wss://relay.damus.io,wss://nos.lol
PLUGIN_PATH=/opt/nostr-mail/plugins/uid_ovh
#
Docker Compose
version: '3.8'
services:
inbound:
build: ./bridge-inbound/smtp
ports:
- "25:25"
environment:
- INBOUND_PRIVATE_KEY=${INBOUND_PRIVATE_KEY}
- RELAYS=${RELAYS}
restart: unless-stopped
outbound:
build: ./bridge-outbound
environment:
- BRIDGE_PRIVATE_KEY=${BRIDGE_PRIVATE_KEY}
- RELAYS=${RELAYS}
- OUTBOUND_PROVIDER=smtp
- SMTP_HOST=postfix
- FROM_DOMAIN=${FROM_DOMAIN}
restart: unless-stopped
nip05:
build: ./nip05-service
ports:
- "3000:3000"
environment:
- BRIDGE_PUBKEY=${BRIDGE_PUBKEY}
volumes:
- ./data:/app/data
restart: unless-stopped
postfix:
image: postfix:latest
restart: unless-stopped
#
DNS Configuration
For a fully functional bridge, configure these DNS records:
#
SPF Record (optional but recommended)
v=spf1 mx ip4:YOUR_SERVER_IP -all
#
DKIM (optional but recommended)
Configure DKIM signing in your MTA for better deliverability.