import { runMigrations } from './db'; import { ensureBucket } from './storage'; import { seed } from './seed'; import { startImageWorker } from '../worker'; let started: Promise | null = null; /** Einmalige Server-Initialisierung (idempotent, beim ersten Request ausgelöst). */ export function ensureInit(): Promise { if (!started) { started = (async () => { await runMigrations(); try { await ensureBucket(); } catch (e) { console.error('[init] S3 nicht bereit:', e); } await seed(); try { await startImageWorker(); } catch (e) { console.error('[init] Worker-Start fehlgeschlagen:', e); } try { const { setupTelegram } = await import('./telegram'); await setupTelegram(); } catch (e) { console.error('[init] Telegram-Setup fehlgeschlagen:', e); } try { const { startMaintenance } = await import('./maintenance'); startMaintenance(); } catch (e) { console.error('[init] Wartung-Start fehlgeschlagen:', e); } console.log('[init] Klarbild bereit.'); })().catch((e) => { started = null; throw e; }); } return started; }