Files
inbound-email/config.js
T
mherrlein 93f7d78c27
Docker / build (push) Canceled after 0s
Add webhook bearer token support
2026-09-02 15:17:05 +02:00

42 lines
1.6 KiB
JavaScript

const dotenv = require('dotenv');
const AWS = require('aws-sdk');
dotenv.config();
function integerFromEnv(name, fallback) {
const value = process.env[name];
if (value === undefined || value === '') return fallback;
return Number(value);
}
module.exports = {
WEBHOOK_URL: process.env.WEBHOOK_URL,
WEBHOOK_BEARER_TOKEN: process.env.WEBHOOK_BEARER_TOKEN || undefined,
PORT: integerFromEnv('PORT', 25),
MAX_FILE_SIZE: integerFromEnv('MAX_FILE_SIZE', 5 * 1024 * 1024),
MAX_MESSAGE_SIZE: integerFromEnv('MAX_MESSAGE_SIZE', 25 * 1024 * 1024),
MAX_SMTP_CLIENTS: integerFromEnv('MAX_SMTP_CLIENTS', 50),
SMTP_SOCKET_TIMEOUT: integerFromEnv('SMTP_SOCKET_TIMEOUT', 5 * 60 * 1000),
SMTP_CLOSE_TIMEOUT: integerFromEnv('SMTP_CLOSE_TIMEOUT', 10 * 1000),
SMTP_ALLOWED_IPS: (process.env.SMTP_ALLOWED_IPS || '')
.split(',')
.map(ip => ip.trim())
.filter(Boolean),
BUCKET_NAME: process.env.S3_BUCKET_NAME,
SMTP_SECURE: process.env.SMTP_SECURE === 'true',
TLS_KEY_PATH: process.env.TLS_KEY_PATH,
TLS_CERT_PATH: process.env.TLS_CERT_PATH,
WEBHOOK_CONCURRENCY: integerFromEnv('WEBHOOK_CONCURRENCY', 5),
WEBHOOK_QUEUE_RETRIES: integerFromEnv('WEBHOOK_QUEUE_RETRIES', 10),
WEBHOOK_QUEUE_RETRY_DELAY: integerFromEnv('WEBHOOK_QUEUE_RETRY_DELAY', 60 * 1000),
WEBHOOK_QUEUE_TIMEOUT: integerFromEnv('WEBHOOK_QUEUE_TIMEOUT', 35 * 1000),
SPOOL_DIR: process.env.SPOOL_DIR || '/var/lib/smtpwebhook/spool',
LOG_DIR: process.env.LOG_DIR || '/var/lib/smtpwebhook/logs',
s3: new AWS.S3({
region: process.env.AWS_REGION,
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY
})
};