Приложение состоит из:
aiohttp
-клиента для криптобиржи Deribit- каждую минуту клиент забирает с биржи текущую цену
BTC
иETH
и сохраняет в базу данных тикер валюты, текущую цену и время вUNIX
.
- каждую минуту клиент забирает с биржи текущую цену
- API-сервиса для обработки сохраненных данных на
FastAPI
- реализует следующие GET-методы:- Получение всех сохраненных данных по указанной валюте
- Получение последней цены валюты
- Получение цены валюты с фильтром по дате
У каждого метода есть обязательный query-параметр ticker, обозначающий трехсимвольный код валюты, например BTC
или ETH
Удобно использовать принцип copy-paste - копировать команды из GitHub Readme и вставлять в командную строку Git Bash или IDE (например VSCode).
Предварительные условия
Предполагается, что пользователь установил Docker и Docker Compose на локальной машине или на удаленном сервере, где проект будет запускаться в контейнерах. Проверить наличие можно выполнив команды:
docker --version && docker-compose --version
Локальный запуск: Docker Compose
- Клонируйте репозиторий с GitHub и введите данные для переменных окружения (значения даны для примера, но их можно оставить):
git clone https://github.com/alexpro2022/crypto-FastAPI.git && \
cd crypto-FastAPI && \
cp env_example .env && \
nano .env
- Из корневой директории проекта выполните команду:
docker compose -f infra/local/docker-compose.yml up -d --build
Проект будет развернут в трех docker-контейнерах db, web, nginx
по адресу http://localhost.
Администрирование приложения может быть осуществлено через Swagger доступный по адресу http://localhost/docs.
- Остановить docker и удалить контейнеры можно командой из корневой директории проекта:
docker compose -f infra/local/docker-compose.yml down
Если также необходимо удалить тома базы данных, статики и медиа:
docker compose -f infra/local/docker-compose.yml down -v
Из корневой директории проекта выполните команду:
cd .. && rm -fr crypto-FastAPI