Перейти к содержимому

Быстрый старт: Native Linux

Быстрый старт: Native Linux

Установка Portal без Docker: systemd + nginx, внешние PostgreSQL, Valkey и S3.

Требования

  • Linux amd64 (Ubuntu 22.04+, Debian 12+, RHEL 9+)
  • PostgreSQL 16 — установлен и доступен
  • Valkey или Redis 8 — для кэша (CACHE_ADAPTER=redis)
  • S3-совместимое хранилище (MinIO, SeaweedFS, Ceph) — для файлов библиотек
  • nginx — reverse proxy и статика
  • .NET не требуется — бинарники self-contained

Опционально: Collabora Online на отдельном сервере (или collabora.enabled: false).

Подготовка инфраструктуры

Окно терминала
# Пример: PostgreSQL
sudo -u postgres createuser portal
sudo -u postgres createdb -O portal portal
sudo -u postgres psql -c "ALTER USER portal PASSWORD 'your-password';"
# Redis/Valkey — по умолчанию localhost:6379
# MinIO/S3 — localhost:9000, bucket portal-files

Установка из исходников

Окно терминала
chmod +x deploy/portal-cli/portal-cli deploy/native/linux/build.sh
# 1. Настройте конфиг (хосты БД, Redis, S3)
cp deploy/config/portal.config.native.example.yaml deploy/native/linux/portal.config.yaml
# отредактируйте database.host, cache.host, storage.endpoint
# 2. Сборка + установка (требует sudo)
./deploy/portal-cli/portal-cli install --mode native --build

Установщик:

  1. Собирает Portal.Api, Portal.Worker, Portal.DbInit (linux-x64, self-contained)
  2. Генерирует /etc/portal/portal.env
  3. Копирует файлы в /opt/portal
  4. Устанавливает systemd units и nginx
  5. Запускает Portal.DbInit (миграции + seed)
  6. Стартует portal-api и portal-worker

Установка из bundle

Окно терминала
tar xzf portal-1.0.0-native-linux-amd64.tar.gz
cd portal-1.0.0-native-linux-amd64
cp config/portal.config.native.example.yaml portal.config.yaml
# отредактируйте конфиг
./portal-cli/portal-cli install --mode native

Установка .deb

Окно терминала
# Сборка пакета (на машине разработчика)
./deploy/native/linux/build.sh
./deploy/native/linux/package.sh --deb
# У клиента
sudo dpkg -i portal_1.0.0_amd64.deb
# Создайте /etc/portal/portal.env (см. portal-cli) и перезапустите
sudo systemctl restart portal-api portal-worker

Проверка

Окно терминала
./deploy/portal-cli/portal-cli status --mode native
curl http://127.0.0.1/health
curl http://127.0.0.1/api/v1/system/version
systemctl status portal-api portal-worker
journalctl -u portal-api -f

Обновление

Окно терминала
./deploy/native/linux/build.sh # новая версия
./deploy/portal-cli/portal-cli upgrade --mode native

Структура на сервере

ПутьНазначение
/opt/portal/bin/Бинарники Api, Worker, DbInit
/opt/portal/frontend/Статика SPA
/opt/portal/migrations/SQL-миграции
/etc/portal/portal.envКонфигурация (секреты)
/var/lib/portal/Данные лицензии (trial)
/etc/nginx/sites-available/portalnginx vhost

Collabora

Для онлайн-редактора Word/Excel:

  1. Разверните Collabora на отдельном хосте (часто в Docker)
  2. В portal.config.yaml:
collabora:
enabled: true
publicUrl: https://collabora.company.ru
internalUrl: http://collabora-internal:9980
  1. WOPI_HOST_URL должен быть доступен из Collabora (публичный URL API или внутренний)

Устранение неполадок

API не стартует — проверьте подключение к PostgreSQL:

Окно терминала
source /etc/portal/portal.env
psql -h "$POSTGRES_HOST" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c 'SELECT 1'
journalctl -u portal-api -n 100

502 от nginx — API не слушает порт 3001:

Окно терминала
ss -tlnp | grep 3001
systemctl restart portal-api

Миграции вручную:

Окно терминала
sudo -u portal bash -c 'set -a; source /etc/portal/portal.env; set +a; \
MIGRATIONS_PATH=/opt/portal/migrations /opt/portal/bin/Portal.DbInit'