Initial MRP foundation scaffold
This commit is contained in:
19
server/src/config/env.ts
Normal file
19
server/src/config/env.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import { config } from "dotenv";
|
||||
import { z } from "zod";
|
||||
|
||||
config({ path: ".env" });
|
||||
|
||||
const schema = z.object({
|
||||
NODE_ENV: z.enum(["development", "test", "production"]).default("development"),
|
||||
PORT: z.coerce.number().default(3000),
|
||||
JWT_SECRET: z.string().min(8).default("change-me"),
|
||||
DATABASE_URL: z.string().default("file:../../data/prisma/app.db"),
|
||||
DATA_DIR: z.string().default("./data"),
|
||||
CLIENT_ORIGIN: z.string().default("http://localhost:5173"),
|
||||
ADMIN_EMAIL: z.string().email().default("admin@mrp.local"),
|
||||
ADMIN_PASSWORD: z.string().min(8).default("ChangeMe123!"),
|
||||
PUPPETEER_EXECUTABLE_PATH: z.string().optional()
|
||||
});
|
||||
|
||||
export const env = schema.parse(process.env);
|
||||
|
||||
14
server/src/config/paths.ts
Normal file
14
server/src/config/paths.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import path from "node:path";
|
||||
|
||||
import { env } from "./env.js";
|
||||
|
||||
const projectRoot = process.cwd();
|
||||
|
||||
export const paths = {
|
||||
projectRoot,
|
||||
dataDir: path.resolve(projectRoot, env.DATA_DIR),
|
||||
uploadsDir: path.resolve(projectRoot, env.DATA_DIR, "uploads"),
|
||||
prismaDir: path.resolve(projectRoot, env.DATA_DIR, "prisma"),
|
||||
clientDistDir: path.resolve(projectRoot, "client", "dist"),
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user