Быстрый старт: 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).
Подготовка инфраструктуры
# Пример: PostgreSQLsudo -u postgres createuser portalsudo -u postgres createdb -O portal portalsudo -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Установщик:
- Собирает
Portal.Api,Portal.Worker,Portal.DbInit(linux-x64, self-contained) - Генерирует
/etc/portal/portal.env - Копирует файлы в
/opt/portal - Устанавливает systemd units и nginx
- Запускает
Portal.DbInit(миграции + seed) - Стартует
portal-apiиportal-worker
Установка из bundle
tar xzf portal-1.0.0-native-linux-amd64.tar.gzcd portal-1.0.0-native-linux-amd64cp 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/healthcurl http://127.0.0.1/api/v1/system/versionsystemctl status portal-api portal-workerjournalctl -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/portal | nginx vhost |
Collabora
Для онлайн-редактора Word/Excel:
- Разверните Collabora на отдельном хосте (часто в Docker)
- В
portal.config.yaml:
collabora: enabled: true publicUrl: https://collabora.company.ru internalUrl: http://collabora-internal:9980WOPI_HOST_URLдолжен быть доступен из Collabora (публичный URL API или внутренний)
Устранение неполадок
API не стартует — проверьте подключение к PostgreSQL:
source /etc/portal/portal.envpsql -h "$POSTGRES_HOST" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c 'SELECT 1'journalctl -u portal-api -n 100502 от nginx — API не слушает порт 3001:
ss -tlnp | grep 3001systemctl 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'