---
# System prepended metadata

title: Deploy

---

# Deploy

## Env vars

#### DEBUG

Default: 0 
Для дев верии (не для пользователей) 1

Выставляет разные способы кричать об ошибке в случаее 500 и 404.

#### APP_SUPERUSER

Если пользователь с username APP_SUPERUSER существует, то ничего не делаем. Если не сущетсвет, создаем суперпользователя с логином и паролем соответственно APP_SUPERUSER и APP_SUPERPASS
    
#### APP_SUPERPASS

См. APP_SUPERUSER

#### SECRET_KEY

Разные для разных баз (мастер отедльный кей, дев отдельный кей)

TODO: Здесь я напишу ванлайнер для баша для генерации такого ключа

#### STATIC_ROOT 

Default: '../../static'


#### MEDIA_ROOT

Default: '../../media'

## Logic Map

TODO: непонятно какие обвязки бывают

API (master)   <---   Front (master)

API (master)   <---   Front development

API-DEV (dev)  <---   Front development


api.z.com (master)

api-dev.z.com (dev)



## Installation

Собираем докер из .CI/Dockerfile

Мы считаем, что этот докер файл "как бы" находится в корне репозитория. А тот докер файл что в корне -- это для разработки.

Или другими словами происходит что-то такое:

    docker build -f .CI/Dockerfile
    
У контейнера есть docker-entrypoint.sh (или может быть .py)

### Запуск веб сервера

Дефолтных хост:порт внутри контейнера всегда 0.0.0.0:8000 если явно не указано иного

    docker run <image-name> runserver 
    
    
Внутри происходит
* migrate DB
* create superuser (at always check)
* collect static ( тут чисто технический кейс, реально не используется пока что)
* runserver (тут в зависимости от сборки запускается либо джанговский runserver либо gunicorn или что-то в это роде)
    
### Запуск тестов 

    docker run <image-name> test 
    

## Скалирование???

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


Nginx -- api.zereia.com

  V
  
api:30001  api:30002  api:30003  celery-worker1 celery-worker2  celery-beat celery-flower(admin panel for celery)???   django-admin???
  
  V
  
gunicorn-0.0.0.0:8000
   
  V
   
wsgi -> **sync django**
   
