Scripts: Be able to generate config
This commit is contained in:
parent
ff7985ad7d
commit
9da7ee115e
0
.docker/config/.keep
Normal file
0
.docker/config/.keep
Normal file
4
.gitignore
vendored
4
.gitignore
vendored
@ -105,3 +105,7 @@ dist
|
|||||||
|
|
||||||
.DS_STORE
|
.DS_STORE
|
||||||
src/ready.json
|
src/ready.json
|
||||||
|
|
||||||
|
# Docker
|
||||||
|
.docker/config/*
|
||||||
|
!.docker/config/.keep
|
93
scripts/config_generator.js
Normal file
93
scripts/config_generator.js
Normal file
@ -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);
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user