Files
aerbim-ht-monitor/README.md
2025-09-04 18:37:23 +03:00

199 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Aerbim
Это репозиторий сайта Aerbim. Этот проект включает в себя фронтенд на Next.js и бэкенд на Django.py с базой данных PostgreSQL.
## Описание
Приложение Aerbim является дашбордом для визуализации показаний датчиков в 3D модели здания.
## Технологии
### Фронтенд
- **Next.js** - библиотека для создания пользовательских интерфейсов.
### Бэкенд
- **Django.py** - веб-фреймворк для Python.
- **PostgreSQL** - реляционная база данных для хранения данных.
### Дизайн
- **Figma** - [Дизайн проекта.](https://www.figma.com/design/BrqSrc886HCCAYRONObOut/%D0%90%D1%8D%D1%80%D0%91%D0%98%D0%9C?node-id=711-11782&p=f&t=nMUhO2Od7DacnQkO-0)
### Тасклист
- **YouGile** - [Таскменеджер.](https://yougile.com/board/0gf3q39h0wwl)
## Установка
### Предварительные требования
Для запуска проекта вам потребуются:
- Node.js (рекомендуется версия 23.x или выше)
- Python (рекомендуется версия 3.13)
- PostgreSQL (рекомендуется версия 17.x или выше)
### Шаги для установки
1. **Клонирование репозитория:**
```sh
git clone https://gitlab.com/wedeving/aerbim-www
cd aerbim-www
```
2. **Установка зависимостей для фронтенда и бэкенда:**
```sh
cd frontend
npm install
cd backend
pipenv shell
pipenv install
```
3. **Настройка переменных окружения:**
Создайте файл `.env` в директориях ./frontend и ./backend и добавьте необходимые переменные окружения:
```env/backend
#django settings
SECRET_KEY=
DEBUG_MODE=
BASE_URL=
MEDIA_ROOT=
CORS_ALLOW_ALL_ORIGINS=
CORS_ALLOWED_ORIGINS=
ALLOWED_HOSTS=
CSRF_TRUSTED_ORIGINS=
#database
DB_NAME=
DB_USER=
DB_PASSWORD=
DB_HOST=
DB_PORT=
```
```env/frontend
#server components url
NEXT_PUBLIC_API_URL=
#auth
NEXTAUTH_URL=
BACKEND_URL=
NEXTAUTH_SECRET=
```
4. **Настройка базы данных:**
Создайте базу данных PostgreSQL и выполните миграции:
```sh
createdb aerbimdb
# Выполните миграции, если они имеются. В проекте откройте директорию backend
cd backend
python manage.py makemigrations
python manage.py migrate
```
5. **Локальная разработка:**
Откройте два терминала или используйте вкладки в одном терминале.
В первом терминале запустите бэкенд:
```
cd backend
python manage.py runserver
```
Во втором терминале запустите фронтенд:
```
cd frontend
npm run dev
```
Теперь проект будет доступен по адресу `http://localhost:3000`.
### Инструкция по деплою.
1. **Заходим в нужные директории:**
```sh
cd backend
cd frontend
```
2. **Запускаем сборку контейнеров в каждом терминале:**
```sh
just docker-build
```
3. **Добавляем ключ гитлаба (один раз на сессию терминала, нужно каждый раз делать заново):**
```sh
export GITLAB_TOKEN={token} ;export GITLAB_USER={user}
```
4. **Проверяем, что ключи добавились:**
```sh
env
```
В консоли должны увидеть наш ключ и имя пользователя
5. **Заливаем свежую сборку в GitLab (отдельно каждый контейнер):**
```sh
just docker-push
```
6. **Собираем в продакшне:**
```sh
cd ansible
ansible-playbook -i inventory/prod.yaml playbooks/aerbim.yaml
```
Эта команда собирает все контейнеры, отдельно собирать не нужно.
### Миграции в продакшне.
1. **После сборки заходим в контейнер:**
```sh
docker exec -it aerbim-backend-1 sh
```
2. **Проводим миграции:**
```sh
python manage.py migrate
```
### Логи в продакшне.
1. **Логи фронтенда:**
```sh
docker logs -f aerbim-frontend-1
```
2. **Логи бекенда:**
```sh
docker logs -f aerbim-backend-1
```
3. **Логи сервера:**
```sh
tail -f /var/log/angie/access.log
```