# ToStix
## Technologies Used
* **FastAPI** — High-performance web framework for building APIs.
* **AioCelery** — Asynchronous task queue library.
* **Redis** — In-memory key-value store for caching and message brokering.
* **RabbitMQ** — Message broker for communication between services.
* **PostgreSQL** — Relational database for data storage.
* **S3 Object Store** — Yandex Cloud's object storage service.
_*Compatible with the S3 standard.(S3 Selectel is not recommended as signed URLs do not work properly.)_
## Getting Started
1. **Clone the repository:**
``` Bash
git clone https://gitverse.ru/DmitriyGerya/ToStix.git
```
2. **Initialize S3 storage parameters:**
Configure the `.env` file located in the project's root directory with your S3 storage settings.
3. **Build and run the project:**
``` Bash
docker-compose up --build
```
4. **Wait for the project to start:**
**Note: AioCelery introduces a 20-second delay to ensure RabbitMQ is fully initialized.**
## API Documentation
Once the project is running, you can explore the API using Swagger:
[http://localhost:8888/docs](http://localhost:8888/docs)