diff --git a/config.ts b/config.ts index 829e871cb..bd4e38e2d 100644 --- a/config.ts +++ b/config.ts @@ -35,7 +35,7 @@ const {argv: argvObj} = yargs(process.argv.slice(2)) alias: 'p', default: 3000, describe: 'The port that Flood should listen for web connections on', - type: 'number', + type: 'string', }) .option('secret', { alias: 's', diff --git a/server/bin/web-server.ts b/server/bin/web-server.ts index c988ce19c..e85e106b1 100755 --- a/server/bin/web-server.ts +++ b/server/bin/web-server.ts @@ -96,8 +96,11 @@ const startWebServer = () => { server.on('error', handleError); server.on('listening', handleListening); + process.on('exit', () => { + server.close(); + }); - const address = chalk.underline(`${useSSL ? 'https' : 'http'}://${host}:${port}`); + const address = chalk.underline(typeof port === 'string' ? port : `${useSSL ? 'https' : 'http'}://${host}:${port}`); console.log(chalk.green(`Flood server ${packageJSON.version} starting on ${address}\n`)); diff --git a/shared/schema/Config.ts b/shared/schema/Config.ts index 38918b7f9..2022acb06 100644 --- a/shared/schema/Config.ts +++ b/shared/schema/Config.ts @@ -67,11 +67,11 @@ export const configSchema = strictObject({ // CLI argument: --host / -h // The host that Flood should listen for web connections on. // To listen on all interfaces, change to `floodServerHost: '0.0.0.0'`. [default: '127.0.0.1'] - floodServerHost: string(), + floodServerHost: string().optional(), // CLI argument: --port / -p - // The port that Flood should listen for web connections on. [default: 3000] - floodServerPort: number().int().positive(), + // The port or path that Flood should listen for web connections on. [default: 3000] + floodServerPort: number().int().positive().or(string()), // CLI argument: --maxhistorystates // Flood keeps a history of torrent download and upload speeds.