Перейти к содержанию

Установка системы

  1. Установить Docker Engine под нужную операционную систему в соответствии с документацией: https://docs.docker.com/engine/install/.
  2. Установить Docker Compose в соответствии с документацией: https://docs.docker.com/compose/install/.
  3. Авторизоваться в приватном реестре Docker-образов системы «CodeScoring» при помощи команды docker login registry-one.codescoring.ru, используя логин и пароль, полученные от вендора.
  4. Скачать полученный от вендора архив с установочными файлами, распаковать.
  5. Перейти в консоли в созданную директорию.
  6. Скопировать шаблонный файл с настройками:

    cp app.env.template app.env
    

    Как правило, для корректной работы никаких изменений в файле не требуется. При необходимости настройки работы CodeScoring через прокси, обратите внимание на инструкцию.

  7. Скопировать шаблонный файл с секретами:

    cp .env.template .env
    
    При необходимости настроить параметры конфигурации в новом файле. Если не менять параметры в файле, то по умолчанию система будет доступна по адресу http://localhost:8081.

    • Список доменов для правильной работы CSRF защиты. Рекомендуется перечислить localhost на внутреннем и внешнем портах, а также внешний домен (или сочетание ip:порт). Указание протокола является обязательным, например:
      • DJANGO_CSRF_TRUSTED_ORIGINS=http://localhost:18000,https://localhost:8081,https://внешний ip:8081
    • Параметры подключения к базе данных PostgreSQL. База поставляется вместе с установкой. Указание доступов отдельно является мерой предосторожности и контроля. При использовании собственной базы данных необходимо убедиться, что она соответствует версии PostgreSQL 13.0 или выше.
      • POSTGRES_DB — название базы данных
      • POSTGRES_USER — имя пользователя. При использовании собственной базы необходимо убедиться, что пользователь имеет следующие права: Superuser, Create role, Create DB, Replication, Bypass RLS.
      • POSTGRES_PASSWORD — пароль
      • POSTGRES_HOST - хост, на котором доступна база данных
      • POSTGRES_PORT - порт, на котором доступна база данных
    • Секрет инсталляции
      • SECRET_KEY — случайная строка символов
    • Настройки домена системы
      • NGINX_HOST — хост, на котором будет доступна система
      • NGINX_PORT — порт, на котором будет доступна система
      • SITE_SCHEME - протокол передачи данных, по умолчанию https
    • Пути исключений
      • ANALYSIS_IGNORED_PATHS - список путей, которые будут игнорироваться системой при анализе. Подробнее с добавлением путей исключения можно ознакомиться тут
    • Версия системы
      • CODESCORING_VERSION – обязательная переменная. Актуальную версию можно узнать в разделе Changelog

    Примечание: не используйте в параметрах символ #, он может некорректно восприниматься системой при установке.

  8. Выполнить команду установки CodeScoring (выполнение команды должно быть с правами суперпользователя системы):

    cd /path/to/docker-compose
    docker-compose -p PROJECT_NAME -f ./docker-compose.yml up -d --force-recreate --remove-orphans --renew-anon-volumes
    

    PROJECT_NAME — здесь и далее выбранное название проекта, по умолчанию использует название текущей директории

  9. Для просмотра логов можно использовать команду:

    docker-compose -p PROJECT_NAME logs -f
    
  10. После запуска сервис будет доступен по настроенному домену или адресу http://localhost:8081. При первом запуске дополнительно выполняются миграции базы данных, операция может занять больше времени, чем при последующих запусках.

    Примечание: для работы инсталляции по протоколу https нужен внешний балансировщик, который реализует терминирование ssl.

  11. Для входа в систему необходимо предварительно создать пользователя с правами администратора с помощью следующей команды (заменив prefix значением PROJECT_NAME из пункта 8):

    docker exec -it prefix_backend_1 python ./manage.py createsuperuser
    
    12. Для изменения пароля администратора можно использовать следующую команду:

    docker exec -it prefix_backend_1 python ./manage.py changepassword <user_name>