forked from
rocksky.app/rocksky
A decentralized music tracking and discovery platform built on AT Protocol 馃幍
1import dotenv from "dotenv";
2import { cleanEnv, host, port, str, testOnly } from "envalid";
3
4dotenv.config();
5
6export const env = cleanEnv(process.env, {
7 NODE_ENV: str({
8 devDefault: testOnly("test"),
9 choices: ["development", "production", "test"],
10 }),
11 HOST: host({ devDefault: testOnly("localhost") }),
12 PORT: port({ devDefault: testOnly(8000) }),
13 PUBLIC_URL: str({}),
14 DB_PATH: str({ devDefault: ":memory:" }),
15 KV_DB_PATH: str({ devDefault: ":memory:" }),
16 COOKIE_SECRET: str({ devDefault: "00000000000000000000000000000000" }),
17 FRONTEND_URL: str({ devDefault: "http://localhost:5174" }),
18 JWT_SECRET: str({ devDefault: "00000000000000000000000000000000" }),
19 SPOTIFY_REDIRECT_URI: str({
20 devDefault: "http://localhost:8000/spotify/callback",
21 }),
22 SPOTIFY_CLIENT_ID: str({}),
23 SPOTIFY_CLIENT_SECRET: str({}),
24 SPOTIFY_ENCRYPTION_KEY: str({}),
25 SPOTIFY_ENCRYPTION_IV: str(),
26 ROCKSKY_BETA_TOKEN: str({}),
27 XATA_POSTGRES_URL: str({}),
28 NATS_URL: str({ devDefault: "nats://localhost:4222" }),
29 ANALYTICS: str({ devDefault: "http://localhost:7879" }),
30 DROPBOX_CLIENT_ID: str({}),
31 DROPBOX_CLIENT_SECRET: str({}),
32 DROPBOX_REDIRECT_URI: str({}),
33 GOOGLE_REDIRECT_URI: str({}),
34 GOOGLE_DRIVE: str({ default: "http://localhost:7880" }),
35 DROPBOX: str({ default: "http://localhost:7881" }),
36 TRACKLIST: str({ default: "http://localhost:7884" }),
37 REDIS_URL: str({ default: "redis://localhost:6379" }),
38 PRIVATE_KEY_1: str({}),
39 PRIVATE_KEY_2: str({}),
40 PRIVATE_KEY_3: str({}),
41 MEILISEARCH_URL: str({ devDefault: "http://localhost:7700" }),
42 MEILISEARCH_API_KEY: str({}),
43});