From 9da7ee115e9c7ef446dab3432ce73a1d4e813bb9 Mon Sep 17 00:00:00 2001 From: Diego Magdaleno Date: Sat, 22 May 2021 19:57:01 -0500 Subject: Scripts: Be able to generate config --- scripts/config_generator.js | 93 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 scripts/config_generator.js (limited to 'scripts/config_generator.js') diff --git a/scripts/config_generator.js b/scripts/config_generator.js new file mode 100644 index 00000000..270dd8da --- /dev/null +++ b/scripts/config_generator.js @@ -0,0 +1,93 @@ +const { Snowflake } = require("@fosscord/server-util"); +const crypto = require('crypto'); +const fs = require('fs'); + + +const defaultConfig = { + // TODO: Get the network interfaces dinamically + gateway: "ws://localhost", + general: { + instance_id: Snowflake.generate(), + }, + permissions: { + user: { + createGuilds: true, + } + }, + limits: { + user: { + maxGuilds: 100, + maxUsername: 32, + maxFriends: 1000, + }, + guild: { + maxRoles: 250, + maxMembers: 250000, + maxChannels: 500, + maxChannelsInCategory: 50, + hideOfflineMember: 1000, + }, + message: { + characters: 2000, + ttsCharacters: 200, + maxReactions: 20, + maxAttachmentSize: 8388608, + maxBulkDelete: 100, + }, + channel: { + maxPins: 50, + maxTopic: 1024, + }, + rate: { + ip: { + enabled: true, + count: 1000, + timespan: 1000 * 60 * 10, + }, + routes: "", + }, + }, + security: { + jwtSecret: crypto.randomBytes(256).toString("base64"), + forwadedFor: null, + // forwadedFor: "X-Forwarded-For" // nginx/reverse proxy + // forwadedFor: "CF-Connecting-IP" // cloudflare: + captcha: { + enabled: false, + service: null, + sitekey: null, + secret: null, + }, + }, + login: { + requireCaptcha: false, + }, + register: { + email: { + required: true, + allowlist: false, + blocklist: true, + domains: [], // TODO: efficiently save domain blocklist in database + // domains: fs.readFileSync(__dirname + "/blockedEmailDomains.txt", { encoding: "utf8" }).split("\n"), + }, + dateOfBirth: { + required: true, + minimum: 13, + }, + requireInvite: false, + requireCaptcha: true, + allowNewRegistration: true, + allowMultipleAccounts: true, + password: { + minLength: 8, + minNumbers: 2, + minUpperCase: 2, + minSymbols: 0, + blockInsecureCommonPasswords: false, + }, + }, +} + +let data = JSON.stringify(defaultConfig); +fs.writeFileSync('./.docker/config/api.json', data); + -- cgit 1.5.1 From dc32c39af30defecf48a253886e4a5e27b83bfe8 Mon Sep 17 00:00:00 2001 From: Diego Magdaleno Date: Sat, 22 May 2021 20:14:48 -0500 Subject: Scripts: Generator should use necessary instead of required --- scripts/config_generator.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'scripts/config_generator.js') diff --git a/scripts/config_generator.js b/scripts/config_generator.js index 270dd8da..5b5c52d4 100644 --- a/scripts/config_generator.js +++ b/scripts/config_generator.js @@ -44,7 +44,7 @@ const defaultConfig = { count: 1000, timespan: 1000 * 60 * 10, }, - routes: "", + routes: {}, }, }, security: { @@ -64,14 +64,14 @@ const defaultConfig = { }, register: { email: { - required: true, + necessary: true, allowlist: false, blocklist: true, domains: [], // TODO: efficiently save domain blocklist in database // domains: fs.readFileSync(__dirname + "/blockedEmailDomains.txt", { encoding: "utf8" }).split("\n"), }, dateOfBirth: { - required: true, + necessary: true, minimum: 13, }, requireInvite: false, -- cgit 1.5.1