Files
Compass/backend/api/src/serve.ts
2025-08-27 21:30:05 +02:00

42 lines
1.1 KiB
TypeScript

import * as admin from 'firebase-admin'
import { getLocalEnv, initAdmin } from 'shared/init-admin'
import { loadSecretsToEnv, getServiceAccountCredentials } from 'common/secrets'
import { LOCAL_DEV, log } from 'shared/utils'
import { METRIC_WRITER } from 'shared/monitoring/metric-writer'
import { listen as webSocketListen } from 'shared/websockets/server'
log('Api server starting up....')
if (LOCAL_DEV) {
initAdmin()
} else {
const projectId = process.env.GOOGLE_CLOUD_PROJECT
admin.initializeApp({
projectId,
storageBucket: `${projectId}.appspot.com`,
})
}
METRIC_WRITER.start()
import { app } from './app'
const credentials = LOCAL_DEV
? getServiceAccountCredentials(getLocalEnv())
: // No explicit credentials needed for deployed service.
undefined
const startupProcess = async () => {
await loadSecretsToEnv(credentials)
log('Secrets loaded.')
const PORT = process.env.PORT ?? 8088
const httpServer = app.listen(PORT, () => {
log.info(`Serving API on port ${PORT}.`)
})
webSocketListen(httpServer, '/ws')
log('Server started successfully')
}
startupProcess()