Skip to content

TamerOnLine/MystroTamer-FastAPI-Docker

Repository files navigation

Scalable FastAPI Application with Docker and PostgreSQL Integration

Overview

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.

Project Structure

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

Technologies Used

  • 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.

Setup and Installation

  1. Clone this repository:

    git clone https://github.com/TamerOnLine/MystroTamer-FastAPI-Docker.git
  2. Navigate to the project directory:

    cd MystroTamer-FastAPI-Docker
  3. Copy the .env.example file to .env and update the environment variables as needed.

  4. Start the services using Docker Compose:

    docker-compose up --build
  5. Access the application at http://localhost:8000.

Running Tests

Run the following command to execute the tests:

pytest tests/

Future Improvements

  • Add Redis for caching.
  • Integrate user authentication and authorization.
  • Deploy the application on a cloud platform like AWS or Azure.

🤝 Contributing

  • Open an issue if you encounter bugs or have suggestions.
  • Submit a pull request for any improvements or new features.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A FastAPI-based web application with Docker support and CI/CD pipeline integration

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published