Foodgram - это книга рецептов, здесь вы можете обмениваться кулинарными изысками, выбирать понравившиеся и сохранять их. Foodgram поможет составить вам список покупок для любого блюда.
http://django-foodgram.ru
- Фронтенд.
- API для бекенда.
- База данных.
- Web-Server
Всё упаковано в 4 разных контейнера.
Документация со всеми эндпоинтами доступна здесь - http://django-foodgram.ru/api/docs/redoc.html
Инфраструктура описана в docker-compose /infra/docker-compose.yml
sudo apt update && sudo apt upgrade -y && sudo apt install curl -y
- Установим докер
sudo curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh && sudo rm get-docker.sh
- Установить docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Apply executable permissions to the binary:
sudo chmod +x /usr/local/bin/docker-compose
- Перенести файлы
docker-compose.yaml
иdefault.conf
на удаленный сервер. - Прописать секреты:
- для удаленного сервера: HOST
- для базы данных: DB_ENGINE
- для логина в DockerHub: DOCKER_USERNAME
- для почтового сервера EMAIL_SMTP
USER
SSH_PASSWORD
DB_NAME
POSTGRES_USER
POSTGRES_PASSWORD
DB_HOST
DB_PORT
DOCKER_PASSWORD
EMAIL_PASSWORD
- Поднять контейнеры:
sudo docker-compose up -d
- Выполнить миграции на удаленном сервере:
sudo docker-compose exec backend python manage.py makemigrations; sudo docker-compose exec backend python manage.py migrate
- Подключить статику:
docker-compose exec backend python manage.py collectstatic --no-input
- Наполнить базу данных ингредиентами:
docker-compose exec backend python manage.py importcsv
для получения серфтифика воспользоваться certbot от Let’s Encrypt
и прописать полученнный сертификат в default.conf
- Создать Супер Пользовтеля:
docker-compose exec backend python manage.py createsuperuser
- Посмотреть структуру проекта на сервере:
sudo docker-compose run backend bash
- Удалить запущенные контейнеры:
docker-compose down -v
- Остановить все запущенные контейнеры:
sudo docker stop $(sudo docker ps -a -q)
- Удалить все неиспользуемые контейнеры и образы:
docker system prune -a
- Скачать образы с DockerHub:
docker pull afivan20/foodgram_backend:latest
docker pull afivan20/foodgram_frontend:latest
Иван Афанасьев, python-devloper