feat: full site build — Project/Melody schema (Option A), admin CRUD, public sections, uploads, email+SMTP, internal analytics, legal pages, docs

This commit is contained in:
2026-08-05 20:53:40 +02:00
parent d87f3033c6
commit c26f41511f
122 changed files with 15068 additions and 41 deletions
+27
View File
@@ -0,0 +1,27 @@
import { hash } from "bcryptjs";
import { PrismaClient } from "@prisma/client";
const email = process.env.ADMIN_EMAIL?.trim().toLowerCase();
const password = process.env.ADMIN_PASSWORD;
if (!email || !password) {
throw new Error("ADMIN_EMAIL and ADMIN_PASSWORD are required to seed the admin user.");
}
if (password.length < 12) {
throw new Error("ADMIN_PASSWORD must be at least 12 characters long.");
}
const prisma = new PrismaClient();
try {
const passwordHash = await hash(password, 12);
await prisma.user.upsert({
where: { email },
update: { password: passwordHash },
create: { email, password: passwordHash },
});
} finally {
await prisma.$disconnect();
}