mirror of
https://github.com/Ylianst/MeshCentral.git
synced 2025-02-12 11:01:52 +00:00
Merge branch 'master' of https://github.com/Ylianst/MeshCentral
This commit is contained in:
commit
6084182164
15 changed files with 456 additions and 20 deletions
5
.github/workflows/docker.yml
vendored
5
.github/workflows/docker.yml
vendored
|
@ -43,13 +43,14 @@ jobs:
|
||||||
with:
|
with:
|
||||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||||
- name: Build and push Docker image
|
- name: Build and push Docker image
|
||||||
uses: docker/build-push-action@v2
|
uses: docker/build-push-action@v3
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
file: docker/Dockerfile
|
file: docker/Dockerfile
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
push: true
|
push: true
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
build-args: |
|
build-args: |
|
||||||
INCLUDE_MONGODBTOOLS=true
|
INCLUDE_MONGODBTOOLS=true
|
||||||
PREINSTALL_LIBS=true
|
PREINSTALL_LIBS=true
|
||||||
|
|
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
|
@ -779,6 +779,7 @@
|
||||||
"tokenuserid",
|
"tokenuserid",
|
||||||
"tokenusername",
|
"tokenusername",
|
||||||
"totalsize",
|
"totalsize",
|
||||||
|
"TOTP",
|
||||||
"tpass",
|
"tpass",
|
||||||
"tpassword",
|
"tpassword",
|
||||||
"tpush",
|
"tpush",
|
||||||
|
|
|
@ -362,8 +362,8 @@ module.exports.CreateAmtScanner = function (parent) {
|
||||||
if (oldVer == newVer) return false; // Versions are same already, don't update.
|
if (oldVer == newVer) return false; // Versions are same already, don't update.
|
||||||
if (newVer == undefined || newVer == null) return false; // New version is bad, don't update it.
|
if (newVer == undefined || newVer == null) return false; // New version is bad, don't update it.
|
||||||
if (oldVer == undefined || oldVer == null) return true; // Old version is no good anyway, update it.
|
if (oldVer == undefined || oldVer == null) return true; // Old version is no good anyway, update it.
|
||||||
var oldVerArr = oldVer.split('.');
|
var oldVerArr = oldVer.toString().split('.');
|
||||||
var newVerArr = newVer.split('.');
|
var newVerArr = newVer.toString().split('.');
|
||||||
if ((oldVerArr.length < 2) || (newVerArr.length < 2)) return false;
|
if ((oldVerArr.length < 2) || (newVerArr.length < 2)) return false;
|
||||||
if ((oldVerArr[0] != newVerArr[0]) || (oldVerArr[1] != newVerArr[1])) return true;
|
if ((oldVerArr[0] != newVerArr[0]) || (oldVerArr[1] != newVerArr[1])) return true;
|
||||||
if (newVerArr.length > oldVerArr.length) return true;
|
if (newVerArr.length > oldVerArr.length) return true;
|
||||||
|
|
BIN
docs/docs/intelamt/images/amtprovisioningserver.png
Normal file
BIN
docs/docs/intelamt/images/amtprovisioningserver.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 200 KiB |
|
@ -49,6 +49,16 @@ Intel® AMT
|
||||||
|
|
||||||
If you are looking into managing remote computers that would be difficult to physically get access to for remote support or maintenance, one should probably look at getting a PC with Intel AMT.
|
If you are looking into managing remote computers that would be difficult to physically get access to for remote support or maintenance, one should probably look at getting a PC with Intel AMT.
|
||||||
|
|
||||||
|
## Bare-Metal Activation Server
|
||||||
|
|
||||||
|
The `AmtProvisioningServer` section in the `settings` section of the config.json will enable this feature. MeshCentral will then listen for activation requests, match against your ACM activation certificates and if everything goes well, will activate and add the device to a Intel AMT only device group. No agent or MeshCMD is involved.
|
||||||
|
|
||||||
|
This bare-metal activation server is not enabled by default and only makes sense when activating devices on the local network.
|
||||||
|
|
||||||
|
Once enabled, Intel AMT can send “hello” data to the MeshCentral provisioning server on port 9971 and MeshCentral will respond by connecting back, authenticating, and activating Intel AMT. MeshCentral will then log the event, add the device to a pre-defined agent-less device group and complete any remaining configuration. A trusted CA certificate is required to perform this operation fully automatically.
|
||||||
|
|
||||||
|
![baremetal](images/amtprovisioningserver.png)
|
||||||
|
|
||||||
## MeshCentral Group Types
|
## MeshCentral Group Types
|
||||||
|
|
||||||
Once MeshCentral is installed, a user will typically create a new device group. Here is the first hint that MeshCentral supports Intel AMT. Device groups come in two types. You can manage using a software agent, or using Intel AMT only.
|
Once MeshCentral is installed, a user will typically create a new device group. Here is the first hint that MeshCentral supports Intel AMT. Device groups come in two types. You can manage using a software agent, or using Intel AMT only.
|
||||||
|
@ -175,6 +185,10 @@ Once setup, Intel AMT will not automatically activate to Intel AMT unless the ri
|
||||||
- The name “meshcentral.com” by have been set as “Trusted FQDN” in MEBx.
|
- The name “meshcentral.com” by have been set as “Trusted FQDN” in MEBx.
|
||||||
- The name “meshcentral.com” must have been set using a USB key with a setup.bin file.
|
- The name “meshcentral.com” must have been set using a USB key with a setup.bin file.
|
||||||
|
|
||||||
|
<div class="video-wrapper">
|
||||||
|
<iframe width="320" height="180" src="https://www.youtube.com/embed/mhq0bsWJEOw" frameborder="0" allowfullscreen></iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
Once Intel AMT is in a situation where ACM activation can occur, the activation command line can be run or the Mesh Agent will detect this situation and ask the server to perform activation.
|
Once Intel AMT is in a situation where ACM activation can occur, the activation command line can be run or the Mesh Agent will detect this situation and ask the server to perform activation.
|
||||||
|
|
||||||
![](images/2022-05-16-23-16-05.png)
|
![](images/2022-05-16-23-16-05.png)
|
||||||
|
|
|
@ -50,7 +50,7 @@ For OSx 11+ including Big Sur, Monterey and later
|
||||||
|
|
||||||
## Apple macOS
|
## Apple macOS
|
||||||
|
|
||||||
For macOS 10.x including Catalina, Mojave, High Sierra, Sierra, El Capitan, Yosemite, Mavericks, Mountain Lion and earlier
|
For macOS 10.x including Catalina, Mojave, High Sierra, Sierra, El Capitan, Yosemite, Mavericks, Mountain Lion and earlier.
|
||||||
|
|
||||||
## Mobile Device (Android)
|
## Mobile Device (Android)
|
||||||
|
|
||||||
|
@ -59,3 +59,296 @@ For macOS 10.x including Catalina, Mojave, High Sierra, Sierra, El Capitan, Yose
|
||||||
See [Assistant](assistant.md)
|
See [Assistant](assistant.md)
|
||||||
|
|
||||||
## Apple MacOS Binary Installer
|
## Apple MacOS Binary Installer
|
||||||
|
|
||||||
|
## Agent Commands
|
||||||
|
|
||||||
|
**agentmsg**
|
||||||
|
: Add/Remove badged messages to the device's web ui
|
||||||
|
```
|
||||||
|
agentmsg add "[message]" [iconIndex]
|
||||||
|
agentmsg remove [index]
|
||||||
|
agentmsg list
|
||||||
|
```
|
||||||
|
**agentsize**
|
||||||
|
: Returns the binary size of the agent
|
||||||
|
|
||||||
|
**agentupdate**
|
||||||
|
: Manually trigger an agent self-update
|
||||||
|
|
||||||
|
**alert**
|
||||||
|
: Display an alert dialog on the logged in session
|
||||||
|
```
|
||||||
|
alert TITLE, CAPTION [, TIMEOUT]
|
||||||
|
```
|
||||||
|
|
||||||
|
**amt**
|
||||||
|
|
||||||
|
**amtconfig**
|
||||||
|
|
||||||
|
**amtevents**
|
||||||
|
|
||||||
|
**apf**
|
||||||
|
|
||||||
|
**args**
|
||||||
|
|
||||||
|
**av**
|
||||||
|
: Displays Antivirus State
|
||||||
|
|
||||||
|
**coredump**
|
||||||
|
|
||||||
|
**coreinfo**
|
||||||
|
|
||||||
|
**cpuinfo**
|
||||||
|
|
||||||
|
**cs**
|
||||||
|
: Display Windows Connected Standby State
|
||||||
|
|
||||||
|
**dbcompact**
|
||||||
|
: Compacts the agent database
|
||||||
|
|
||||||
|
**dbget**
|
||||||
|
|
||||||
|
**dbkeys**
|
||||||
|
|
||||||
|
**dbset**
|
||||||
|
|
||||||
|
**dnsinfo**
|
||||||
|
: Display DNS server info
|
||||||
|
|
||||||
|
**domain**
|
||||||
|
: Display domain metadata
|
||||||
|
|
||||||
|
**errorlog**
|
||||||
|
|
||||||
|
**eval**
|
||||||
|
: executes javascript on the agent
|
||||||
|
```
|
||||||
|
eval [code]
|
||||||
|
```
|
||||||
|
|
||||||
|
**fdcount**
|
||||||
|
: Returns the number of active descriptors in the event loop
|
||||||
|
|
||||||
|
**fdsnapshot**
|
||||||
|
: Returns detailed descriptor/handle/timer metadata
|
||||||
|
|
||||||
|
**getclip**
|
||||||
|
: Fetches clipboard data from agent
|
||||||
|
|
||||||
|
**getscript**
|
||||||
|
|
||||||
|
**help**
|
||||||
|
: Returns the list of supported console commands
|
||||||
|
|
||||||
|
**httpget**
|
||||||
|
|
||||||
|
**info**
|
||||||
|
: Returns general information about the agent, such as connected state, loaded modules, LMS state, etc
|
||||||
|
|
||||||
|
**kill**
|
||||||
|
: Sends a SIGKILL signal to the specified PID
|
||||||
|
```
|
||||||
|
kill [pid]
|
||||||
|
```
|
||||||
|
|
||||||
|
**kvmmode**
|
||||||
|
: Displays the KVM Message Format
|
||||||
|
|
||||||
|
**location**
|
||||||
|
: Displays saves location information about the connected agent
|
||||||
|
|
||||||
|
**lock**
|
||||||
|
|
||||||
|
**log**
|
||||||
|
: Writes a message to the logfile
|
||||||
|
```
|
||||||
|
log [message]
|
||||||
|
```
|
||||||
|
|
||||||
|
**ls**
|
||||||
|
: Enumerates the files in the agent's install folder
|
||||||
|
|
||||||
|
**mousetrails**
|
||||||
|
: Enables/Disables Mouse Trails Accessibility on Windows. To change setting, specify a positive integer representing the number of latent cursors, where 0 is disable
|
||||||
|
```
|
||||||
|
mousetrails [n]
|
||||||
|
```
|
||||||
|
|
||||||
|
**msh**
|
||||||
|
: Displays the loaded msh settings file
|
||||||
|
|
||||||
|
**netinfo**
|
||||||
|
: Displays network interface information
|
||||||
|
|
||||||
|
**notify**
|
||||||
|
: Display a notification on the web interface
|
||||||
|
|
||||||
|
**openurl**
|
||||||
|
|
||||||
|
**osinfo**
|
||||||
|
: Displays OS information
|
||||||
|
|
||||||
|
**parseuri**
|
||||||
|
: Parses the specified URI, and displays the parsed output
|
||||||
|
```
|
||||||
|
parseuri [uri]
|
||||||
|
```
|
||||||
|
|
||||||
|
**plugin**
|
||||||
|
: Invokes a plugin
|
||||||
|
```
|
||||||
|
plugin [pluginName] [args]
|
||||||
|
```
|
||||||
|
|
||||||
|
**power**
|
||||||
|
: Performs the specified power action
|
||||||
|
```
|
||||||
|
power [action]
|
||||||
|
LOGOFF = 1
|
||||||
|
SHUTDOWN = 2
|
||||||
|
REBOOT = 3
|
||||||
|
SLEEP = 4
|
||||||
|
HIBERNATE = 5
|
||||||
|
DISPLAYON = 6
|
||||||
|
KEEPAWAKE = 7
|
||||||
|
BEEP = 8
|
||||||
|
CTRLALTDEL = 9
|
||||||
|
VIBRATE = 13
|
||||||
|
FLASH = 14
|
||||||
|
```
|
||||||
|
|
||||||
|
**print**
|
||||||
|
|
||||||
|
**privacybar**
|
||||||
|
: Sets/Gets the default pinned state of the Privacy Bar on windows
|
||||||
|
```
|
||||||
|
privacybar [PINNED|UNPINNED]
|
||||||
|
```
|
||||||
|
|
||||||
|
**ps**
|
||||||
|
: Enumerates processes on the agent
|
||||||
|
|
||||||
|
**rawsmbios**
|
||||||
|
: Fetches the raw smbios table
|
||||||
|
|
||||||
|
**safemode**
|
||||||
|
: Sets/Gets the SAFEMODE configuration of the agent, as well as the next boot state.
|
||||||
|
```
|
||||||
|
safemode (ON|OFF|STATUS)
|
||||||
|
```
|
||||||
|
|
||||||
|
**scanwifi**
|
||||||
|
: Scans the available Wifi access points, and displays the SSID and Signal Strength
|
||||||
|
|
||||||
|
**service**
|
||||||
|
: Shortcut to be able to restart the agent service
|
||||||
|
```
|
||||||
|
service status|restart
|
||||||
|
```
|
||||||
|
|
||||||
|
**setclip**
|
||||||
|
: Sets clipboard data to the agent
|
||||||
|
```
|
||||||
|
setclip [text]
|
||||||
|
```
|
||||||
|
|
||||||
|
**setdebug**
|
||||||
|
: Sets the location target for debug messages
|
||||||
|
```
|
||||||
|
setdebug [target]
|
||||||
|
0 = Disabled
|
||||||
|
1 = StdOut
|
||||||
|
2 = This Console
|
||||||
|
* = All Consoles
|
||||||
|
4 = WebLog
|
||||||
|
8 = Logfile
|
||||||
|
```
|
||||||
|
|
||||||
|
**smbios**
|
||||||
|
: Displays the parsed SMBIOS metadata
|
||||||
|
|
||||||
|
**startupoptions**
|
||||||
|
: Displays the command-line options that the agent was started with
|
||||||
|
|
||||||
|
**sysinfo**
|
||||||
|
: Collects and displays telemetry on the platform
|
||||||
|
|
||||||
|
**task**
|
||||||
|
|
||||||
|
**taskbar**
|
||||||
|
: Hides or shows the Windows System task bar, optionally on the specified Terminal Server Session ID
|
||||||
|
```
|
||||||
|
taskbar HIDE|SHOW [TSID]
|
||||||
|
```
|
||||||
|
|
||||||
|
**timerinfo**
|
||||||
|
: Displays metadata about any configured timers on the event loop
|
||||||
|
|
||||||
|
**toast**
|
||||||
|
: Displays a toast message on the logged in user's session
|
||||||
|
```
|
||||||
|
toast [message]
|
||||||
|
```
|
||||||
|
|
||||||
|
**translations**
|
||||||
|
: Shows the currently configured translations
|
||||||
|
|
||||||
|
**type**
|
||||||
|
```
|
||||||
|
type (filepath) [maxlength]
|
||||||
|
```
|
||||||
|
|
||||||
|
**uac**
|
||||||
|
: Get/Sets the Windows UAC mode
|
||||||
|
```
|
||||||
|
uac [get|interactive|secure]
|
||||||
|
```
|
||||||
|
|
||||||
|
**unzip**
|
||||||
|
```
|
||||||
|
unzip input, destination
|
||||||
|
```
|
||||||
|
: Unzips the specified file
|
||||||
|
|
||||||
|
**users**
|
||||||
|
: Enumerates the logged in users on the system
|
||||||
|
|
||||||
|
**versions**
|
||||||
|
: Displays version information about the agent
|
||||||
|
|
||||||
|
**vm**
|
||||||
|
: Detects if the system is a Virtual Machine
|
||||||
|
|
||||||
|
**volumes**
|
||||||
|
: Displays volume information reported by the OS
|
||||||
|
|
||||||
|
**wakeonlan**
|
||||||
|
: Sends wake-on-lan packets to the specified MAC address
|
||||||
|
```
|
||||||
|
wakeonlan [mac]
|
||||||
|
```
|
||||||
|
|
||||||
|
**wallpaper**
|
||||||
|
: Gets/Toggles the logged in user's desktop background image
|
||||||
|
```
|
||||||
|
wallpaper (GET|TOGGLE)
|
||||||
|
```
|
||||||
|
|
||||||
|
**wpfhwacceleration**
|
||||||
|
: Enable/Disable WPF HW Acceleration on Windows
|
||||||
|
```
|
||||||
|
wpfhwacceleration (ON|OFF|STATUS)
|
||||||
|
```
|
||||||
|
|
||||||
|
**wsclose**
|
||||||
|
|
||||||
|
**wsconnect**
|
||||||
|
|
||||||
|
**wslist**
|
||||||
|
|
||||||
|
**wssend**
|
||||||
|
|
||||||
|
**zip**
|
||||||
|
```
|
||||||
|
zip (output file name), input1 [, input n]
|
||||||
|
```
|
||||||
|
|
|
@ -210,3 +210,60 @@ Note you can show CPU and Memory usage info by clicking the icon in the top righ
|
||||||
For debugging and communicating with the mesh agent.
|
For debugging and communicating with the mesh agent.
|
||||||
|
|
||||||
It allows JS commands to be issued to the device but also run extra commands from the meshcore. Type `help` for all available options
|
It allows JS commands to be issued to the device but also run extra commands from the meshcore. Type `help` for all available options
|
||||||
|
|
||||||
|
- 2falock
|
||||||
|
- acceleratorsstats
|
||||||
|
- agentissues
|
||||||
|
- agentstats
|
||||||
|
- amtacm
|
||||||
|
- amtmanager
|
||||||
|
- amtpasswords
|
||||||
|
- amtstats
|
||||||
|
- args
|
||||||
|
- autobackup
|
||||||
|
- backupconfig
|
||||||
|
- bad2fa
|
||||||
|
- badlogins
|
||||||
|
- certexpire
|
||||||
|
- certhashes
|
||||||
|
- closeusersessions
|
||||||
|
- cores
|
||||||
|
- dbcounters
|
||||||
|
- dbstats
|
||||||
|
- dispatchtable
|
||||||
|
- dropallcira
|
||||||
|
- dupagents
|
||||||
|
- email
|
||||||
|
- emailnotifications
|
||||||
|
- firebase
|
||||||
|
- heapdump
|
||||||
|
- heapdump2
|
||||||
|
- help
|
||||||
|
- info
|
||||||
|
- le
|
||||||
|
- lecheck
|
||||||
|
- leevents
|
||||||
|
- maintenance
|
||||||
|
- migrationagents
|
||||||
|
- mps
|
||||||
|
- mpsstats
|
||||||
|
- msg
|
||||||
|
- nodeconfig
|
||||||
|
- print
|
||||||
|
- relays
|
||||||
|
- removeinactivedevices
|
||||||
|
- resetserver
|
||||||
|
- serverupdate
|
||||||
|
- setmaxtasks
|
||||||
|
- showpaths
|
||||||
|
- sms
|
||||||
|
- swarmstats
|
||||||
|
- tasklimiter
|
||||||
|
- trafficdelta
|
||||||
|
- trafficstats
|
||||||
|
- updatecheck
|
||||||
|
- usersessions
|
||||||
|
- versions
|
||||||
|
- watchdog
|
||||||
|
- webpush
|
||||||
|
- webstats
|
||||||
|
|
|
@ -44,7 +44,9 @@ You're sure you're typing in everything right, giving it 2FA code and can't logi
|
||||||
|
|
||||||
![](images/2022-08-04-18-19-19.png)
|
![](images/2022-08-04-18-19-19.png)
|
||||||
|
|
||||||
# Branding and Customisation
|
# Branding and Customization
|
||||||
|
|
||||||
You can brand and customise MeshCentral almost as much as you like without delving into the code, a few changes in the config.json file and uplaoding images can change the way your system looks. Read more [here](https://ylianst.github.io/MeshCentral/meshcentral/#branding-terms-of-use)
|
You can brand and customize MeshCentral almost as much as you like without delving into the code, a few changes in the config.json file and uploading images can change the way your system looks. Read more [here](https://ylianst.github.io/MeshCentral/meshcentral/#branding-terms-of-use)
|
||||||
|
|
||||||
|
!!!note
|
||||||
|
You will need to reinstall the agent for agent customizations to take effect.
|
||||||
|
|
|
@ -1258,6 +1258,59 @@ You can also customize the Agent to add your own logo.
|
||||||
|
|
||||||
![](images/2022-08-24-06-42-40.png)
|
![](images/2022-08-24-06-42-40.png)
|
||||||
|
|
||||||
|
```json
|
||||||
|
"agentCustomization": {
|
||||||
|
"displayName": {
|
||||||
|
"type": "string",
|
||||||
|
"default": "MeshCentral Agent",
|
||||||
|
"description": "The name of the agent as displayed to the user."
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "string",
|
||||||
|
"default": "Mesh Agent background service",
|
||||||
|
"description": "The description of the agent as displayed to the user."
|
||||||
|
},
|
||||||
|
"companyName": {
|
||||||
|
"type": "string",
|
||||||
|
"default": "Mesh Agent",
|
||||||
|
"description": "This will be used as the path to install the agent, by default this is 'Mesh Agent' in Windows and 'meshagent' in other OS's."
|
||||||
|
},
|
||||||
|
"serviceName": {
|
||||||
|
"type": "string",
|
||||||
|
"default": "Mesh Agent",
|
||||||
|
"description": "The name of the background service, by default this is 'Mesh Agent' in Windows and 'meshagent' in other OS's but should be set to an all lower case, no space string."
|
||||||
|
},
|
||||||
|
"installText": {
|
||||||
|
"type": "string",
|
||||||
|
"default": null,
|
||||||
|
"description": "Text string to show in the agent installation dialog box."
|
||||||
|
},
|
||||||
|
"image": {
|
||||||
|
"type": "string",
|
||||||
|
"default": null,
|
||||||
|
"description": "The filename of a image file in .png format located in meshcentral-data to display in the MeshCentral Agent installation dialog, image should be square and from 64x64 to 200x200."
|
||||||
|
},
|
||||||
|
"fileName": {
|
||||||
|
"type": "string",
|
||||||
|
"default": "meshagent",
|
||||||
|
"description": "The agent filename."
|
||||||
|
},
|
||||||
|
"foregroundColor": {
|
||||||
|
"type": "string",
|
||||||
|
"default": null,
|
||||||
|
"description": "Foreground text color, valid values are RBG in format 0,0,0 to 255,255,255 or format #000000 to #FFFFFF."
|
||||||
|
},
|
||||||
|
"backgroundColor": {
|
||||||
|
"type": "string",
|
||||||
|
"default": null,
|
||||||
|
"description": "Background color, valid values are RBG in format 0,0,0 to 255,255,255 or format #000000 to #FFFFFF."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
!!!note
|
||||||
|
You will need to reinstall the agent for agent customizations to take effect.
|
||||||
|
|
||||||
### Terms of use
|
### Terms of use
|
||||||
|
|
||||||
You can change the terms of use of the web site by adding a “terms.txt” file in the “meshcentral-data” folder. The file can include HTML markup. Once set, the server does not need to be restarted, the updated terms.txt file will get used the next time it’s requested.
|
You can change the terms of use of the web site by adding a “terms.txt” file in the “meshcentral-data” folder. The file can include HTML markup. Once set, the server does not need to be restarted, the updated terms.txt file will get used the next time it’s requested.
|
||||||
|
|
|
@ -194,9 +194,20 @@ Once setup, the server will offer users the "Pushover" option when setting up me
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
No setup is reqired to enable this. When using ntfy, make sure you use a suffisently random topic name so that others can't guess the name and subscribe to it to receive your messages.
|
No setup is reqired to enable this. When using ntfy, make sure you use a suffisently random topic name so that others can't guess the name and subscribe to it to receive your messages.
|
||||||
|
|
||||||
|
For [self-hosting your own ntfy server](https://ntfy.sh/docs/install/) with [ACL support](https://ntfy.sh/docs/config/#access-control)
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"messaging": {
|
||||||
|
"ntfy": {
|
||||||
|
"host": "https://[my]ntfy.sh",
|
||||||
|
"userurl": "https://[my]ntfy.sh/userhelp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
![](images/MC2-Ntfy1.png)
|
![](images/MC2-Ntfy1.png)
|
||||||
|
|
||||||
## Zulip setup
|
## Zulip setup
|
||||||
|
|
BIN
docs/powerpoints/MeshCentral - 0093 - Web Relay Sharing.pptx
Normal file
BIN
docs/powerpoints/MeshCentral - 0093 - Web Relay Sharing.pptx
Normal file
Binary file not shown.
BIN
docs/powerpoints/MeshCentral - 0094 - Device Pages.pptx
Normal file
BIN
docs/powerpoints/MeshCentral - 0094 - Device Pages.pptx
Normal file
Binary file not shown.
Binary file not shown.
|
@ -26850,7 +26850,7 @@
|
||||||
"bs": "Završena desktop sesija \\\"{0}\\\" od {1} do {2}, {3} sekundi",
|
"bs": "Završena desktop sesija \\\"{0}\\\" od {1} do {2}, {3} sekundi",
|
||||||
"cs": "Ukončena relace na ploše „{0}“ od {1} do {2}, {3} s",
|
"cs": "Ukončena relace na ploše „{0}“ od {1} do {2}, {3} s",
|
||||||
"da": "Afsluttet skrivebordssession \\\"{0}\\\" fra {1} til {2}, {3} sekund(er)",
|
"da": "Afsluttet skrivebordssession \\\"{0}\\\" fra {1} til {2}, {3} sekund(er)",
|
||||||
"de": "Beendet die Desktopsitzung \\\"{0}\\\" von {1} bis {2}, {3} Sekunde(n)",
|
"de": "Beendet die Desktopsitzung \\\"{0}\\\" von {1} zu {2}, {3} Sekunde(n)",
|
||||||
"en": "Ended desktop session \\\"{0}\\\" from {1} to {2}, {3} second(s)",
|
"en": "Ended desktop session \\\"{0}\\\" from {1} to {2}, {3} second(s)",
|
||||||
"es": "Sesión de escritorio finalizada \\\"{0}\\\" de {1} a {2}, {3} segundo(s)",
|
"es": "Sesión de escritorio finalizada \\\"{0}\\\" de {1} a {2}, {3} segundo(s)",
|
||||||
"fi": "Työpöytäistunto \\\"{0}\\\" päättyi välillä {1} - {2}, {3} sekuntia",
|
"fi": "Työpöytäistunto \\\"{0}\\\" päättyi välillä {1} - {2}, {3} sekuntia",
|
||||||
|
@ -26876,7 +26876,7 @@
|
||||||
"bs": "Završena sesija upravljanja fajlovima \\\"{0}\\\" od {1} do {2}, {3} sekundi",
|
"bs": "Završena sesija upravljanja fajlovima \\\"{0}\\\" od {1} do {2}, {3} sekundi",
|
||||||
"cs": "Ukončena relace správy souborů „{0}“ od {1} do {2}, {3} s",
|
"cs": "Ukončena relace správy souborů „{0}“ od {1} do {2}, {3} s",
|
||||||
"da": "Afsluttet filhåndteringssession \\\"{0}\\\" fra {1} til {2}, {3} sekund(er)",
|
"da": "Afsluttet filhåndteringssession \\\"{0}\\\" fra {1} til {2}, {3} sekund(er)",
|
||||||
"de": "Beendet die Dateiverwaltungssitzung \\\"{0}\\\" von {1} bis {2}, {3} Sekunde(n)",
|
"de": "Beendet die Dateiverwaltungssitzung \\\"{0}\\\" von {1} zu {2}, {3} Sekunde(n)",
|
||||||
"en": "Ended file management session \\\"{0}\\\" from {1} to {2}, {3} second(s)",
|
"en": "Ended file management session \\\"{0}\\\" from {1} to {2}, {3} second(s)",
|
||||||
"es": "Sesión de gestión de archivos finalizada \\\"{0}\\\" de {1} a {2}, {3} segundo(s)",
|
"es": "Sesión de gestión de archivos finalizada \\\"{0}\\\" de {1} a {2}, {3} segundo(s)",
|
||||||
"fi": "Tiedostonhallintaistunto \\\"{0}\\\" päättyi välillä {1} - {2}, {3} sekuntia",
|
"fi": "Tiedostonhallintaistunto \\\"{0}\\\" päättyi välillä {1} - {2}, {3} sekuntia",
|
||||||
|
@ -26902,7 +26902,7 @@
|
||||||
"bs": "Završena sesija lokalnog releja \\\"{0}\\\", protokol {1} do {2}, {3} sekundi",
|
"bs": "Završena sesija lokalnog releja \\\"{0}\\\", protokol {1} do {2}, {3} sekundi",
|
||||||
"cs": "Ukončena relace místního přenosu \\\"{0}\\\", protokol {1} až {2}, {3} s",
|
"cs": "Ukončena relace místního přenosu \\\"{0}\\\", protokol {1} až {2}, {3} s",
|
||||||
"da": "Afsluttet lokal relæsession \\\"{0}\\\", protokol {1} til {2}, {3} sekund(er)",
|
"da": "Afsluttet lokal relæsession \\\"{0}\\\", protokol {1} til {2}, {3} sekund(er)",
|
||||||
"de": "Beendete lokale Relay-Sitzung \\\"{0}\\\", Protokoll {1} bis {2}, {3} Sekunde(n)",
|
"de": "Beendete lokale Relay-Sitzung \\\"{0}\\\", Protokoll {1} zu {2}, {3} Sekunde(n)",
|
||||||
"en": "Ended local relay session \\\"{0}\\\", protocol {1} to {2}, {3} second(s)",
|
"en": "Ended local relay session \\\"{0}\\\", protocol {1} to {2}, {3} second(s)",
|
||||||
"es": "Sesión de relay local finalizada \\\"{0}\\\", protocolo {1} a {2}, {3} segundo(s)",
|
"es": "Sesión de relay local finalizada \\\"{0}\\\", protocolo {1} a {2}, {3} segundo(s)",
|
||||||
"fi": "Paikallinen välitysistunto \\\"{0}\\\", protokolla {1} - {2}, {3} sekuntia",
|
"fi": "Paikallinen välitysistunto \\\"{0}\\\", protokolla {1} - {2}, {3} sekuntia",
|
||||||
|
@ -26928,7 +26928,7 @@
|
||||||
"bs": "Završena sesija messenger-a \\\"{0}\\\" od {1} do {2}, {3} sekundi",
|
"bs": "Završena sesija messenger-a \\\"{0}\\\" od {1} do {2}, {3} sekundi",
|
||||||
"cs": "Ukončená relace messengeru \\\"{0}\\\" od {1} do {2}, {3} s",
|
"cs": "Ukončená relace messengeru \\\"{0}\\\" od {1} do {2}, {3} s",
|
||||||
"da": "Afsluttet messenger-session \\\"{0}\\\" fra {1} til {2}, {3} sekund(er)",
|
"da": "Afsluttet messenger-session \\\"{0}\\\" fra {1} til {2}, {3} sekund(er)",
|
||||||
"de": "Beendete Messenger-Sitzung \\\"{0}\\\" von {1} bis {2}, {3} Sekunde(n)",
|
"de": "Beendete Messenger-Sitzung \\\"{0}\\\" von {1} zu {2}, {3} Sekunde(n)",
|
||||||
"en": "Ended messenger session \\\"{0}\\\" from {1} to {2}, {3} second(s)",
|
"en": "Ended messenger session \\\"{0}\\\" from {1} to {2}, {3} second(s)",
|
||||||
"es": "Sesión de mensajería finalizada \\\"{0}\\\" de {1} a {2}, {3} segundo (s)",
|
"es": "Sesión de mensajería finalizada \\\"{0}\\\" de {1} a {2}, {3} segundo (s)",
|
||||||
"fi": "Messenger -istunto \\\"{0}\\\" päättyi {1} - {2}, {3} sekuntia",
|
"fi": "Messenger -istunto \\\"{0}\\\" päättyi {1} - {2}, {3} sekuntia",
|
||||||
|
@ -26954,7 +26954,7 @@
|
||||||
"bs": "Završena relejna sesija \\\"{0}\\\" od {1} do {2}, {3} sekundi",
|
"bs": "Završena relejna sesija \\\"{0}\\\" od {1} do {2}, {3} sekundi",
|
||||||
"cs": "Ukončená relace přenosu „{0}“ z {1} na {2}, {3} s",
|
"cs": "Ukončená relace přenosu „{0}“ z {1} na {2}, {3} s",
|
||||||
"da": "Afsluttet relæsession \\\"{0}\\\" fra {1} til {2}, {3} sekund(er)",
|
"da": "Afsluttet relæsession \\\"{0}\\\" fra {1} til {2}, {3} sekund(er)",
|
||||||
"de": "Beendete Relay-Sitzung \\\"{0}\\\" von {1} bis {2}, {3} Sekunde(n)",
|
"de": "Beendete Relay-Sitzung \\\"{0}\\\" von {1} zu {2}, {3} Sekunde(n)",
|
||||||
"en": "Ended relay session \\\"{0}\\\" from {1} to {2}, {3} second(s)",
|
"en": "Ended relay session \\\"{0}\\\" from {1} to {2}, {3} second(s)",
|
||||||
"es": "Sesión de relay finalizada \\\"{0}\\\" de {1} a {2}, {3} segundo(s)",
|
"es": "Sesión de relay finalizada \\\"{0}\\\" de {1} a {2}, {3} segundo(s)",
|
||||||
"fi": "Välitysistunto \\\"{0}\\\" päättyi välillä {1} - {2}, {3} sekuntia",
|
"fi": "Välitysistunto \\\"{0}\\\" päättyi välillä {1} - {2}, {3} sekuntia",
|
||||||
|
@ -26980,7 +26980,7 @@
|
||||||
"bs": "Završena terminalska sesija \\\"{0}\\\" od {1} do {2}, {3} sekundi",
|
"bs": "Završena terminalska sesija \\\"{0}\\\" od {1} do {2}, {3} sekundi",
|
||||||
"cs": "Ukončena relace terminálu \\\"{0}\\\" od {1} do {2}, {3} s",
|
"cs": "Ukončena relace terminálu \\\"{0}\\\" od {1} do {2}, {3} s",
|
||||||
"da": "Afsluttet terminalsession \\\"{0}\\\" fra {1} til {2}, {3} sekund(er)",
|
"da": "Afsluttet terminalsession \\\"{0}\\\" fra {1} til {2}, {3} sekund(er)",
|
||||||
"de": "Beendete Terminalsitzung \\\"{0}\\\" von {1} bis {2}, {3} Sekunde(n)",
|
"de": "Beendete Terminalsitzung \\\"{0}\\\" von {1} zu {2}, {3} Sekunde(n)",
|
||||||
"en": "Ended terminal session \\\"{0}\\\" from {1} to {2}, {3} second(s)",
|
"en": "Ended terminal session \\\"{0}\\\" from {1} to {2}, {3} second(s)",
|
||||||
"es": "Sesión de terminal finalizada \\\"{0}\\\" de {1} a {2}, {3} segundo(s)",
|
"es": "Sesión de terminal finalizada \\\"{0}\\\" de {1} a {2}, {3} segundo(s)",
|
||||||
"fi": "Pääteistunto \\\"{0}\\\" päättyi välillä {1} - {2}, {3} sekuntia",
|
"fi": "Pääteistunto \\\"{0}\\\" päättyi välillä {1} - {2}, {3} sekuntia",
|
||||||
|
@ -66442,7 +66442,7 @@
|
||||||
"bs": "Započeta desktop sesija \\\"{0}\\\" od {1} do {2}",
|
"bs": "Započeta desktop sesija \\\"{0}\\\" od {1} do {2}",
|
||||||
"cs": "Zahájena relace na ploše \\\"{0}\\\" od {1} do {2}",
|
"cs": "Zahájena relace na ploše \\\"{0}\\\" od {1} do {2}",
|
||||||
"da": "Startede skrivebordssession \\\"{0}\\\" fra {1} til {2}",
|
"da": "Startede skrivebordssession \\\"{0}\\\" fra {1} til {2}",
|
||||||
"de": "Desktop-Sitzung \\\"{0}\\\" von {1} bis {2} gestartet",
|
"de": "Desktop-Sitzung \\\"{0}\\\" von {1} zu {2} gestartet",
|
||||||
"en": "Started desktop session \\\"{0}\\\" from {1} to {2}",
|
"en": "Started desktop session \\\"{0}\\\" from {1} to {2}",
|
||||||
"es": "Sesión de escritorio iniciada \\\"{0}\\\" de {1} a {2}",
|
"es": "Sesión de escritorio iniciada \\\"{0}\\\" de {1} a {2}",
|
||||||
"fi": "Aloitettu työpöytäistunto \\\"{0}\\\" välillä {1} - {2}",
|
"fi": "Aloitettu työpöytäistunto \\\"{0}\\\" välillä {1} - {2}",
|
||||||
|
@ -66468,7 +66468,7 @@
|
||||||
"bs": "Započeta sesija upravljanja fajlovima \\\"{0}\\\" od {1} do {2}",
|
"bs": "Započeta sesija upravljanja fajlovima \\\"{0}\\\" od {1} do {2}",
|
||||||
"cs": "Zahájena relace správy souborů „{0}“ od {1} do {2}",
|
"cs": "Zahájena relace správy souborů „{0}“ od {1} do {2}",
|
||||||
"da": "Startede filhåndteringssession \\\"{0}\\\" fra {1} til {2}",
|
"da": "Startede filhåndteringssession \\\"{0}\\\" fra {1} til {2}",
|
||||||
"de": "Start der Dateiverwaltungssitzung \\\"{0}\\\" von {1} bis {2}",
|
"de": "Start der Dateiverwaltungssitzung \\\"{0}\\\" von {1} zu {2}",
|
||||||
"en": "Started file management session \\\"{0}\\\" from {1} to {2}",
|
"en": "Started file management session \\\"{0}\\\" from {1} to {2}",
|
||||||
"es": "Sesión de administración de archivos iniciada \\\"{0}\\\" de {1} a {2}",
|
"es": "Sesión de administración de archivos iniciada \\\"{0}\\\" de {1} a {2}",
|
||||||
"fi": "Tiedostonhallintaistunto \\\"{0}\\\" aloitettu välillä {1} - {2}",
|
"fi": "Tiedostonhallintaistunto \\\"{0}\\\" aloitettu välillä {1} - {2}",
|
||||||
|
@ -66520,7 +66520,7 @@
|
||||||
"bs": "Započeta relejna sesija \\\"{0}\\\" od {1} do {2}",
|
"bs": "Započeta relejna sesija \\\"{0}\\\" od {1} do {2}",
|
||||||
"cs": "Zahájena relace přenosu „{0}“ z {1} na {2}",
|
"cs": "Zahájena relace přenosu „{0}“ z {1} na {2}",
|
||||||
"da": "Startede relay session \\\"{0}\\\" fra {1} til {2}",
|
"da": "Startede relay session \\\"{0}\\\" fra {1} til {2}",
|
||||||
"de": "Relay-Sitzung \\\"{0}\\\" von {1} bis {2} gestartet",
|
"de": "Relay-Sitzung \\\"{0}\\\" von {1} zu {2} gestartet",
|
||||||
"en": "Started relay session \\\"{0}\\\" from {1} to {2}",
|
"en": "Started relay session \\\"{0}\\\" from {1} to {2}",
|
||||||
"es": "Sesión de retransmisión iniciada \\\"{0}\\\" de {1} a {2}",
|
"es": "Sesión de retransmisión iniciada \\\"{0}\\\" de {1} a {2}",
|
||||||
"fi": "Aloitti välitysistunnon \\\"{0}\\\" välillä {1} - {2}",
|
"fi": "Aloitti välitysistunnon \\\"{0}\\\" välillä {1} - {2}",
|
||||||
|
@ -66650,7 +66650,7 @@
|
||||||
"bs": "Započeta terminalska sesija \\\"{0}\\\" od {1} do {2}",
|
"bs": "Započeta terminalska sesija \\\"{0}\\\" od {1} do {2}",
|
||||||
"cs": "Zahájena relace terminálu \\\"{0}\\\" od {1} do {2}",
|
"cs": "Zahájena relace terminálu \\\"{0}\\\" od {1} do {2}",
|
||||||
"da": "Startede terminalsession \\\"{0}\\\" fra {1} til {2}",
|
"da": "Startede terminalsession \\\"{0}\\\" fra {1} til {2}",
|
||||||
"de": "Terminalsitzung \\\"{0}\\\" von {1} bis {2} gestartet",
|
"de": "Terminalsitzung \\\"{0}\\\" von {1} zu {2} gestartet",
|
||||||
"en": "Started terminal session \\\"{0}\\\" from {1} to {2}",
|
"en": "Started terminal session \\\"{0}\\\" from {1} to {2}",
|
||||||
"es": "Sesión de terminal iniciada \\\"{0}\\\" de {1} a {2}",
|
"es": "Sesión de terminal iniciada \\\"{0}\\\" de {1} a {2}",
|
||||||
"fi": "Aloitettu pääteistunto \\\"{0}\\\" välillä {1} - {2}",
|
"fi": "Aloitettu pääteistunto \\\"{0}\\\" välillä {1} - {2}",
|
||||||
|
@ -81901,7 +81901,7 @@
|
||||||
"bs": "{0} od {1} do {2}.",
|
"bs": "{0} od {1} do {2}.",
|
||||||
"cs": "{0} od {1} do {2}.",
|
"cs": "{0} od {1} do {2}.",
|
||||||
"da": "{0} fra {1} til {2}.",
|
"da": "{0} fra {1} til {2}.",
|
||||||
"de": "{0} von {1} zu {2}.",
|
"de": "{0} von {1} bis {2}.",
|
||||||
"en": "{0} from {1} to {2}.",
|
"en": "{0} from {1} to {2}.",
|
||||||
"es": "{0} de {1} a {2}.",
|
"es": "{0} de {1} a {2}.",
|
||||||
"fi": "{0} välillä {1} - {2}.",
|
"fi": "{0} välillä {1} - {2}.",
|
||||||
|
|
|
@ -7157,7 +7157,11 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
|
||||||
parent.debug('authlog', 'SAML profile: ' + JSON.stringify(profile, null, 4));
|
parent.debug('authlog', 'SAML profile: ' + JSON.stringify(profile, null, 4));
|
||||||
if (typeof profile.nameID != 'string') { return done(); }
|
if (typeof profile.nameID != 'string') { return done(); }
|
||||||
var user = { sid: '~saml:' + profile.nameID, name: profile.nameID, strategy: 'saml' };
|
var user = { sid: '~saml:' + profile.nameID, name: profile.nameID, strategy: 'saml' };
|
||||||
if ((typeof profile.firstname == 'string') && (typeof profile.lastname == 'string')) { user.name = profile.firstname + ' ' + profile.lastname; }
|
if (typeof profile.displayname == 'string') {
|
||||||
|
user.name = profile.displayname;
|
||||||
|
} else if ((typeof profile.firstname == 'string') && (typeof profile.lastname == 'string')) {
|
||||||
|
user.name = profile.firstname + ' ' + profile.lastname;
|
||||||
|
}
|
||||||
if (typeof profile.email == 'string') { user.email = profile.email; }
|
if (typeof profile.email == 'string') { user.email = profile.email; }
|
||||||
return done(null, user);
|
return done(null, user);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue