README.md

IU9 C.A. WEB CHAT

C.A. stands for Collarbone Annihilation.

About

Сделан на летней практике 5-ю первокурсниками из ИУ9-21Б.

Dependencies

iu9-ca-web-chat использует

Сервис так же использует библиотеки engine_engine_number_9 и new_york_transit_line, размещённые прямо в репозитории.

Работает только на unix системах.

Compilation

regexis024_build_system.sh
./building/main bi ./ "absolute/path/to/installation/root"

Usage

Помимо самого бинарника нужен файл с настройками сервиса. Формат настроек: JSON. Комментарии не поддерживаются. Пример такого файла находится в example/config.json. Вместе с бинарным фалом так же распространяются ассеты, необходимые для работы сайта. Их можно найти в папке assets. В настроках (поле config.assets) указывается путь до папки с ассетами. Путь может быть как абсолютным, так и относительным к рабочей директории. Поле настроек config.database указывает как соединиться с базой данных. Поддерживается только база данных sqlite3. Поддерживается только хранение в файле. Поле config.database.file указывает путь где хранится sqlite база данных.

Перед тем как использовать сервис нужно его проинициализировать (а точнее проинициализировать базу данных):

ROOT_PW="<your desired root password>" iu9-ca-web-chat /path/to/config.json initialize

Переменная окружения ROOT_PW читается для устаановки пароля root пользователю раз и навсегда. Далее можно запускать сервис:

iu9-ca-web-chat /path/to/config.json run

Для остановки сервиса киньте ему SIGTERM или SIGINT.

Утилита iu9-ca-web-chat-admin-cli позволяет администратору сервиса контролировать его через сокет (адрес указан в config["server"]["admin-command-listen"]).

По адресам config.server.admin-command-listen идёт прослушивание так называемых “команд администратора”. iu9cawebchat определяет свой простой протокол для передачи этих команд. Утилита iu9-ca-web-chat-admin-cli может отправить текст с некой командой на сервер на этот адрес и получить ответ от сервера.

iu9-ca-web-chat-admin-cli <server admin-control address> <command text> [<command text> ...]

Дополнительные параметры конкатенируются, разделяясь переводом строки. Команды администратора:

updateroopw <new root password> - сменить пароль пользователя с номером 0

adduser <user nickname> <user name> <user password> <user bio> - зарегистрировать пользователя сайта

8 - остановить сервис

Если нужно ввести пробел или символ \ в любое из этих полей, перед ними нужно поставить \; Если указать меньше полей, чем нужно, незаполненные поля станут пустыми строками.

Параметры конфигурации config.lang.whitelist и config.lang.force-order определяют на какие языки будет локализован сервер, и какие переводы приоритетнее каких. На данный момент поддерживаются

  • ru-RU
  • en-US

Все переводы хранятся в папке assets/lang. Для добавления своего перевода нужно форкнуть репозиторий и сделать копию файла assets/lang/ru-RU.lang.json в assets/lang/XXXXX.lang.json.

Список участников

  1. Китанин Фёдор
  2. Андреев Григорий
  3. Зоткин Владимир
  4. Каримов Адель
  5. Яковлев Антон

Комментарии (для разработчиков)

Зачем писать комментарии в коде, если можно их вынести в отдельные пдф-ки?

О том как работает всё остальное можно только догадываться.

Конвейеры
0 успешных
0 с ошибкой