main.ts

940 B · raw

1import { join } from "node:path";2import { openBucket } from "./bucket/reader.ts";3import { startSyncLoop } from "./bucket/sync.ts";4import { createApp } from "./server/app.ts";5import { startBackupLoop } from "./server/backup.ts";6import { ConfigError, loadConfig } from "./server/config.ts";7import { openKeprDb } from "./server/db.ts";89try {10	const config = await loadConfig("kepr.toml");11	const kepr = openKeprDb(config.dataDir);12	startBackupLoop(kepr, config.dataDir);13	startSyncLoop({14		bucket: openBucket(config.bucket),15		kepr,16		mirrorDir: join(config.dataDir, "mirror"),17		tarballDir: join(config.dataDir, "tarballs"),18	});19	// Bun.serve reads the port from $PORT (default 3000).20	const server = Bun.serve({ fetch: createApp(config, kepr).fetch });21	console.log(`kepr listening on ${server.url}`);22} catch (error) {23	if (!(error instanceof ConfigError)) throw error;24	console.error(`kepr: ${error.message}`);25	process.exit(1);26}