feat / AEB-XX Реализован базовый 3D просмотрщик моделей с поддержкой GLTF See merge request wedeving/aerbim-www!1
Aerbim
Это репозиторий сайта Aerbim. Этот проект включает в себя фронтенд на Next.js и бэкенд на Django.py с базой данных PostgreSQL.
Описание
Приложение Aerbim является дашбордом для визуализации показаний датчиков в 3D модели здания.
Технологии
Фронтенд
- Next.js - библиотека для создания пользовательских интерфейсов.
Бэкенд
- Django.py - веб-фреймворк для Python.
- PostgreSQL - реляционная база данных для хранения данных.
Дизайн
- Figma - Дизайн проекта.
Тасклист
- YouGile - Таскменеджер.
Установка
Предварительные требования
Для запуска проекта вам потребуются:
- Node.js (рекомендуется версия 23.x или выше)
- Python (рекомендуется версия 3.13)
- PostgreSQL (рекомендуется версия 17.x или выше)
Шаги для установки
-
Клонирование репозитория:
git clone https://gitlab.com/wedeving/aerbim-www cd aerbim-www -
Установка зависимостей для фронтенда и бэкенда:
cd frontend npm install cd backend pipenv shell pipenv install -
Настройка переменных окружения:
Создайте файл
.envв директориях ./frontend и ./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=#server components url NEXT_PUBLIC_API_URL= #auth NEXTAUTH_URL= BACKEND_URL= NEXTAUTH_SECRET= -
Настройка базы данных:
Создайте базу данных PostgreSQL и выполните миграции:
createdb aerbimdb # Выполните миграции, если они имеются. В проекте откройте директорию backend cd backend python manage.py makemigrations python manage.py migrate -
Локальная разработка:
Откройте два терминала или используйте вкладки в одном терминале.
В первом терминале запустите бэкенд:
cd backend python manage.py runserverВо втором терминале запустите фронтенд:
cd frontend npm run dev
Теперь проект будет доступен по адресу http://localhost:3000.
Инструкция по деплою.
-
Заходим в нужные директории:
cd backend cd frontend -
Запускаем сборку контейнеров в каждом терминале:
just docker-build -
Добавляем ключ гитлаба (один раз на сессию терминала, нужно каждый раз делать заново):
export GITLAB_TOKEN={token} ;export GITLAB_USER={user} -
Проверяем, что ключи добавились:
envВ консоли должны увидеть наш ключ и имя пользователя
-
Заливаем свежую сборку в GitLab (отдельно каждый контейнер):
just docker-push -
Собираем в продакшне:
cd ansible ansible-playbook -i inventory/prod.yaml playbooks/aerbim.yamlЭта команда собирает все контейнеры, отдельно собирать не нужно.
Миграции в продакшне.
-
После сборки заходим в контейнер:
docker exec -it aerbim-backend-1 sh -
Проводим миграции:
python manage.py migrate
Логи в продакшне.
-
Логи фронтенда:
docker logs -f aerbim-frontend-1 -
Логи бекенда:
docker logs -f aerbim-backend-1 -
Логи сервера:
tail -f /var/log/angie/access.log