mirror of
https://github.com/FlareSolverr/FlareSolverr.git
synced 2026-01-08 18:12:59 +01:00
64 lines
2.2 KiB
TypeScript
64 lines
2.2 KiB
TypeScript
import log from './services/log'
|
|
import {testWebBrowserInstallation} from "./services/sessions";
|
|
|
|
const app = require("./app");
|
|
const version: string = 'v' + require('../package.json').version
|
|
const serverPort: number = Number(process.env.PORT) || 8191
|
|
const serverHost: string = process.env.HOST || '0.0.0.0'
|
|
|
|
function validateEnvironmentVariables() {
|
|
// ip and port variables are validated by nodejs
|
|
if (process.env.LOG_LEVEL && ['error', 'warn', 'info', 'verbose', 'debug'].indexOf(process.env.LOG_LEVEL) == -1) {
|
|
log.error(`The environment variable 'LOG_LEVEL' is wrong. Check the documentation.`);
|
|
process.exit(1);
|
|
}
|
|
if (process.env.LOG_HTML && ['true', 'false'].indexOf(process.env.LOG_HTML) == -1) {
|
|
log.error(`The environment variable 'LOG_HTML' is wrong. Check the documentation.`);
|
|
process.exit(1);
|
|
}
|
|
if (process.env.HEADLESS && ['true', 'false'].indexOf(process.env.HEADLESS) == -1) {
|
|
log.error(`The environment variable 'HEADLESS' is wrong. Check the documentation.`);
|
|
process.exit(1);
|
|
}
|
|
// todo: fix resolvers
|
|
// try {
|
|
// getCaptchaSolver();
|
|
// } catch (e) {
|
|
// log.error(`The environment variable 'CAPTCHA_SOLVER' is wrong. ${e.message}`);
|
|
// process.exit(1);
|
|
// }
|
|
}
|
|
|
|
// Init
|
|
log.info(`FlareSolverr ${version}`);
|
|
log.debug('Debug log enabled');
|
|
|
|
process.on('SIGTERM', () => {
|
|
// Capture signal on Docker Stop #158
|
|
log.info("Process interrupted")
|
|
process.exit(0)
|
|
})
|
|
|
|
process.on('uncaughtException', function(err) {
|
|
// Avoid crashing in NodeJS 17 due to UnhandledPromiseRejectionWarning: Unhandled promise rejection.
|
|
log.error(err)
|
|
})
|
|
|
|
validateEnvironmentVariables();
|
|
|
|
testWebBrowserInstallation().then(() => {
|
|
// Start server
|
|
app.listen(serverPort, serverHost, () => {
|
|
log.info(`Listening on http://${serverHost}:${serverPort}`);
|
|
})
|
|
}).catch(function(e) {
|
|
log.error(e);
|
|
const msg: string = "" + e;
|
|
if (msg.includes('while trying to connect to the browser!')) {
|
|
log.error(`It seems that the system is too slow to run FlareSolverr.
|
|
If you are running with Docker, try to remove CPU limits in the container.
|
|
If not, try setting the 'BROWSER_TIMEOUT' environment variable and the 'maxTimeout' parameter to higher values.`);
|
|
}
|
|
process.exit(1);
|
|
})
|