43 lines
1.5 KiB
TypeScript
43 lines
1.5 KiB
TypeScript
import { cleanEnv, num, str, bool } from "envalid";
|
|
|
|
const env = cleanEnv(process.env, {
|
|
PORT: num({ default: 3000 }),
|
|
SITE_NAME: str({ example: "Klip" }),
|
|
DEFAULT_DOMAIN: str({ example: "klip.example" }),
|
|
LINK_LENGTH: num({ default: 6 }),
|
|
DB_HOST: str({ default: "localhost" }),
|
|
DB_PORT: num({ default: 5432 }),
|
|
DB_NAME: str({ default: "postgres" }),
|
|
DB_USER: str(),
|
|
DB_PASSWORD: str(),
|
|
DB_SSL: bool({ default: false }),
|
|
DB_POOL_MIN: num({ default: 2 }),
|
|
DB_POOL_MAX: num({ default: 10 }),
|
|
NEO4J_DB_URI: str({ default: "" }),
|
|
NEO4J_DB_USERNAME: str({ default: "" }),
|
|
NEO4J_DB_PASSWORD: str({ default: "" }),
|
|
REDIS_HOST: str({ default: "127.0.0.1" }),
|
|
REDIS_PORT: num({ default: 6379 }),
|
|
REDIS_PASSWORD: str({ default: "" }),
|
|
USER_LIMIT_PER_DAY: num({ default: 50 }),
|
|
NON_USER_COOLDOWN: num({ default: 10 }),
|
|
DEFAULT_MAX_STATS_PER_LINK: num({ default: 5000 }),
|
|
CUSTOM_DOMAIN_ENABLED: bool({ default: false }),
|
|
CUSTOM_DOMAIN_USE_HTTPS: bool({ default: false }),
|
|
CUSTOM_DOMAIN_IP: str({ default: "" }),
|
|
JWT_SECRET: str(),
|
|
ADMIN_EMAILS: str({ default: "" }),
|
|
GOOGLE_SAFE_BROWSING_KEY: str({ default: "" }),
|
|
MAIL_HOST: str(),
|
|
MAIL_PORT: num(),
|
|
MAIL_SECURE: bool({ default: false }),
|
|
MAIL_USER: str(),
|
|
MAIL_FROM: str({ default: "", example: "Klip <support@klip.example>" }),
|
|
MAIL_PASSWORD: str(),
|
|
REPORT_EMAIL: str({ default: "" }),
|
|
CONTACT_EMAIL: str({ default: "" }),
|
|
RAVEN_DSN: str({ default: "" })
|
|
});
|
|
|
|
export default env;
|