OmniForge is a universal deployment platform for the modern cloud native era, providing comprehensive container and VM orchestration alongside development environment management.
OmniForge combines powerful containerization capabilities with VM orchestration and development environment management. It operates in multiple modes to support various deployment scenarios, from development containers to full production orchestration.
- Universal Deployment: Deploy anywhere - public cloud, private infrastructure, or hybrid environments
- Development Container Management: Automatic detection and configuration of development environments
- VM Orchestration: Manages virtual machines on bare metal servers through directors
- Container Orchestration: Handles container lifecycle within VMs or directly on bare metal
- Multi-Mode Operation: Supports both VM-based and bare metal deployments
- Integrated Monitoring: Built-in OmniSentry monitoring for containers and applications
- Automatically detects project requirements by scanning source code
- Generates appropriate development container configurations
- Manages installation of required tools and dependencies
- Supports a wide range of programming languages and frameworks
- Directors: Manage VM lifecycle on bare metal servers
- Virtual Machines: Run container agents for orchestration
- Containers: Host applications with integrated OmniSentry monitoring
- OOB Management: Direct OS installation and container deployment
- Container Management: Direct container orchestration on bare metal
- Non-Managed Mode: Works with pre-configured systems
OmniSentry provides comprehensive monitoring capabilities:
- Real-time metrics collection
- Configurable alerts and notifications
- API for metrics gathering
- Performance monitoring and optimization
- Node.js and NPM
- Docker
- Dev Containers CLI
- Clone the repository:
git clone https://github.com/yourusername/omniforge.git
cd omniforge
- Run the installation script:
cargo run
This will automatically:
- Check for required dependencies
- Install missing components
- Configure the development environment
OmniForge's container generation process creates specialized environments for both development and production use cases. When generating a build container, the system creates a comprehensive development environment that includes the full compiler toolchain, development dependencies, and testing frameworks. This container is designed to provide developers with all the tools they need for efficient development work.
For production deployments, OmniForge generates a separate runtime container. This container is stripped down to include only the components necessary to run the application in production. The runtime container undergoes automatic optimization for size and security, removing unnecessary development tools and potential security vulnerabilities.
To create these containers, OmniForge provides simple commands that handle the complexity of container generation:
# Generate a development container with full build toolchain
omniforge gen-devcontainer --type build
# Generate a minimal runtime container for production
omniforge gen-devcontainer --type runtime
These commands trigger OmniForge's analysis and generation systems, which automatically determine the appropriate configurations based on your project's requirements. The system handles all aspects of container creation, from dependency resolution to security hardening, requiring minimal manual intervention.
omniforge gen-devcontainer
This command:
- Scans your project directory
- Identifies required development tools
- Generates appropriate container configurations
omniforge deploy --mode [vm|baremetal]
Options:
--mode vm
: Deploy using VM-based orchestration--mode baremetal
: Deploy directly to bare metal--config path/to/config.json
: Specify custom configuration
Configuration is managed through .devcontainer/devcontainer.json
:
{
"name": "Project Name",
"image": "ubuntu:latest",
"features": {
"ghcr.io/devcontainers/features/node:1": {},
"ghcr.io/devcontainers/features/python:1": {}
}
}
VM and container orchestration is configured through config.json
:
{
"hosts": [
{
"name": "host1",
"address": "192.168.1.100",
"port": 22,
"username": "admin",
"use_key": true,
"key_path": "/path/to/key"
}
]
}
omniforge/
├── src/
│ ├── ensure/ # Dependency management
│ ├── image_gen/ # Container image generation
│ ├── scanner/ # Project analysis
│ └── main.rs # Main application
├── .devcontainer/ # Development container configs
└── docs/ # Documentation
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
[License Type] - see LICENSE.md for details
- Documentation: [Link to docs]
- Issue Tracker: [Link to issues]
- Community Forum: [Link to forum]
- The Rust community
- Dev Containers project
- All contributors
Built with ❤️ by the OmniForge Community