| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- require("dotenv").config();
- const { cleanEnv, num, str, bool } = require("envalid");
- const supportedDBClients = [
- "pg",
- "pg-native",
- "sqlite3",
- "better-sqlite3",
- "mysql",
- "mysql2",
- "oracledb",
- "tedious"
- ];
- const env = cleanEnv(process.env, {
- PORT: num({ default: 3000 }),
- SITE_NAME: str({ example: "Kutt" }),
- DEFAULT_DOMAIN: str({ example: "kutt.it" }),
- LINK_LENGTH: num({ default: 6 }),
- DB_CLIENT: str({ choices: supportedDBClients, default: "pg" }),
- DB_FILENAME: str(),
- 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 }),
- REDIS_HOST: str({ default: "127.0.0.1" }),
- REDIS_PORT: num({ default: 6379 }),
- REDIS_PASSWORD: str({ default: "" }),
- REDIS_DB: num({ default: 0 }),
- USER_LIMIT_PER_DAY: num({ default: 50 }),
- NON_USER_COOLDOWN: num({ default: 10 }),
- DEFAULT_MAX_STATS_PER_LINK: num({ default: 5000 }),
- DISALLOW_ANONYMOUS_LINKS: bool({ default: false }),
- DISALLOW_REGISTRATION: bool({ default: false }),
- SERVER_IP_ADDRESS: str({ default: "" }),
- CUSTOM_DOMAIN_USE_HTTPS: bool({ default: false }),
- JWT_SECRET: str(),
- ADMIN_EMAILS: str({ default: "" }),
- GOOGLE_SAFE_BROWSING_KEY: str({ default: "" }),
- MAIL_ENABLED: bool({ default: false }),
- MAIL_HOST: str({ default: "" }),
- MAIL_PORT: num({ default: 587 }),
- MAIL_SECURE: bool({ default: false }),
- MAIL_USER: str({ default: "" }),
- MAIL_FROM: str({ default: "", example: "Kutt <support@kutt.it>" }),
- MAIL_PASSWORD: str({ default: "" }),
- REPORT_EMAIL: str({ default: "" }),
- CONTACT_EMAIL: str({ default: "" })
- });
- module.exports = env;
|