развернуть проект на удаленном сервере
План работы
Получите доменное имя, по которому будет доступно приложение. Начните именно с этой задачи, так как для тестирования работы проекта вам понадобится доменное имя, а для того, чтобы оно попало на все DNS-серверы, нужно время. Вы можете использовать любой сервис, выдающий доменные имена, платный в том числе.
Клонируйте репозиторий infra_sprint1 с проектом Kittygram со своего аккаунта на GitHub на удалённый сервер.
Настройте WSGI-сервер Gunicorn для работы с бэкенд-приложением проекта Kittygram.
Создайте ещё один конфигурационный файл для демона WSGI-сервера Gunicorn. Назовите его gunicorn_kittygram.service. Так Gunicorn будет управлять работой демона для каждого проекта независимо.
Опишите в этом файле параметры запуска приложения через WSGI-сервер. Так как порт 8000 уже занят проектом Taski, используйте другой порт, например 8080.
Настройте веб-сервер Nginx для перенаправления запросов и работы со статикой проекта Kittygram.
Соберите фронтенд для Kittygram:
находясь на сервере, из директории frontend/ последовательно выполните команды npm install и npm run build;
собранный фронтенд скопируйте в директорию /var/www/kittygram/.
Опишите нужные настройки в существующем файле конфигурации, но в новом блоке server.
Чтобы фотографии котиков отображались на сайте, создайте директорию media в директории /var/www/kittygram/. Django-приложение будет использовать эту директорию для хранения картинок.
В настройках бэкенда для константы MEDIA_ROOT укажите путь до созданной директории media.
Назначьте текущего пользователя владельцем директории media, чтобы Django-приложение могло сохранять картинки. Для этого используйте команду chown:
# Подставьте в команду имя своего пользователя.
sudo chown -R /var/www/kittygram/media/
Опишите в файле конфигурации блок с префиксом /media/, чтобы Nginx знал, из какой директории забирать фото котиков. Тут вам нужно немного поработать самостоятельно и разобраться с тем, как работать с директивой alias.
? По умолчанию Nginx не принимает запросы объёмом более одного мегабайта. Учитывайте это при загрузке фотографий на сайт. Если хотите загружать более «тяжёлые» файлы, добавьте в конфигурацию Nginx инструкцию client_max_body_size 20M;. Разместите её внутри директив location /api/ и location /admin/.
Настройте шифрование запросов по протоколу HTTPS.
? Так как браузеры по умолчанию обращаются именно к HTTPS-версии сайта, то пока эта версия не станет доступной, явно указывайте в адресной строке протокол. Пишите адрес, начиная с http://
В корневой директории проекта Kittygram на удалённом сервере создайте папку infra. Разместите в этой папке три файла:
файл конфигурации Nginx с именем default,
файл конфигурации Gunicorn с именем gunicorn_kittygram.service,
файл под названием kittygram_site.txt.
Содержимое файла kittygram_site.txt должно быть таким (после ключей не забудьте поставить двоеточия, а в конце строк — точку с запятой):
IP: IP вашего удалённого сервера;
name_taski: полная ссылка (https://доменное_имя) на ваш проект Taski;
name_kittygram: полная ссылка (https://доменное_имя) на ваш проект Kittygram;
login: логин суперпользователя;
password: пароль суперпользователя;
На удалённом сервере сделайте push проекта Kittygram в свой репозиторий на GitHub и отправьте проект на проверку.
Требования к результатам работы
Пользователь может получить доступ к проектам Taski и Kittygram по доменным именам.
При работе с Kittygram доступны все возможности проекта: можно зарегистрироваться и авторизоваться, добавить нового котика на сайт или изменить существующего, а также просмотреть записи других пользователей.
При работе с Taski тоже доступны все возможности: можно создать, удалить, изменить задачу, а также отметить её как выполненную.
Для проекта Kittygram секреты подключаются из файла .env. В файле должна быть как минимум одна константа — SECRET_KEY. Её значение не должно храниться в коде проекта. Однако для переменных окружения из файла .env в коде проекта должны быть указаны значения по умолчанию, иначе проект не пройдет проверку автоматическими тестами.
Гарантия на работу | 1 год |
Средний балл | 4.96 |
Стоимость | Назначаете сами |
Эксперт | Выбираете сами |
Уникальность работы | от 70% |