scheffin-api / src /main.ts
Rasyiq03's picture
slove
fe2ddce
Raw History Blame Contribute Delete
1.47 kB
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { Logger } from '@nestjs/common';
/**
* Penanganan kesalahan global untuk menjaga stabilitas server
*/
process.on('uncaughtException', (err) => {
console.error('[UncaughtException]:', err);
});
process.on('unhandledRejection', (reason, promise) => {
console.error('[UnhandledRejection] pada:', promise, 'alasan:', reason);
});
async function bootstrap() {
const logger = new Logger('Bootstrap');
try {
const app = await NestFactory.create(AppModule);
// Mengaktifkan CORS untuk mengizinkan permintaan dari Google Apps Script
app.enableCors();
// Konfigurasi port dinamis sesuai environment Hugging Face
const port = process.env.PORT || 7860;
/**
* Mengatur aplikasi agar mendengarkan pada host '0.0.0.0'.
* Langkah ini wajib dilakukan dalam lingkungan Docker/Hugging Face
* agar server dapat menerima koneksi eksternal.
*/
await app.listen(port, '0.0.0.0');
logger.log(`Aplikasi NestJS berhasil dijalankan pada port ${port}`);
logger.log(`Akses eksternal tersedia melalui antarmuka 0.0.0.0`);
} catch (err: any) {
if (err.code === 'EADDRINUSE') {
logger.error(`Kegagalan: Port ${7860} telah digunakan oleh proses lain.`);
process.exit(1);
} else {
logger.error('Kegagalan saat inisialisasi server:', err);
process.exit(1);
}
}
}
bootstrap();