env.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. import { z } from "zod";
  2. import { createEnv } from "@t3-oss/env-nextjs";
  3. /**
  4. * This is the schema for the environment variables.
  5. *
  6. * Please import **this** file and use the `env` variable
  7. */
  8. export const env = createEnv({
  9. server: {
  10. BETTER_AUTH_URL: z.string().url(),
  11. DATABASE_URL: z.string().url(),
  12. GOOGLE_CLIENT_ID: z.string().min(1),
  13. GOOGLE_CLIENT_SECRET: z.string().min(1),
  14. RESEND_API_KEY: z.string().min(1),
  15. RESEND_AUDIENCE_ID: z.string().optional(),
  16. NODE_ENV: z.enum(["development", "production", "test"]),
  17. BETTER_AUTH_SECRET: z.string().min(1),
  18. OPENPANEL_SECRET_KEY: z.string().min(1),
  19. },
  20. /**
  21. * If you add `client` environment variables, you need to add them to
  22. * `experimental__runtimeEnv` as well.
  23. */
  24. client: {
  25. NEXT_PUBLIC_OPENPANEL_CLIENT_ID: z.string().min(1),
  26. NEXT_PUBLIC_FACEBOOK_PIXEL_ID: z.string().min(1),
  27. },
  28. experimental__runtimeEnv: {
  29. NEXT_PUBLIC_OPENPANEL_CLIENT_ID: process.env.NEXT_PUBLIC_OPENPANEL_CLIENT_ID,
  30. NEXT_PUBLIC_FACEBOOK_PIXEL_ID: process.env.NEXT_PUBLIC_FACEBOOK_PIXEL_ID,
  31. },
  32. });