R
Раскрой Панелей
🌐 Тонкий / Веб-клиент 🖥️ Толстый — UI ⚡ Толстый — UI + API 🤖 Без UI 🏭 On-Premise

🏭 On-Premise Продвинутая

⏱ 4–8 часов 🖥️ Linux-сервер + Docker 🔑 Лицензионный ключ On-Premise 📡 Интернет: раз в 30 дней
Сервис разворачивается на вашем сервере. Работает без интернета — расчёт алгоритма происходит локально. Один раз в 30 дней требуется проверка лицензии. Все типы интеграции (тонкий, толстый, без UI) работают без изменений — просто меняется BASE_URL.
Когда нужен On-Premise
  • Закрытая сеть, нет выхода в интернет
  • Требования безопасности / ФСБ / ISO
  • Данные не должны покидать периметр
  • Гарантия работы без внешних зависимостей
  • Высокая нагрузка (сотни расчётов в день)
Требования
  • Linux x86_64 (Ubuntu 20.04+ / Debian 11+)
  • Docker + Docker Compose
  • 4 ГБ RAM, 2 CPU, 20 ГБ диск
  • PostgreSQL (встроен в docker-compose)
  • Лицензионный ключ On-Premise (отдельный тариф)

Архитектура

Сервер предприятия (локальная сеть) ──────────────────────────────────────────────────── raskroy-server (Docker, порт 8001) ├── orchestrator.pyd ← алгоритм (Cython, бинарник) ├── math_core.pyd ← математика (защищённый код) ├── FastAPI + PostgreSQL └── http://localhost:8001 ← куда смотрит 1С ↑ 1С:Предприятие (тот же или другой сервер в ЛВС) └── BASE_URL = "http://raskroy-server:8001"Интернет: license.raskroy.app (раз в 30 дней) Офлайн-грейс: 30 дней без интернета

Установка

1
Получить лицензионный ключ On-Premise
Напишите нам — выдадим ключ вида LIC-XXXX-XXXX-XXXX. Ключ привязан к hostname сервера.
2
Установить Docker
bash — установка Docker (Ubuntu)
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
3
Создать директорию и файлы конфигурации
docker-compose.yml
version: '3.8'

services:
  db:
    image: postgres:16-alpine
    restart: always
    environment:
      POSTGRES_DB:       raskroy
      POSTGRES_USER:     raskroy
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    volumes:
      - pgdata:/var/lib/postgresql/data

  raskroy:
    image: ghcr.io/raskroy/api-onpremise:latest
    restart: always
    ports:
      - "8001:8080"
    environment:
      DATABASE_URL:     postgresql+asyncpg://raskroy:${DB_PASSWORD}@db:5432/raskroy
      LICENSE_KEY:      ${LICENSE_KEY}
      ADMIN_PASSWORD:   ${ADMIN_PASSWORD}
      LICENSE_SERVER:   https://license.raskroy.app
    depends_on:
      - db
    volumes:
      - ./data:/app/data

volumes:
  pgdata:
.env (рядом с docker-compose.yml)
DB_PASSWORD=замените_на_сложный_пароль
LICENSE_KEY=LIC-XXXX-XXXX-XXXX
ADMIN_PASSWORD=замените_на_пароль_админа
4
Запустить и проверить
bash
# Запуск
docker compose up -d

# Проверка статуса
docker compose ps
docker compose logs raskroy | tail -20

# Health check
curl http://localhost:8001/health
# Должен ответить: {"status": "ok"}

# Открыть веб-интерфейс
# http://ИП_СЕРВЕРА:8001/
💡При первом запуске сервис автоматически создаёт таблицы БД и проверяет лицензию. Нужен интернет только при первом старте и раз в 30 дней.
5
Создать API-ключ для 1С
bash — создание API-ключа
# Получить admin-токен
curl -s -X POST http://localhost:8001/api/v1/admin/auth \
  -H "Content-Type: application/json" \
  -d '{"password": "ВАШ_ADMIN_PASSWORD"}' | python3 -m json.tool

# Создать API-ключ (используйте токен из предыдущего шага)
curl -s -X POST http://localhost:8001/api/v1/admin/keys \
  -H "Authorization: Bearer ТОКЕН" \
  -H "Content-Type: application/json" \
  -d '{"client_name": "1С Интеграция", "tier": "enterprise"}' | python3 -m json.tool

# Сохраните api_key из ответа — покажется один раз!
6
Настроить BASE_URL в 1С
В ObjectScript-модуле замените адрес на локальный. Если 1С на том же сервере — localhost:8001. Если на другом сервере в ЛВС — имя_сервера:8001.
Изменение в модуле 1С
// Было:
BASE_URL = "https://raskroy.app";

// Стало (On-Premise):
BASE_URL = "http://raskroy-server:8001";   // ← hostname Docker-сервера
// или
BASE_URL = "http://192.168.1.100:8001";  // ← IP в локальной сети
Если используется HTTP (не HTTPS), в толстом клиенте в HTTPСоединение не добавляйте ЗащищённоеСоединениеOpenSSL. Для HTTPS в ЛВС настройте nginx с self-signed сертификатом.

Обновление

bash — обновление до новой версии
docker compose pull
docker compose up -d
docker compose logs raskroy | grep "БД инициализирована"
# Новые таблицы создаются автоматически при старте
Данные в PostgreSQL сохраняются между обновлениями (volume pgdata). Делайте резервную копию перед мажорными обновлениями.

Выберите тип интеграции с 1С

On-Premise меняет только адрес сервера. Код ObjectScript — тот же. Выберите нужный тип:

Тестирование

Если через 30 дней нет интернета — сервис продолжает работать ещё 30 дней (офлайн-грейс). По истечении — свяжитесь с нами для продления оффлайн-периода.