justfile and README.md
This commit is contained in:
parent
c158d1b140
commit
86007d4e09
2 changed files with 196 additions and 0 deletions
149
README.md
Normal file
149
README.md
Normal file
|
|
@ -0,0 +1,149 @@
|
|||
# Multiberry Backend
|
||||
|
||||
Веб-приложение для хакатона ВТБ. Backend на Rust + Axum, БД — PostgreSQL.
|
||||
|
||||
## 🚀 Быстрый старт (macOS)
|
||||
|
||||
### 1. Установка зависимостей
|
||||
|
||||
```zsh
|
||||
# Установи Homebrew, если еще не установлен
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
|
||||
# Установи необходимые инструменты
|
||||
brew install rust just docker sops age
|
||||
|
||||
# Установи Docker Desktop
|
||||
brew install --cask docker
|
||||
# Запусти Docker Desktop (один раз)
|
||||
open /Applications/Docker.app
|
||||
```
|
||||
|
||||
### 2. Клонируй репозиторий
|
||||
|
||||
```bash
|
||||
git clone ssh://git@gitverse.ru:2222/rorikstr/multiberry-backend.git
|
||||
cd multiberry-backend
|
||||
```
|
||||
|
||||
### 3. Запусти проект
|
||||
|
||||
Короч. Чтобы не запускать бесконечное число раз sops exec-env для вскрытия secrets.yaml
|
||||
я придумал выполнять проект на Makefile 2.0: justfile
|
||||
|
||||
```bash
|
||||
# Посмотри все доступные команды
|
||||
just
|
||||
|
||||
# Запусти базу данных
|
||||
just db-up
|
||||
|
||||
# В новом терминале запусти бэкенд
|
||||
just run
|
||||
|
||||
# Проверь, что всё работает
|
||||
just health
|
||||
```
|
||||
|
||||
**Ожидаемый результат:**
|
||||
```json
|
||||
{"status":"Database connection is successful."}
|
||||
```
|
||||
|
||||
✅ Готово! Бэкенд работает на `http://localhost:3000`
|
||||
|
||||
## 📋 Основные команды
|
||||
|
||||
| Команда | Описание |
|
||||
|---------|---------|
|
||||
| `just run` | Запустить бэкенд в dev режиме |
|
||||
| `just db-up` | Поднять PostgreSQL |
|
||||
| `just db-down` | Остановить PostgreSQL |
|
||||
| `just db-reset` | Пересоздать БД (удалит все данные!) |
|
||||
| `just build` | Собрать релизную версию |
|
||||
| `just test` | Запустить тесты |
|
||||
| `just health` | Проверить здоровье API |
|
||||
| `just db-logs` | Показать логи БД |
|
||||
| `just stop` | Остановить всё |
|
||||
|
||||
Больше информации: `just --list`
|
||||
|
||||
## 🔐 Секреты и переменные окружения
|
||||
|
||||
Все секреты (пароли, API ключи) хранятся в зашифрованном файле `secrets.yaml`.
|
||||
|
||||
**Как это работает:**
|
||||
- `just` команды автоматически расшифровывают `secrets.yaml` перед запуском
|
||||
|
||||
Если нужно **отредактировать** секреты (добавить новый API ключ и т.д.):
|
||||
```
|
||||
sops secrets.yaml
|
||||
```
|
||||
|
||||
## 🛠️ Разработка
|
||||
|
||||
### Структура проекта
|
||||
|
||||
```
|
||||
.
|
||||
├── src/
|
||||
│ └── main.rs # Основной код приложения
|
||||
├── Cargo.toml # Зависимости Rust
|
||||
├── Cargo.lock # Зафиксированные версии зависимостей
|
||||
├── compose.yaml # Описание Docker контейнера с PostgreSQL
|
||||
├── secrets.yaml # Зашифрованные секреты (в Git, не редактируй вручную!)
|
||||
├── .sops.yaml # Конфигурация sops (управление ключами)
|
||||
├── justfile # Команды проекта
|
||||
└── README.md # Этот файл
|
||||
```
|
||||
|
||||
### Workflow разработки
|
||||
|
||||
1. **Создай фича-ветку:**
|
||||
```
|
||||
git checkout -b feature/my-feature
|
||||
```
|
||||
|
||||
2. **Запусти проект:**
|
||||
```
|
||||
just db-up
|
||||
just run
|
||||
```
|
||||
|
||||
3. **Внеси изменения в `src/main.rs`**
|
||||
|
||||
4. **Тесты:**
|
||||
```
|
||||
just test
|
||||
```
|
||||
|
||||
5. **Push и создай Pull Request**
|
||||
|
||||
## ❓ Troubleshooting
|
||||
|
||||
### "Connection reset by peer" при запуске
|
||||
|
||||
БД еще инициализируется. Подожди 5-10 секунд и попробуй снова:
|
||||
```
|
||||
just run
|
||||
```
|
||||
|
||||
### "password authentication failed"
|
||||
|
||||
Вероятно, в `secrets.yaml` неверный пароль. Напиши Wave.
|
||||
|
||||
### Docker Desktop не запускается
|
||||
|
||||
Убедись, что Docker Desktop открыт:
|
||||
```
|
||||
open /Applications/Docker.app
|
||||
```
|
||||
|
||||
```
|
||||
just db-logs # Логи БД
|
||||
docker ps # Список запущенных контейнеров
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Happy coding!** 🚀
|
||||
Loading…
Add table
Add a link
Reference in a new issue