New: configにoriginを追加 / Chg(Performance): /api以外の場合にトークンの認証をバイパス / New: server-infoエンドポイントにiconを追加 / New: setup/initializationでconfigテーブルにLynqChatロゴをiconとして追加する処理 / New: .content-main用の背景色を追加 / Chg: 背景色を変更 / Chg: .left-menuを更新

This commit is contained in:
2026-03-30 16:14:58 +09:00
parent d129c95aa4
commit c3383b778b
9 changed files with 89 additions and 35 deletions
+9 -6
View File
@@ -1,3 +1,4 @@
import config from "@/lib/config";
import { DatabaseError } from "@/errors";
import Logger from "@/lib/logger";
import { ConfigEntity } from "@/modules/entities/Config";
@@ -9,18 +10,20 @@ export default async function ServerInfo(fastify: FastifyInstance) {
fastify.post("/", async (req, res) => {
try {
const config = fastify.orm.em.getRepository(ConfigEntity);
const user = fastify.orm.em.getRepository(UserEntity);
const configCount = await config.count();
const userCount = await user.count();
const configRepo = fastify.orm.em.getRepository(ConfigEntity);
const userRepo = fastify.orm.em.getRepository(UserEntity);
const configCount = await configRepo.count();
const userCount = await userRepo.count();
const serverName = await config.findOne({ name: "name" });
const serverDescription = await config.findOne({ name: "description" });
const serverName = await configRepo.findOne({ name: "name" });
const serverDescription = await configRepo.findOne({ name: "description" });
const serverIcon = await configRepo.findOne({ name: "icon" });
return res.send({
success: true,
name: serverName?.value ?? null,
description: serverDescription?.value ?? null,
icon: serverIcon?.value ?? `${config.server.origin}/assets/lynqchat.svg`,
isInitialized: configCount > 0,
isFirstAdminExists: userCount > 0,
userCount,
@@ -4,6 +4,7 @@ import { ConfigEntity } from "@/modules/entities/Config";
import type { FastifyInstance } from "fastify";
import webpush from "web-push";
import z from "zod/v3";
import config from "@/lib/config";
export default function SetupInitialization(fastify: FastifyInstance) {
const logger = new Logger("Endpoint | setup/initialization");
@@ -48,6 +49,7 @@ export default function SetupInitialization(fastify: FastifyInstance) {
try {
const entries = Object.entries(result.data).filter(([key]) => key !== "force");
entries.push(["icon", `${config.server.origin}/assets/lynqchat.svg`]);
const vapid = webpush.generateVAPIDKeys();
entries.push(["VAPID_PUBLIC", vapid.publicKey]);
entries.push(["VAPID_PRIVATE", vapid.privateKey]);