Spaces:
Paused
Paused
File size: 1,465 Bytes
464b662 fe2ddce 464b662 fe2ddce 464b662 fe2ddce 464b662 fe2ddce 464b662 fe2ddce 464b662 fe2ddce 464b662 fe2ddce 464b662 fe2ddce 464b662 fe2ddce 464b662 fe2ddce | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | 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(); |