mirror of
https://github.com/KeyZox71/knl_meowscendence.git
synced 2026-01-01 06:06:41 +01:00
「🏗️」 wip: ELK workingggggggggggggggggggggggggggggggggggg
This commit is contained in:
88
src/start.js
88
src/start.js
@ -1,53 +1,71 @@
|
||||
import Fastify from 'fastify';
|
||||
import authApi from './api/auth/default.js';
|
||||
import userApi from './api/user/default.js';
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
|
||||
const loggerOption = {
|
||||
transport: {
|
||||
target: 'pino-pretty',
|
||||
options: {
|
||||
colorize: true,
|
||||
translateTime: 'HH:MM:ss',
|
||||
ignore: 'pid,hostname'
|
||||
}
|
||||
},
|
||||
file: process.env.LOG_TARGET || ""
|
||||
const isProduction = process.env.NODE_ENV === 'production';
|
||||
const logFilePath = process.env.LOG_FILE_PATH || './logs/api.log';
|
||||
|
||||
const loggerOption = () => {
|
||||
if (!isProduction) {
|
||||
return {
|
||||
transport: {
|
||||
target: 'pino-pretty',
|
||||
options: {
|
||||
colorize: true,
|
||||
translateTime: 'HH:MM:ss',
|
||||
ignore: 'pid,hostname',
|
||||
},
|
||||
},
|
||||
};
|
||||
} else {
|
||||
// Make sure the directory exists
|
||||
const logDir = path.dirname(logFilePath);
|
||||
fs.mkdirSync(logDir, { recursive: true });
|
||||
|
||||
const logStream = fs.createWriteStream(logFilePath, { flags: 'a' }); // append mode
|
||||
return {
|
||||
level: 'info',
|
||||
stream: logStream,
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
function sigHandle(signal) {
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
process.on('SIGINT', sigHandle);
|
||||
|
||||
async function start() {
|
||||
const target = process.env.API_TARGET || 'all';
|
||||
|
||||
const servers = [];
|
||||
|
||||
if (target === 'auth' || target === 'all') {
|
||||
const auth = Fastify({ logger: loggerOption });
|
||||
const auth = Fastify({ logger: loggerOption('auth') });
|
||||
auth.register(authApi);
|
||||
if (target !== 'all') {
|
||||
await auth.listen({ port: 3000, host: '0.0.0.0' });
|
||||
console.log('Auth API listening on http://0.0.0.0:3000');
|
||||
}
|
||||
else {
|
||||
await auth.listen({ port: 3001, host: '127.0.0.1'});
|
||||
console.log('Auth API listening on http://localhost:3001');
|
||||
}
|
||||
const port = target === 'all' ? 3001 : 3000;
|
||||
const host = target === 'all' ? '127.0.0.1' : '0.0.0.0';
|
||||
await auth.listen({ port, host });
|
||||
console.log(`Auth API listening on http://${host}:${port}`);
|
||||
servers.push(auth);
|
||||
}
|
||||
|
||||
if (target === 'user' || target === 'all') {
|
||||
const user = Fastify({ logger: loggerOption });
|
||||
const user = Fastify({ logger: loggerOption('user') });
|
||||
user.register(userApi);
|
||||
if (target !== 'all') {
|
||||
await user.listen({ port: 3000, host: '0.0.0.0' });
|
||||
console.log('User API listening on http://0.0.0.0:3000');
|
||||
}
|
||||
else {
|
||||
await user.listen({ port: 3002, host: '127.0.0.1'});
|
||||
console.log('User API listening on http://localhost:3002');
|
||||
}
|
||||
const port = target === 'all' ? 3002 : 3000;
|
||||
const host = target === 'all' ? '127.0.0.1' : '0.0.0.0';
|
||||
await user.listen({ port, host });
|
||||
console.log(`User API listening on http://${host}:${port}`);
|
||||
servers.push(user);
|
||||
}
|
||||
|
||||
// Graceful shutdown on SIGINT
|
||||
process.on('SIGINT', async () => {
|
||||
console.log('SIGINT received, closing servers...');
|
||||
await Promise.all(servers.map((srv) => srv.close()));
|
||||
process.exit(0);
|
||||
});
|
||||
}
|
||||
|
||||
start().catch(console.error);
|
||||
start().catch((err) => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user