Установка системы без SSL (http)
1. Для разворачивания контейнеров создаем директории для баз данных и обратного прокси
mkdir resources
mkdir traefik
2. Переходим в директорию баз данных и создаем директорию для postgres
cd resources/
mkdir postgres
3. Переходим в директорию postgres, копируем в нее файл docker-compose.yml из предоставленного дистрибутива.
Создаем сеть для контейнеров базами данных и запускаем контейнер с postgres
cd postgres/
docker network create resources
docker-compose up -d
4. Создаем базу данных postgres,postgres
C именем fastboard_back,fastboard_back. соCоздать можно разными способами, например подключиться к контейнеру при помощи PgAdmin или psql-16
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
apt update
apt install postgresql-client-16
psql -h 127.0.0.1 -U postgres
\l
CREATE DATABASE fastboard_back;
\l
\q
5. Переходим на директорию выше, т.е. в директорию resources
cd ..
mkdir clickhouse
cd clickhouse/
6. Копируем в директорию clickhouse файл docker-compose.yml и директорию с конфигами etc из предоставленного дистрибутива Clickhouse.
Меняем параметры выделенной памяти для контейнера в файле docker-compose.yml (по умолчанию выставлено от 2 до 8 Гб ОЗУ) и запускаем контейнер с clickhouse
docker-compose up -d
7. Переходим на директорию выше, т.е. в директорию resources
cd ..
8. Создаем директории для Redis и переходим в нее
mkdir redis
cd redis/
9. Создаем директории для баз и логов redis
mkdir -p data/{bases,log}
10. Копируем в директорию redis файл docker-compose.yml и директорию с конфигами etc из предоставленного дистрибутива Redis. Запускаем контейнер с Redis
docker-compose up -d
11. Переходим в директорию traefik и копируем в нее файл docker-compose.yml из из предоставленного дистрибутива Traefik
cd ../../traefik
apt install apache2-utils
ВАЖНО! Мы должны экранировать каждый символ “$” в нашем зашифрованном пароле (заменить $ на $$), так как мы используем пароль напрямую в docker-compose.yml
echo $(htpasswd -nb admin Passw0rd) | sed -e s/\\$/\\$\\$/g
admin:$$2y$$05$$iSGcI0SpukDoOZolGkfghIFe31e47F5vewcjlhzhgf0EHo45H.dFyKW
"traefik.http.middlewares.auth.basicauth.users=<USER-PASSWORD-OUTPUT>"
docker network create traefik
docker-compose up -d
ВАЖНО! Для разворачивания проекта необходимо заранее иметь две DNS-записи на IP сервера, где разворачивается проект. Записи нужны для получения сертификатов от Let's Encrypt и шифрования трафика Они включаются в сборку программы для развертывания на конкретном сервере.
Например:
front.example.com
back.example.com
12. Создаем директорию для FastBoard, переходим в нее, копируем docker-compose.yml и образы docker в рабочую директорию проекта
cd ..
mkdir fastboard
cd fastboard
docker load -i fastboard-back.tar
docker load -i fastboard-front.tar
docker-compose up -d
docker-compose logs -f
docker-compose up -d
docker-compose ps
docker logs -f container_name
13. Превый вход в систему и пользователи
После успешного развертывания нужно войти в API системы под техническим пользователем. Он имеет права администратора и остается в системе. Переходим по адресу: ваш_бэкенд/docs/swagger, находим блок аутентификации и метод get_token. Жмем кнопку TRY OUT, вводим учетные данные:
Логин: admin
Пароль: дата развертывания релиза в формате ГГГГ-MM-ДД
Далее нажимаем кнопку EXECUTE
Далее активируем лицензионный ключ
В блоке «Лицензия» находим метод Acivate, жмем кнопку TRY OUT, выбираем файл лицензии и нажимаем кнопку EXECUTE
Система готова к работе
Теперь можно войти спомощью интерфейса и создать пользователей через панель администратора. К сожалению интерфейс выдачи лицензий еще находится в разработке. Поэтому в панели можно создать пользователей, но выдать им лицнзии придется так же через API
- В соответствующем блоке находим метод users и получаем список пользователей
- Далее копируем поля id пользователя и id его роли
- В блоке лицензий находим метод add-user и вставляем его данные в соответствующие поля. нажимаем кнопку EXECUTE. И этот пользователь может начинать работу в системе