2024-06-27 02:44:08 +02:00
|
|
|
import { getLogger } from "@logtape/logtape";
|
2025-06-15 04:38:20 +02:00
|
|
|
import { Note, setupDatabase } from "@versia/kit/db";
|
|
|
|
|
import { config } from "@versia-server/config";
|
2025-04-10 19:15:31 +02:00
|
|
|
import { configureLoggers } from "@/loggers";
|
|
|
|
|
import { connection } from "@/redis.ts";
|
2024-11-25 21:54:31 +01:00
|
|
|
import { searchManager } from "../../classes/search/search-manager.ts";
|
2024-06-27 02:44:08 +02:00
|
|
|
|
|
|
|
|
const timeAtStart = performance.now();
|
|
|
|
|
|
|
|
|
|
await configureLoggers();
|
|
|
|
|
|
|
|
|
|
const serverLogger = getLogger("server");
|
|
|
|
|
|
2024-11-10 13:08:26 +01:00
|
|
|
console.info(`
|
2025-03-27 18:51:22 +01:00
|
|
|
██╗ ██╗███████╗██████╗ ███████╗██╗ █████╗
|
2024-11-10 13:08:26 +01:00
|
|
|
██║ ██║██╔════╝██╔══██╗██╔════╝██║██╔══██╗
|
|
|
|
|
██║ ██║█████╗ ██████╔╝███████╗██║███████║
|
|
|
|
|
╚██╗ ██╔╝██╔══╝ ██╔══██╗╚════██║██║██╔══██║
|
|
|
|
|
╚████╔╝ ███████╗██║ ██║███████║██║██║ ██║
|
|
|
|
|
╚═══╝ ╚══════╝╚═╝ ╚═╝╚══════╝╚═╝╚═╝ ╚═╝
|
|
|
|
|
`);
|
|
|
|
|
|
2024-08-19 15:16:01 +02:00
|
|
|
serverLogger.info`Starting Versia Server...`;
|
2024-06-27 02:44:08 +02:00
|
|
|
|
|
|
|
|
await setupDatabase();
|
|
|
|
|
|
2025-02-15 02:47:29 +01:00
|
|
|
if (config.search.enabled) {
|
2024-06-29 11:40:44 +02:00
|
|
|
await searchManager.connect();
|
2024-06-27 02:44:08 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Check if database is reachable
|
|
|
|
|
const postCount = await Note.getCount();
|
|
|
|
|
|
2024-08-19 15:16:01 +02:00
|
|
|
serverLogger.info`Versia Server started at ${config.http.bind}:${config.http.bind_port} in ${(performance.now() - timeAtStart).toFixed(0)}ms`;
|
2024-06-27 02:44:08 +02:00
|
|
|
|
|
|
|
|
serverLogger.info`Database is online, now serving ${postCount} posts`;
|
|
|
|
|
|
2024-11-24 22:01:01 +01:00
|
|
|
// Check if Redis is reachable
|
|
|
|
|
await connection.ping();
|
|
|
|
|
|
|
|
|
|
serverLogger.info`Redis is online`;
|