2024-08-11 18:41:03 +03:30
|
|
|
require("dotenv").config();
|
|
|
|
const { cleanEnv, num, str, bool } = require("envalid");
|
2022-11-10 20:23:44 +03:30
|
|
|
|
2024-09-11 20:51:14 +02:00
|
|
|
const supportedDBClients = [
|
|
|
|
"pg",
|
|
|
|
"pg-native",
|
|
|
|
"sqlite3",
|
|
|
|
"better-sqlite3",
|
|
|
|
"mysql",
|
|
|
|
"mysql2",
|
|
|
|
"oracledb",
|
|
|
|
"tedious"
|
|
|
|
];
|
|
|
|
|
2020-01-30 18:51:52 +03:30
|
|
|
const env = cleanEnv(process.env, {
|
|
|
|
PORT: num({ default: 3000 }),
|
2020-02-05 18:26:19 +03:30
|
|
|
SITE_NAME: str({ example: "Kutt" }),
|
2020-01-30 18:51:52 +03:30
|
|
|
DEFAULT_DOMAIN: str({ example: "kutt.it" }),
|
|
|
|
LINK_LENGTH: num({ default: 6 }),
|
2024-09-25 16:34:43 +03:30
|
|
|
DB_CLIENT: str({ choices: supportedDBClients }),
|
2024-09-24 07:30:06 +03:30
|
|
|
DB_FILENAME: str({ default: "data" }),
|
2020-01-30 18:51:52 +03:30
|
|
|
DB_HOST: str({ default: "localhost" }),
|
|
|
|
DB_PORT: num({ default: 5432 }),
|
|
|
|
DB_NAME: str({ default: "postgres" }),
|
2024-09-25 16:34:43 +03:30
|
|
|
DB_USER: str({ default: "postgres" }),
|
|
|
|
DB_PASSWORD: str({ default: "" }),
|
2020-01-30 18:51:52 +03:30
|
|
|
DB_SSL: bool({ default: false }),
|
2024-09-25 16:34:43 +03:30
|
|
|
DB_POOL_MIN: num({ default: 0 }),
|
2020-02-10 18:35:05 +02:00
|
|
|
DB_POOL_MAX: num({ default: 10 }),
|
2020-01-30 18:51:52 +03:30
|
|
|
REDIS_HOST: str({ default: "127.0.0.1" }),
|
|
|
|
REDIS_PORT: num({ default: 6379 }),
|
|
|
|
REDIS_PASSWORD: str({ default: "" }),
|
2022-11-10 15:05:11 +03:30
|
|
|
REDIS_DB: num({ default: 0 }),
|
2020-01-30 18:51:52 +03:30
|
|
|
USER_LIMIT_PER_DAY: num({ default: 50 }),
|
|
|
|
NON_USER_COOLDOWN: num({ default: 10 }),
|
|
|
|
DEFAULT_MAX_STATS_PER_LINK: num({ default: 5000 }),
|
2020-08-09 15:25:18 +04:30
|
|
|
DISALLOW_ANONYMOUS_LINKS: bool({ default: false }),
|
|
|
|
DISALLOW_REGISTRATION: bool({ default: false }),
|
2024-09-12 14:26:39 +03:30
|
|
|
SERVER_IP_ADDRESS: str({ default: "" }),
|
2020-01-30 18:51:52 +03:30
|
|
|
CUSTOM_DOMAIN_USE_HTTPS: bool({ default: false }),
|
|
|
|
JWT_SECRET: str(),
|
|
|
|
ADMIN_EMAILS: str({ default: "" }),
|
2024-09-09 18:43:12 +03:30
|
|
|
GOOGLE_SAFE_BROWSING_KEY: str({ default: "" }),
|
2024-09-23 13:45:39 +03:30
|
|
|
MAIL_ENABLED: bool({ default: false }),
|
|
|
|
MAIL_HOST: str({ default: "" }),
|
|
|
|
MAIL_PORT: num({ default: 587 }),
|
2020-01-30 18:51:52 +03:30
|
|
|
MAIL_SECURE: bool({ default: false }),
|
2024-09-23 13:45:39 +03:30
|
|
|
MAIL_USER: str({ default: "" }),
|
2020-01-30 18:51:52 +03:30
|
|
|
MAIL_FROM: str({ default: "", example: "Kutt <support@kutt.it>" }),
|
2024-09-23 13:45:39 +03:30
|
|
|
MAIL_PASSWORD: str({ default: "" }),
|
2020-01-30 18:51:52 +03:30
|
|
|
REPORT_EMAIL: str({ default: "" }),
|
2022-11-10 19:21:44 +03:30
|
|
|
CONTACT_EMAIL: str({ default: "" })
|
2020-01-30 18:51:52 +03:30
|
|
|
});
|
|
|
|
|
2024-08-11 18:41:03 +03:30
|
|
|
module.exports = env;
|