A modern web interface for converting Docker Compose files to Kubernetes/Helm charts using Kompose
- 📤 Upload Docker Compose files or paste YAML content directly
- ✨ Real-time YAML validation
- 🔄 Convert Docker Compose to Kubernetes/Helm charts
- ⬇️ Download generated Kubernetes manifests
- 🎨 Modern, responsive UI
- 🔒 Secure file handling and conversion
- 🚦 Rate limiting and CSRF protection
- 📱 Mobile-friendly design
Try it out: Kompose Online
- Backend: Python 3.9, Flask
- Security: Flask-Talisman, Flask-SeaSurf
- Container: Docker, Gunicorn
- CI/CD: GitHub Actions
- Deployment: Heroku
- Converter: Kompose
- Docker and Docker Compose
- Python 3.9+
- Kompose CLI (installed automatically in container)
- Clone the repository:
git clone https://github.com/RiccardoTOTI/kompose-online.git
cd kompose-online
- Run with Docker Compose:
docker-compose up --build
The application will be available at http://localhost:5000
- Install dependencies:
pip install -r requirements.txt
- Set environment variables:
cp config.env.example config.env
# Edit config.env with your settings
- Run the application:
python app.py
Variable | Description | Default |
---|---|---|
FLASK_ENV | Environment (development/production) | development |
MAX_CONTENT_LENGTH | Maximum file upload size | 16MB |
RATE_LIMIT | API rate limit per minute | 30 |
SECRET_KEY | Flask secret key | Auto-generated |
- HTTPS enforcement in production
- CSRF protection
- Rate limiting
- Content Security Policy
- File size restrictions
- Input validation
- Non-root container user
The application automatically deploys to Heroku via GitHub Actions when pushing to the main branch.
- Install Heroku CLI
- Login to Heroku:
heroku login
heroku container:login
- Create a new app:
heroku create your-app-name
heroku stack:set container
- Set environment variables:
heroku config:set FLASK_ENV=production
heroku config:set SECRET_KEY=your-secret-key
- Deploy:
git push heroku main
New releases are automatically created via GitHub Actions when pushing to main:
- Version format: YYYY.MM.DD-commit_hash
- Release notes from commit messages
- Automatic deployment to Heroku
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Riccardo TOTI
- GitHub: @RiccardoTOTI