Установка Ralph на Docker в Ubuntu 20.04
О чём эта инструкция
Краткое руководство по развёртыванию Ralph (Asset Management, DCIM, CMDB) в контейнерах Docker на Ubuntu 20.04. Подходит для тестового и production-развёртывания с базовой конфигурацией контейнеров.
Что такое Ralph
Ralph — свободная система управления активами и CMDB, основанная на Django и Python 3. Поддерживает учёт закупок, жизненного цикла активов и калькуляцию затрат. В одном предложении: web-интерфейс для централизованного управления IT-активами.
Требования
- Сервер с Ubuntu 20.04 (x86_64). Минимум 2 CPU и 4 ГБ RAM для теста; для боевого окружения — планируйте больше.
- Доступ root или пользователь с sudo.
- Связь с внешним Интернетом для загрузки образов Docker.
Быстрая проверка перед началом
Выполните обновление пакетов и перезагрузите систему, чтобы избежать несовместимостей ядра и зависимостей:
apt-get update -y
apt-get upgrade -yПерезагрузите сервер при необходимости.
Установка Docker и Docker Compose
В официальном репозитории Ubuntu 20.04 доступны пакеты docker.io и docker-compose, установите их одной командой:
apt-get install docker.io docker-compose -yЗапустите и включите автозапуск Docker:
systemctl start docker
systemctl enable dockerПроверьте статус сервиса:
systemctl status dockerПример ожидаемого вывода:
? docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2020-04-29 08:06:11 UTC; 6s ago
TriggeredBy: ? docker.socket
Docs: https://docs.docker.com
Main PID: 3371 (dockerd)
Tasks: 10
Memory: 36.0M
CGroup: /system.slice/docker.service
??3371 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Apr 29 08:06:11 ubuntu20 dockerd[3371]: time=\"2020-04-29T08:06:11.552343504Z\" level=warning msg=\"Your kernel does not support swap memory limi>\nApr 29 08:06:11 ubuntu20 dockerd[3371]: time=\"2020-04-29T08:06:11.552406263Z\" level=warning msg=\"Your kernel does not support cgroup blkio wei>\nApr 29 08:06:11 ubuntu20 dockerd[3371]: time=\"2020-04-29T08:06:11.552423110Z\" level=warning msg=\"Your kernel does not support cgroup blkio wei>\nApr 29 08:06:11 ubuntu20 dockerd[3371]: time=\"2020-04-29T08:06:11.552769597Z\" level=info msg=\"Loading containers: start.\"\nApr 29 08:06:11 ubuntu20 dockerd[3371]: time=\"2020-04-29T08:06:11.710947740Z\" level=info msg=\"Default bridge (docker0) is assigned with an IP >\nApr 29 08:06:11 ubuntu20 dockerd[3371]: time=\"2020-04-29T08:06:11.793048851Z\" level=info msg=\"Loading containers: done.\"\nApr 29 08:06:11 ubuntu20 dockerd[3371]: time=\"2020-04-29T08:06:11.819265563Z\" level=info msg=\"Docker daemon\" commit=afacb8b7f0 graphdriver(s)=>\nApr 29 08:06:11 ubuntu20 dockerd[3371]: time=\"2020-04-29T08:06:11.819655292Z\" level=info msg=\"Daemon has completed initialization\"\nApr 29 08:06:11 ubuntu20 systemd[1]: Started Docker Application Container Engine.\nApr 29 08:06:11 ubuntu20 dockerd[3371]: time=\"2020-04-29T08:06:11.874074016Z\" level=info msg=\"API listen on /run/docker.sock\"\nlines 1-21/21 (END)Проверьте версии:
docker -vОжидаемый вывод:
Docker version 19.03.8, build afacb8b7f0И для docker-compose:
docker-compose -vОжидаемый вывод:
docker-compose version 1.25.0, build unknownВажно: для production рекомендуется устанавливать официальные релизы Docker по инструкции с сайта Docker, если в вашей среде нужны более свежие версии.
Установка Ralph через Docker
- Установите git:
apt-get install git -y- Склонируйте официальный репозиторий Ralph:
git clone https://github.com/allegro/ralph.git- Перейдите в каталог с Docker-конфигурацией и инициализируйте проект:
cd ralph/docker
docker-compose run web init- Постройте и запустите контейнеры в фоновом режиме:
docker-compose up -d- Проверьте запущенные контейнеры:
docker psПример вывода:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6d99415b9569 allegro/ralph:latest "/var/local/ralph/do…" 40 seconds ago Up 38 seconds 0.0.0.0:32771->8000/tcp docker_web_1
fcede6c8a3d3 allegro/inkpy:latest "/bin/sh -c 'supervi…' 40 seconds ago Up 38 seconds docker_inkpy_1
c93bf3a397d5 redis:3.0 "docker-entrypoint.s…" 6 minutes ago Up 6 minutes 0.0.0.0:32770->6379/tcp docker_redis_1
ac4f4c278443 mysql:5.7 "docker-entrypoint.s…" 6 minutes ago Up 6 minutes 3306/tcp, 33060/tcp docker_db_1
b0e6a7beeb61 allegro/ralph-static-nginx:latest "nginx -g 'daemon of…' 6 minutes ago Up 3 seconds 0.0.0.0:80->80/tcp docker_nginx_1Также можно просмотреть порты всех сервисов:
docker-compose psОжидаемый вывод:
Name Command State Ports
---------------------------------------------------------------------------------
docker_db_1 docker-entrypoint.sh mysql ... Up 3306/tcp, 33060/tcp
docker_inkpy_1 /bin/sh -c supervisord -n Up
docker_nginx_1 nginx -g daemon off; Up 0.0.0.0:80->80/tcp
docker_redis_1 docker-entrypoint.sh redis ... Up 0.0.0.0:32770->6379/tcp
docker_web_1 /var/local/ralph/docker-en ... Up 0.0.0.0:32771->8000/tcpДоступ к веб-интерфейсу
Откройте в браузере http://your-server-ip. На странице входа используйте учётные данные по умолчанию:
- Имя пользователя: ralph
- Пароль: ralph

После входа вы увидите дашборд Ralph:

Важно: смените пароль сразу после первого входа и настройте доступ через HTTPS для публичных или производственных инсталляций.
Мини-методология развёртывания (рекомендуемый порядок)
- Подготовьте сервер и резервное копирование конфигураций.
- Установите Docker и проверяйте совместимость ядра и cgroups.
- Склонируйте репозиторий, изучите файлы docker-compose.yml и .env.
- Запустите init, потом поднимайте контейнеры.
- Настройте бэкап MySQL и Redis.
- Настройте HTTPS (nginx reverse proxy, Let’s Encrypt).
Контрольные списки по ролям
Администратор сервера:
- Подготовить хост (обновления, storage, firewall).
- Установить Docker и docker-compose.
- Настроить мониторинг и логирование (например, Prometheus/ELK).
DevOps/Интегратор:
- Проверить docker-compose.yml и переменные окружения.
- Настроить бэкап БД и доступ по SSH.
- Настроить CI/CD для образов при изменениях.
Оператор Ralph:
- Создать пользователей и роли в интерфейсе.
- Импортировать данные об активах.
- Настроить отчёты затрат.
Тонкие места и отладка
- Если контейнер web не стартует — проверьте логи:
docker-compose logs web- Проблемы с базой данных: проверяйте docker logs для контейнера mysql, права и network.
- Конфликты портов: убедитесь, что 80/443/3306 и другие порты свободны или правильно проброшены.
Безопасность и рекомендации для production
- Всегда включайте HTTPS на фронтенде (nginx) и перенаправляйте HTTP на HTTPS.
- Смените пароли по умолчанию и используйте управление пользователями.
- Ограничьте доступ к API и БД через firewall и VPN.
- Делайте регулярные бэкапы MySQL (дамп) и снимки Redis при необходимости.
Критерии приёмки
- Все контейнеры запущены и находятся в состоянии Up.
- Веб-интерфейс доступен по HTTPS (если настроен) и можно войти под административной учётной записью.
- Создание и обновление записи актива выполняются без ошибок.
- Тестовый экспорт отчёта стоимости создаётся корректно.
Частые ошибки и как их решать
- Ошибка: web не отвечает после запуска — проверьте логи web и nginx, убедитесь, что init завершён.
- Ошибка: соединение с MySQL — проверьте переменные окружения в docker-compose.yml и права пользователя БД.
- Ошибка: недостаточно ресурсов — выделите больше памяти/CPU или используйте более мощную VM.
Сравнение подходов к развёртыванию
- Docker Compose: быстро, удобно для теста и небольшого production.
- Kubernetes: предпочтителен для масштабируемости и управления в кластере.
- VM (bare-metal): подходит, если политика безопасности запрещает контейнеризацию.
Факты и числа (факт-бокс)
- Платформа: Django, Python 3.
- Минимальные ресурсы для теста: 2 CPU, 4 ГБ RAM.
- Основные компоненты: web, nginx, mysql, redis, inkpy.
Заключение
Вы успешно установили Ralph через Docker на Ubuntu 20.04 и получили рабочий веб-интерфейс для управления активами. Для production-окружений рекомендуем дополнительно настроить HTTPS, автоматические бэкапы и мониторинг.
Примечание: при возникновении вопросов по логам или ошибкам запусков приложите выводы docker-compose logs и docker ps для быстрой диагностики.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента