ποΈ Secure OT Configuration Management Platform
A cross-platform desktop application for secure offline-first configuration management in operational technology (OT) environments.
Ferrocodex is a secure configuration management platform designed specifically for industrial equipment and operational technology environments. Built with Tauri 2.0, it combines the power of Rust's security and performance with React's modern UI capabilities to deliver an offline-first solution for managing critical infrastructure configurations.
- π Enterprise-grade Security: Role-based access control, session management, and audit trails
- πΎ Offline-First Architecture: Full functionality without internet connectivity
- π Data Protection: AES-256 encryption for all stored configurations (coming in v2.0)
- π Cross-Platform: Native desktop apps for Windows, macOS, and Linux
- π― OT-Focused: Designed for industrial control systems and equipment
- π Comprehensive Audit Trail: Track all configuration changes and access
- π³ Version Control: Built-in branching and versioning for configurations
- π₯ Multi-User Support: Administrator and Engineer role separation
- ποΈ Complete Asset Hierarchy System: Tree-based navigation with drag-and-drop, virtualized rendering for large datasets
- π Advanced Search & Filtering: SQLite FTS5 full-text search with sub-200ms performance
- π¦ Bulk Operations: Import/export, bulk rename, and batch metadata updates
- β¨οΈ Keyboard Navigation: Full keyboard shortcuts for power users
- π Workflow Management: Multi-step workflows with draft management and progress tracking
- π‘οΈ Enhanced Security: Asset name validation, file integrity checks, and compliance indicators
- π Metadata Management: Dynamic schemas, field templates, and conditional logic
- π Performance Optimized: Virtualized tree rendering, optimized search indexes, and efficient caching
- Node.js: 18+
- Rust: 1.78.0+
- Platform-specific dependencies:
- Linux:
libwebkit2gtk-4.1-dev,build-essential,curl,wget,file,libgtk-3-dev,librsvg2-dev - macOS: Xcode Command Line Tools
- Windows: Microsoft Visual Studio C++ Build Tools
- Linux:
-
Clone the repository:
git clone https://github.com/HillviewCap/ferrocodex.git cd ferrocodex -
Install dependencies:
npm install
-
Install platform dependencies (Linux example):
sudo apt update sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file libgtk-3-dev librsvg2-dev
Download the latest release for your platform from the releases page.
# Start the development server (both frontend and backend)
npm run dev
# Or from the desktop app directory
cd apps/desktop
npm run tauri:devThe application will start with hot reload enabled for both the React frontend and Rust backend.
# Build all packages
npm run build
# Build platform-specific binary
cd apps/desktop
npm run tauri:build# Run all tests
npm run test
# Frontend tests with coverage
cd apps/desktop
npm run test:coverage
# Backend tests
cargo test --manifest-path apps/desktop/src-tauri/Cargo.tomlferrocodex/
βββ apps/
β βββ desktop/ # Main Tauri application
β βββ src/ # React frontend
β β βββ components/ # UI components
β β β βββ hierarchy/ # Asset tree views and navigation
β β β βββ forms/ # Dynamic metadata forms
β β β βββ security/ # Security validation components
β β β βββ workflow/ # Multi-step workflow components
β β β βββ bulk/ # Bulk operations UI
β β β βββ metadata/ # Metadata management
β β βββ store/ # Zustand state management
β β βββ types/ # TypeScript types
β β βββ utils/ # Utility functions
β βββ src-tauri/ # Rust backend
β β βββ src/
β β βββ assets/ # Equipment management
β β βββ associations/ # File associations
β β βββ audit/ # Audit logging
β β βββ auth/ # Authentication
β β βββ branches/ # Configuration branching
β β βββ bulk/ # Bulk operations backend
β β βββ configurations/# Config file management
β β βββ database/ # SQLite layer with FTS5
β β βββ encryption/ # AES-256 encryption
β β βββ metadata/ # Dynamic metadata & search
β β βββ security/ # Security validation
β β βββ users/ # User management
β β βββ validation/ # Input validation
β β βββ workflow/ # Workflow management
β βββ package.json
βββ packages/
β βββ shared-types/ # Shared TypeScript types
βββ .github/
β βββ workflows/ # GitHub Actions
βββ CLAUDE.md # AI assistant instructions
βββ SECURITY.md # Security policy
βββ package.json # Workspace configuration
Ferrocodex stores its data in platform-specific locations:
- Windows:
%APPDATA%/com.ferrocodex.app/ - macOS:
~/Library/Application Support/com.ferrocodex.app/ - Linux:
~/.config/com.ferrocodex.app/
The SQLite database is automatically initialized on first run with:
- WAL mode for better concurrency
- Optimized pragma settings
- Automatic schema migrations
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the existing code style
- Add tests for new functionality
- Update documentation as needed
- Ensure all tests pass before submitting
Security is paramount for OT environments. Please report vulnerabilities responsibly:
- DO NOT open public issues for security vulnerabilities
- Email security@ferrocodex.com with details
- See SECURITY.md for more information
This project is licensed under the GNU Affero General Public License v3.0 - see the LICENSE file for details.
This means that any modifications or derivative works must also be released under the AGPL-3.0 license, and if you run a modified version on a server, you must offer the source code to users of that server.
Built with:
- Tauri - Build smaller, faster, and more secure desktop applications
- React - A JavaScript library for building user interfaces
- Ant Design - Enterprise-class UI design language
- Rust - Performance, reliability, and productivity
- π Documentation
- π Issue Tracker
- π¬ Discussions
