2025-09-23 21:19:11 +02:00
|
|
|
import {createEnv} from "@t3-oss/env-nextjs";
|
|
|
|
|
import {z} from "zod";
|
|
|
|
|
import packageJson from "../package.json" with {type: "json"};
|
2025-05-16 15:54:17 +02:00
|
|
|
|
2025-09-23 21:19:11 +02:00
|
|
|
const {version} = packageJson;
|
2024-11-03 21:12:40 +01:00
|
|
|
|
|
|
|
|
export const env = createEnv({
|
|
|
|
|
server: {
|
2025-07-17 13:22:56 +02:00
|
|
|
NEXT_PUBLIC_PROJECT_VERSION: z.string().optional(),
|
2025-11-04 08:48:46 +01:00
|
|
|
|
|
|
|
|
NODE_ENV: z.enum(["development", "production"]).optional(),
|
|
|
|
|
|
|
|
|
|
DATABASE_URL: z.string().url().optional(),
|
|
|
|
|
|
|
|
|
|
PROJECT_NAME: z.string().optional(),
|
|
|
|
|
PROJECT_DESCRIPTION: z.string().optional(),
|
|
|
|
|
PROJECT_URL: z.string().optional(),
|
2025-11-03 10:59:26 +01:00
|
|
|
PROJECT_SECRET: z.string().optional(),
|
2024-11-17 16:31:34 +01:00
|
|
|
|
|
|
|
|
SMTP_PASSWORD: z.string().optional(),
|
|
|
|
|
SMTP_FROM: z.string().optional(),
|
|
|
|
|
SMTP_HOST: z.string().optional(),
|
|
|
|
|
SMTP_PORT: z.string().optional(),
|
|
|
|
|
SMTP_USER: z.string().optional(),
|
|
|
|
|
|
2024-11-11 20:29:19 +01:00
|
|
|
AUTH_GOOGLE_ID: z.string().optional(),
|
|
|
|
|
AUTH_GOOGLE_SECRET: z.string().optional(),
|
2025-11-03 18:54:16 +01:00
|
|
|
AUTH_GOOGLE_METHOD: z.boolean().default(false).optional(),
|
2024-11-17 16:31:34 +01:00
|
|
|
|
2024-11-11 20:29:19 +01:00
|
|
|
S3_ENDPOINT: z.string().optional(),
|
|
|
|
|
S3_ACCESS_KEY: z.string().optional(),
|
|
|
|
|
S3_SECRET_KEY: z.string().optional(),
|
|
|
|
|
S3_BUCKET_NAME: z.string().optional(),
|
|
|
|
|
S3_PORT: z.string().optional(),
|
|
|
|
|
S3_USE_SSL: z.string().optional(),
|
2024-11-17 16:31:34 +01:00
|
|
|
|
2025-08-07 15:46:41 +02:00
|
|
|
STORAGE_TYPE: z.enum(["local", "s3"]).optional(),
|
2025-09-23 21:19:11 +02:00
|
|
|
|
|
|
|
|
RETENTION_CRON: z
|
|
|
|
|
.string()
|
|
|
|
|
.default(process.env.NODE_ENV === "production" ? "0 7 * * *" : "* * * * *"),
|
2024-11-03 21:12:40 +01:00
|
|
|
},
|
|
|
|
|
client: {
|
2025-07-17 13:22:56 +02:00
|
|
|
NEXT_PUBLIC_PROJECT_VERSION: z.string().optional(),
|
2025-11-01 14:50:08 +01:00
|
|
|
|
2024-11-03 21:12:40 +01:00
|
|
|
},
|
|
|
|
|
runtimeEnv: {
|
2025-05-16 15:54:17 +02:00
|
|
|
NEXT_PUBLIC_PROJECT_VERSION: version || "Unknown Version",
|
2025-11-04 08:48:46 +01:00
|
|
|
|
|
|
|
|
PROJECT_NAME: process.env.PROJECT_NAME,
|
|
|
|
|
PROJECT_DESCRIPTION: process.env.PROJECT_DESCRIPTION,
|
|
|
|
|
PROJECT_URL: process.env.PROJECT_URL,
|
2025-05-16 15:54:17 +02:00
|
|
|
PROJECT_SECRET: process.env.PROJECT_SECRET,
|
|
|
|
|
|
2024-11-03 21:12:40 +01:00
|
|
|
DATABASE_URL: process.env.DATABASE_URL,
|
2024-11-17 16:31:34 +01:00
|
|
|
|
2024-11-03 21:12:40 +01:00
|
|
|
SMTP_PASSWORD: process.env.SMTP_PASSWORD,
|
|
|
|
|
SMTP_FROM: process.env.SMTP_FROM,
|
|
|
|
|
SMTP_HOST: process.env.SMTP_HOST,
|
|
|
|
|
SMTP_PORT: process.env.SMTP_PORT,
|
|
|
|
|
SMTP_USER: process.env.SMTP_USER,
|
2024-11-17 16:31:34 +01:00
|
|
|
|
2024-11-09 21:38:18 +01:00
|
|
|
AUTH_GOOGLE_ID: process.env.AUTH_GOOGLE_ID,
|
|
|
|
|
AUTH_GOOGLE_SECRET: process.env.AUTH_GOOGLE_SECRET,
|
2025-11-03 18:54:16 +01:00
|
|
|
AUTH_GOOGLE_METHOD: process.env.AUTH_GOOGLE_METHOD === "true",
|
2024-11-17 16:31:34 +01:00
|
|
|
|
2024-11-11 20:29:19 +01:00
|
|
|
S3_ENDPOINT: process.env.S3_ENDPOINT,
|
|
|
|
|
S3_ACCESS_KEY: process.env.S3_ACCESS_KEY,
|
|
|
|
|
S3_SECRET_KEY: process.env.S3_SECRET_KEY,
|
|
|
|
|
S3_BUCKET_NAME: process.env.S3_BUCKET_NAME,
|
|
|
|
|
S3_PORT: process.env.S3_PORT,
|
|
|
|
|
S3_USE_SSL: process.env.S3_USE_SSL,
|
2024-11-17 16:31:34 +01:00
|
|
|
|
|
|
|
|
STORAGE_TYPE: process.env.STORAGE_TYPE,
|
2025-09-23 21:19:11 +02:00
|
|
|
|
|
|
|
|
RETENTION_CRON: process.env.RETENTION_CRON,
|
|
|
|
|
|
2024-11-03 21:12:40 +01:00
|
|
|
},
|
|
|
|
|
});
|