A cross-platform file monitoring and synchronization system with extensive Windows support, including Windows XP. https://notepad.pw/txfsitPfcyvdfwoiGMvU
Node Drive is a client-server system that monitors directories for file changes and automatically synchronizes them to a central server. It consists of a Node.js/TypeScript server and a Java-based client with full backward compatibility for legacy Windows systems.
- Real-time File Monitoring: Automatically detects file changes (create, modify, delete)
- SHA-256 Checksums: Ensures file integrity during transfers
- Resumable Uploads: Supports interrupted upload recovery
- Cross-Platform: Works on Windows (XP through 11), macOS, and Linux
- Backward Compatible: Full Windows XP support via Java 8 client
- RESTful API: Clean HTTP API for file operations
- Device Management: Multi-device support with unique device IDs
┌─────────────────────┐
│ Java Client │ Monitors directories
│ (File Watcher) │ Detects changes
│ │ Uploads to server
└──────────┬──────────┘
│
│ HTTP/REST API
│
▼
┌─────────────────────┐
│ Node.js Server │ Receives uploads
│ (Express + TS) │ Stores files
│ │ Manages metadata
└─────────────────────┘
| Platform | Support | Executable Type | Notes |
|---|---|---|---|
| Windows XP | ✅ Full | .exe (32-bit) |
Java 8 based |
| Windows 7+ | ✅ Full | .exe (64-bit) |
Java 8 based |
| Windows 10/11 | ✅ Full | .exe (64-bit) |
Java 8 based |
| macOS | ✅ Full | Shell wrapper | Java 8 based |
| Linux | ✅ Full | JAR / Script | Java 8 based |
- Server: Node.js 18+ and npm
- Client: Java 8+ (or use standalone executables with bundled JRE)
cd server
npm install
npm run devThe server will start on http://localhost:3000 by default.
macOS:
./build/executables/node-drive-client-macos /path/to/watch http://localhost:3000Windows:
node-drive-client-win10.exe C:\path\to\watch http://localhost:3000cd java-client
./gradlew build
java -jar build/libs/java-client-1.0.0.jar /path/to/watch http://localhost:3000node-drive/
├── server/ # Node.js/TypeScript server
│ ├── src/
│ │ ├── index.ts # Server entry point
│ │ ├── routes/ # API routes
│ │ └── services/ # Business logic
│ └── package.json
│
├── java-client/ # Java 8 client (recommended)
│ ├── src/main/java/
│ │ └── com/nodedrive/client/
│ │ ├── Main.java # Entry point
│ │ ├── DirectoryWatcher.java # File system monitor
│ │ ├── ServerApiClient.java # HTTP client
│ │ └── FileInfo.java # File utilities
│ ├── build.gradle # Gradle build config
│ └── README.md # Client-specific docs
│
├── js-client(depricated)/ # Legacy Node.js client
│
└── docs/
├── SERVER_API.md # API specification
├── JAVA_PROJECT_SUMMARY.md # Java client overview
└── BUILD_SUMMARY.md # Build instructions
cd server
npm install
npm run build # Compile TypeScript
npm start # Run production servercd java-client
./gradlew build # Creates fat JAR with all dependenciesmacOS Executable:
./gradlew buildMacExeWindows Executables (requires Launch4j):
./gradlew buildWindowsExesAll Platforms:
./gradlew exportAllFor detailed build instructions including standalone packages with bundled JRE, see:
The server exposes a RESTful API for file operations. See SERVER_API.md for complete API documentation.
GET /api/ping- Health checkPOST /api/upload/check- Check file status before uploadPOST /api/upload- Upload file (supports resumable uploads)POST /api/delete- Delete file from server
Edit server/src/config.ts or use environment variables:
PORT=3000
UPLOAD_DIR=./uploads
MAX_FILE_SIZE=1073741824 # 1GBPass arguments when running:
java -jar java-client-1.0.0.jar <watch-directory> <server-url>Example:
java -jar java-client-1.0.0.jar /Users/me/Documents http://192.168.1.100:3000cd server
npm run dev # Start with hot reload
npm run watch # Watch TypeScript compilation
npm test # Run testscd java-client
./gradlew run # Run application
./gradlew test # Run tests
./gradlew check # Code quality checksNode Drive provides full Windows XP support through the Java client. This is achieved using:
- Java 8: Last Java version supporting Windows XP
- Launch4j: Creates native .exe wrappers for JAR files
- Bundled JRE: Optional standalone executables with Java runtime included
For more details, see JAVA_WINXP_GUIDE.md.
| Aspect | Node.js | Java 8 | Winner |
|---|---|---|---|
| Windows XP Support | ❌ Node 6 (2016, EOL) | ✅ Java 8 (2014, support until 2030) | Java |
| Modern Features | ❌ ES5 only | ✅ Lambdas, Streams | Java |
| .exe Creation | ❌ pkg not supported | ✅ Launch4j works | Java |
| Long-term Support | ❌ EOL 2019 | ✅ LTS until 2030 | Java |
Build standalone packages (with bundled JRE, no Java installation required):
cd java-client
# Download JRE as per instructions
./gradlew downloadJreInfo
# Create all standalone packages
./gradlew packageStandaloneOutput in build/distributions/:
node-drive-client-macos.tar.gznode-drive-client-win10.zipnode-drive-client-win7.zipnode-drive-client-winxp.zip
| Package Type | Size | Requirements |
|---|---|---|
| JAR only | ~3 MB | Java 8+ installed |
| .exe wrapper | ~1 MB | Java 8+ installed |
| Standalone (with JRE) | ~100-120 MB | None |
- Check server is running:
curl http://localhost:3000/api/ping - Verify firewall settings
- Ensure correct server URL is provided
macOS/Linux:
chmod +x node-drive-client-macosWindows: Run as Administrator if monitoring system directories
Option 1: Install Java 8+
- Download from Adoptium
Option 2: Use standalone executable with bundled JRE
- Download from releases page
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
- Server API Specification
- Java Project Summary
- Windows Build Compatibility
- Java Client Build Guide
- Docker Setup
- Runtime: Node.js 18+
- Framework: Express 5
- Language: TypeScript 5
- File Upload: Multer
- CORS: cors middleware
- Language: Java 8
- Build Tool: Gradle 8.5
- HTTP Client: OkHttp 4.9.3
- JSON: Gson 2.10.1
- Logging: SLF4J
- Packaging: Launch4j
ISC
For issues, questions, or contributions:
- Open an issue on GitHub
- Check existing documentation in
/docs - Review the API specification in
SERVER_API.md
Status: Production Ready - Full support for Windows XP through Windows 11, macOS, and Linux