Установка Citeck c помощью Docker Compose
Системные требования
Установлен Docker
Установлен Docker Compose
16 ГБ ОЗУ для корректного запуска Citeck
Установка и запуск Citeck Community
Важно
Комплект поставляется с предзаполненными демонстрационными данными.
Для отключения данной настройки перед разворачиванием стенда перейдите в папку \services\environments, в файле demo_data.env в настройке WITH_DEMO_DATA укажите false.
Мы анонимно собираем статистику с использованием сервиса Umami. Сервис не собирает и не хранит персональные данные, избегая необходимости использования файлов cookie.
Установите Docker и Docker Compose на вашу ОС.
Клонируйте репозиторий:
git clone https://github.com/citeck/citeck-community.git
Перейдите в папку с клонированным репозиторием:
cd /полный/путь/до/папки
Запустите Citeck:
docker-compose up -d
Подождите, пока система запустится (время зависит от мощности системы).
Откройте браузер и перейдите по адресу:
http://localhost/Войдите в систему:
Username: admin Password: admin
Если необходимо сменить пароль, см. инструкцию Keycloak.
Примечание
При первом развёртывании без демонстрационных данных Keycloak попросит сменить пароль.
После входа станет доступна страница персонального рабочего пространства:
В левом верхнем углу доступна кнопка для выбора рабочих пространств и создания нового:
Подробнее о:
Обновление до последнего релиза
Выполните следующие команды в терминале:
Остановите Citeck:
docker-compose downПерейдите в папку
citeck-community:cd /полный/путь/до/папки/citeck-community
Получите актуальную версию:
git pullЗагрузите последние версии образов:
docker-compose pullЗапустите Citeck:
docker-compose up -d
Подготовка окружения и установка Citeck
Установите Docker:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Добавьте репозиторий в источники Apt:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Установите последнюю доступную версию:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Или установите конкретную версию:
apt-cache madison docker-ce | awk '{ print $3 }'
VERSION_STRING={Your Specific version}
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING \
containerd.io docker-buildx-plugin docker-compose-plugin
Настройте автозапуск Docker:
sudo systemctl enable docker
Установите Docker Compose:
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Проверьте установку:
docker-compose --version
На этом установка Docker Engine и Docker Compose завершена.
Клонируйте репозиторий и запустите Citeck:
wget https://github.com/Citeck/citeck-community/archive/refs/heads/master.zip
unzip master.zip
cd citeck-community-master
docker-compose pull
docker-compose up -d
Примечание
Выполняйте команды из директории citeck-community-master.
Если локальная сеть может пересекаться с сетью Docker, задайте предопределённую подсеть в файле /etc/docker/daemon.json (переменная default-address-pools):
{
"default-address-pools": [
{"base": "172.19.0.0/16", "size": 24}
]
}
Установите Docker:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Добавьте репозиторий в источники Apt:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Установите последнюю доступную версию:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Или установите конкретную версию:
apt-cache madison docker-ce | awk '{ print $3 }'
VERSION_STRING={Your Specific version}
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING \
containerd.io docker-buildx-plugin docker-compose-plugin
Настройте автозапуск Docker:
sudo systemctl enable docker
Установите Docker Compose:
wget https://github.com/docker/compose/releases/download/v2.29.1/docker-compose-Linux-x86_64
mv ./docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Примечание
Версию можно изменить на более актуальную, заменив v2.29.1.
На этом установка Docker Engine и Docker Compose завершена.
Клонируйте репозиторий и запустите Citeck:
wget https://github.com/Citeck/citeck-community/archive/refs/heads/master.zip
unzip master.zip
cd citeck-community-master
docker-compose pull
docker-compose up -d
Примечание
Выполняйте команды из директории citeck-community-master.
Если локальная сеть может пересекаться с сетью Docker, задайте предопределённую подсеть в файле /etc/docker/daemon.json (переменная default-address-pools):
{
"default-address-pools": [
{"base": "172.19.0.0/16", "size": 24}
]
}
Примечание
Инструкция проверялась с Astra Linux Common Edition 2.12.46.
Установите Docker:
sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo printf "deb [arch=amd64] https://download.docker.com/linux/debian stretch stable \n" \
> /etc/apt/sources.list.d/docker.list
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
Настройте группы Docker:
sudo groupadd docker
sudo usermod -aG docker $USER
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
Установите Docker Compose:
wget https://github.com/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64
mv ./docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Примечание
Версию можно изменить на более актуальную, заменив 1.27.4.
Клонируйте репозиторий и запустите Citeck (выполняется в терминале, Alt+T):
git clone https://github.com/Citeck/citeck-community.git && cd citeck-community
docker-compose pull
docker-compose up -d
Примечание
Выполняйте команды из директории citeck-community.
Если локальная сеть может пересекаться с сетью Docker, задайте предопределённую подсеть в файле /etc/docker/daemon.json (переменная default-address-pools):
{
"default-address-pools": [
{"base": "172.19.0.0/16", "size": 24}
]
}
Примечание
Инструкция проверялась на РЕД ОС 7.3, ядро Linux 5.15.72.
Обновите пакеты и отключите SELINUX:
dnf update
echo 'SELINUX=disabled' > /etc/sysconfig/selinux
reboot
Установите Docker и Docker Compose:
sudo dnf install docker-ce docker-ce-cli docker-compose
systemctl enable docker
Клонируйте репозиторий и запустите Citeck (выполняется в терминале, Alt+T):
git clone https://github.com/Citeck/citeck-community.git && cd citeck-community
docker-compose pull
docker-compose up -d
Примечание
Если встречается ошибка unknown log opt „max-size“ for journald log driver, откройте /etc/docker/daemon.json и замените "log-driver": "journald" на "log-driver": "json-file".
Если локальная сеть может пересекаться с сетью Docker, задайте предопределённую подсеть в файле /etc/docker/daemon.json (переменная default-address-pools):
{
"default-address-pools": [
{"base": "172.19.0.0/16", "size": 24}
]
}
Установите Docker:
sudo dnf update -y
sudo dnf install -y dnf-utils ca-certificates curl
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf makecache
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Настройте автозапуск Docker:
sudo systemctl start docker
sudo systemctl enable docker
Чтобы команда docker-compose была доступна напрямую (а не только docker compose):
sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/bin/docker-compose
На этом установка Docker Engine и Docker Compose завершена.
Примечание
В случае Enterprise-сборки подключитесь к registry: docker login <registry host>.
Registry URL и данные для аутентификации можно запросить у контактного лица со стороны Citeck.
Клонируйте репозиторий и запустите Citeck:
wget https://github.com/Citeck/citeck-community/archive/refs/heads/master.zip
unzip master.zip
cd citeck-community-master
docker-compose pull
docker-compose up -d
Примечание
Выполняйте команды из директории citeck-community-master.
Если локальная сеть может пересекаться с сетью Docker, задайте предопределённую подсеть в файле /etc/docker/daemon.json (переменная default-address-pools):
{
"default-address-pools": [
{"base": "172.19.0.0/16", "size": 24}
]
}
Переключение на BASIC аутентификацию вместо Keycloak
Если нужен простой способ настройки доступа в систему, минуя Keycloak, можно настроить BASIC Auth (не рекомендуется для production-сред).
Откройте файл ecos-proxy-app.env:
nano citeck-community-master/services/environments/ecos-proxy-app.envЗамените строку:
ENABLE_OIDC_FULL_ACCESS=true
на:
ENABLE_OIDC_FULL_ACCESS=false
В этом же файле добавьте:
BASIC_AUTH_ACCESS=admin:admin,fet:fet
Примечание
admin:admin,fet:fet— список пользователей, имеющих доступ в систему. Формат:{{пользователь_0}}:{{пароль_0}},{{пользователь_1}}:{{пароль_1}}. После изменения файла необходимо перезапустить контейнер ecos-proxy-app, чтобы изменения вступили в силу.Из директории citeck-community-master остановите проект:
docker-compose downЗапустите проект:
docker-compose up -d
Данные для входа в Citeck:
Username: admin
Password: admin
Сервисы Docker
По ссылке перечислены сервисы с точки зрения Docker и их настройки.
Примечание
Некоторые контейнеры запускаются один раз и далее находятся в статусе exited, например:
citeck-community-master-ecos-meetings-ecos-apps-1citeck-community-master-ecos-order-pass-ecos-apps-1citeck-community-master-ecos-common-data-list-ecos-apps-1citeck-community-master-ecos-assignments-ecos-apps-1
Возможные проблемы
Windows
Включение WSL 2
Docker Desktop использует функцию динамического распределения памяти в WSL 2, что значительно снижает потребление ресурсов. WSL 2 улучшает совместное использование файловой системы, время загрузки и предоставляет доступ к новым функциям Docker Desktop.
Включите компонент Платформа виртуальных машин в PowerShell:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Скачайте и установите пакет обновления ядра Linux для WSL 2 (64-разрядные компьютеры).
Задайте WSL 2 версией по умолчанию:
wsl --set-default-version 2
Проверьте версию WSL:
wsl --list --verbose
Подробная инструкция: docs.microsoft.com — установка WSL 2
При установке Docker в окне конфигурации установите галочку Use WSL 2 instead of Hyper-V (recommended).
Подробная инструкция: docs.docker.com — Docker Desktop WSL 2
Порт 8080 уже занят
Citeck UI использует порт 8080. Если он занят другой программой, появится ошибка:
«Error starting userland proxy: listen tcp 0.0.0.0:8080: bind: Only one usage of each socket address is normally permitted.»
Чтобы найти, какой процесс занимает порт, выполните:
netstat -ono
# или
netstat -ono | findstr 8080
Если команда не находит виновника, воспользуйтесь сторонней утилитой, например CurrPorts.
Порт зарезервирован Windows
Некоторые порты (например, 50432, используемый ecos-postgres) могут быть зарезервированы Windows. Проверьте зарезервированные диапазоны:
netsh int ipv4 show excludedportrange protocol=tcp
Если нужный порт попадает в зарезервированный диапазон, появится ошибка:
«Cannot start service ecos-postgres: driver failed programming external connectivity on endpoint»
Чтобы исправить это, выполните в командной строке с повышенными правами:
Отключите Hyper-V и перезагрузите систему:
dism.exe /Online /Disable-Feature:Microsoft-Hyper-V
Добавьте нужный порт в исключения:
netsh int ipv4 add excludedportrange protocol=tcp startport=50432 numberofports=1
Включите Hyper-V обратно и перезагрузите систему:
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
После перезагрузки порт попадёт в исключения и ошибка не возникнет.
Настройка дополнительных параметров WSL
MacOS
Запускаются не все контейнеры
Если при разворачивании приложения в Docker запускаются не все контейнеры:
Добавьте путь /opt в настройках Docker:
How to
Изменить адрес с localhost на пользовательский домен
С чистой БД
В файле citeck-community/services/environments/ecos-identity-app.env замените:
KEYCLOAK_FRONTEND_URL=http://localhost/ecos-idp/auth
на:
KEYCLOAK_FRONTEND_URL=http://mydomain.ru/ecos-idp/auth
В файле citeck-community/services/environments/ecos-proxy-app.env замените:
EIS_ID=citeck-community REDIRECT_LOGOUT_URI=http://localhost
на:
EIS_ID=mydomain.ru REDIRECT_LOGOUT_URI=http://mydomain.ru
В файле citeck-community/services/configs/ecos-identity-app/realm-export.json замените:
"redirectUris": [ "http://localhost*" ]
на:
"redirectUris": [ "http://mydomain.ru*" ]
Примечание
Шаги 3 и 4 имеют смысл только при разворачивании на чистых БД.
В файле citeck-community/services/configs/ecos-identity-app/realm-export.yaml замените:
"redirectUris": [ "http://localhost*" ]на:
"redirectUris": [ "http://mydomain.ru*" ]Добавьте запись в файл hosts:
127.0.0.1 mydomain.ru
Не с чистой БД
Войдите в панель администратора Keycloak.
Откройте реалм ecos-app.
Перейдите в раздел Clients.
Откройте ecos-proxy-app.
В поле Valid Redirect URIs замените
http://localhostнаhttp://mydomain.ru.Сохраните изменения.
Исключить адрес из авторизации Keycloak
Временно это можно сделать на уровне модификации ecos-proxy-app.
Зайдите в контейнер:
docker-compose exec ecos-proxy-app /bin/bash
Отредактируйте конфигурационный файл:
/etc/nginx/conf.d/default.conf
Перезагрузите nginx:
nginx -s reload
На постоянной основе это возможно только путём сборки собственной версии контейнера ecos-proxy-app или путём отправки Pull Request с возможностью передавать незащищаемые URL в качестве параметра.