Loading repository data…
Loading repository data…
golubev / repository
Modern web application REST API backend template. Built with Python, FastAPI, PostgreSQL, RabbitMQ, and Celery. Contains 10+ building blocks for a web application with 10+ advanced development tools.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
A powerful template that contains 10+ building blocks for a web application with 10+ advanced development tools.
Modern web application REST API backend boilerplate built with Python, FastAPI, and Celery. Inspired by tiangolo/full-stack-fastapi-postgresql and testdrivenio/fastapi-react.
The application offers the functionality that can be used as a set of building blocks for satisfying most of the modern application's typical functional requirements:
Adapt and customize those to your business domain and requirements.
extendscreate_time and update_time timestamps that are being set automatically⚠️ Make sure you've created a
.envfile from the.env.exampletemplate:cp .env.example .envand reviewed variables values in the
.envfile replacing_CHANGE_THIS_placeholders with appropriate values.
The project was mainly configured to be developed in vscode. It is still available to be run simply with a CLI command without the vscode (see below).
The vscode's Dev Containers feature is used in order to reach a full integration of the IDE with the application's dockerized Python environment. That gives a decent developer experience (DX) working with the application's source code: code completion, code navigation etc.
In order to start the application and run vscode inside the application's container do the following:
remote-containers.reopenInContainerAfter application starts apply database migrations to initialize the database:
alembic upgrade head
If you simply want to spin up the application or if the vscode is not an option for you, just run:
docker compose up --detach --build --wait
After application starts apply database migrations to initialize the database:
docker compose exec api alembic upgrade head
Out of the box FastAPI provides autogeneration of an OpenAPI documentation for your REST API.
Navigate to http://localhost:8000/docs.
MailHog is an email testing tool for developers. It mimics sending a real email and allows you to see sent emails in your browser.
Navigate to http://localhost:8025/.
Flower is a web based tool for monitoring and administrating Celery clusters. Intended to be used in the project to debug Celery tasks.
Navigate to http://localhost:5555/. Protected with basic HTTP authentication. User and password are being set via FLOWER_USER and FLOWER_PASSWORD environment variables in the .env file.
Navigate to application/README.md to see frequently used commands cheat sheet.