refactor: remove inline conf comments
This commit is contained in:
parent
f409381050
commit
4c2745fcc3
4 changed files with 54 additions and 36 deletions
69
.env.example
69
.env.example
|
|
@ -1,31 +1,54 @@
|
|||
## Application ##
|
||||
PORT=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
|
||||
BASE_WEBHOOK_URL=http://localhost:3000/localCallbackExample # MANDATORY
|
||||
ENABLE_LOCAL_CALLBACK_EXAMPLE=TRUE # OPTIONAL, DISABLE FOR PRODUCTION
|
||||
RATE_LIMIT_MAX=1000 # OPTIONAL, THE MAXIMUM NUMBER OF CONNECTIONS TO ALLOW PER TIME FRAME
|
||||
RATE_LIMIT_WINDOW_MS=1000 # OPTIONAL, TIME FRAME FOR WHICH REQUESTS ARE CHECKED IN MS
|
||||
# OPTIONAL, DEFAULT 3000
|
||||
PORT=3000
|
||||
# OPTIONAL, IF SET, ALL REQUESTS MUST INCLUDE THIS IN THE 'x-api-key' HEADER
|
||||
API_KEY=SET_YOUR_API_KEY_HERE
|
||||
# MANDATORY
|
||||
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 ##
|
||||
MAX_ATTACHMENT_SIZE=10000000 # IF REACHED, MEDIA ATTACHMENT BODY WILL BE NULL
|
||||
SET_MESSAGES_AS_SEEN=TRUE # WILL MARK THE MESSAGES AS READ AUTOMATICALLY
|
||||
# IF REACHED, MEDIA ATTACHMENT BODY WILL BE NULL
|
||||
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
|
||||
DISABLED_CALLBACKS=message_ack|message_reaction|unread_count|message_edit|message_ciphertext # PREVENT SENDING CERTAIN TYPES OF CALLBACKS BACK TO THE WEBHOOK
|
||||
WEB_VERSION='2.2328.5' # 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'
|
||||
RECOVER_SESSIONS=TRUE # OPTIONAL, SHOULD WE RECOVER THE SESSION IN CASE OF PAGE FAILURES
|
||||
CHROME_BIN= # OPTIONAL, PATH TO CHROME BINARY
|
||||
HEADLESS=TRUE # OPTIONAL, RUN CHROME IN HEADLESS MODE
|
||||
RELEASE_BROWSER_LOCK=TRUE # OPTIONAL, RELEASE THE BROWSER LOCK ON SESSION INITIALIZATION
|
||||
LOG_LEVEL=info # OPTIONAL, SET THE LOG LEVEL
|
||||
ENABLE_WEBHOOK=TRUE # OPTIONAL, ENABLE WEBHOOK FOR REALTIME UPDATES(TRUE BY DEFAULT)
|
||||
ENABLE_WEBSOCKET=FALSE # OPTIONAL, ENABLE WEBSOCKET FOR REALTIME UPDATES(FALSE BY DEFAULT)
|
||||
AUTO_START_SESSIONS=TRUE # OPTIONAL, AUTO START SESSIONS ON SERVER STARTUP(TRUE BY DEFAULT)
|
||||
DISABLED_CALLBACKS=message_ack|message_reaction|unread_count|message_edit|message_ciphertext
|
||||
# OPTIONAL, THE VERSION OF WHATSAPP WEB TO USE
|
||||
WEB_VERSION='2.2328.5'
|
||||
# OPTIONAL, DETERMINES WHERE TO GET THE WHATSAPP WEB VERSION(local, remote or none), DEFAULT 'none'
|
||||
WEB_VERSION_CACHE_TYPE=none
|
||||
# OPTIONAL, SHOULD WE RECOVER THE SESSION IN CASE OF PAGE FAILURES
|
||||
RECOVER_SESSIONS=TRUE
|
||||
# OPTIONAL, PATH TO CHROME BINARY
|
||||
CHROME_BIN=
|
||||
# OPTIONAL, RUN CHROME IN HEADLESS MODE
|
||||
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 ##
|
||||
SESSIONS_PATH=./sessions # OPTIONAL
|
||||
ENABLE_SWAGGER_ENDPOINT=TRUE # OPTIONAL, ENABLE SWAGGER ENDPOINT FOR API DOCUMENTATION
|
||||
# OPTIONAL
|
||||
SESSIONS_PATH=./sessions
|
||||
# OPTIONAL, ENABLE SWAGGER ENDPOINT FOR API DOCUMENTATION
|
||||
ENABLE_SWAGGER_ENDPOINT=TRUE
|
||||
|
||||
## Reverse Proxy / Load Balancer ##
|
||||
BASE_PATH= # OPTIONAL, BASE PATH FOR MOUNTING ROUTES (e.g., /api/v1/whatsapp)
|
||||
TRUST_PROXY=FALSE # OPTIONAL, ENABLE WHEN BEHIND REVERSE PROXY/LOAD BALANCER
|
||||
# OPTIONAL, BASE PATH FOR MOUNTING ROUTES (e.g., /api/v1/whatsapp)
|
||||
BASE_PATH=
|
||||
# OPTIONAL, ENABLE WHEN BEHIND REVERSE PROXY/LOAD BALANCER
|
||||
TRUST_PROXY=FALSE
|
||||
12
server.js
12
server.js
|
|
@ -1,23 +1,17 @@
|
|||
// Load environment variables first
|
||||
require('dotenv').config({ path: process.env.ENV_PATH || '.env' })
|
||||
|
||||
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 { handleUpgrade } = require('./src/websocket')
|
||||
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
|
||||
if (!baseWebhookURL && enableWebHook) {
|
||||
logger.error('BASE_WEBHOOK_URL environment variable is not set. Exiting...')
|
||||
process.exit(1) // Terminate the application with an error code
|
||||
}
|
||||
|
||||
const server = app.listen(port, () => {
|
||||
logger.info(`Server running on port ${port}`)
|
||||
const server = app.listen(servicePort, () => {
|
||||
logger.info(`Server running on port ${servicePort}`)
|
||||
logger.debug({ configuration: require('./src/config') }, 'Service configuration')
|
||||
if (autoStartSessions) {
|
||||
logger.info('Starting all sessions')
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ app.use(express.json({ limit: maxAttachmentSize + 1000000 }))
|
|||
app.use(express.urlencoded({ limit: maxAttachmentSize + 1000000, extended: true }))
|
||||
|
||||
// Mount routes with configurable base path
|
||||
const mountPath = basePath || '/'
|
||||
app.use(mountPath, routes)
|
||||
app.use(basePath, routes)
|
||||
|
||||
module.exports = app
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
// Load environment variables from .env file
|
||||
require('dotenv').config()
|
||||
require('dotenv').config({ path: process.env.ENV_PATH || '.env' })
|
||||
|
||||
// setup global const
|
||||
const servicePort = process.env.PORT || 3000
|
||||
const sessionFolderPath = process.env.SESSIONS_PATH || './sessions'
|
||||
const enableLocalCallbackExample = (process.env.ENABLE_LOCAL_CALLBACK_EXAMPLE || '').toLowerCase() === 'true'
|
||||
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 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 basePath = process.env.BASE_PATH || ''
|
||||
const basePath = process.env.BASE_PATH || '/'
|
||||
const trustProxy = process.env.TRUST_PROXY ? (process.env.TRUST_PROXY).toLowerCase() === 'true' : false
|
||||
|
||||
module.exports = {
|
||||
servicePort,
|
||||
sessionFolderPath,
|
||||
enableLocalCallbackExample,
|
||||
globalApiKey,
|
||||
|
|
|
|||
Loading…
Reference in a new issue