This project demonstrates a scalable API solution using FastAPI, Docker, and PostgreSQL. It includes CI/CD integration via GitHub Actions to ensure code quality and smooth deployments.
mystrotamer-FastAPI-Docker/
├── app/
│ ├── __init__.py # Initialize the app module
│ ├── main.py # FastAPI main application file
│ ├── Dockerfile # Docker configuration for the app
│ ├── requirements.txt # Python dependencies
│ ├── wait-for-it.sh # Script to wait for dependencies
├── db/
│ ├── init.sql # SQL script for database initialization
│ ├── Dockerfile # Docker configuration for the database
├── tests/
│ ├── __init__.py # Initialize the tests module
│ ├── test_main.py # Test cases for the main app
├── docker-compose.yml # Docker Compose configuration
├── .env.example # Example environment variables
├── LICENSE # Project license
└── README.md # Project documentation
- FastAPI: For building modern and fast APIs.
- Docker & Docker Compose: To simplify deployment and runtime environment using containers.
- PostgreSQL: A robust relational database system.
- GitHub Actions: For CI/CD automation.
-
Clone this repository:
git clone https://github.com/TamerOnLine/MystroTamer-FastAPI-Docker.git
-
Navigate to the project directory:
cd MystroTamer-FastAPI-Docker
-
Copy the
.env.example
file to.env
and update the environment variables as needed. -
Start the services using Docker Compose:
docker-compose up --build
-
Access the application at
http://localhost:8000
.
Run the following command to execute the tests:
pytest tests/
- Add Redis for caching.
- Integrate user authentication and authorization.
- Deploy the application on a cloud platform like AWS or Azure.
- Open an issue if you encounter bugs or have suggestions.
- Submit a pull request for any improvements or new features.
This project is licensed under the MIT License - see the LICENSE file for details.