Skip to content

FleexSecurity/fleex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fleex

Distributed workload execution across cloud VPS fleets

FeaturesInstallationQuick StartUsageDocumentationProviders


Fleex spawns fleets of VPS instances across multiple cloud providers, distributes workloads via SSH, and aggregates results. Scale your security tools like masscan, nuclei, httpx, ffuf, and puredns across hundreds of machines in minutes.

Features

  • Multi-Provider Support - Linode, DigitalOcean, Vultr, and custom VMs
  • Fleet Management - Spawn, scale, and destroy fleets with simple commands
  • Distributed Scanning - Automatically split input files and distribute across fleet
  • Build System - Provision instances with pre-configured tool recipes
  • Workflow Pipelines - Chain multiple tools together in distributed pipelines
  • Result Aggregation - Automatically collect and merge results from all instances
  • Cost Estimation - Estimate costs before running scans
  • Snapshot Support - Create reusable images from provisioned instances

Installation

Using Go

go install github.com/FleexSecurity/fleex@latest

From Source

git clone https://github.com/FleexSecurity/fleex.git
cd fleex
go build -o fleex .

Pre-built Binaries

Download from Releases

Quick Start

1. Initialize Configuration

# Interactive setup wizard
fleex init --wizard

# Or quick setup
fleex init

2. Spawn a Fleet

# Spawn 10 instances named "scan"
fleex spawn -n scan -c 10

# Spawn with automatic provisioning
fleex spawn -n scan -c 10 --build security-tools

3. Run a Distributed Scan

# Run nuclei across fleet
fleex scan -n scan -i targets.txt -c "nuclei -l {vars.INPUT} -o {vars.OUTPUT}"

# Or use a workflow
fleex workflow run -w quick-scan -n scan -i targets.txt -o results.txt

4. Clean Up

# Delete fleet when done
fleex delete -n scan

Usage

Fleet Management

fleex spawn -n <name> -c <count>    # Create fleet
fleex ls                             # List all instances
fleex status -n <name>               # Detailed fleet status
fleex delete -n <name>               # Delete fleet

Build & Provision

fleex build list                     # List available recipes
fleex build show <recipe>            # Show recipe details
fleex build run -r <recipe> -n <fleet>  # Provision fleet
fleex build verify -r <recipe> -n <fleet>  # Verify installation

Scanning

# Direct command
fleex scan -n <fleet> -i input.txt -c "command {vars.INPUT} -o {vars.OUTPUT}"

# Using module file
fleex scan -n <fleet> -m module.yaml

# Using workflow
fleex workflow run -w <workflow> -n <fleet> -i input.txt -o output.txt

Remote Operations

fleex ssh -n <box-name>              # SSH into instance
fleex scp -n <fleet> -s local -d /remote/path  # Copy files
fleex run -n <fleet> -c "command"    # Execute on all instances

Utilities

fleex estimate -n <fleet> -h 2       # Estimate cost for 2 hours
fleex images list                    # List available images
fleex images create -n <box> -l <label>  # Create snapshot

Configuration

Configuration is stored in ~/.config/fleex/config.json:

{
  "providers": {
    "linode": {
      "token": "your-api-token",
      "region": "us-east",
      "size": "g6-nanode-1",
      "image": "linode/ubuntu22.04",
      "port": 22,
      "username": "root"
    }
  },
  "ssh_keys": {
    "public_file": "~/.config/fleex/ssh/id_rsa.pub",
    "private_file": "~/.config/fleex/ssh/id_rsa"
  },
  "settings": {
    "provider": "linode"
  }
}

Adding Providers

fleex init --add-provider digitalocean
fleex init --add-provider vultr

Supported Providers

Provider Status Notes
Linode Full Support Recommended
DigitalOcean Full Support
Vultr Full Support
Custom VMs Full Support Bring your own servers

Documentation

Fleex Documentation

Full documentation available at fleexsecurity.github.io/fleex-docs

Project Structure

fleex/
├── cmd/           # CLI commands (Cobra)
├── pkg/
│   ├── controller/  # Business logic
│   ├── services/    # Provider implementations
│   ├── provider/    # Provider interface
│   ├── models/      # Data structures
│   ├── sshutils/    # SSH/SCP operations
│   ├── utils/       # Utilities
│   └── ui/          # Terminal UI components
└── configs/       # Default configurations

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Support the Project

If you find Fleex useful, consider supporting the developers:

Buy Me A Coffee

Cloud Provider Referrals

Support the project by using our referral links:

DigitalOcean Linode Vultr

Authors

sw33tLie
sw33tLie

xm1k3
xm1k3

License

Fleex is distributed under the Apache-2.0 License.

Packages

No packages published

Contributors 6