Fluxion is an intelligent CLI tool designed to modernize legacy Java applications. It analyzes your source code, detects architecture patterns (Monolith vs Microservices), and automatically generates production-ready Dockerfiles and Docker Compose environments.
Stop writing YAML manually. Let Fluxion handle the infrastructure.
- Smart Detection: Automatically identifies Spring Boot versions, Java versions (8-21), and build tools.
- Microservices Ready: Detects Spring Cloud Gateway, Eureka, and Config Server relationships to generate a unified system config.
- Infrastructure Analysis: Scans dependencies to auto-configure required services:
- 🐘 PostgreSQL / MySQL
- 🧠 Redis / MongoDB
- broker Kafka / RabbitMQ
- 🔍 Elasticsearch / Consul
- Production-Grade Dockerfiles: Generates optimized Multi-Stage builds using Spring Boot Layered Jars for faster deployments.
- Health-Checked Compose: Generates
docker-compose.ymlwith properdepends_onconditions and healthchecks, so your app waits for the DB to start.
# Clone the repository
git clone [https://github.com/YOUR_USERNAME/fluxion.git](https://github.com/YOUR_USERNAME/fluxion.git)
# Build the binary
cd fluxion
go build -o fluxion main.go
# Run
./fluxion -path /path/to/your/java-project(Binary releases coming soon)
Simply point Fluxion to your project root (or a folder containing multiple microservices):
fluxion -path ./my-legacy-project
What happens next?
- Fluxion scans the directory tree.
- Identifies if it's a standalone app or a microservice mesh.
- Gezerates Dockerfile in each service folder.
- Generates a global docker-compose.yml with all dependencies wired up.
- You run docker-compose up and enjoy.
- MVP: Spring Boot & Docker Compose generation
- Support for Gradle projects
- Kubernetes manifests generation (Helm/Kustomize)
- CI/CD pipeline generation (GitHub Actions/GitLab CI)
- Interactive TUI (Terminal UI)
We are looking for Go developers to join the team! If you are interested in DevOps, AST parsing, or CLI tools:
- Fork the repository.
- Create your feature branch (git checkout -b feature/AmazingFeature).
- Commit your changes.
- Open a Pull Request.
Distributed under the MIT License. See LICENSE for more information.