# Исн трукция по разворачиванию проекта Mcos
#### 1) Подготавливаем вашу шайтан-машину (macOS)
1. Чтобы быть уверенными что все пройдет гладко, сделаем зачистку:
```bash=
brew uninstall postgis
brew uninstall postgres
brew uninstall postgres@13
```
2. Ставим пакеты:
```bash=
brew install gettext \
python3 \
postgres redis
```
Для люнекса надо пакет как минимум:
```bash=
sudo apt install libpq-dev python3-dev
```
> \ - обратная черта (слэш) позволяет нам переводить строку без выполнения команды. То есть следующая строка будет относиться к команде на предыдущей строке.
Это полезно для лучшего визуального восприятия. Лучше чем в одну строку всё
3. Если у вас вылетает ошибка при выполнении brew install:

ТО ВЫПОЛНИТЕ СЛЕДУЮЩИЕ КОМАНДЫ:
```bash=
sudo chown -R $(whoami)
chmod u+w /usr/local/share/man/man5
```
После этого повторно пробуйте установить пакеты с помощью `brew`
---
#### 2) Подготавливаем базу даных
1. Авторизация
Есть два способа попасть в командную строку Postgresql.
При установке postgreqsl должен был автоматически создаться пользователь с именем **`postgres`**
> Postgresql база даных может создавать использовать пользователей системы (linux/macos , то есть вашей ОС) для авторизации внутри базы даных.
> То есть, если вы зайдёте под определённым пользователем в систему, то у вас будет возможность авторизоваться также для выполнения команд в базу даных POstgresql.
> По умолчанию postgresql создает пользователей которые есть в вашей системе
* Способ 1
Выполняем команду для того, чтобы сменить пользователя на **postgres**:
```bash
sudo -i -u postgres
```
после чего нас должно переместить в командную среду пользователя **postgres**.(linux bash environment)
После чего нужно выполнить
```
psql
```
для того чтобы запустить командную строку postgresql:
* 
* Способ 2
```bash
psql postgres
```
Таким образом вы должны войти под пользователем postgres.
Обычно для тестовых проектов по умолчанию используется пользователь **postgres** для авторизации в базе даных.
Поэтому дальше будем использовать его
2. Дальше выполняем следующие команды для подготовки базы даных:
(команды выполнять из терминала, откройте чистый терминал)
```bash=
psql postgres
```
после чего строка запроса изменится и можно уже давать команды базе даных:

Выполняем:
```sql=
ALTER USER postgres WITH PASSWORD 'postgres';
CREATE DATABASE muffin_tshirts;
```
по идее пользователь postgres уже должен быть создан, но если этого не случилось, выполните следующие команды:
```sql=
CREATE USER postgres WITH PASSWORD 'postgres';
GRANT ALL PRIVILEGES ON DATABASE postgres to postgres;
ALTER USER postgres WITH PASSWORD 'postgres';
CREATE DATABASE muffin_tshirts;
```
По идее всё готово. Можно переходить дальше.
---
#### 3) Скачиваем репозиторий
**--- [ команда 1 ] ---**
```bash=
git clone https://github.com/atmosquare/web-app tshirts
```
это значит
что проект будет скопирован из репозитория в папку (директорию) **tshirts**
То, где вы эту папку разместите - уже ваше дело. Главное чтобы сами знали где.
Совет: разместите в домашней директории.
1. Создайте папку **projects** в домашней директории
2. зайдите в папаку projects и выполните **--- [команду 1] ---**
3. Зайдите в папку (директорию) с проектом
```bash=
cd ~
mkdir projects && cd projects
git clone https://github.com/atmosquare/web-app tshirts
cd tshirts
```
> && - это специальный оператор который позволяет последовательно выполнить несколько команд, пока первая команда не выполнится , следующая не будет выполнена
после выполнения команд выше , вы должны находиться теперь в папке проекта.
Следуйте за **уставшим кроликом** дальше:
---
#### 4) Теперь, когда вы в уютном месте, ставьте виртуальное окружение:
1. Ставим окружение
```bash=
python3 -m venv venv
```
эта команда создаст виртуальное окружение в папке (директории) **venv**, внутри проекта.
2. Активируем окружение (заходим в окружение)
```bash=
. venv/bin/activate
```
3. Устанавливаем нужные пакеты python:
```bash=
pip install --upgrade pip
pip install -r requirements.txt
```
4. Пробуем запустить сервер:
```bash=
python3 run_server.py
```
---
#### 5) На MacOS после запуска сервера надо переходить
на
* **http://localhost:7000** <<--- эту ссылку открываем в браузере
**ВМЕСТО**
* 0.0.0.0:7000