Personal FastAPI Portfolio
## Overview
This repository contains the code for my personal portfolio website,
developed using FastAPI for the backend and HTML, CSS, and JavaScript for the frontend.
The application is containerized using Docker and orchestrated with Docker Compose.
Continuous Integration and Continuous Deployment (CI/CD) processes are implemented
to ensure seamless updates and deployment to a remote machine hosted on a Any Provider instance.
## Technologies Used
- **Backend**: FastAPI (Python)
- **Frontend**: HTML, CSS, JavaScript
- **Containerization**: Docker
- **Orchestration**: Docker Compose
- **CI/CD**: [Specify CI/CD tools, e.g., GitHub Actions]
- **Hosting**: Any Provider
## Features
- Interactive UI designed using modern HTML, CSS, and JavaScript.
- RESTful API endpoints managed via FastAPI.
- Dockerized application environment for easy development and deployment.
- Automated deployment pipeline for efficient version control and production updates.
## Project Structure
```plaintext
/
├── backend/
│ ├── app/
│ │ ├── main.py # FastAPI application entry point
│ │ ├── dependencies.py # Dependency management
│ │ └── routers/ # API routes
│ ├── Dockerfile
│ └── requirements.txt
├── frontend/
│ ├── index.html
│ ├── styles/
│ │ └── main.css
│ └── scripts/
│ └── app.js
├── docker-compose.yml
├── .github/
│ └── workflows/ # CI/CD workflow configuration for GitHub Actions
└── README.md
Local Development
To set up and run this project locally, follow these steps:
-
Clone the repository
git clone https://github.com/yourusername/your-repository.git
cd your-repository
-
Build and Run Docker Containers
docker-compose up --build
-
Access the Application
Open your browser and navigate to http://localhost:8000 to view the frontend or http://localhost:8000/docs for FastAPI autogenerated documentation.
Deployment
This project is set up for deployment on a Any Provider droplet using Docker and Docker Compose. Ensure you have SSH access to your droplet and the necessary environmental variables configured.
-
SSH into your Any Provider droplet
ssh your_username@your_droplet_ip
-
Clone the repository on your droplet
git clone https://github.com/yourusername/your-repository.git
cd your-repository
-
Deploy using Docker Compose
docker-compose up --detach
CI/CD
This project utilizes [CI/CD tool name] for continuous integration and deployment. The workflow includes:
- Automated testing to ensure code integrity.
- Automated build and push Docker images to the registry.
- Automated deployment to Any Provider upon pushing to the main branch.
Contributing
Contributions to the project are welcome! Please fork the repository and submit a pull request with your updates.
License
Personal using.
About This Project
Welcome to my portfolio project, a showcase of my skills in DevOps, system engineering, and cybersecurity. This repository contains a web application designed to demonstrate how modern technologies like FastAPI, Docker, and continuous integration/deployment practices can be integrated to build and deploy robust applications.
Purpose
The primary goal of this project is to provide a practical example of setting up a full-stack application using FastAPI for the backend, with a simple yet elegant frontend designed with HTML, CSS, and JavaScript. It emphasizes the use of containerization through Docker and orchestration with Docker Compose, demonstrating best practices in software development and deployment.
Features
- FastAPI Backend: Leverages FastAPI's capabilities for rapid API development with automatic interactive API documentation.
- HTML/CSS/JavaScript Frontend: Utilizes basic frontend technologies to create a responsive and interactive user experience.
- Docker and Docker Compose: Containerizes the application, ensuring consistency across different environments and simplifying deployment processes.
- CI/CD Integration: Implements Continuous Integration and Continuous Deployment using industry-standard tools to automate the testing and deployment lifecycle.
- Remote Instance Deployment: Shows the deployment process on a remote Digital Ocean instance, illustrating cloud hosting and remote server management.
Target Audience
This project is intended for IT professionals, developers, and technical enthusiasts who are interested in learning about and implementing DevOps practices, containerization, and cloud deployments. It also serves as a resource for anyone looking to understand how to architect and deploy applications using cutting-edge technologies in a real-world scenario.
Contact
For any further queries, you can reach out to me via:
Name: Orkhan Iskandarov
Role: DevOps Engineer, System Engineer, Certified Cyber-Security Engineer, IT Manager/SEO
About: I created this small project to demonstrate how easily any IT staff or technical person can deploy their own project.
Email: oiskenderov@gmail.com
GitHub: Link to Repository
Feel free to explore and provide feedback!
Thank you for visiting this repository! I hope it serves as a valuable learning tool and inspires you to create and deploy your own projects. Feel free to fork, star, and contribute to the improvement of this application.
This README provides a detailed guide to your project, making it easy for others to understand how to set it up, contribute, and deploy. Adjust the placeholders (like CI/CD tools, your GitHub username, and repository URL) to match your specific project details.