Перейти к содержимому

Установка с помощью docker

Понадобится сервер с любым дистрибутивом Gnu/Linux, на который можно завести Docker.

На сервере должен быть установлен Docker и расширение compose к нему, будем устанавливать на compose. По аналогии можно развернуть и в другие системы управления контейнерами.

Если это первый запуск, то лучше воспользоваться скриптом установки. он создаст примеры конфигурационных файлов, сгенерирует секреты, создаст папки и запустит это всё.

Пример docker-compose.yml.

Создайте файл .env по примеру, заполните своими значениями. Описание переменных тут

Окно терминала
APP_DEBUG=y
SECRETS_DIR_PATH=/home/user/Projects/yvix
ALLOWED_HOSTS=*
DEFAULT_LANG=ru
DEFAULT_EMAIL=admin@example.com
# ADMINS='[["Admin", "admin@example.com"]]'
POSTGRES_DB=djing2
POSTGRES_USER=djing2_usr
POSTGRES_HOST=pgbouncer
POSTGRES_PORT=6432
DISABLE_SERVER_SIDE_CURSORS=y
API_AUTH_SUBNET="127.0.0.0/8|172.17.0.0/16"
SORM_EXPORT_FTP_HOST=127.0.0.1
SORM_EXPORT_FTP_USERNAME=cdr
SORM_EXPORT_FTP_DISABLE=Y
# Bras host name for COA
RADIUS_APP_HOST=localhost
CUSTOMERS_PASSPORT_DEFAULT_DISTRIBUTOR="FEDAral migr func"
DJANGO_LOG_LEVEL=INFO
CELERY_BROKER_URL=pyamqp://user:passw@djing2rabbitmq/
REDIS_HOST=djing2redis
DOMAINS=admin.localhost,pa.localhost
EMAIL4LETSENCRYPT=admin@localhost
DEBUG=1
STAGING=1
ADMIN_DOMAIN=admin.localhost
PA_DOMAIN=pa.localhost
INSTALLED_APPS_ADDITIONAL=

Детальное описание каждой опции тут.

Строки, начинающиеся с # игнорируются, это комментарии.

После того как .env файл настроен, можно продолжать установку. Создайте папку secrets и там файлы с секретами.

Ещё раз запустите ./install_prod.sh и дождитесь завершения. Скрипт Скачает ещё несколько скриптов, создат папки для костомизации web сервера, и запустит систему в docker.

Важно! На вашем сервере должны быть свободны порты 80 и 443.

Теперь можно запускать:

$ docker compose up -d

Вам нужно создать администратора, от которого уже можно создавать других администраторов, абонентов, и всё остальное. Для этого, после того как система уже запущена и работает, зайдите в папку с docker-compose.yml файлом проекта, и выполните комманду:

Окно терминала
$ docker compose exec -it djing2_app_wsgi ./manage.py createsuperuser

Комманда запросит имя пользователя, номер телефона, и два раза пароль для нового администратора.

Например, это может выглядеть так:

Окно терминала
user@localhost$ docker compose exec -it djing2_app_wsgi ./manage.py createsuperuser
Имя пользователя: username
Номер телефона: +1234567890
Password:
Password (again):
Superuser created successfully.
user@localhost$

Если вывод примерно такой, то администратор с правами суперпользователя успешно создан. И вы можете логиниться. Если в .env файле в переменной ADMIN_DOMAIN вы поставили, например yourdomain.loc, то для входа в админку перейтите по адресу http://yourdomain.loc/. И входите под вашим новым администратором.

Вы не сможете зайти в админку, если в бд нет домена под которым вы пытаетесь залогиниться. Для того чтобы создать ваш домен, например admin.yourdomain.loc воспользуйтесь коммандой:

Окно терминала
$ docker compose exec -it djing2_app_wsgi ./manage.py manage_sites add -d admin.yourdomain.loc -n "Домен админки"

То же самое и для домена личного кабинета абонентов.

Окно терминала
$ docker compose exec -it djing2_app_wsgi ./manage.py manage_sites add -d pa.yourdomain.loc -n "Домен личного кабинета"

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