Skip to content

Self-hosted (Docker)

Коммерческая on-premise поставка

Клиенты разворачиваются из готового дистрибутива (архив с предсобранными образами + install.sh, интернет-доступ к реестрам не нужен) — инструкцию и ссылку на скачивание выдаёт поставщик. Флоу ниже описывает сборку из исходников и требует доступа к репозиторию.

Требования

  • Docker 24+
  • Docker Compose 2.20+
  • Минимум 4 GB RAM, 2 vCPU
  • 20 GB дискового пространства

Подробнее — в разделе Требования к серверу.

Быстрый старт

1. Клонировать репозиторий

bash
git clone https://github.com/your-org/orbita.git
cd orbita

2. Создать файл окружения

bash
cp onpremise.env.example onpremise.env

Отредактируйте onpremise.env — обязательные переменные:

env
APP_KEY=base64:ваш_ключ_32_символа
APP_MODE=onpremise
APP_DOMAIN=app.orbita.example

DB_PASSWORD=надёжный_пароль

Генерация APP_KEY:

bash
docker run --rm php:8.4-cli php -r "echo 'base64:' . base64_encode(random_bytes(32)) . PHP_EOL;"

Email для Let's Encrypt указывается отдельно, в traefik/onpremise/traefik.yml (certificatesResolvers.letsencrypt.acme.email) — Traefik не читает переменные окружения из onpremise.env.

3. Запустить

bash
docker compose --env-file onpremise.env -f docker-compose-onpremise.yml build
docker compose --env-file onpremise.env -f docker-compose-onpremise.yml up -d

4. Первоначальная настройка

bash
# Применить миграции
docker exec orbita_onpremise_backend php artisan migrate --force

# Засеять роли и переводы (НЕ migrate --seed — это создаст тестового admin@test.com)
docker exec orbita_onpremise_backend php artisan db:seed --class=RoleSeeder --force
docker exec orbita_onpremise_backend php artisan db:seed --class=FrontendTranslationSeeder --force

# Создать единственный тенант установки (идемпотентно)
docker exec -it orbita_onpremise_backend php artisan tenant:init --name="Моя организация" --force

# Создать платформенного суперадмина (управление тенантами/аудитом, опционально)
docker exec -it orbita_onpremise_backend php artisan superadmin:create \
  --name="Platform Admin" --email="superadmin@example.com" --password="..."

# Индексировать данные для поиска
docker exec orbita_onpremise_backend php artisan search:rebuild

Первого администратора тенанта отдельной командой создать нельзя — зарегистрируйтесь через /signup, затем выдайте роль:

bash
docker exec -it orbita_onpremise_backend php artisan tinker
>>> \App\Models\User::where('email', 'you@company.com')->first()->assignRole('admin');

Подробное описание — в корневом README.

5. Открыть в браузере

Перейдите по адресу https://<APP_DOMAIN>.

Сервисы Docker Compose

СервисОписаниеПорт
backendLaravel API (Apache)внутренний
frontendVue SPA (Nginx)внутренний (за Traefik)
databasePostgreSQL 16внутренний
redisRedis 7внутренний
meilisearchПолнотекстовый поисквнутренний
queueLaravel queue worker
schedulerLaravel scheduler
reverbWebSocket-сервервнутренний
seaweedfsS3-совместимое хранилище файловвнутренний
traefikReverse proxy + TLS (Let's Encrypt, HTTP-01)80, 443

Обновление

bash
git pull
docker compose --env-file onpremise.env -f docker-compose-onpremise.yml build
docker compose --env-file onpremise.env -f docker-compose-onpremise.yml up -d
docker exec orbita_onpremise_backend php artisan migrate --force
docker exec orbita_onpremise_backend php artisan optimize:clear
docker exec orbita_onpremise_backend php artisan optimize
docker exec orbita_onpremise_backend php artisan queue:restart

Резервное копирование

База данных

bash
docker exec orbita_onpremise_db pg_dump -U orbita orbita > backup_$(date +%Y%m%d).sql

Файлы

bash
docker cp orbita_onpremise_s3:/data ./backup_files_$(date +%Y%m%d)

Бэкап конкретного тенанта (через artisan)

bash
docker exec orbita_onpremise_backend php artisan tenant:backup --tenant=<ID>

Просмотр логов

bash
# Логи приложения
docker logs orbita_onpremise_backend -f

# Логи очередей
docker logs orbita_onpremise_queue -f

# Логи базы данных
docker logs orbita_onpremise_db -f

Режимы работы

ПеременнаяЗначениеОписание
APP_MODEonpremiseОдин тенант, одна компания
APP_MODEsaasМультитенантный режим (отдельная инфраструктура, не описана здесь)

Документация Orbita ITSM