new version
This commit is contained in:
@@ -1,23 +1,43 @@
|
||||
import knex from 'knex';
|
||||
import knexConfig from './db/knexfile';
|
||||
import app from './app';
|
||||
import { env, initEnv } from './config/env';
|
||||
import { createRabbitConnection } from './events/connection';
|
||||
import { startConsumer } from './events/consumer';
|
||||
import { env, initEnv, getVaultToken } from './config/env';
|
||||
import { loadJwtKeysFromVault } from './services/jwt.service';
|
||||
import { logger } from './lib/logger';
|
||||
|
||||
async function main() {
|
||||
logger.info(`Wallet service instance started with id ${logger.instanceId}`);
|
||||
|
||||
await initEnv();
|
||||
|
||||
// Start RabbitMQ consumer
|
||||
try {
|
||||
const channel = await createRabbitConnection();
|
||||
await startConsumer(channel);
|
||||
console.log('[API] RabbitMQ consumer started');
|
||||
} catch (err: any) {
|
||||
console.warn('[API] RabbitMQ not available, events will not be consumed:', err.message);
|
||||
// Load JWT public keys from Vault if available
|
||||
const vaultToken = getVaultToken();
|
||||
if (vaultToken && env.vault.addr) {
|
||||
await loadJwtKeysFromVault(
|
||||
env.vault.addr,
|
||||
vaultToken,
|
||||
env.vault.mount,
|
||||
env.vault.jwtKidPath,
|
||||
env.vault.jwtKidsPrefix,
|
||||
);
|
||||
} else {
|
||||
logger.warn('JWT keys not loaded: Vault not available');
|
||||
}
|
||||
|
||||
const db = knex(knexConfig);
|
||||
|
||||
logger.info('Running migrations...');
|
||||
await db.migrate.latest();
|
||||
logger.info('Migrations complete');
|
||||
|
||||
await db.destroy();
|
||||
|
||||
app.listen(env.port, () => {
|
||||
console.log(`[API] Server running on port ${env.port}`);
|
||||
logger.info(`Server running on port ${env.port}`);
|
||||
});
|
||||
}
|
||||
|
||||
main().catch(console.error);
|
||||
main().catch((err) => {
|
||||
logger.error(`Failed to start: ${err.message}`);
|
||||
process.exit(1);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user