Files
cryptowallet/apps/api/src/index.ts
ZOMBIIIIIII 89cb6174b7 new version
2026-04-14 20:22:51 +03:00

44 lines
1.1 KiB
TypeScript

import knex from 'knex';
import knexConfig from './db/knexfile';
import app from './app';
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();
// 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, () => {
logger.info(`Server running on port ${env.port}`);
});
}
main().catch((err) => {
logger.error(`Failed to start: ${err.message}`);
process.exit(1);
});