diff --git a/src/encryptid/server.ts b/src/encryptid/server.ts index 001d928..85a31ac 100644 --- a/src/encryptid/server.ts +++ b/src/encryptid/server.ts @@ -3454,11 +3454,23 @@ app.get('/', (c) => { // DATABASE INITIALIZATION & SERVER START // ============================================================================ -// Initialize database on startup -initDatabase().catch(err => { - console.error('EncryptID: Failed to initialize database', err); - process.exit(1); -}); +// Initialize database on startup with retries (Docker networking may take a moment) +(async () => { + const maxRetries = 5; + for (let attempt = 1; attempt <= maxRetries; attempt++) { + try { + await initDatabase(); + return; + } catch (err) { + console.error(`EncryptID: Database init attempt ${attempt}/${maxRetries} failed:`, (err as Error).message); + if (attempt === maxRetries) { + console.error('EncryptID: All database init attempts exhausted, exiting'); + process.exit(1); + } + await new Promise(r => setTimeout(r, attempt * 2000)); + } + } +})(); // Clean expired challenges and recovery tokens every 10 minutes setInterval(() => {