2025-01-07 16:41:09 +01:00
|
|
|
const optionDefinitions = [
|
|
|
|
{ name: 'config', alias: 'c', type: String },
|
|
|
|
{ name: 'metadata', alias: 'm', type: String },
|
|
|
|
{ name: 'port', alias: 'p', type: String },
|
|
|
|
{ name: 'host', alias: 'h', type: String },
|
|
|
|
{ name: 'source', alias: 's', type: String },
|
|
|
|
{ name: 'dev', alias: 'd', type: Boolean }
|
|
|
|
]
|
|
|
|
|
|
|
|
const commandLineArgs = require('./server/libs/commandLineArgs')
|
|
|
|
const options = commandLineArgs(optionDefinitions)
|
|
|
|
|
|
|
|
const Path = require('path')
|
|
|
|
process.env.NODE_ENV = options.dev ? 'development' : process.env.NODE_ENV || 'production'
|
|
|
|
|
2021-08-18 00:01:11 +02:00
|
|
|
const server = require('./server/Server')
|
|
|
|
global.appRoot = __dirname
|
|
|
|
|
|
|
|
const isDev = process.env.NODE_ENV !== 'production'
|
|
|
|
if (isDev) {
|
|
|
|
const devEnv = require('./dev').config
|
2022-12-26 23:55:14 +01:00
|
|
|
if (devEnv.Port) process.env.PORT = devEnv.Port
|
|
|
|
if (devEnv.ConfigPath) process.env.CONFIG_PATH = devEnv.ConfigPath
|
|
|
|
if (devEnv.MetadataPath) process.env.METADATA_PATH = devEnv.MetadataPath
|
|
|
|
if (devEnv.FFmpegPath) process.env.FFMPEG_PATH = devEnv.FFmpegPath
|
|
|
|
if (devEnv.FFProbePath) process.env.FFPROBE_PATH = devEnv.FFProbePath
|
2024-10-01 16:15:44 +02:00
|
|
|
if (devEnv.NunicodePath) process.env.NUSQLITE3_PATH = devEnv.NunicodePath
|
2024-03-14 22:29:01 +01:00
|
|
|
if (devEnv.SkipBinariesCheck) process.env.SKIP_BINARIES_CHECK = '1'
|
2024-12-07 00:17:32 +01:00
|
|
|
if (devEnv.AllowIframe) process.env.ALLOW_IFRAME = '1'
|
2024-06-19 00:10:49 +02:00
|
|
|
if (devEnv.BackupPath) process.env.BACKUP_PATH = devEnv.BackupPath
|
2022-05-15 00:23:22 +02:00
|
|
|
process.env.SOURCE = 'local'
|
2022-10-01 23:07:30 +02:00
|
|
|
process.env.ROUTER_BASE_PATH = devEnv.RouterBasePath || ''
|
2021-08-18 00:01:11 +02:00
|
|
|
}
|
|
|
|
|
2025-01-07 16:41:09 +01:00
|
|
|
const inputConfig = options.config ? Path.resolve(options.config) : null
|
|
|
|
const inputMetadata = options.metadata ? Path.resolve(options.metadata) : null
|
|
|
|
|
|
|
|
const PORT = options.port || process.env.PORT || 3333
|
|
|
|
const HOST = options.host || process.env.HOST
|
|
|
|
const CONFIG_PATH = inputConfig || process.env.CONFIG_PATH || Path.resolve('config')
|
|
|
|
const METADATA_PATH = inputMetadata || process.env.METADATA_PATH || Path.resolve('metadata')
|
|
|
|
const SOURCE = options.source || process.env.SOURCE || 'debian'
|
|
|
|
|
2025-01-09 06:41:09 +01:00
|
|
|
const ROUTER_BASE_PATH = process.env.ROUTER_BASE_PATH || '/audiobookshelf'
|
2021-08-18 00:01:11 +02:00
|
|
|
|
2025-01-07 16:41:09 +01:00
|
|
|
console.log(`Running in ${process.env.NODE_ENV} mode.`)
|
|
|
|
console.log(`Options: CONFIG_PATH=${CONFIG_PATH}, METADATA_PATH=${METADATA_PATH}, PORT=${PORT}, HOST=${HOST}, SOURCE=${SOURCE}, ROUTER_BASE_PATH=${ROUTER_BASE_PATH}`)
|
2021-08-18 00:01:11 +02:00
|
|
|
|
2024-03-11 17:11:13 +01:00
|
|
|
const Server = new server(SOURCE, PORT, HOST, CONFIG_PATH, METADATA_PATH, ROUTER_BASE_PATH)
|
2021-08-18 00:01:11 +02:00
|
|
|
Server.start()
|