Timofey Syrokvashko 6c2ea027a4 Merge branch 'feat_AEB_26_login_page' into 'main'
feat / AEB-26 login page

See merge request wedeving/aerbim-www!3
2025-09-01 11:34:30 +03:00
2025-07-24 14:53:32 +03:00
2025-09-01 11:34:30 +03:00
2025-09-01 11:34:30 +03:00
2025-07-24 14:42:49 +03:00
2025-07-24 14:42:49 +03:00

Aerbim

Это репозиторий сайта Aerbim. Этот проект включает в себя фронтенд на Next.js и бэкенд на Django.py с базой данных PostgreSQL.

Описание

Приложение Aerbim является дашбордом для визуализации показаний датчиков в 3D модели здания.

Технологии

Фронтенд

  • Next.js - библиотека для создания пользовательских интерфейсов.

Бэкенд

  • Django.py - веб-фреймворк для Python.
  • PostgreSQL - реляционная база данных для хранения данных.

Дизайн

Тасклист

Установка

Предварительные требования

Для запуска проекта вам потребуются:

  • Node.js (рекомендуется версия 23.x или выше)
  • Python (рекомендуется версия 3.13)
  • PostgreSQL (рекомендуется версия 17.x или выше)

Шаги для установки

  1. Клонирование репозитория:

    git clone https://gitlab.com/wedeving/aerbim-www
    cd aerbim-www
    
  2. Установка зависимостей для фронтенда и бэкенда:

    cd frontend
    npm install
    
    cd backend
    pipenv shell
    pipenv install
    
  3. Настройка переменных окружения:

    Создайте файл .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=
    
  4. Настройка базы данных:

    Создайте базу данных PostgreSQL и выполните миграции:

    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. Заходим в нужные директории:

    cd backend
    cd frontend
    
  2. Запускаем сборку контейнеров в каждом терминале:

    just docker-build
    
  3. Добавляем ключ гитлаба (один раз на сессию терминала, нужно каждый раз делать заново):

    export GITLAB_TOKEN={token} ;export GITLAB_USER={user}
    
  4. Проверяем, что ключи добавились:

    env
    

    В консоли должны увидеть наш ключ и имя пользователя

  5. Заливаем свежую сборку в GitLab (отдельно каждый контейнер):

    just docker-push
    
  6. Собираем в продакшне:

    cd ansible
    ansible-playbook -i inventory/prod.yaml playbooks/aerbim.yaml 
    

    Эта команда собирает все контейнеры, отдельно собирать не нужно.

Миграции в продакшне.

  1. После сборки заходим в контейнер:

    docker exec -it aerbim-backend-1 sh
    
  2. Проводим миграции:

    python manage.py migrate
    

Логи в продакшне.

  1. Логи фронтенда:

    docker logs -f aerbim-frontend-1
    
  2. Логи бекенда:

    docker logs -f aerbim-backend-1
    
  3. Логи сервера:

    tail -f /var/log/angie/access.log
    
Description
No description provided
Readme 14 MiB
Languages
TypeScript 74.5%
Python 24.9%
CSS 0.2%
JavaScript 0.2%