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 | ||||
| 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
	 Diego Magdaleno
						Diego Magdaleno