# Установка CSP3 на Альт Сервер 11.1

## Рекомендации по установке ОС

1. Выбрать редакцию "Альт Сервер"
2. Автоматическая разметка диска ( 3 раздела: efi, swap, ext4 корневой )
3. Дополнительные приложения не требуются

## Включение SSH сервера

Не обязательно, но упростит установку на удаленный сервер.
После установки можете выключить сервер через: ```systemctl disable sshd```

`mcedit /etc/openssh/sshd_config` - Откройте редактор
В редакторе надо найти и поменять строку с "PermitRootLogin", на `PermitRootLogin yes`, и UseDNS - `UseDNS no`

`systemctl enable --now sshd` - включите сервер

## Распаковка дистрибутива
1. Подключитесь по SSH из под **root**. 
2. Загрузите дистрибутив CSP (`distrib-XXX.tar.zx`, вместо XXX - дата) в директорию `/root`
3. Распаковка:
```bash
# Распаковка дистрибутива
mkdir -p /root/distrib
tar -xvf /root/distrib-XXX.tar.xz -C /root/distrib
```
## Установка через скрипт
```bash
bash /root/distrib/install-alt.sh
```
В процессе скрипт будет запрашивать пароль от postgres

## Установка лицензии
- Скопируйте поставляемый ```license.json``` в директорию ```/opt/csp3/data```
- Перезапустите сервер: ```systemctl restart csp3```


## Приложение 1: Установка вручную (без скриптов)
Метод, если нужно контроллировать процесс установки

#### Подключение официальных репозиториев

```bash
mcedit /etc/apt/sources.list.d/alt.list
```

Проверьте, что присутвуют строки и они раскомментированы (уберите в начале строк #)

```
rpm [p11] http://ftp.altlinux.org/pub/distributions/ALTLinux p11/branch/x86_64 classic
rpm [p11] http://ftp.altlinux.org/pub/distributions/ALTLinux p11/branch/x86_64-i586 classic
rpm [p11] http://ftp.altlinux.org/pub/distributions/ALTLinux p11/branch/noarch classic
```

Запустите `apt-get update`

#### Установка локальной PostgresDB

CSP поддерживает любую СУБД, совместимую с PostgresSQL 15

В процессе инициализации нужно будет задать пароль, он потребуется для настройки CSP сервера

```bash
apt-get install postgresql18-server postgresql18-contrib -y
/etc/init.d/postgresql initdb # Инициализация БД
systemctl enable --now postgresql.service # Включение и запуск
```

#### Загрузка первоначальной базы

Загрузите первоначальный дамп `postgres.sql.xz` из дистрибутива на сервер (например в директорию `/srv`)

```bash
cd /srv
createdb -U postgres csp3 # создание базы
xz -dc ./postgres.sql.xz | psql -U postgres csp3 # загрузка
psql -d csp3 -U postgres -c "SELECT * FROM model_documents.doc_kind LIMIT 5;" # Проверка
```

#### Установка зависимостей CSP сервера

Загрузите дистрибутив CSP (`distrib.tar.zx`) в директорию `/srv`

```bash
cd /srv
# Распаковка дистрибутива
mkdir -p /srv/distrib
tar -xvf ./distrib.tar.xz -C /srv/distrib
cd /srv/distrib
# Работа CSP сервера требует nats-server
apt-get nats-server -y
cp ./nats/nats.conf /etc/nats-server.conf
mkdir -p /var/run/nats
chown -R nats:nats /var/run/nats /etc/nats-server.conf
systemctl enable --now nats-server.service
# Установка node.js 18+ версии (npm не обязателен)
apt-get install nodejs
```

#### Установка приложения

```bash
cp ./app /srv/csp3
cp ./systemd/csp3.service /etc/systemd/system/csp3.service

## Настройка global-config.json

`mcedit /srv/csp3/global-config.json`

Пример конфигурации:

```json
{}
```
Проверьте соединение:
Подключитесь через браузер(http) к порту CSP сервера (порт, который указали в global-config.json)

#### Установка Nginx

Опционально, установите nginx (или любой другой reverse proxy), это позволит настроить https