Skip to content

Сервис для распростронения рецептов

Notifications You must be signed in to change notification settings

NechepurenkoA/foodgram

Repository files navigation

Проект Foodgram.

Запус проекта.

Для этого понадобится:

  1. Установленный Docker на ваш компьютер. (если вы на Windows то ещё и WSL)
  2. Немного измененный .env, пример которого можно посмотреть ниже.
  3. Секреты добавленные в форкнутый проект. (нужно для деплоя на удаленном сервере, такие пункты будут помечены фразой опционально)

Где менять .env?

В корневой папке проекта.

Шаблон файла .env

DEBUG=
SECRET_KEY=
ALLOWED_HOSTS=
DB_ENGINE=
DB_NAME=
POSTGRES_USER=
POSTGRES_PASSWORD=
DB_HOST=
DB_PORT=

Запуск проекта

Для запуска присутствует 2 варианта:

  1. Первый и самый простой, это запуск на локальной машине.

    Т.е. для этого вам просто нужно сделать всё выше перечисленное + выполнить команду

    docker-compose -f docker-compose.yml up --build  
  2. Уже сложнее. Для этого вам потребуется (предоставлю небольшой чеклист)

    1. Аккаунт на Dockerhub.
    2. Добавленные секреты в проект. #обсудим дальше
    3. Собственно удалённый сервер для запуска.
    4. Пара махинаций с командной строкой.

    Предполагаю, что 1 пункт выполнен.

Как добавить секреты в проект?

Форкнутый проект -> Settings -> Secrets and Variables -> Actions

По этому пути добавляете:

DOCKER_PASSWORD = <пароль от вашего докер аккаунта>
DOCKER_USERNAME = <username от вашего докер аккаунта>

#опционально
HOST = <айпи сервера где вы хотите запустить проект>
SSH_KEY = <SSH ключ для сервера>
SSH_PASSPHRASE = <пароль для сервера>
TELEGRAM_TO = <ваш айди телеграм>
TELEGRAM_TOKEN = <токен телеграм бота>
USER = <имя пользователя на удаленном сервере>

Собственно - махинации.

Для запуска проекта нужны будут 3 файла, это nginx.conf (я предполагаю, что nginx default уже настроен и протокол защищен), .env и docker-compose.yml

Все они расположены в корне проекта. Копируются с помощью команды scp, можно также просто создать эти файлы вручную на сервре и перенести содержимое из указанных файлов, расположенных в корней проекта.

Копируем

  1. Файл .env.
    scp -i <путь_к_ключу_ssh_для_вашего_сервера> <путь_к_файлу_.env>/.env <имя_пользователя_на сервре>@<ip_сервреа>:<путь к папке>/foodgram/.env
  2. Файл nginx.conf
     scp -i <путь к ключу ssh для вашего сервре> <путь_к_файлу_nginx.conf>/nginx.conf <имя_пользователя_на сервре>@<ip_сервреа>:<путь к папке>/foodgram/nginx.conf
  3. Файл docker-compose.yml копируется автоматически

Если ВСЁ вышеперечисленное было выполнено правильно, то тогда, после пушка проекта без значительных изменений на GitHub, запустится workflow, который автоматически соберёт образы на ваш DockerHub аккаунт, запуллит их на удалённый сервер и запустит их.

Создание админки (опционально)

Для создания админки вам нужно выполнить такие 2 команды на удалённом сервере:

sudo docker compose -f docker-compose.yml exec backend python manage.py createsuperuser

После этого вас попросят ввести Username, Email, Password и вот ваша админка готова.

Используемые технологии:

Java Script, Python 3.9, Django REST, Django.

About

Сервис для распростронения рецептов

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published