Skip to content

Latest commit

 

History

History
186 lines (171 loc) · 13.3 KB

README.md

File metadata and controls

186 lines (171 loc) · 13.3 KB

streets_of_russia_backend

Улицы России - начинаются с тебя

Contributions repo-size code-size license
GitHub Workflow Status pre-commit code style: black
commit-activity last-commit issues

В проекте использовались:

python django django-rest-framework gunicorn
python-phonenumbers drf-yasg django-rest-framework-simplejwt docker

На стадии разработки.

Улицы России это проект единственной общероссийской организации в такой сфере, которая способствует развитию уличных культур: воркаут, паркур, граффити, хип хоп и другие. Улицы России ломают стереотипы о том, что это агрессивный и травмоопасный спорт И доказывают, что этим может заниматься любой.

Документация для работы в команде над проектом

Code Style Pull Request

Ссылка на проект

Site

Технологии

  • Python
  • Django Rest Framework
  • Djoser
  • Simple JWT
  • drf-yasg
  • phonenumberslite

Общая структура проекта:

├──.github/                 # Файлы и настройки, связанные с GitHub/Github actions
├──infra/                   # Директория с docker compose
│   ├── nginx/              # Директория NGINX с конфигурацией
│   └── docker-compose.yml  # Файл конфигурации для Docker Compose
├──requrements/             # Директория с файлами зависимостей
│   ├── develop.txt         # Файл со списком зависимостей для разработки
│   └── production.txt      # Файл со списком зависимостей для продуктовой версии
├── src/                    # Backend приложения Django/DRF
│   ├── about/              # Приложение для моделей об организации и документов [в разработке]
│   ├── api/                # API - программный интерфейс приложения [в разработке]
│   ├── config/             # Главная директория проекта с основными настройками [в разработке]
│   ├── core/               # Приложение общего назначения для вспомогательных функций, процессоров, констант [в разработке]
│   ├── disciplines/        # Приложение для моделей дисциплин и спорта [в разработке]
│   ├── events/             # Приложение для моделей о событиях и календаря [в разработке]
│   ├── news/               # Приложение для моделей новостной рубрики [в разработке]
│   ├── news/               # Приложение для моделей пользователей и участников проекта [в разработке]
│   └── manage.py           # Исполняемый файл
├── .dockerignore           # Файл исключений Docker из сборки образа
├── .env.example            # Файл примера для секретных переменных
├── .gitignore              # Файл со списком неотслеживаемых файлов и каталогов
├── Dockerfile              # Файл настройки базового Docker образа
├── .pre-commit-config.yaml # Файл настройки pre-commit
├── LICENSE                 # Лицензия проекта
└── setup.cfg               # Конфигурационный файл

Установка для разработки локальный запуск:

  1. Клонируйте проект на свой компьютер:
    git@github.com:League-Of-Free-Internet/empty_project.git
  2. Установите и активируйте виртуальное окружение c Python 3.12.3
    cd ./empty_project/ &&
    py -m venv venv
    Для Windows:
    source venv/Scripts/Activate
    Для Linux
    source venv/bin/activate
  3. Установите зависимости из файла requirements/develop.txt Для Windows:
    python -m pip install --upgrade pip
    pip install -r requirements/develop.txt
    для Linux:
    pip install --upgrade pip
    pip install -r requirements.txt
  4. Создайте переменные окружения в основной папке проекта "empty_project"
    touch .env
  5. Добавьте ваши данные в файл .env (подробнее в .env.example)
    SECRET_KEY="Секретный код Django"
    DEBUG="True или False"
    ALLOWED_HOSTS="IP (домен) вашего сервера"
    
  6. Добавьте ваши данные в файл .env.db (подробнее в .env.db.example)
    DB_ENGINE=django.db.backends.postgresql
    DB_NAME=postgres
    POSTGRES_USER=postgres
    POSTGRES_PASSWORD=postgres
    DB_HOST=db
    DB_PORT=5432
    

Локальный запуск Docker контейнеров:

  1. Убедитесь, что docker и docker compose установлен:
    docker compose --version
    Инструмент Docker engine можно установить с этого официального сайта Плагин Docker compose можно установить с этого официального сайта
  2. Проверьте, что данные в файле .env и .env.db актуальны для вас, для корректной работы требуется значение DEBUG=False в .env файле.
  3. Из папки infra/ запустите конфигурационный файл Docker Compose проекта
    sudo docker compose -f ../empty_project/infra/docker-compose.yml up

Развёртывание и запуск проекта на удалённом сервере:

  1. Убедитесь, что на удалённом сервере установлен Docker и Docker Compose.
  2. Скопируйте ваши актуальные файлы .env, .env.db, конфигурационный файл для запуска проекта docker-compose.yml из папки infra/ и настроенный для вашего удалённого сервера конфигурационный файл nginx/default.conf. Для этого можно использовать утилиту scp:
    scp -r /path/to/your/project user@remote_server:/path/on/remote/server
  3. Подключитесь к удалённому серверу через SSH:
    ssh user@remote_server
  4. Перейдите в директорию с вашим проектом и выполните команду для сборки и запуска контейнеров:
    cd /path/on/remote/server
    docker compose up --build
  5. Откройте браузер и перейдите по адресу, например, http://remote_server_ip:8000, чтобы убедиться, что приложение работает.
  6. Теперь ваш проект должен быть развёрнут и запущен в Docker-контейнерах на удалённом сервере. Вы можете управлять контейнерами с помощью команд Docker compose и следить за их состоянием через docker ps и docker logs.

Проект разрабатывали:

Владимир Васильев Python-разработчик Cтраница GitHub
Эдуард Гумен Python-разработчик Cтраница GitHub

Лицензия

Пожалуйста, ознакомьтесь с MIT license