index.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/usr/bin/env node
  2. const schema = require('./schema');
  3. const logger = require('./logger').global;
  4. async function appStart () {
  5. const migrate = require('./migrate');
  6. const setup = require('./setup');
  7. const app = require('./app');
  8. const internalCertificate = require('./internal/certificate');
  9. const internalIpRanges = require('./internal/ip_ranges');
  10. return migrate.latest()
  11. .then(setup)
  12. .then(schema.getCompiledSchema)
  13. .then(internalIpRanges.fetch)
  14. .then(() => {
  15. internalCertificate.initTimer();
  16. internalIpRanges.initTimer();
  17. const server = app.listen(3000, () => {
  18. logger.info('Backend PID ' + process.pid + ' listening on port 3000 ...');
  19. process.on('SIGTERM', () => {
  20. logger.info('PID ' + process.pid + ' received SIGTERM');
  21. server.close(() => {
  22. logger.info('Stopping.');
  23. process.exit(0);
  24. });
  25. });
  26. });
  27. })
  28. .catch((err) => {
  29. logger.error(err.message, err);
  30. setTimeout(appStart, 1000);
  31. });
  32. }
  33. try {
  34. appStart();
  35. } catch (err) {
  36. logger.error(err.message, err);
  37. process.exit(1);
  38. }