Установка с помощью docker
Понадобится сервер с любым дистрибутивом Gnu/Linux, на который можно завести Docker.
На сервере должен быть установлен Docker и расширение compose к нему, будем устанавливать на compose. По аналогии можно развернуть и в другие системы управления контейнерами.
Если это первый запуск, то лучше воспользоваться скриптом установки. он создаст примеры конфигурационных файлов, сгенерирует секреты, создаст папки и запустит это всё.
Пример docker-compose.yml
.
Создайте файл .env
по примеру, заполните своими значениями. Описание переменных тут
APP_DEBUG=ySECRETS_DIR_PATH=/home/user/Projects/yvixALLOWED_HOSTS=*DEFAULT_LANG=ruDEFAULT_EMAIL=admin@example.com# ADMINS='[["Admin", "admin@example.com"]]'POSTGRES_DB=djing2POSTGRES_USER=djing2_usrPOSTGRES_HOST=pgbouncerPOSTGRES_PORT=6432DISABLE_SERVER_SIDE_CURSORS=yAPI_AUTH_SUBNET="127.0.0.0/8|172.17.0.0/16"SORM_EXPORT_FTP_HOST=127.0.0.1SORM_EXPORT_FTP_USERNAME=cdrSORM_EXPORT_FTP_DISABLE=Y
# Bras host name for COARADIUS_APP_HOST=localhost
CUSTOMERS_PASSPORT_DEFAULT_DISTRIBUTOR="FEDAral migr func"
DJANGO_LOG_LEVEL=INFOCELERY_BROKER_URL=pyamqp://user:passw@djing2rabbitmq/REDIS_HOST=djing2redis
DOMAINS=admin.localhost,pa.localhostEMAIL4LETSENCRYPT=admin@localhostDEBUG=1STAGING=1
ADMIN_DOMAIN=admin.localhostPA_DOMAIN=pa.localhost
INSTALLED_APPS_ADDITIONAL=
Детальное описание каждой опции тут.
Строки, начинающиеся с # игнорируются, это комментарии.
Секреты
Заголовок раздела «Секреты»После того как .env файл настроен, можно продолжать установку. Создайте папку secrets
и там файлы с секретами.
API_AUTH_SECRET
: секрет для авторизации скриптов.DJANGO_SECRET_KEY
: Криптографическая защита DjangoFIELD_ENCRYPTION_KEY
: Соль для хеширования паролей.POSTGRES_PASSWORD
: Пароль для PostgreSQLVAPID_PRIVATE_KEY
&VAPID_PUBLIC_KEY
: Ключи web push уведомлений.
Ещё раз запустите ./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Номер телефона: +1234567890Password: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 "Домен личного кабинета"
Позже вы сможете, например, создать несколько доменов для админки, и управлять доступностью различных объектов по этим доменам. Пользователь который создал объект с определённого домена, автоматически назначает его доступным с этого домена. Т.е. другие сотрудники, которые заходят с этого же домена, увидят этот объект, а те кто зайдёт с другого уже не увидят.