-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathenv.private.ts
More file actions
66 lines (60 loc) · 2.52 KB
/
env.private.ts
File metadata and controls
66 lines (60 loc) · 2.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import { createEnv } from "@t3-oss/env-core"
import z from "zod"
export const privateEnv = createEnv({
runtimeEnv: process.env,
server: {
/** Development|Prod. Port of the app. */
PORT: z.number().default(3000),
/** Development|Prod. */
NODE_ENV: z.enum(["development", "production"]).default("development"),
// Database
/** Development|Prod. Url of the database. */
DATABASE_URL: z.string(),
// Auth
/** Development|Prod. GitHub OAuth client ID. */
GITHUB_CLIENT_ID: z.string(),
/** Development|Prod. GitHub OAuth client secret. */
GITHUB_CLIENT_SECRET: z.string(),
/** Development|Prod. Google OAuth client ID. */
GOOGLE_OAUTH_CLIENT_ID: z.string(),
/** Development|Prod. Google OAuth client secret. */
GOOGLE_OAUTH_CLIENT_SECRET: z.string(),
// S3
/** Development|Prod. S3 access key ID. */
S3_ACCESS_KEY_ID: z.string(),
/** Development|Prod. S3 secret access key. */
S3_SECRET_ACCESS_KEY: z.string(),
/** Development|Prod. S3 bucket name. */
S3_BUCKET_NAME: z.string().default("solid-launch"),
/** Development|Prod. S3 region. */
S3_REGION: z.string().default("us-east-1"),
/** Development|Prod. S3 endpoint. Important that this starts with http:// or https:// */
S3_ENDPOINT: z.string().default("http://127.0.0.1:9000"),
// Payments
/** Development|Prod. For payments. */
DODO_PAYMENTS_API_KEY: z.string(),
/** Development|Prod. For payments. */
DODO_PAYMENTS_WEBHOOK_SECRET: z.string(),
/** Development|Prod. For payments. */
DODO_PAYMENTS_ENV: z.enum(["test_mode", "live_mode"]).default("test_mode"),
// SMTP
// /** Development|Prod For emails. */
// SMTP_HOST: z.string(),
// /** Development|Prod For emails. */
// SMTP_PORT: z.preprocess(Number, z.number()),
// /** Development|Prod For emails. */
// SMTP_SECURE: z.preprocess((val) => String(val).toLowerCase() === 'true', z.boolean()),
// /** Development|Prod For emails. */
// SMTP_USER: z.string(),
// /** Development|Prod For emails. */
// SMTP_PASS: z.string(),
// /** Development|Prod For Emails (essentially the name of the sender i.e. Name <email@example.com>) */
// SMTP_FROM: z.string(),
/** Development|Prod For emails (alternative to SMTP). */
ZEPTOMAIL_TOKEN: z.string(),
/** Development|Prod For emails. "Name <email@example.com>" format */
ZEPTOMAIL_FROM: z.string().refine((val) => /^[^<]*\s<[^>]+>$/.test(val), {
message: 'Must be in "Name <email@example.com>" format',
}),
},
})