Skip to content

KSumatokhin/foodgram

Repository files navigation

Проект «Foodgram» описание:

Foodgram дает людям возможность поделиться рецептами своих любимых блюд. Зарегестрированные пользователи могут создавать и редактировать рецепты, подписываться на понравившихся авторов рецепта, а так же добавлять рецепт в избранное и список покупок. Список покупок можно скачать, в результате получится файл TXT формата, содержащий все необходимые ингридиенты и их количество для рецептов из списка покупок.

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

Для развертывания на сервере:

  1. Убедитесь, что на сервере установлен Docker, если нет, то установите.

  2. Убедитесь, что на сервере установлен Nginx, если нет, то установите.

  3. Настройте nginx на перенаправление всех запросов в докер: На сервере в редакторе nano откройте конфиг Nginx: sudo nano /etc/nginx/sites-enabled/default. Измените настройки location в секции server.

server {
    listen 80;
    server_name server_ip domain;

    location / {
            proxy_set_header Host $http_host;
            proxy_pass http://127.0.0.1:8000;
    }

}

Cмысл прост: «все запросы передавать в приложение, которое слушает порт 8000». Вместо server_ip и domain укажите ip адрес сервера и домен.

  1. Скачайте на сервер в папку проекта файл "docker-compose.production.yml".

  2. Создайте в папке проекта файл ".env". Пример для заполнения файла представлен в "example.env".

  3. Запустите Docker Compose в режиме демона:

sudo docker compose -f docker-compose.production.yml up -d
  1. Выполните миграции, импортируйте фикстуры, соберите статические файлы бэкенда:
sudo docker compose -f docker-compose.production.yml exec backend python manage.py migrate
sudo docker compose -f docker-compose.production.yml exec backend python manage.py loaddata recipes/data/ingredients.json
sudo docker compose -f docker-compose.production.yml exec backend python manage.py loaddata recipes/data/tags.json
sudo docker compose -f docker-compose.production.yml exec backend python manage.py collectstatic
sudo docker compose -f docker-compose.production.yml exec backend cp -r /app/collected_static/. /backend_static/static/
  1. Для создания суперюзера выполните следующие команды:
sudo docker exec -it foodgram-backend-1 bash
echo "from django.contrib.auth import get_user_model; User = get_user_model(); \
    u, _ = User.objects.get_or_create(username='superuser'); u.is_superuser = True; u.is_staff = True; \
	u.email = '[email protected]'; u.first_name = 'Admin'; u.set_password('5eCretPaSsw0rD'); u.save();" | python manage.py shell
exit

Данные для входа: email: [email protected] password: 5eCretPaSsw0rD

Как развернуть проект локально:

Для локального развертывания проекта:

  1. Скопируйте репозиторий в папку на компьютере.

  2. Разверните и активируйте виртуальное окружение, установите зависимости:

python -m venv venv
source venv/Scripts/activate
python -m pip install --upgrade pip
pip install -r backend/requirements.txt
  1. Создайте папку "data" для базы SQLite в папке "backend": mkdir backend/data/

  2. Создайте в папке backend\foodgram_backend\ файл ".env". Пример для заполнения файла представлен в "example.env". В файле ".env" укажите в качестве базы данных БД SQLite, для этого установвите PSG=False.

  3. Выполните миграции и импортируйте фикстуры:

cd backend/
python manage.py migrate
python manage.py loaddata recipes/data/ingredients.json
python manage.py loaddata recipes/data/tags.json
  1. Запустите проект python manage.py runserver.

Техно-стек:

Static Badge Static Badge Static Badge Static Badge Static Badge

Разработчики проекта

Адрес проекта

https://ksfoodgram.zapto.org

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published