refactor: remove inline conf comments

This commit is contained in:
Anton Voylenko 2025-10-02 11:43:40 +03:00
commit 4c2745fcc3
4 changed files with 54 additions and 36 deletions

View file

@ -1,31 +1,54 @@
## Application ## ## Application ##
PORT=3000 # OPTIONAL, DEFAULT 3000 # OPTIONAL, DEFAULT 3000
API_KEY=SET_YOUR_API_KEY_HERE # OPTIONAL, IF SET, ALL REQUESTS MUST INCLUDE THIS IN THE 'x-api-key' HEADER PORT=3000
BASE_WEBHOOK_URL=http://localhost:3000/localCallbackExample # MANDATORY # OPTIONAL, IF SET, ALL REQUESTS MUST INCLUDE THIS IN THE 'x-api-key' HEADER
ENABLE_LOCAL_CALLBACK_EXAMPLE=TRUE # OPTIONAL, DISABLE FOR PRODUCTION API_KEY=SET_YOUR_API_KEY_HERE
RATE_LIMIT_MAX=1000 # OPTIONAL, THE MAXIMUM NUMBER OF CONNECTIONS TO ALLOW PER TIME FRAME # MANDATORY
RATE_LIMIT_WINDOW_MS=1000 # OPTIONAL, TIME FRAME FOR WHICH REQUESTS ARE CHECKED IN MS BASE_WEBHOOK_URL=http://localhost:3000/localCallbackExample
# OPTIONAL, DISABLE FOR PRODUCTION
ENABLE_LOCAL_CALLBACK_EXAMPLE=TRUE
# OPTIONAL, THE MAXIMUM NUMBER OF CONNECTIONS TO ALLOW PER TIME FRAME
RATE_LIMIT_MAX=1000
# OPTIONAL, TIME FRAME FOR WHICH REQUESTS ARE CHECKED IN MS
RATE_LIMIT_WINDOW_MS=1000
## Client ## ## Client ##
MAX_ATTACHMENT_SIZE=10000000 # IF REACHED, MEDIA ATTACHMENT BODY WILL BE NULL # IF REACHED, MEDIA ATTACHMENT BODY WILL BE NULL
SET_MESSAGES_AS_SEEN=TRUE # WILL MARK THE MESSAGES AS READ AUTOMATICALLY MAX_ATTACHMENT_SIZE=10000000
# WILL MARK THE MESSAGES AS READ AUTOMATICALLY
SET_MESSAGES_AS_SEEN=TRUE
# PREVENT SENDING CERTAIN TYPES OF CALLBACKS BACK TO THE WEBHOOK
# ALL CALLBACKS: auth_failure|authenticated|call|change_state|disconnected|group_join|group_leave|group_update|loading_screen|media_uploaded|message|message_ack|message_create|message_reaction|message_revoke_everyone|qr|ready|contact_changed|unread_count|message_edit|message_ciphertext # ALL CALLBACKS: auth_failure|authenticated|call|change_state|disconnected|group_join|group_leave|group_update|loading_screen|media_uploaded|message|message_ack|message_create|message_reaction|message_revoke_everyone|qr|ready|contact_changed|unread_count|message_edit|message_ciphertext
DISABLED_CALLBACKS=message_ack|message_reaction|unread_count|message_edit|message_ciphertext # PREVENT SENDING CERTAIN TYPES OF CALLBACKS BACK TO THE WEBHOOK DISABLED_CALLBACKS=message_ack|message_reaction|unread_count|message_edit|message_ciphertext
WEB_VERSION='2.2328.5' # OPTIONAL, THE VERSION OF WHATSAPP WEB TO USE # OPTIONAL, THE VERSION OF WHATSAPP WEB TO USE
WEB_VERSION_CACHE_TYPE=none # OPTIONAL, DETERMINES WHERE TO GET THE WHATSAPP WEB VERSION(local, remote or none), DEFAULT 'none' WEB_VERSION='2.2328.5'
RECOVER_SESSIONS=TRUE # OPTIONAL, SHOULD WE RECOVER THE SESSION IN CASE OF PAGE FAILURES # OPTIONAL, DETERMINES WHERE TO GET THE WHATSAPP WEB VERSION(local, remote or none), DEFAULT 'none'
CHROME_BIN= # OPTIONAL, PATH TO CHROME BINARY WEB_VERSION_CACHE_TYPE=none
HEADLESS=TRUE # OPTIONAL, RUN CHROME IN HEADLESS MODE # OPTIONAL, SHOULD WE RECOVER THE SESSION IN CASE OF PAGE FAILURES
RELEASE_BROWSER_LOCK=TRUE # OPTIONAL, RELEASE THE BROWSER LOCK ON SESSION INITIALIZATION RECOVER_SESSIONS=TRUE
LOG_LEVEL=info # OPTIONAL, SET THE LOG LEVEL # OPTIONAL, PATH TO CHROME BINARY
ENABLE_WEBHOOK=TRUE # OPTIONAL, ENABLE WEBHOOK FOR REALTIME UPDATES(TRUE BY DEFAULT) CHROME_BIN=
ENABLE_WEBSOCKET=FALSE # OPTIONAL, ENABLE WEBSOCKET FOR REALTIME UPDATES(FALSE BY DEFAULT) # OPTIONAL, RUN CHROME IN HEADLESS MODE
AUTO_START_SESSIONS=TRUE # OPTIONAL, AUTO START SESSIONS ON SERVER STARTUP(TRUE BY DEFAULT) HEADLESS=TRUE
# OPTIONAL, RELEASE THE BROWSER LOCK ON SESSION INITIALIZATION
RELEASE_BROWSER_LOCK=TRUE
# OPTIONAL, SET THE LOG LEVEL
LOG_LEVEL=info
# OPTIONAL, ENABLE WEBHOOK FOR REALTIME UPDATES(TRUE BY DEFAULT)
ENABLE_WEBHOOK=TRUE
# OPTIONAL, ENABLE WEBSOCKET FOR REALTIME UPDATES(FALSE BY DEFAULT)
ENABLE_WEBSOCKET=FALSE
# OPTIONAL, AUTO START SESSIONS ON SERVER STARTUP(TRUE BY DEFAULT)
AUTO_START_SESSIONS=TRUE
## Session File Storage ## ## Session File Storage ##
SESSIONS_PATH=./sessions # OPTIONAL # OPTIONAL
ENABLE_SWAGGER_ENDPOINT=TRUE # OPTIONAL, ENABLE SWAGGER ENDPOINT FOR API DOCUMENTATION SESSIONS_PATH=./sessions
# OPTIONAL, ENABLE SWAGGER ENDPOINT FOR API DOCUMENTATION
ENABLE_SWAGGER_ENDPOINT=TRUE
## Reverse Proxy / Load Balancer ## ## Reverse Proxy / Load Balancer ##
BASE_PATH= # OPTIONAL, BASE PATH FOR MOUNTING ROUTES (e.g., /api/v1/whatsapp) # OPTIONAL, BASE PATH FOR MOUNTING ROUTES (e.g., /api/v1/whatsapp)
TRUST_PROXY=FALSE # OPTIONAL, ENABLE WHEN BEHIND REVERSE PROXY/LOAD BALANCER BASE_PATH=
# OPTIONAL, ENABLE WHEN BEHIND REVERSE PROXY/LOAD BALANCER
TRUST_PROXY=FALSE

View file

@ -1,23 +1,17 @@
// Load environment variables first
require('dotenv').config({ path: process.env.ENV_PATH || '.env' })
const app = require('./src/app') const app = require('./src/app')
const { baseWebhookURL, enableWebHook, enableWebSocket, autoStartSessions } = require('./src/config') const { servicePort, baseWebhookURL, enableWebHook, enableWebSocket, autoStartSessions } = require('./src/config')
const { logger } = require('./src/logger') const { logger } = require('./src/logger')
const { handleUpgrade } = require('./src/websocket') const { handleUpgrade } = require('./src/websocket')
const { restoreSessions } = require('./src/sessions') const { restoreSessions } = require('./src/sessions')
// Start the server
const port = process.env.PORT || 3000
// Check if BASE_WEBHOOK_URL environment variable is available when WebHook is enabled // Check if BASE_WEBHOOK_URL environment variable is available when WebHook is enabled
if (!baseWebhookURL && enableWebHook) { if (!baseWebhookURL && enableWebHook) {
logger.error('BASE_WEBHOOK_URL environment variable is not set. Exiting...') logger.error('BASE_WEBHOOK_URL environment variable is not set. Exiting...')
process.exit(1) // Terminate the application with an error code process.exit(1) // Terminate the application with an error code
} }
const server = app.listen(port, () => { const server = app.listen(servicePort, () => {
logger.info(`Server running on port ${port}`) logger.info(`Server running on port ${servicePort}`)
logger.debug({ configuration: require('./src/config') }, 'Service configuration') logger.debug({ configuration: require('./src/config') }, 'Service configuration')
if (autoStartSessions) { if (autoStartSessions) {
logger.info('Starting all sessions') logger.info('Starting all sessions')

View file

@ -17,7 +17,6 @@ app.use(express.json({ limit: maxAttachmentSize + 1000000 }))
app.use(express.urlencoded({ limit: maxAttachmentSize + 1000000, extended: true })) app.use(express.urlencoded({ limit: maxAttachmentSize + 1000000, extended: true }))
// Mount routes with configurable base path // Mount routes with configurable base path
const mountPath = basePath || '/' app.use(basePath, routes)
app.use(mountPath, routes)
module.exports = app module.exports = app

View file

@ -1,7 +1,8 @@
// Load environment variables from .env file // Load environment variables from .env file
require('dotenv').config() require('dotenv').config({ path: process.env.ENV_PATH || '.env' })
// setup global const // setup global const
const servicePort = process.env.PORT || 3000
const sessionFolderPath = process.env.SESSIONS_PATH || './sessions' const sessionFolderPath = process.env.SESSIONS_PATH || './sessions'
const enableLocalCallbackExample = (process.env.ENABLE_LOCAL_CALLBACK_EXAMPLE || '').toLowerCase() === 'true' const enableLocalCallbackExample = (process.env.ENABLE_LOCAL_CALLBACK_EXAMPLE || '').toLowerCase() === 'true'
const globalApiKey = process.env.API_KEY const globalApiKey = process.env.API_KEY
@ -22,10 +23,11 @@ const logLevel = process.env.LOG_LEVEL || 'info'
const enableWebHook = process.env.ENABLE_WEBHOOK ? (process.env.ENABLE_WEBHOOK).toLowerCase() === 'true' : true const enableWebHook = process.env.ENABLE_WEBHOOK ? (process.env.ENABLE_WEBHOOK).toLowerCase() === 'true' : true
const enableWebSocket = process.env.ENABLE_WEBSOCKET ? (process.env.ENABLE_WEBSOCKET).toLowerCase() === 'true' : false const enableWebSocket = process.env.ENABLE_WEBSOCKET ? (process.env.ENABLE_WEBSOCKET).toLowerCase() === 'true' : false
const autoStartSessions = process.env.AUTO_START_SESSIONS ? (process.env.AUTO_START_SESSIONS).toLowerCase() === 'true' : true const autoStartSessions = process.env.AUTO_START_SESSIONS ? (process.env.AUTO_START_SESSIONS).toLowerCase() === 'true' : true
const basePath = process.env.BASE_PATH || '' const basePath = process.env.BASE_PATH || '/'
const trustProxy = process.env.TRUST_PROXY ? (process.env.TRUST_PROXY).toLowerCase() === 'true' : false const trustProxy = process.env.TRUST_PROXY ? (process.env.TRUST_PROXY).toLowerCase() === 'true' : false
module.exports = { module.exports = {
servicePort,
sessionFolderPath, sessionFolderPath,
enableLocalCallbackExample, enableLocalCallbackExample,
globalApiKey, globalApiKey,