Files
portabase/src/env.mjs
T

80 lines
3.0 KiB
JavaScript
Raw Normal View History

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-05-16 15:54:17 +02:00
NODE_ENV: z.enum(["development", "production"]).optional(),
2024-12-31 16:52:44 +01:00
DATABASE_URL: z.string().url().optional(),
2025-05-16 15:54:17 +02:00
NEXT_PUBLIC_PROJECT_NAME: z.string().optional(),
NEXT_PUBLIC_PROJECT_DESCRIPTION: z.string().optional(),
2025-07-17 13:22:56 +02:00
NEXT_PUBLIC_PROJECT_URL: z.string().optional(),
NEXT_PUBLIC_PROJECT_VERSION: z.string().optional(),
2025-11-03 10:59:26 +01:00
PROJECT_SECRET: z.string().optional(),
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(),
AUTH_GOOGLE_ID: z.string().optional(),
AUTH_GOOGLE_SECRET: z.string().optional(),
2025-11-03 10:59:26 +01:00
NEXT_PUBLIC_GOOGLE_AUTH: z.boolean().default(false).optional(),
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(),
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-05-16 15:54:17 +02:00
NEXT_PUBLIC_PROJECT_NAME: z.string().optional(),
NEXT_PUBLIC_PROJECT_DESCRIPTION: z.string().optional(),
2025-07-17 13:22:56 +02:00
NEXT_PUBLIC_PROJECT_URL: z.string().optional(),
NEXT_PUBLIC_PROJECT_VERSION: z.string().optional(),
2025-11-01 14:50:08 +01:00
NEXT_PUBLIC_GOOGLE_AUTH: z.boolean().default(false).optional(),
2024-11-03 21:12:40 +01:00
},
runtimeEnv: {
2025-05-16 15:54:17 +02:00
NEXT_PUBLIC_PROJECT_NAME: process.env.NEXT_PUBLIC_PROJECT_NAME,
NEXT_PUBLIC_PROJECT_DESCRIPTION: process.env.NEXT_PUBLIC_PROJECT_DESCRIPTION,
NEXT_PUBLIC_PROJECT_URL: process.env.NEXT_PUBLIC_PROJECT_URL,
NEXT_PUBLIC_PROJECT_VERSION: version || "Unknown Version",
PROJECT_SECRET: process.env.PROJECT_SECRET,
2024-11-03 21:12:40 +01:00
DATABASE_URL: process.env.DATABASE_URL,
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,
AUTH_GOOGLE_ID: process.env.AUTH_GOOGLE_ID,
AUTH_GOOGLE_SECRET: process.env.AUTH_GOOGLE_SECRET,
2025-11-01 14:50:08 +01:00
NEXT_PUBLIC_GOOGLE_AUTH: process.env.NEXT_PUBLIC_GOOGLE_AUTH === "true",
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,
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
},
});