A modern cloud-native application built with FastAPI, featuring an interactive UI and comprehensive CI/CD pipeline.
- Modern web interface with Tailwind CSS
- Task management system (create, list, delete tasks)
- Real-time health monitoring
- RESTful API endpoints
- Automated CI/CD with GitHub Actions
- Docker containerization
- Comprehensive test suite
- OpenAPI documentation
- Install dependencies:
pip install -r requirements.txt- Run the application:
python main.py- Build the Docker image:
docker build -t cloud-native-app .- Run the container:
docker run -p 8000:8000 cloud-native-app/: Interactive web interface/tasks: Task management endpoints (GET, POST, DELETE)/health: Health check endpoint with real-time monitoring/docs: OpenAPI documentation (Swagger UI)/redoc: Alternative API documentation
- FastAPI with automatic reload enabled
- Comprehensive test suite with pytest
- GitHub Actions for automated testing and deployment
- Container registry integration
The application includes a complete CI/CD pipeline that:
- Runs automated tests
- Generates test coverage reports
- Builds and pushes Docker images
- Deploys to container registry
- Ensures code quality
This repository now includes an automated workflow that can run the app online with Docker and then fully clean up resources.
- Workflow file:
.github/workflows/ephemeral-online-preview.yml - Triggered automatically on pushes to
mainormaster - Can also be started manually with a custom runtime duration
- Builds image, starts container, opens a temporary public URL, then always stops and deletes container/image/tunnel
How to use:
- Push code to
masterormain, or run the workflow from the Actions tab. - Open the workflow run summary and copy the preview URL.
- After the configured duration, cleanup runs automatically.
Important behavior:
- The preview URL is temporary and only alive during the workflow run.
- At the end of the run, all Docker runtime resources created by the job are removed.
- GitHub-hosted runners are ephemeral, so no compute remains running after the job finishes.