# Установка CSP сервера через Docker (Debian 12)

Дистрибутив Debian доступен для загрузки на сайте: [https://www.debian.org/devel/debian-installer/](https://www.debian.org/devel/debian-installer/)

Настройка осуществляется через консоль: локально или по ssh, под пользователем **root**

##### Установка Docker и 7z из репозитория Debian

`apt install docker.io docker-compose p7zip-full`

##### Ограничение размера лога в Docker
В файле /etc/docker/daemon.json, установить дополнительные параметры:
```
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "50m"
  }
}
```
Затем, перезапустите докер: ```systemctl restart docker```

##### Загрузка образов docker в систему

1. Скопировать директорию dockers из установочного комплекта в удобное место на целевой ОС
2. Выполнить в этой директории `sh ./load-dockers.sh`

##### Установка Postgres 15 с расширением HTTP  


1. Скопировать директорию postgres-http-15 из установочного комплекта в удобное место, напр. /dockers/postgres-http-15
2. Перейти в созданную директоию `cd /dockers/postgres-http-15`
3. Поменять в файле docker-compose.yml пароль (POSTGRES\_PASSWORD)
4. Выполнить `docker compose up -d`
5. Подключится к базе и создать новую пустую БД. Например:  
    `docker exec -it postgres-15-http createdb -h localhost -U postgres -O postgres csp`

##### Установка CSP Сервера(Carabi Solution Platform)

1. Скачать и распаковать в любое удобное место (напр /dockers/instantclient\_21\_10) Oracle Instantclient 21.10 (Basic Package (ZIP))  
https://www.oracle.com/cis/database/technologies/instant-client/linux-x86-64-downloads.html  
2. Скопировать директорию csp в любое удобное место, напр. /dockers/csp  
3. Отредактировать в docker-compose.yaml
```
networks:
  csp-compose:
    name: csp-compose
    driver: bridge
    ipam:
      config:
        - subnet: 192.168.50.0/24
          gateway: 192.168.50.254   
  postgres:
    external: true

services:
  nats:
    restart: unless-stopped
    container_name: csp-nats
    hostname: csp-nats
    image: dockers.carabisol.ru/nats:2.6-alpine3.14
    command: "-c /etc/nats/nats.conf"
    volumes:
       - ./nats/:/etc/nats
    networks:
      csp-compose:
        ipv4_address: 192.168.50.2
      
  supervisor:
    restart: unless-stopped
    container_name: csp-supervisor
    hostname: csp-supervisor
    image: dockers.carabisol.ru/csp:latest
    volumes:
      - "./global-config.json:/app/global-config.json"
      - "./data:/app/data"
      - "./packages:/app/packages"
      - "[путь до Instantclient]:/usr/lib/instantclient"
    ports:
      - "[порт для CSP]:80"
    environment:
      - TZ=Europe/Moscow
    networks:
      csp-compose:
        ipv4_address: 192.168.50.3
      postgres:
```

4. Отредактировать в `global-config.json`  
 common.postgresUri: "\[Путь до postgres\]"  
 напр: "postgresql://postgres:mypassword@postgres:5432/csp"  
5. Задайте пароль администратора для входа  
 Auth.admin.password: "\[Пароль администратора CSP\]"  
6. Выполнить docker compose up -d  
7. Проверьте, должна открываться админ панель в `http://127.0.0.1:[порт для CSP]/admin/`  
8. Заполните экран авторизации  
 Сервер: Supervisor  
 Раб. пространство: Main  
 Логин: admin  
 Пароль: \[Пароль администратора CSP\]  
 Нажмите "Вход"

##### Настройка автоматического обновления пакетов CSP

1. В Админ Панели зайдите в раздел **Registry**
2. Введите в main.name - полученое имя сервера
3. введите PkgUpdater.token - токн для обновлений
4. Откройте ссылку `http://[CSP]/admin/#/services/PkgUpdater/request/downloadAll`
5. Нажмите "Отправить"
6. Дождитесь окончания выполнения (Будет написано "Выполнено (пустой ответ)")

##### Ручное развертывание пакетов CSP

1. Скопируйте из packages архивы в /dockers/csp/data/pkg-archives/ (Директория создастся после запуска CSP)  
2. В Админ Панели зайдите в раздел **Packages**
3. Нажмите в левом нижнем углу кнопку **"Установить пакеты"**

##### Доп настройки

1. Скопируйте содержимое data в /dockers/csp/data (Директория создастся после запуска CSP)  
2. Отредактируйте в файле /dockers/csp/data/csp/storages/BLOB.json "csp-domain.ru" на домен(или IP), через который вы хотите обращаться к системе  
3. Откройте в браузере (после авторизации)  
- http://127.0.0.1:\[порт для CSP\]/admin/#/services/OraQueriesData/request/load  
- Нажмите "Отправить"  
- Дождитель окончания выполнения (Будет написано "Выполнено (пустой ответ)")

##### Настройка подключения к Oracle

1. Зайдите в админке в раздел "Registry"  
2. Заполните oracle: 
5. Заполните oraPool: 
6. Нажмите "Сохранить"  
7. Перейдите в /dockers/csp/  
8. Выполните "docker compose restart"