Skip to content

maryykmv/infra-kitty

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Проект Kittygram — социальная сеть для обмена фотографиями любимых питомцев. Это полностью рабочий проект, который состоит из бэкенд-приложения на Django и фронтенд-приложения на React. Задача — задеплоить проект Kittygram на удалённый сервер.


DjangoREST Django SQLite pythonversion react

Оглавление

  1. Описание
  2. Стек технологий
  3. Как запустить проект
  4. Автор проекта

Описание

При подключении к Kittygram доступны все возможности проекта: можно зарегистрироваться и авторизоваться, добавить нового котика на сайт или изменить существующего, а также просмотреть записи других пользователей. Секреты подключаются из файла .env. В проекте Kittygram подгружаются файлы со стилями для панели администратора.

Стек технологий

  • проект написан на Python с использованием Django, Django REST Framework
  • базы данны - SQLite3
  • система контроля версий - git
  • frontend - React

Как запустить проект:

  • Клонировать репозиторий и перейти в него в командной строке:
git clone [email protected]:maryykmv/infra_sprint1.git
cd infra_sprint1/backend
  • Cоздать и активировать виртуальное окружение:
python -m venv venv
source venv/bin/activate
  • Обновить установщик пакетов и установить зависимости из файла requirements.txt:
python -m pip install --upgrade pip
pip install -r requirements.txt
  • Выполнить миграции:
python manage.py migrate
  • Запускаем фронтенд
Установить на сервер пакетный менеджер npm.
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - &&\
sudo apt-get install -y nodejs

Установить зависимости для фронтенд-приложения.
npm i
  • Создаем root директорию для проекта
sudo mkdir /var/www/kittygram
sudo mkdir /var/www/kittygram/media
sudo chown -R <текущий пользователь> /var/www/kittygram/media/
  • Собираем статику фронтенд-приложения
cd infra_sprint1/frontend/
npm run build
sudo cp -r infra_sprint1/frontend/build/. /var/www/kittygram/
  • Собираем статику бэкенд-приложения
python manage.py collectstatic
sudo cp -r infra_sprint1/backend/static_backend/ /var/www/kittygram/
  • Настройте WSGI-сервер Gunicorn для работы с бэкенд-приложением проекта Kittygram
sudo cp -r infra_sprint1/infra/gunicorn_kittygram /etc/systemd/system/gunicorn-kittygram.service
sudo systemctl start gunicorn-kittygram
  • Настройте веб-сервер Nginx для перенаправления запросов и работы со статикой проекта Kittygram
Установка Nginx (если не установлен)
sudo apt install nginx -y

Настройка Nginx
sudo cp /etc/nginx/sites-enabled/default /etc/nginx/sites-enabled/default.BAK
sudo cp -r infra_sprint1/infra/default /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl restart nginx

Настройка файрвола (если не настроены)
правила, по которым будут закрыты все порты, кроме тех, которые явно указаны. 
Nginx Full - 80 и 443
OpenSSH - 22 (чтобы не потерять доступ у удаленному серверу по ssh)

sudo ufw allow 'Nginx Full'
sudo ufw allow OpenSSH
sudo ufw enable

Автор проекта

Мария Константинова, python-developer

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published