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 <адрес репозитория> orbita
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 -it orbita_onpremise_backend php artisan tenant:init --name="Моя организация" --force

# Создать платформенного суперадмина (аудит, error-log, включение бизнес-процессов)
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

Создайте первого администратора организации (без --password команда спросит пароль интерактивно):

bash
docker exec -it orbita_onpremise_backend php artisan admin:create \
  --name="Admin" --email="you@company.com"

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

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

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

Сервисы Docker Compose ​

СервисОписаниеПорт
backendLaravel API (Apache)внутренний
frontendVue SPA (Nginx)внутренний (за Traefik)
databasePostgreSQL 16внутренний
redisValkey 9.1внутренний
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)

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

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

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

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

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