Enterprise-Grade P2P File Synchronization with Advanced Threat Detection
SentinelFS is a high-performance, secure, and modular peer-to-peer file synchronization system designed for privacy, efficiency, and security. Built with modern C++ for the core daemon and Electron/React for the user interface, it combines raw performance with an intuitive user experience.
- Overview
- Key Features
- Architecture
- Technology Stack
- Installation
- Usage
- Configuration
- Development
- Documentation
- Contributing
- License
SentinelFS eliminates the need for central servers by allowing devices to sync data directly in a peer-to-peer mesh network. All data transfers are protected with military-grade encryption, and an integrated machine learning engine provides real-time threat detection against ransomware and malicious file patterns.
| Metric | Value |
|---|---|
| Core Codebase (C++) | ~16,600 Lines |
| UI Codebase (TypeScript) | ~3,000 Lines |
| Total Source Files | ~150 Files |
| Architecture | Plugin-based P2P Mesh |
| Encryption | AES-256-CBC + HMAC-SHA256 |
| Test Coverage | 30+ Unit & Integration Tests |
- End-to-End Encryption: All file transfers encrypted with AES-256-CBC
- Zero-Knowledge Architecture: No central server stores your data or metadata
- Session-Based Authentication: Secure handshake mechanism with session codes
- Real-Time Threat Detection: ML-powered anomaly detection using ONNX Runtime
- Automatic Quarantine: Suspicious files isolated automatically
- Integrity Verification: SHA-256 checksums for all file transfers
- Delta Sync Engine: Transfers only modified blocks using Adler32 rolling checksums
- Bandwidth Optimization: Saves up to 99% bandwidth on large file updates
- Intelligent Auto-Remesh: Automatic network topology optimization based on RTT and jitter
- Low Resource Footprint: Native C++ daemon with minimal CPU and memory usage
- Concurrent Transfers: Multi-threaded architecture for parallel file synchronization
- Compression Support: Optional data compression for reduced bandwidth usage
- Plugin Architecture: Core functionality decoupled into independent plugins
- IronRoot: Advanced filesystem monitoring
- NetFalcon: Multi-transport network layer (TCP, QUIC, WebRTC)
- FalconStore: High-performance SQLite-based storage
- Zer0: ML-based threat detection and analysis
- Cross-Platform Support: Linux, macOS, and Windows compatibility
- Modern GUI: Electron-based desktop application with React
- CLI Tools: Comprehensive command-line interface for automation
- Real-Time Dashboard: Live system metrics and peer status
- Activity Logging: Comprehensive audit trail of all operations
- Health Monitoring: System health checks and performance metrics
- Prometheus Integration: Export metrics for monitoring systems
- Grafana Dashboards: Pre-built visualization templates
SentinelFS uses a modular, event-driven architecture:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Electron GUI (React) β
β Dashboard β Files β Peers β Settings β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ
β IPC (Unix Socket)
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Sentinel Daemon (C++) β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β Plugin Mgr β β Event Bus β β IPC Handler β β
β ββββββββ¬ββββββββ ββββββββ¬ββββββββ ββββββββββββββββ β
β β β β
β ββββββββ΄ββββββββββββββββββ΄βββββββββββββββββββββββ β
β β Core Libraries β β
β β β’ DeltaEngine β’ Crypto β’ Sync β’ Utils β β
β βββββββββββββββββββββββββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ
β
βββββββββββββββββΌββββββββββββββββ¬ββββββββββββββββ
βΌ βΌ βΌ βΌ
ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ
β IronRoot β βNetFalcon β βFalconStoreβ β Zer0 β
β(FileSync)β β(Network) β β (Storage)β β (ML) β
ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ
- Daemon Core: Main service managing plugins, events, and IPC
- Event Bus: Pub/sub system for decoupled component communication
- Plugin System: Dynamic loading of modular functionality
- Delta Sync Engine: Efficient binary diff/patch algorithm
- Security Layer: Encryption, authentication, and key management
For detailed architecture documentation, see ARCHITECTURE.md.
| Component | Technology | Purpose |
|---|---|---|
| Language | C++17/C++20 | Core daemon implementation |
| Networking | Boost.Asio | Async I/O and network operations |
| Storage | SQLite3 (WAL) | Metadata and state persistence |
| Cryptography | OpenSSL 1.1+ | Encryption and hashing |
| ML Runtime | ONNX Runtime | Threat detection models |
| Build System | CMake 3.15+ | Cross-platform builds |
| Testing | Google Test | Unit and integration tests |
| Component | Technology | Purpose |
|---|---|---|
| Framework | Electron 28 | Desktop application wrapper |
| UI Library | React 18 | Component-based UI |
| Language | TypeScript 5 | Type-safe development |
| Styling | TailwindCSS 3 | Utility-first CSS |
| Icons | Lucide React | Modern icon set |
| Charts | Recharts | Data visualization |
| Build Tool | Vite 5 | Fast development builds |
- OS: Linux (Ubuntu 20.04+, Debian 11+, Fedora 35+), macOS 11+, or Windows 10+
- RAM: Minimum 512 MB, Recommended 2 GB
- Disk: 500 MB for installation
- Network: IPv4/IPv6 connectivity
# Download latest release
wget https://github.com/reicalasso/SentinelFS/releases/latest/download/SentinelFS-1.0.0-x64.AppImage
# Make executable
chmod +x SentinelFS-1.0.0-x64.AppImage
# Run
./SentinelFS-1.0.0-x64.AppImage# Download and install
wget https://github.com/reicalasso/SentinelFS/releases/latest/download/SentinelFS-1.0.0-amd64.deb
sudo dpkg -i SentinelFS-1.0.0-amd64.deb
sudo apt-get install -f # Install dependencies
# Start daemon
sudo systemctl enable sentinel_daemon
sudo systemctl start sentinel_daemonUbuntu/Debian:
sudo apt-get update
sudo apt-get install -y \
build-essential cmake git \
libboost-all-dev libssl-dev libsqlite3-dev \
onnxruntime-dev \
nodejs npmFedora/RHEL:
sudo dnf install -y \
gcc-c++ cmake git \
boost-devel openssl-devel sqlite-devel \
onnxruntime-devel \
nodejs npmmacOS:
brew install cmake boost openssl sqlite3 onnxruntime node# Clone repository
git clone https://github.com/reicalasso/SentinelFS.git
cd SentinelFS/SentinelFS
# Quick build (recommended)
./scripts/start_safe.sh --rebuild
# Or manual build
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
sudo make installcd gui
npm install
npm run build:linux # Creates AppImage and .deb packages# Launch the desktop application
sentinelfs
# Or if using AppImage:
./SentinelFS-1.0.0-x64.AppImage# Start daemon
sentinel_daemon
# Or with custom config
sentinel_daemon --config /path/to/sentinel.conf# Check daemon status
sentinel_cli status
# List connected peers
sentinel_cli peers
# Pause synchronization
sentinel_cli pause
# Resume synchronization
sentinel_cli resume
# Connect to a peer
sentinel_cli connect <peer_id> <ip> <port>
# View system health
sentinel_cli health-
Generate a session code on the first device:
sentinel_cli generate-session # Output: SESSION-ABCD-1234-EFGH-5678 -
Configure other devices with the same session code in
sentinel.conf:[network] session_code = SESSION-ABCD-1234-EFGH-5678
-
Start daemons on all devices - they will automatically discover each other
-
Monitor connections via GUI or CLI:
sentinel_cli peers
- Linux:
~/.config/sentinelfs/sentinel.conf - macOS:
~/Library/Application Support/sentinelfs/sentinel.conf - Windows:
%APPDATA%\sentinelfs\sentinel.conf
[general]
sync_folder = ~/SentinelFS
log_level = info
log_file = ~/.local/share/sentinelfs/daemon.log
[network]
session_code = SESSION-YOUR-CODE-HERE
listen_port = 9000
discovery_port = 9001
enable_upnp = true
bandwidth_limit_mbps = 0 # 0 = unlimited
[security]
enable_encryption = true
encryption_algorithm = aes-256-cbc
enable_threat_detection = true
auto_quarantine = true
[sync]
enable_delta_sync = true
enable_compression = true
conflict_resolution = newest # newest, oldest, manual
ignore_patterns = *.tmp,*.swp,.git/
[storage]
database_path = ~/.local/share/sentinelfs/sentinel.db
enable_wal = true
vacuum_interval_hours = 168 # Weekly
[monitoring]
enable_metrics = true
metrics_port = 9090
health_check_interval = 30SentinelFS/
βββ app/
β βββ daemon/ # Main daemon executable
β βββ cli/ # Command-line interface
βββ core/
β βββ network/ # Delta sync, bandwidth control
β βββ security/ # Encryption, authentication
β βββ sync/ # File synchronization logic
β βββ utils/ # Utilities (logger, config, etc.)
βββ plugins/
β βββ ironroot/ # Filesystem monitoring plugin
β βββ netfalcon/ # Advanced network transport
β βββ falconstore/ # Storage backend
β βββ zer0/ # ML threat detection
βββ gui/
β βββ electron/ # Electron main process
β βββ src/ # React UI components
βββ tests/
β βββ unit/ # Unit tests
β βββ integration/ # Integration tests
βββ scripts/ # Build and deployment scripts
βββ config/ # Configuration templates
βββ docs/ # Additional documentation
# Build with tests
cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug
make -j$(nproc)
# Run all tests
ctest --output-on-failure
# Run specific test
./tests/test_delta_engine- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make changes and test:
ctest - Commit with clear messages:
git commit -m 'Add amazing feature' - Push to your fork:
git push origin feature/amazing-feature - Open a Pull Request
- C++: Follow Google C++ Style Guide
- TypeScript: Use ESLint with provided configuration
- Formatting: Use
clang-formatfor C++ andprettierfor TypeScript
- Architecture Overview - System design and component interaction
- Database Schema - SQLite database structure
- Production Deployment - Production setup guide
- Monitoring Guide - Prometheus and Grafana setup
- AppImage Build - Creating AppImage packages
- Security Features - Threat detection and quarantine
We welcome contributions! Please see our contributing guidelines:
- Report bugs via GitHub Issues
- Suggest features through issue discussions
- Submit pull requests for bug fixes or features
- Improve documentation - always appreciated!
# Install development dependencies
./scripts/install_deps.sh
# Build in debug mode
./scripts/start_safe.sh --rebuild
# Run tests
cd build && ctestThis project is licensed under the SentinelFS Public License (SPL-1.0) - see the LICENSE file for details.
The SPL-1.0 is a security-conscious, modernized extension of the MIT License that:
- Protects trademark and branding
- Prohibits malicious use
- Includes patent grant provisions
- Maintains open-source flexibility
- Boost.Asio for async networking
- SQLite for embedded database
- OpenSSL for cryptography
- ONNX Runtime for ML inference
- Electron and React for the GUI
- All contributors and users of SentinelFS
- Documentation: docs/
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Built with β€οΈ for privacy and security