Git Product home page Git Product logo

dockerized_starburger's Introduction

Сайт доставки еды Star Burger

Это сайт сети ресторанов Star Burger. Здесь можно заказать превосходные бургеры с доставкой на дом.

Сеть Star Burger объединяет несколько ресторанов, действующих под единой франшизой. У всех ресторанов одинаковое меню и одинаковые цены. Просто выберите блюдо из меню на сайте и укажите место доставки. Мы сами найдём ближайший к вам ресторан, всё приготовим и привезём.

На сайте есть три независимых интерфейса. Первый — это публичная часть, где можно выбрать блюда из меню, и быстро оформить заказ без регистрации и SMS.

Второй интерфейс предназначен для менеджера. Здесь происходит обработка заказов. Менеджер видит поступившие новые заказы и первым делом созванивается с клиентом, чтобы подтвердить заказ. После оператор выбирает ближайший ресторан и передаёт туда заказ на исполнение. Там всё приготовят и сами доставят еду клиенту.

Третий интерфейс — это админка. Преимущественно им пользуются программисты при разработке сайта. Также сюда заходит менеджер, чтобы обновить меню ресторанов Star Burger.

Как запустить dev-версию сайта

Скачать код с репозитория

git clone https://github.com/EshiNanase/dockerized_starburger.git

Установить Docker CLI

https://github.com/docker/cli

В каталоге создать .env файл со следующими переменными окружения:

  • DEBUG — дебаг-режим. Для разработки - False, для продакшена - True.
  • SECRET_KEY — секретный ключ проекта. Он отвечает за шифрование на сайте. Например, им зашифрованы все пароли на вашем сайте.
  • YANDEX_API_TOKEN — персональный токен HTTTP Геокодера от Яндекс. Получить можно здесь
  • ALLOWED_HOSTSсм. документацию Django
  • ROLLBAR_TOKEN — токен вашего проекта на Rollbar
  • ROLLBAR_ENVIRONMENT — development, если для разработки, или production, если сайт на продакшене
  • POSTGRES_DB — название базы данных Postgres
  • POSTGRES_USER — имя юзера для входа в базу данных Postgres
  • POSTGRES_PASSWORD — пароль для входа под именем юзера сверху

Запустить разработческую версию в консоли

docker-compose up --build

Открыть запущенный сайт в браузере по ссылке

http://127.0.0.1:8000/

Как запустить prod-версию сайта

В папке nginx/prod создать nginx_prod.conf со следующим содержанием

server {
    listen 80;
    server_name _;
    server_tokens off;

    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl;
    server_name _;
    server_tokens off;

    ssl_certificate /etc/letsencrypt/live/_/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/_/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    location / {
        proxy_pass http://web:8000/;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;
    }

    location /media/ {
         alias /app/media/;
    }

    location /static/ {
         alias /app/static/;
    }
}

На месте "$hostname" должен быть ваш домен, например, rofloburger.fun

Получить SSL Сертификат от Certbot'а на сервер

https://certbot.eff.org/

Запустить prod-версию в консоли

sudo docker-compose -f docker-compose.prod.yml up -d --build --remove-orphans

Как быстро задеплоить код на сервере

  • Перейти в директорию /opt/devman/dockerized_starburger
  • Запустить ./starburger_deploy

dockerized_starburger's People

Contributors

eshinanase avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.