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 ##
|
## 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
|
||||||
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 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')
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue