// // Copyright © 2024 Hardcore Engineering Inc. // import { setMetadata } from '@hcengineering/platform' import serverToken from '@hcengineering/server-token' import { storageConfigFromEnv } from '@hcengineering/server-storage' import config from './config' import { createServer, listen } from './server' const setupMetadata = (): void => { setMetadata(serverToken.metadata.Secret, config.Secret) } export const main = async (): Promise => { setupMetadata() const storageConfig = storageConfigFromEnv() const { app, close } = createServer(config.DbURL, storageConfig) const server = listen(app, config.Port) const shutdown = (): void => { close() server.close(() => process.exit()) } process.on('SIGINT', shutdown) process.on('SIGTERM', shutdown) process.on('uncaughtException', (e) => { console.error(e) }) process.on('unhandledRejection', (e) => { console.error(e) }) }