mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2025-06-30 23:27:24 +00:00
This change adds a new environment variable to control whether IP ranges are fetched during application startup. When set to 'false', the initial fetch will be skipped, which can: 1. Speed up application startup 2. Avoid connectivity issues in environments with restricted internet access 3. Prevent startup failures when CloudFront or CloudFlare services are unreachable
59 lines
1.5 KiB
JavaScript
59 lines
1.5 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
const schema = require('./schema');
|
|
const logger = require('./logger').global;
|
|
|
|
const IP_RANGES_FETCH_ENABLED = process.env.IP_RANGES_FETCH_ENABLED !== 'false';
|
|
|
|
async function appStart () {
|
|
const migrate = require('./migrate');
|
|
const setup = require('./setup');
|
|
const app = require('./app');
|
|
const internalCertificate = require('./internal/certificate');
|
|
const internalIpRanges = require('./internal/ip_ranges');
|
|
|
|
return migrate.latest()
|
|
.then(setup)
|
|
.then(schema.getCompiledSchema)
|
|
.then(() => {
|
|
if (IP_RANGES_FETCH_ENABLED) {
|
|
logger.info('IP Ranges fetch is enabled');
|
|
return internalIpRanges.fetch().catch(err => {
|
|
logger.error('IP Ranges fetch failed, continuing anyway:', err.message);
|
|
return Promise.resolve();
|
|
});
|
|
} else {
|
|
logger.info('IP Ranges fetch is disabled by environment variable');
|
|
return Promise.resolve();
|
|
}
|
|
})
|
|
.then(() => {
|
|
internalCertificate.initTimer();
|
|
internalIpRanges.initTimer();
|
|
|
|
const server = app.listen(3000, () => {
|
|
logger.info('Backend PID ' + process.pid + ' listening on port 3000 ...');
|
|
|
|
process.on('SIGTERM', () => {
|
|
logger.info('PID ' + process.pid + ' received SIGTERM');
|
|
server.close(() => {
|
|
logger.info('Stopping.');
|
|
process.exit(0);
|
|
});
|
|
});
|
|
});
|
|
})
|
|
.catch((err) => {
|
|
logger.error(err.message, err);
|
|
setTimeout(appStart, 1000);
|
|
});
|
|
}
|
|
|
|
try {
|
|
appStart();
|
|
} catch (err) {
|
|
logger.error(err.message, err);
|
|
process.exit(1);
|
|
}
|
|
|