Skip to content

Latest commit

 

History

History
145 lines (108 loc) · 7.91 KB

File metadata and controls

145 lines (108 loc) · 7.91 KB

MeshAgent Documentation

Welcome to the MeshAgent documentation. MeshAgent is a cross-platform, high-performance remote management agent written in native C/C++ that powers the Flamingo / OpenFrame platform and MeshCentral-compatible infrastructures.


📚 Table of Contents


🚀 Getting Started

New to MeshAgent? Start here to understand the platform and get an agent running.

Guide Description
Introduction What MeshAgent is, key features, and how it fits the OpenFrame ecosystem
Prerequisites System requirements, build toolchain, and networking prerequisites by platform
Quick Start Clone, build, configure, and run MeshAgent in minutes
First Steps Verify agent identity, configure logging, explore JavaScript modules, and manage self-updates

🛠 Development

Guides for contributors and integrators building on or extending MeshAgent.

Guide Description
Development Overview Technology stack, repository structure, and navigation for contributors
Environment Setup IDE recommendations, editor configuration, required tools, and environment variables
Local Development Clone, build, debug, and run the agent locally across all platforms
Architecture Overview High-level architecture diagrams, core components, lifecycle, and key design decisions

📖 Reference Architecture

Deep-dive technical reference documentation for each major module, generated from CodeWiki source analysis.

Core Agent

Reference Description
MeshAgent Overview End-to-end architecture, module map, and design principles
Meshcore Agent Orchestrator — control channel, Duktape hosting, auth, KVM routing, self-update

Networking Stack

Reference Description
Microstack Core ILibChain reactor, async sockets, HTTP, WebSocket, WebRTC
Async Sockets Non-blocking TCP client, server, and UDP socket abstractions
Web Client and Server HTTP/1.1 client and server with WebSocket and Digest authentication
WebRTC Full WebRTC stack: ICE, STUN, TURN, DTLS, and SCTP data channels
Cryptography TLS, certificate management, hashing, and no-SSL fallback primitives
Data Store Persistent key-value store with SHA-384 integrity verification
Remote Logging Structured, verbosity-controlled remote logging over WebSocket
Process Pipe Cross-platform child process spawning and pipe I/O
Parsers and Chain Core event loop, data structures, HTTP/XML parsing, and memory management

Remote Desktop (KVM)

Reference Description
KVM Linux X11/XShm capture, tile encoding, XTest input injection, process isolation
KVM macOS CoreGraphics capture, LaunchAgent model, TCC permission handling
KVM Windows GDI/DXGI capture, multi-monitor, secure desktop, touch injection

Cryptography

Reference Description
OpenSSL Core OpenSSL 1.1.1f — TLS/SSL, X.509, ASN.1, RSA/EC/DH, AES, CMS
OpenSSL Include OpenSSL 3.x header interface — provider architecture, EVP_KDF, EVP_MAC
TLS and SSL TLS/SSL session management
X.509 and Certificate Management Certificate lifecycle, validation, and storage
Public Key Infrastructure RSA, EC, DH key operations
Digest and MAC Hashing and message authentication
Symmetric Ciphers AES and symmetric encryption
ASN.1 Engine DER/BER encoding and decoding
BIO and IO OpenSSL I/O abstraction layer
Type System OpenSSL type definitions and object model

Compression

Reference Description
Jpeg Turbo Core High-performance JPEG tile compression for screen streaming

WebRTC Samples

Reference Description
WebRTC Samples C rendezvous server, native Microstack console, and C# WinForms samples

🗂 Architecture Diagrams

Visual Mermaid diagrams generated from source analysis are available in the docs/diagrams/architecture/ directory. Key diagrams include:

Diagram Path
Meshcore Agent docs/diagrams/architecture/meshcore-agent.mmd
Microstack Core docs/diagrams/architecture/microstack-core.mmd
WebRTC Stack docs/diagrams/architecture/webrtc.mmd
Async Sockets docs/diagrams/architecture/async_sockets.mmd
TLS and SSL docs/diagrams/architecture/tls_and_ssl.mmd
X.509 Certificates docs/diagrams/architecture/x509_and_certificate_management.mmd
Public Key Infrastructure docs/diagrams/architecture/public_key_infrastructure.mmd
Cryptography docs/diagrams/architecture/cryptography.mmd
Web Client and Server docs/diagrams/architecture/web_client_and_server.mmd
Data Store docs/diagrams/architecture/data_store.mmd
Process Pipe docs/diagrams/architecture/process_pipe.mmd
KVM Linux docs/diagrams/architecture/meshcore-kvm-linux.mmd
KVM macOS docs/diagrams/architecture/meshcore-kvm-macos.mmd
KVM Windows docs/diagrams/architecture/meshcore-kvm-windows.mmd
Jpeg Turbo Core docs/diagrams/architecture/jpeg-turbo-core.mmd
WebRTC Samples docs/diagrams/architecture/samples-webrtc.mmd

Diagrams can be rendered in any Mermaid-compatible viewer (GitHub, VS Code Mermaid extension, mermaid.live).


🔗 Quick Links

Resource Link
Project README ../README.md
Contributing Guide ../CONTRIBUTING.md
OpenMSP Slack Community https://www.openmsp.ai/
Flamingo Platform https://flamingo.run
OpenFrame https://openframe.ai
Source Repository https://github.com/flamingo-stack/meshagent

Documentation generated by 🦩 Flamingo AI Technical Writer