Ринго — система управления устройствами Apple. Ниже вы найдёте всю необходимую информацию для подготовки, установки и последующего обновления системы в зависимости от вашего сценария развертывания.
Перед установкой Ринго необходимо учесть требования к аппаратному обеспечению сервера или виртуальной машины.
Для серверной части необходим сервер, либо виртуальная машина со следующими характеристиками:
| Параметр | Требование |
|---|---|
| Операционная система | Любая x64 ОС с поддержкой актуальной версии Docker Engine. Рекомендуемые: - Debian 12.2 - Ubuntu 22.04 LTS - Astra Linux CE 2.12.46 - Альт 10.2 - РЕД ОС 8 - ROSA Fresh Server 13.0 |
| Оперативная память | 8 GB RAM |
| Диск | 100 GB SSD |
| Процессор | 2 ядра |
| Тип устройства | Поддерживаемые версии ОС |
|---|---|
| macOS | - macOS 12 Monterey - macOS 13 Ventura - macOS 14 Sonoma - macOS 15 Sequoia - macOS 26 Tahoe |
| iOS | - iOS 17 - iOS 18 - iOS 26 |
| iPadOS | - iPadOS 17 - iPadOS 18 - iPadOS 26 |
Агент может работать на более ранних версиях macOS, iOS и iPadOS, но корректность работы не гарантируется.
Для корректной установки Ринго на сервере, предназначенном для развертывания системы, должны быть открыты и свободны следующие сетевые порты.
| Направление | Протокол / Порт | Назначение |
|---|---|---|
| Входящие | TCP 443 | Основной веб-интерфейс системы (HTTPS) |
| Входящие | TCP 80 | Выпуск и автоматическое продление сертификатов Let's Encrypt |
| Исходящие | TCP 443 | Связь с серверами Apple Push Notification Service (APNs 17.0.0.0/8) |
Основные параметры конфигурации задаются в файле .env, который используется при создании контейнеров. Эти переменные автоматически подставляются в docker-compose.yml и передаются как окружение внутрь контейнеров.
Файл .env формируется при установке — автоматически (в случае использования скриптов) или вручную (при ручной установке). Он должен храниться в директории установки (/etc/ringo/ по умолчанию) и содержать актуальные значения:
| Переменная | Описание |
|---|---|
JWT_SECRET_KEY |
Секрет для шифрования JWT (JSON Web Token) |
JWT_EXPIRATION_TIME |
Время жизни JWT токена (например: 24h, 7d) |
DB_PASSWORD |
Пароль для подключения к базе данных PostgreSQL |
MICROMDM_SECRET |
Секретный ключ для авторизации MicroMDM |
DOCUMENTATION_ENABLED |
Включение Swagger-документации (true / false) |
DOCUMENTATION_LOGIN |
Имя пользователя для доступа к Swagger |
DOCUMENTATION_PASSWORD |
Пароль для доступа к Swagger |
STATIC_LOGIN |
Имя пользователя для Basic Auth (для интерфейса загрузки и т.п.) |
STATIC_PASSWORD |
Пароль для Basic Auth |
PUBLIC_URL |
Публичный URL системы (должен начинаться с https://) |
AGENT_SECRET |
Секретный ключ агента (используется при авторизации клиента) |
HOST_DOMAIN |
Доменное имя для выдачи TLS-сертификата (без http:// или https://) |
EMAIL |
Email для Let's Encrypt (используется при выпуске сертификата) |
ADMIN_LOGIN |
Логин администратора системы (по умолчанию: support) |
ADMIN_PASSWORD |
Пароль администратора системы (обязателен) |
Если вы изменили файл
.envпосле установки, необходимо пересоздать контейнеры, чтобы изменения вступили в силу. Простого перезапуска недостаточно — используйтеdocker compose up -d --force-recreate.
После установки Ринго будут запущены следующие Docker-контейнеры:
| Образ | Порты | Название |
|---|---|---|
cr.yandex/crpsam2fr3938ne18jd0/ringo:latest |
127.0.0.1:5000 → 5000 | roll-deploy-backend |
postgres:14-alpine |
127.0.0.1:5432 → 5432 | roll-deploy-db |
ghcr.io/micromdm/micromdm:v1.11.0 |
80/tcp, 443/tcp | roll-deploy-micromdm |
jrcs/letsencrypt-nginx-proxy-companion:latest |
— | ringo-letsencrypt-1 |
jwilder/nginx-proxy |
80 → 80, 443 → 443 | ringo-nginx-proxy-1 |
Контейнеры Let’s Encrypt и Nginx Proxy являются опциональными — их наличие зависит от выбранного сценария установки.
Дополнительно: Более подробная информация о составе и конфигурации контейнеров находится в файле docker-compose.yml, который по умолчанию размещается по пути: /etc/ringo.
Список основных эндпоинтов сервера Ринго:
| Путь | Назначение |
|---|---|
/ |
Основной интерфейс |
/socket.io/ |
WebSocket-соединение агента |
/agent/bundle |
Скачивание файла агента |
/agent/manifest |
Manifest-файл агента |
/mdm |
Выполнение команд MDM |
/mdm/connect |
Связь устройства с сервером |
/mdm/checkin |
Регистрация устройства (check-in) |
/mdm/enroll |
Профиль регистрации (enroll) |
/mdm/enroll/profile |
OTA-профиль регистрации |
/enroll |
HTML-страница, вызывающая загрузку профиля /mdm/enroll |
/api/v1/auth |
Авторизация на странице регистрации |
/api/v1/self-service |
Доступ к API Ринго из приложения Self Service |
/scep |
Протокол SCEP для получения сертификатов |
/scep-proxy |
Использование Ринго как прокси для внешнего SCEP-сервера |
Ручная установка подходит для системных администраторов, которым важно полное понимание и контроль над каждым этапом развёртывания. Вы самостоятельно подготавливаете окружение, конфигурационные файлы и запускаете контейнеры с помощью docker-compose.
Доступно три основных сценария установки:
При необходимости вы можете использовать режим rootless для docker. По умолчанию в этом режиме недоступны системные порты (меньше 1024), поэтому при некоторых сценариях развертывания может потребоваться разрешить их использование. Для этого выполните команду:
sudo setcap 'cap_net_bind_service=+ep' $(which rootlesskit)
Ринго поддерживает использование внешней базы данных. Для этого на этапе установки необходимо выполнить следующие действия:
В файле docker-compose.yml, в секции контейнера backend, укажите следующие переменные окружения:
| Переменная | Назначение |
|---|---|
DB_HOST |
Доменное имя внешней базы данных |
DB_PORT |
Порт для подключения |
DB_USERNAME |
Имя пользователя |
DB_PASSWORD |
Пароль пользователя |
DB_DATABASE |
Имя базы данных |
Удалите из файла docker-compose.yml раздел deploydb.
Удалите из секции volumes в docker-compose.yml строку vol-deploy-postgres.
Если пользователь базы данных не является Superuser, добавьте переменную:
MIKRO_ORM_MIGRATIONS_DISABLE_FOREIGN_KEYS: false
Если вы не уверены, какую инструкцию выбрать, или столкнулись с трудностями, пожалуйста, свяжитесь с нашей поддержкой: support@ringomdm.ru.
Информация по производительности системы в соответствии с указанными в данной статье системными требованиями:
Режим эксплуатации системы: круглосуточно.