Blogzy is a Flask-based web application that allows users to create, read, update, and delete blog posts. The application is containerized using Docker and deployed on Kubernetes, with a CI/CD pipeline set up using Jenkins for automated builds and deployments. 📦
- User authentication and authorization 🔐
- Create, edit, and delete blog posts 📝
- Responsive design using Bootstrap 📱
- RESTful API for blog management 🌐
- CI/CD integration for automated deployments ⚙️
- Docker installed 🐳
- Minikube installed 🖥️
- Jenkins installed and running 🔧
- Python 3.10 or higher 🐍
git clone https://github.com/Flack74/Blogzy.git
cd Blogzy
-
Create a virtual environment:
python3 -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install required packages:
pip install -r requirements.txt
To run the application locally, set the environment variable for Flask and start the server:
export FLASK_APP=main.py
flask run --host=0.0.0.0 --port=5003
Visit http://localhost:5003
in your browser. 🌍
docker build -t your-dockerhub-username/blogzy .
docker run -p 5003:5003 your-dockerhub-username/blogzy
Visit http://localhost:5003
in your browser. 🌐
-
Start Minikube:
minikube start
-
Apply Kubernetes configurations:
kubectl apply -f k8s/
-
Access the application:
minikube service blogzy-service --url
The CI/CD pipeline is configured to automate the building and deployment of the Blogzy application using Jenkins. 🔄
- Create a new pipeline job in Jenkins.
- Use the
Jenkinsfile
provided in the repository to configure the pipeline. - Ensure that Jenkins has access to your Docker Hub account to push images.
This project is licensed under the Apache License 2.0. See the LICENSE file for details. 📄