| 1 | { |
| 2 | "$schema": "https://raw.githubusercontent.com/Ylianst/MeshCentral/master/meshcentral-config-schema.json", |
| 3 | "__comment__": "This is a sample advanced configuration file, all values and sections that start with underscore (_) are ignored. Edit a section and remove the _ in front of the name. Refer to the user's guide for details.", |
| 4 | "settings": { |
| 5 | "cert": "myserver.mydomain.com", |
| 6 | "_SQLite3": true, |
| 7 | "_acebase": { "_sponsor": true }, |
| 8 | "_mongoDb": "mongodb://127.0.0.1:27017", |
| 9 | "_mongoDbName": "meshcentral", |
| 10 | "_mongoDbChangeStream": true, |
| 11 | "_mongoDbBulkOperations": true, |
| 12 | "_WANonly": true, |
| 13 | "_LANonly": true, |
| 14 | "_maintenanceMode": true, |
| 15 | "_certificatePrivateKeyPassword": [ "password1", "password2" ], |
| 16 | "_sessionTime": 60, |
| 17 | "_sessionKey": "MyReallySecretPassword1", |
| 18 | "_sessionSameSite": "strict", |
| 19 | "_dbEncryptKey": "MyReallySecretPassword2", |
| 20 | "_dbRecordsEncryptKey": "MyReallySecretPassword", |
| 21 | "_dbRecordsDecryptKey": "MyReallySecretPassword", |
| 22 | "__dbExpire": "Amount of time to keep various events in the database, in seconds. Below are the default values.", |
| 23 | "_dbExpire": { |
| 24 | "events": 1728000, |
| 25 | "powerevents": 864000, |
| 26 | "statsevents": 2592000 |
| 27 | }, |
| 28 | "port": 443, |
| 29 | "_portBind": "127.0.0.1", |
| 30 | "_aliasPort": 444, |
| 31 | "_redirPort": 80, |
| 32 | "_redirPortBind": "127.0.0.1", |
| 33 | "_redirAliasPort": 80, |
| 34 | "_relayPort": 453, |
| 35 | "_relayAliasPort": 463, |
| 36 | "_relayDNS": "relay.myserver.mydomain.com", |
| 37 | "_agentPort": 1234, |
| 38 | "_agentPortBind": "127.0.0.1", |
| 39 | "_agentAliasPort": 1234, |
| 40 | "_agentAliasDNS": "agents.myserver.mydomain.com", |
| 41 | "_agentPortTls": false, |
| 42 | "_agentLogDump": true, |
| 43 | "_agentCoreDump": true, |
| 44 | "_agentCoreDumpUsers": "user1,user2", |
| 45 | "_agentSignLock": true, |
| 46 | "_agentTimeStampServer": "http://timestamp.digicert.com", |
| 47 | "_agentTimeStampProxy": "http://1.2.3.4:80", |
| 48 | "_ignoreAgentHashCheck": true, |
| 49 | "_exactPorts": true, |
| 50 | "_allowLoginToken": true, |
| 51 | "_StrictTransportSecurity": true, |
| 52 | "_allowFraming": true, |
| 53 | "_allowedFramingOrigins": ["https://rmm.example.com"], |
| 54 | "_cookieIpCheck": false, |
| 55 | "_cookieEncoding": "hex", |
| 56 | "_webRTC": false, |
| 57 | "_nice404": false, |
| 58 | "_selfUpdate": true, |
| 59 | "_cleanNpmCacheOnUpdate": true, |
| 60 | "_browserPing": 60, |
| 61 | "_browserPong": 60, |
| 62 | "_agentsInRam": false, |
| 63 | "_agentPing": 60, |
| 64 | "_agentPong": 60, |
| 65 | "_orphanAgentUser": "admin", |
| 66 | "_agentIdleTimeout": 150, |
| 67 | "_webPageLengthRandomization": false, |
| 68 | "_compression": true, |
| 69 | "_wsCompression": true, |
| 70 | "_agentWsCompression": true, |
| 71 | "_noAgentUpdate": 1, |
| 72 | "_agentUpdateSystem": 1, |
| 73 | "_temporaryAgentUpdate": false, |
| 74 | "_amtScanner": false, |
| 75 | "_meshScanner": false, |
| 76 | "_meshErrorLogPath": "c:\\tmp", |
| 77 | "_npmPath": "c:\\npm.exe", |
| 78 | "_npmProxy": "http://1.2.3.4:80", |
| 79 | "_allowHighQualityDesktop": true, |
| 80 | "_webPush": { "email": "xxxxx@xxxxx.com" }, |
| 81 | "_publicPushNotifications": true, |
| 82 | "_desktopMultiplex": true, |
| 83 | "_ipBlockedUserRedirect": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", |
| 84 | "_userAllowedIP": "127.0.0.1,192.168.1.0/24", |
| 85 | "_userBlockedIP": "127.0.0.1,::1,192.168.0.100", |
| 86 | "_agentAllowedIP": "192.168.0.100/24", |
| 87 | "_agentBlockedIP": "127.0.0.1,::1", |
| 88 | "_authLog": "c:\\temp\\auth.log", |
| 89 | "_InterUserMessaging": [ "user//admin" ], |
| 90 | "_manageAllDeviceGroups": [ "user//admin" ], |
| 91 | "_manageCrossDomain": [ "user//admin" ], |
| 92 | "_localDiscovery": { |
| 93 | "name": "Local server name", |
| 94 | "info": "Information about this server" |
| 95 | }, |
| 96 | "_tlsOffload": "127.0.0.1,::1", |
| 97 | "_trustedProxy": "127.0.0.1,::1", |
| 98 | "_mpsPort": 44330, |
| 99 | "_mpsPortBind": "127.0.0.1", |
| 100 | "_mpsAliasPort": 4433, |
| 101 | "_mpsAliasHost": "mps.mydomain.com", |
| 102 | "_mpsTlsOffload": true, |
| 103 | "_mpsHighSecurity": true, |
| 104 | "_no2FactorAuth": true, |
| 105 | "_lockAgentDownload": true, |
| 106 | "_runOnServerStarted": "c:\\tmp\\mcstart.bat", |
| 107 | "_runOnServerUpdated": "c:\\tmp\\mcupdate.bat", |
| 108 | "_runOnServerError": "c:\\tmp\\mcerror.bat", |
| 109 | "_log": "main,web,webrequest,cert", |
| 110 | "_debug": "main,web,webrequest,cert", |
| 111 | "_syslog": "meshcentral", |
| 112 | "_syslogauth": "meshcentral-auth", |
| 113 | "_syslogjson": "meshcentral-json", |
| 114 | "_syslogtcp": "localhost:514", |
| 115 | "_webrtcConfig": { |
| 116 | "iceServers": [ |
| 117 | { "urls": "stun:stun.cloudflare.com:3478" }, |
| 118 | { "urls": "stun:stun.l.google.com:19302" } |
| 119 | ] |
| 120 | }, |
| 121 | "_autoBackup": { |
| 122 | "_mongoDumpPath": "C:\\Program Files\\MongoDB\\Server\\4.2\\bin\\mongodump.exe", |
| 123 | "_backupIntervalHours": 24, |
| 124 | "_keepLastDaysBackup": 10, |
| 125 | "_zipPassword": "MyReallySecretPassword3", |
| 126 | "_backupPath": "C:\\backups", |
| 127 | "_googleDrive": { |
| 128 | "folderName": "MeshCentral-Backups", |
| 129 | "maxFiles": 10 |
| 130 | }, |
| 131 | "_webdav": { |
| 132 | "url": "https://server/remote.php/dav/files/xxxxx@server.com/", |
| 133 | "username": "user", |
| 134 | "password": "pass", |
| 135 | "folderName": "MeshCentral-Backups", |
| 136 | "maxFiles": 10 |
| 137 | }, |
| 138 | "_s3": { |
| 139 | "accessKey": "MYLONGACCESSKEY", |
| 140 | "secretKey": "MYLONGSECRETKEY", |
| 141 | "endpoint": "myS3.myserver.com", |
| 142 | "port": 9000, |
| 143 | "ssl": false, |
| 144 | "bucketName": "test", |
| 145 | "folderName": "MeshCentral-Backups", |
| 146 | "maxfiles": 10 |
| 147 | } |
| 148 | }, |
| 149 | "_redirects": { |
| 150 | "meshcommander": "https://www.meshcommander.com/" |
| 151 | }, |
| 152 | "__maxInvalidLogin": "Time in minutes, max amount of bad logins from a source IP in the time before logins are rejected.", |
| 153 | "_maxInvalidLogin": { |
| 154 | "time": 10, |
| 155 | "count": 10, |
| 156 | "coolofftime": 10 |
| 157 | }, |
| 158 | "__maxInvalid2fa": "Time in minutes, max amount of bad two-factor authentication from a source IP in the time before 2FA's are rejected.", |
| 159 | "_maxInvalid2fa": { |
| 160 | "time": 10, |
| 161 | "count": 10, |
| 162 | "coolofftime": 10 |
| 163 | }, |
| 164 | "_watchDog": { |
| 165 | "interval": 100, |
| 166 | "timeout": 400 |
| 167 | }, |
| 168 | "_AmtProvisioningServer": { |
| 169 | "port": 9971, |
| 170 | "deviceGroup": "mesh//xxxxxxxxxxxxxxxxxxxxx", |
| 171 | "newMebxPassword": "amtpassword", |
| 172 | "trustedFqdn": "sample.com", |
| 173 | "ip": "192.168.1.1" |
| 174 | }, |
| 175 | "_crowdsec": { |
| 176 | "url": "http://localhost:8080", |
| 177 | "apiKey": "BOUNCER_API_KEY" |
| 178 | }, |
| 179 | "_plugins": { "enabled": true } |
| 180 | }, |
| 181 | "_domaindefaults": { |
| 182 | "__comment__": "Any settings in this section is used as default setting for all domains", |
| 183 | "_title": "MyDefaultTitle", |
| 184 | "_footer": "Default page footer", |
| 185 | "_newAccounts": false |
| 186 | }, |
| 187 | "domains": { |
| 188 | "": { |
| 189 | "_siteStyle": 2, |
| 190 | "_showModernUIToggle": true, |
| 191 | "_title": "MyServer", |
| 192 | "_title2": "Servername", |
| 193 | "_titlePicture": "title-sample.png", |
| 194 | "_loginPicture": "title-sample.png", |
| 195 | "_pwaLogo": "title-sample.png", |
| 196 | "_rootRedirect": "https://www.youtube.com/watch?v=Gs069dndIYk", |
| 197 | "_mobileSite": false, |
| 198 | "_maxDeviceView": 1000, |
| 199 | "_unknownUserRootRedirect": "https://www.youtube.com/watch?v=2Q_ZzBGPdqE", |
| 200 | "_nightMode": 1, |
| 201 | "_scrollToTop": true, |
| 202 | "_userQuota": 1048576, |
| 203 | "_meshQuota": 248576, |
| 204 | "_loginKey": [ "abc", "123" ], |
| 205 | "_agentKey": [ "abc", "123" ], |
| 206 | "_ipkvm": false, |
| 207 | "_minify": true, |
| 208 | "_hidePowerTimeline": true, |
| 209 | "_showNotesPanel": true, |
| 210 | "_collapseGroups": true, |
| 211 | "_userSessionsSort": "Username", |
| 212 | "_newAccounts": true, |
| 213 | "_newAccountsUserGroups": [ "ugrp//xxxxxxxxxxxxxxxxx" ], |
| 214 | "_manageAllDeviceGroups": [ "admin" ], |
| 215 | "_userNameIsEmail": true, |
| 216 | "_newAccountEmailDomains": [ "sample.com" ], |
| 217 | "_newAccountsRights": [ "nonewgroups", "notools" ], |
| 218 | "_welcomeText": "Sample Text on Login Page.", |
| 219 | "_welcomePicture": "mainwelcome.jpg", |
| 220 | "_welcomePictureFullScreen": false, |
| 221 | "_meshMessengerTitle": "MeshMessenger", |
| 222 | "_meshMessengerPicture": "messenger.png", |
| 223 | "___hide__": "Sum of: 1 = Hide header, 2 = Hide tab, 4 = Hide footer, 8 = Hide title, 16 = Hide left bar, 32 = Hide back buttons", |
| 224 | "_hide": 4, |
| 225 | "_footer": "<a href='https://twitter.com/mytwitter'>Twitter</a>", |
| 226 | "_loginfooter": "This is a private server.", |
| 227 | "_allowSavingDeviceCredentials": false, |
| 228 | "_guestDeviceSharing": false, |
| 229 | "_AutoRemoveInactiveDevices": 37, |
| 230 | "_DeviceSearchBarServerAndClientName": false, |
| 231 | "_agentSelfGuestSharing": { |
| 232 | "expire": 120 |
| 233 | }, |
| 234 | "_certUrl": "https://192.168.2.106:443/", |
| 235 | "_altMessenging": [ |
| 236 | { |
| 237 | "name": "Jitsi", |
| 238 | "url": "https://meet.jit.si/myserver-{0}", |
| 239 | "localurl": "https://meet.jit.si/myserver-local-{0}", |
| 240 | "type": "device" |
| 241 | }, |
| 242 | { |
| 243 | "name": "Jitsi", |
| 244 | "url": "https://meet.jit.si/myserver-{0}-{1}-{2}-{3}", |
| 245 | "localurl": "https://meet.jit.si/myserver-local-{0}-{1}-{2}-{3}", |
| 246 | "type": "user" |
| 247 | } |
| 248 | ], |
| 249 | "_deviceMeshRouterLinks": { |
| 250 | "rdp": true, |
| 251 | "ssh": true, |
| 252 | "scp": true, |
| 253 | "extralinks": [ |
| 254 | { |
| 255 | "name": "HTTP", |
| 256 | "protocol": "http", |
| 257 | "port": 80, |
| 258 | "_ip": "192.168.1.100", |
| 259 | "_filter": [ "mesh/(domainid)/(meshid)", "node/(domainid)/(nodeid)" ] |
| 260 | }, |
| 261 | { |
| 262 | "name": "HTTPS", |
| 263 | "protocol": "https", |
| 264 | "port": 443 |
| 265 | } |
| 266 | ] |
| 267 | }, |
| 268 | "_assistantTypeAgentInvite": 2, |
| 269 | "_PreconfiguredScripts": [ |
| 270 | { |
| 271 | "name": "Run NotePad as user", |
| 272 | "file": "scripts/notepad.bat", |
| 273 | "type": "bat", |
| 274 | "runas": "user" |
| 275 | }, |
| 276 | { |
| 277 | "name": "Run NotePad as agent", |
| 278 | "cmd": "notepad.exe", |
| 279 | "type": "bat", |
| 280 | "runas": "agent" |
| 281 | }, |
| 282 | { |
| 283 | "name": "Run echo", |
| 284 | "cmd": "echo \"hello world\"", |
| 285 | "type": "sh", |
| 286 | "runas": "agent" |
| 287 | }, |
| 288 | { |
| 289 | "name": "Agent Update", |
| 290 | "cmd": "agentupdate", |
| 291 | "type": "agent" |
| 292 | } |
| 293 | ], |
| 294 | "_PreconfiguredRemoteInput": [ |
| 295 | { |
| 296 | "name": "CompanyUrl", |
| 297 | "value": "https://help.mycompany.com/" |
| 298 | }, |
| 299 | { |
| 300 | "name": "Any Text", |
| 301 | "value": "Any text\r" |
| 302 | }, |
| 303 | { |
| 304 | "name": "Welcome", |
| 305 | "value": "Default welcome text" |
| 306 | } |
| 307 | ], |
| 308 | "_myServer": { |
| 309 | "Backup": false, |
| 310 | "Restore": false, |
| 311 | "Upgrade": false, |
| 312 | "ErrorLog": false, |
| 313 | "Console": false, |
| 314 | "Trace": false, |
| 315 | "Config": false |
| 316 | }, |
| 317 | "_passwordRequirements": { |
| 318 | "min": 8, |
| 319 | "max": 128, |
| 320 | "upper": 1, |
| 321 | "lower": 1, |
| 322 | "numeric": 1, |
| 323 | "nonalpha": 1, |
| 324 | "reset": 90, |
| 325 | "force2factor": true, |
| 326 | "skip2factor": "127.0.0.1,192.168.2.0/24", |
| 327 | "oldPasswordBan": 5, |
| 328 | "banCommonPasswords": false, |
| 329 | "twoFactorTimeout": 300, |
| 330 | "duo2factor": true |
| 331 | }, |
| 332 | "_twoFactorCookieDurationDays": 30, |
| 333 | "_agentInviteCodes": true, |
| 334 | "_agentNoProxy": true, |
| 335 | "_lockAgentDownload": true, |
| 336 | "_geoLocation": true, |
| 337 | "_ipLocation": true, |
| 338 | "_novnc": false, |
| 339 | "_mstsc": false, |
| 340 | "_ssh": true, |
| 341 | "_WebEmailsPath": "/myserver/email-templates", |
| 342 | "_consentMessages": { |
| 343 | "title": "MeshCentral", |
| 344 | "desktop": "{0} requesting remote desktop access. Grant access?", |
| 345 | "terminal": "{0} requesting remote terminal access. Grant access?", |
| 346 | "files": "{0} requesting remote files access. Grant access?", |
| 347 | "consentTimeout": 30, |
| 348 | "autoAcceptOnTimeout": false, |
| 349 | "autoAcceptIfNoUser": false, |
| 350 | "oldStyle": true |
| 351 | }, |
| 352 | "_customFiles": { |
| 353 | "desktop-theme": { |
| 354 | "css": ["theme.css"], |
| 355 | "js": ["theme.js"], |
| 356 | "scope": ["all"] |
| 357 | }, |
| 358 | "mobile-theme": { |
| 359 | "css": ["theme.css", "test.css"], |
| 360 | "js": ["analytics.js", "test.js"], |
| 361 | "scope": ["login2", "login"] |
| 362 | } |
| 363 | }, |
| 364 | "_notificationMessages": { |
| 365 | "title": "MeshCentral", |
| 366 | "desktop": "{0} started a remote desktop session.", |
| 367 | "terminal": "{0} started a remote terminal session.", |
| 368 | "files": "{0} started a remote files session." |
| 369 | }, |
| 370 | "_agentCustomization": { |
| 371 | "displayName": "Company® Product™", |
| 372 | "description": "Company® Product™ agent for remote monitoring, management and assistance.", |
| 373 | "companyName": "Company®", |
| 374 | "serviceName": "companyagent", |
| 375 | "image": "agent-logo.png", |
| 376 | "macosinstallerimage": "macos-installer-background.png", |
| 377 | "fileName": "compagnyagent" |
| 378 | }, |
| 379 | "_agentFileInfo": { |
| 380 | "icon": "agent.ico", |
| 381 | "filedescription": "sample_filedescription", |
| 382 | "fileversion": "0.1.2.3", |
| 383 | "internalname": "sample_internalname", |
| 384 | "legalcopyright": "sample_legalcopyright", |
| 385 | "originalfilename": "sample_originalfilename", |
| 386 | "productname": "sample_productname", |
| 387 | "productversion": "v0.1.2.3" |
| 388 | }, |
| 389 | "_assistantCustomization": { |
| 390 | "title": "Company® Product™", |
| 391 | "image": "assistant-logo.png", |
| 392 | "fileName": "compagny" |
| 393 | }, |
| 394 | "_androidCustomization": { |
| 395 | "title": "Company® Product™", |
| 396 | "subtitle": "Product Subtitle™", |
| 397 | "image": "assistant-logo.png" |
| 398 | }, |
| 399 | "_userAllowedIP": "127.0.0.1,192.168.1.0/24", |
| 400 | "_userBlockedIP": "127.0.0.1,::1,192.168.0.100", |
| 401 | "_agentAllowedIP": "192.168.0.100/24", |
| 402 | "_agentBlockedIP": "127.0.0.1,::1", |
| 403 | "___userSessionIdleTimeout__": "Number of user idle minutes before auto-disconnect", |
| 404 | "_userSessionIdleTimeout": 30, |
| 405 | "___logoutOnIdleSessionTimeout": "Determines whether MeshCentral should logout after the session idle timeout elapsed or should just disconnect remote desktop, terminal and files.", |
| 406 | "_logoutOnIdleSessionTimeout": false, |
| 407 | "_userConsentFlags": { |
| 408 | "desktopnotify": true, |
| 409 | "terminalnotify": true, |
| 410 | "filenotify": true, |
| 411 | "desktopprompt": true, |
| 412 | "terminalprompt": true, |
| 413 | "fileprompt": true, |
| 414 | "desktopprivacybar": true |
| 415 | }, |
| 416 | "_urlSwitching": false, |
| 417 | "_desktopPrivacyBarText": "Privacy bar: {0}, {1}", |
| 418 | "_limits": { |
| 419 | "_maxDevices": 100, |
| 420 | "_maxUserAccounts": 100, |
| 421 | "_maxUserSessions": 100, |
| 422 | "_maxAgentSessions": 100, |
| 423 | "maxSingleUserSessions": 10 |
| 424 | }, |
| 425 | "_terminal": { |
| 426 | "_linuxshell": "login", |
| 427 | "launchCommand": { |
| 428 | "linux": "clear\necho \"Hello Linux\"\n", |
| 429 | "darwin": "clear\necho \"Hello MacOS\"\n", |
| 430 | "freebsd": "clear\necho \"Hello FreeBSD\"\n" |
| 431 | } |
| 432 | }, |
| 433 | "_amtScanOptions": [ |
| 434 | "LabNetwork 192.168.15.0/23", |
| 435 | "SalesNetwork 192.168.8.0/24" |
| 436 | ], |
| 437 | "_amtAcmActivation": { |
| 438 | "log": "amtactivation.log", |
| 439 | "strictCommonName": false, |
| 440 | "certs": { |
| 441 | "mycertname": { |
| 442 | "certfiles": [ |
| 443 | "amtacm-leafcert.crt", |
| 444 | "amtacm-intermediate1.crt", |
| 445 | "amtacm-intermediate2.crt", |
| 446 | "amtacm-rootcert.crt" |
| 447 | ], |
| 448 | "keyfile": "amtacm-leafcert.key" |
| 449 | } |
| 450 | } |
| 451 | }, |
| 452 | "_amtManager": { |
| 453 | "adminAccounts": [ |
| 454 | { |
| 455 | "user": "admin", |
| 456 | "pass": "MyP@ssw0rd" |
| 457 | } |
| 458 | ], |
| 459 | "environmentDetection": [ |
| 460 | "domain1.com", |
| 461 | "domain2.com", |
| 462 | "domain3.com", |
| 463 | "domain4.com" |
| 464 | ], |
| 465 | "wifiProfiles": [ |
| 466 | { |
| 467 | "name": "Profile1", |
| 468 | "ssid": "MyStation1", |
| 469 | "authentication": "wpa2-psk", |
| 470 | "encryption": "ccmp-aes", |
| 471 | "password": "MyP@ssw0rd" |
| 472 | } |
| 473 | ] |
| 474 | }, |
| 475 | "_redirects": { |
| 476 | "meshcommander": "https://www.meshcommander.com/" |
| 477 | }, |
| 478 | "_duo2factor": { |
| 479 | "integrationkey": "mykey", |
| 480 | "secretkey": "mysecret", |
| 481 | "apihostname": "api-xxxxxxxxxxx.duosecurity.com" |
| 482 | }, |
| 483 | "_yubikey": { |
| 484 | "id": "0000", |
| 485 | "secret": "xxxxxxxxxxxxxxxxxxxxx", |
| 486 | "_proxy": "http://myproxy.domain.com:80" |
| 487 | }, |
| 488 | "_httpHeaders": { |
| 489 | "Strict-Transport-Security": "max-age=360000", |
| 490 | "x-frame-options": "SAMEORIGIN" |
| 491 | }, |
| 492 | "_agentConfig": [ "coreDumpEnabled=1" ], |
| 493 | "_assistantConfig": [ "disableUpdate=1" ], |
| 494 | "_sessionRecording": { |
| 495 | "_onlySelectedUsers": true, |
| 496 | "_onlySelectedUserGroups": true, |
| 497 | "_onlySelectedDeviceGroups": true, |
| 498 | "_filepath": "C:\\temp", |
| 499 | "_index": true, |
| 500 | "_maxRecordings": 10, |
| 501 | "_maxRecordingDays": 15, |
| 502 | "_maxRecordingSizeMegabytes": 3, |
| 503 | "__protocols__": "Is an array: 1 = Terminal, 2 = Desktop, 5 = Files, 100 = Intel AMT WSMAN, 101 = Intel AMT Redirection, 200 = Messenger", |
| 504 | "protocols": [ 1, 2, 101 ] |
| 505 | }, |
| 506 | "_authStrategies": { |
| 507 | "__comment__": "This section is used to allow users to login using other accounts. You will need to get an API key from the services and register callback URL's", |
| 508 | "twitter": { |
| 509 | "_callbackurl": "https://server/auth-twitter-callback", |
| 510 | "newAccounts": true, |
| 511 | "_newAccountsUserGroups": [ "ugrp//xxxxxxxxxxxxxxxxx" ], |
| 512 | "_newAccountsRights": [ "nonewgroups", "notools" ], |
| 513 | "clientid": "xxxxxxxxxxxxxxxxxxxxxxx", |
| 514 | "clientsecret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" |
| 515 | }, |
| 516 | "google": { |
| 517 | "_callbackurl": "https://server/auth-google-callback", |
| 518 | "newAccounts": true, |
| 519 | "_newAccountsUserGroups": [ "ugrp//xxxxxxxxxxxxxxxxx" ], |
| 520 | "_newAccountsRights": [ "nonewgroups", "notools" ], |
| 521 | "clientid": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com", |
| 522 | "clientsecret": "xxxxxxxxxxxxxxxxxxxxxxx" |
| 523 | }, |
| 524 | "github": { |
| 525 | "_callbackurl": "https://server/auth-github-callback", |
| 526 | "newAccounts": true, |
| 527 | "_newAccountsUserGroups": [ "ugrp//xxxxxxxxxxxxxxxxx" ], |
| 528 | "_newAccountsRights": [ "nonewgroups", "notools" ], |
| 529 | "clientid": "xxxxxxxxxxxxxxxxxxxxxxx", |
| 530 | "clientsecret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", |
| 531 | "_authorizationurl": "https://hostname/login/oauth/authorize", |
| 532 | "_tokenurl": "https://hostname/login/oauth/access_token", |
| 533 | "_userprofileurl": "https://hostname/user", |
| 534 | "_useremailurl": "https://hostname/user/emails" |
| 535 | }, |
| 536 | "azure": { |
| 537 | "_callbackurl": "https://server/auth-azure-callback", |
| 538 | "newAccounts": true, |
| 539 | "_newAccountsUserGroups": [ "ugrp//xxxxxxxxxxxxxxxxx" ], |
| 540 | "_newAccountsRights": [ "nonewgroups", "notools" ], |
| 541 | "clientid": "00000000-0000-0000-0000-000000000000", |
| 542 | "clientsecret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", |
| 543 | "tenantid": "00000000-0000-0000-0000-000000000000" |
| 544 | }, |
| 545 | "jumpcloud": { |
| 546 | "_callbackurl": "https://server/auth-jumpcloud-callback", |
| 547 | "newAccounts": true, |
| 548 | "_newAccountsUserGroups": [ "ugrp//xxxxxxxxxxxxxxxxx" ], |
| 549 | "_newAccountsRights": [ "nonewgroups", "notools" ], |
| 550 | "entityid": "meshcentral", |
| 551 | "idpurl": "https://sso.jumpcloud.com/saml2/saml2", |
| 552 | "cert": "jumpcloud-saml.pem" |
| 553 | }, |
| 554 | "saml": { |
| 555 | "_callbackurl": "https://server/auth-saml-callback", |
| 556 | "_disableRequestedAuthnContext": true, |
| 557 | "newAccounts": true, |
| 558 | "_newAccountsUserGroups": [ "ugrp//xxxxxxxxxxxxxxxxx" ], |
| 559 | "_newAccountsRights": [ "nonewgroups", "notools" ], |
| 560 | "entityid": "meshcentral", |
| 561 | "idpurl": "https://server/saml2", |
| 562 | "cert": "saml.pem" |
| 563 | }, |
| 564 | "oidc": { |
| 565 | "issuer": { |
| 566 | "issuer": "https://sso.server.com", |
| 567 | "end_session_endpoint": "https://sso.server.com/logout" |
| 568 | }, |
| 569 | "client": { |
| 570 | "client_id": "00000000-0000-0000-0000-000000000000", |
| 571 | "client_secret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" |
| 572 | }, |
| 573 | "_custom": { |
| 574 | "_buttonText": "Sign-in using Custom Button Text", |
| 575 | "_buttonIconUrl": "https://example.com/custom-icon.png", |
| 576 | "_buttonIconUrl2x": "https://example.com/custom-icon-2x.png" |
| 577 | }, |
| 578 | "groups": { |
| 579 | "required": [ "groupA", "groupB", "groupC" ], |
| 580 | "siteadmin": [ "groupA" ], |
| 581 | "sync": { |
| 582 | "enable": true, |
| 583 | "filter": [ "groupB", "groupC" ] |
| 584 | } |
| 585 | }, |
| 586 | "options" : { |
| 587 | "params": { |
| 588 | "prompt": "select_account" |
| 589 | } |
| 590 | }, |
| 591 | "newAccounts": true, |
| 592 | "_newAccountsRights": [ "nonewgroups", "notools" ], |
| 593 | "_newAccountsUserGroups": [ "ugrp//xxxxxxxxxxxxxxxxx" ] |
| 594 | |
| 595 | } |
| 596 | } |
| 597 | }, |
| 598 | "_customer1": { |
| 599 | "_dns": "customer1.myserver.com", |
| 600 | "_title": "Customer1", |
| 601 | "_title2": "TestServer", |
| 602 | "_newAccounts": 1, |
| 603 | "_auth": "sspi", |
| 604 | "__auth": "ldap", |
| 605 | "_LDAPUserName": "gecos", |
| 606 | "_LDAPUserKey": "uid", |
| 607 | "_LDAPUserEmail": "otherMail", |
| 608 | "_LDAPUserGroups": "memberOf", |
| 609 | "_LDAPSiteAdminGroups": [ "CN=Domain Admins,CN=Users,DC=sample,DC=com" ], |
| 610 | "_LDAPUserRequiredGroupMembership": [ "CN=Domain Admins,CN=Users,DC=sample,DC=com" ], |
| 611 | "_LDAPSyncWithUserGroups": { "filter": [ "CN=Domain Admins" ] }, |
| 612 | "_LDAPOptions": { |
| 613 | "URL": "ldap://1.2.3.4:389", |
| 614 | "BindDN": "CN=svc_meshcentral,CN=Users,DC=meshcentral,DC=local", |
| 615 | "BindCredentials": "Password.1", |
| 616 | "SearchBase": "DC=meshcentral,DC=local", |
| 617 | "SearchFilter": "(sAMAccountName={{username}})" |
| 618 | }, |
| 619 | "_footer": "Test", |
| 620 | "_certUrl": "https://192.168.2.106:443/" |
| 621 | }, |
| 622 | "_info": { |
| 623 | "_share": "C:\\ExtraWebSite" |
| 624 | } |
| 625 | }, |
| 626 | "_letsencrypt": { |
| 627 | "__comment__": "Requires NodeJS 8.x or better, Go to https://letsdebug.net/ first before trying Let's Encrypt.", |
| 628 | "email": "myemail@myserver.com", |
| 629 | "names": "myserver.com,customer1.myserver.com", |
| 630 | "skipChallengeVerification": false, |
| 631 | "production": false, |
| 632 | "rsaKeySize": 2048, |
| 633 | "custom": { |
| 634 | "server": "https://acme.zerossl.com/v2/DV90", |
| 635 | "kid": "a1b2c3d4e5", |
| 636 | "hmacKey": "a1b2c3d4e5" |
| 637 | }, |
| 638 | "zerossl": { |
| 639 | "kid": "a1b2c3d4e5", |
| 640 | "hmacKey": "a1b2c3d4e5" |
| 641 | } |
| 642 | }, |
| 643 | "_peers": { |
| 644 | "serverId": "server1", |
| 645 | "servers": { |
| 646 | "server1": { "url": "wss://192.168.2.133:443/" }, |
| 647 | "server2": { "url": "wss://192.168.1.106:443/" } |
| 648 | } |
| 649 | }, |
| 650 | "_smtp": { |
| 651 | "host": "smtp.myserver.com", |
| 652 | "port": 25, |
| 653 | "from": "myemail@myserver.com", |
| 654 | "__tls__": "When 'tls' is set to true, TLS is used immidiatly when connecting. For SMTP servers that use TLSSTART, set this to 'false' and TLS will still be used.", |
| 655 | "tls": false, |
| 656 | "___tlscertcheck__": "When set to false, the TLS certificate of the SMTP server is not checked.", |
| 657 | "_tlscertcheck": false, |
| 658 | "__tlsstrict__": "When set to true, TLS cypher setup is more limited, SSLv2 and SSLv3 are not allowed.", |
| 659 | "_tlsstrict": true, |
| 660 | "_emailDelaySeconds": 300 |
| 661 | }, |
| 662 | "_sendgrid": { |
| 663 | "from": "myemail@myserver.com", |
| 664 | "apikey": "***********", |
| 665 | "_emailDelaySeconds": 300 |
| 666 | }, |
| 667 | "_sendmail": { |
| 668 | "newline": "unix", |
| 669 | "path": "/usr/sbin/sendmail", |
| 670 | "_args": [ "-f", "foo@example.com" ], |
| 671 | "_emailDelaySeconds": 300 |
| 672 | }, |
| 673 | "_sms": { |
| 674 | "provider": "twilio", |
| 675 | "sid": "ACxxxxxxxxx", |
| 676 | "auth": "xxxxxxx", |
| 677 | "from": "+1-555-555-5555" |
| 678 | }, |
| 679 | "__sms": { |
| 680 | "provider": "plivo", |
| 681 | "id": "xxxxxxx", |
| 682 | "token": "xxxxxxx", |
| 683 | "from": "1-555-555-5555" |
| 684 | }, |
| 685 | "___sms": { |
| 686 | "provider": "telnyx", |
| 687 | "apikey": "xxxxxxx", |
| 688 | "from": "1-555-555-5555" |
| 689 | }, |
| 690 | "____sms": { |
| 691 | "provider": "url", |
| 692 | "url": "http://example.com/sms.ashx?phone={{phone}}&message={{message}}" |
| 693 | }, |
| 694 | "_messaging": { |
| 695 | "_telegram": { |
| 696 | "apiid": 0, |
| 697 | "apihash": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx", |
| 698 | "session": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", |
| 699 | "useWSS": "false", |
| 700 | "connectionRetries": 60 |
| 701 | }, |
| 702 | "_discord": { |
| 703 | "serverurl": "https://discord.gg/xxxxxxxxx", |
| 704 | "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxx" |
| 705 | }, |
| 706 | "_ntfy": { |
| 707 | "host": "https://[my]ntfy.sh", |
| 708 | "userurl": "https://[my]ntfy.sh/userhelp", |
| 709 | "authorization": "Basic xxxxxxxxxxxxxxxxxxxx" |
| 710 | } |
| 711 | } |
| 712 | } |