Please make sure:
- you have at least 4 GB of memory on your Windows 10 Pro machine
- you are running 64 bit edition of Windows 10 Pro
- you have the latest updates installed, and no updates pending
- you have enabled Hyper-V (requires a reboot, go to Control Panel -> Add Windows Components -> Hyper-V)
- you have at least 20 GB of disk space, preferably SSD
Steps:
- Download and install Docker for Windows
- Create a file named
docker-compose.yml
that contains:
db:
image: mongo:3.0
command: mongod --smallfiles --oplogSize 128
rocketchat:
image: rocketchat/rocket.chat:latest
environment:
- PORT=3000
- ROOT_URL=http://docker:3000
- MONGO_URL=mongodb://db:27017/rocketchat
links:
- db:db
ports:
- 3000:3000
- In the same directory as the above file, enter command
docker-compose up
- Wait for the server to fully start, takes a couple of minutes
- Access your Rocket.Chat server at
http://docker:3000
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Sign up
Данная статья предназначена для тех, кто искал подробное и понятное руководство о том, как установить Rocket.Chat с использованием Docker Compose.
Rocket.Chat — это открытая и полностью настраиваемая коммуникационная платформа, разработанная на JavaScript для организаций с высокими стандартами защиты данных.
💾 Репозиторий, использованный в этом руководстве, можно найти на GitHub.
Мы будем использовать Traefik в качестве нашего обратного прокси. Он будет отвечать за получение криптографических сертификатов от Let’s Encrypt для ваших доменных имен и направлять запросы к соответствующим службам на основе этих доменов.
❗ Для получения криптографических сертификатов вам потребуются записи типа A во внешней зоне DNS, которые указывают на IP-адрес вашего сервера, где установлен Traefik. Если вы создали эти записи недавно, следует подождать, прежде чем начать установку сервисов. Полная репликация данных записей между DNS-серверами может занять от нескольких минут до 48 часов или даже больше в редких случаях.
В этом руководстве мы будем рассматривать тот случай, когда у вас уже есть сервер с установленной на нем операционной системой Ubuntu Server 22.04 LTS.
Подробно о том, как установить Ubuntu Server 22.04 LTS, вы можете прочитать в моем руководстве “Установка Ubuntu Server 22.04 LTS”.
Также на сервере должен быть установлен Docker Engine и Docker Compose.
Узнать о том, как установить Docker Engine на Ubuntu Server, вы можете, прочитав “Установка Docker Engine и Docker Compose на Ubuntu Server”.
Кроме того, на сервер должен быть установлен OpenSSH, а также открыт 22 порт, чтобы иметь возможность подключаться к серверу по протоколу SSH.
Для установки OpenSSH на сервер вы можете воспользоваться командой:
sudo apt install openssh-server
Если вы планируете подключиться к серверу, используя операционную систему Windows, то можете воспользоваться PuTTY или MobaXterm.
В данном руководстве рассматривается подключение к серверу при помощи терминального эмулятора iTerm2, установленного на операционную систему macOS.
💡 Обратите внимание, вам потребуется открыть следующие порты TCP для доступа к сервисам:
- TCP порт 80 — для получения бесплатного криптографического сертификата через центр сертификации Let’s Encrypt.
- TCP порт 443 — для доступа к веб-интерфейсу Rocket.Chat.
- TCP порт 2222 — для безопасных операций Git через SSH, управления SSH-ключами пользователя, зашифрованной передачи данных и задач администрирования сервера.
Подключаемся к серверу, на который планируется установить Rocket.Chat.
Теперь необходимо создать сети для ваших служб.
Создаем сеть для Traefik с помощью команды:
docker network create traefik-network
Создаем сеть для Rocket.Chat с помощью команды:
docker network create rocketchat-network
Далее нужно клонировать репозиторий, который содержит конфигурационные файлы, которые содержать все необходимые условия для работы Rocket.Chat.
Клонировать репозиторий можно с помощью команды:
git clone https://github.com/heyvaldemar/rocketchat-traefik-letsencrypt-docker-compose.git
Переходи в директорию с репозиторием с помощью команды:
cd rocketchat-traefik-letsencrypt-docker-compose
Далее вам необходимо изменить переменные в файле .env
в соответствии с вашими требованиями.
💡 Обратите внимание, что .env
должен находиться в той же директории, что и rocketchat-traefik-letsencrypt-docker-compose.yml
.
Теперь запустим Rocket.Chat с помощью команды:
docker compose -f rocketchat-traefik-letsencrypt-docker-compose.yml -p rocketchat up -d
Для доступа к панели управления Rocket.Chat необходимо с рабочей станции перейти по ссылке https://rocketchat.heyvaldemar.net, где rocketchat.heyvaldemar.net — доменное имя моего сервиса. Соответственно, вам необходимо указать свое доменное имя, которое указывает на IP-адрес вашего сервера с установленным сервисом Traefik, который перенаправит запрос к Rocket.Chat.
💡 Обратите внимание, вам нужно указать доменное имя сервиса, заданное ранее в файле .env
.
Далее нам нужно создать нового пользователя, который будет иметь права администратора в Rocket.Chat.
В поле “Full name” введите имя и фамилию нового пользователя Rocket.Chat.
В поле “Username” укажите логин для нового пользователя Rocket.Chat.
В поле “Email” укажите текущий адрес электронной почты для нового пользователя Rocket.Chat.
В поле “Password” установите надежный пароль для нового пользователя Rocket.Chat.
Нажмите кнопку “Next”.
Теперь вам нужно заполнить информацию о вашей организации.
В поле “Organization name” введите название вашей организации.
В поле “Organization industry” укажите профиль или сектор вашей организации.
В поле “Organization size” укажите количество сотрудников в вашей организации.
В поле “Country” укажите страну, в которой работает ваша организация.
Нажмите кнопку “Next”.
Теперь вам нужно зарегистрировать ваш сервер, чтобы использовать такие услуги, как мобильные push-уведомления, интеграция с внешними поставщиками и многое другое.
В поле “Cloud account email” укажите текущий адрес электронной почты.
Далее вы должны прочитать и принять условия использования предоставляемых услуг.
Нажмите кнопку “Register”.
Вы получите письмо на указанный ранее адрес с ссылкой для регистрации вашего сервера Rocket.Chat.
Найдите письмо и нажмите на кнопку “Verify registration”.
Ваш сервер был успешно зарегистрирован.
Добро пожаловать в панель управления Rocket.Chat.
Для доступа к панели управления Traefik необходимо с рабочей станции перейти по ссылке https://traefik.rocketchat.heyvaldemar.net, где traefik.rocketchat.heyvaldemar.net — доменное имя моего сервиса. Соответственно, вам необходимо указать свое доменное имя, которое указывает на IP-адрес вашего сервера с установленным Traefik.
💡 Обратите внимание, вам нужно указать доменное имя сервиса, заданное ранее в файле .env
.
Указываем имя пользователя и пароль, заданный ранее в файле .env
, и нажимаем на кнопку “OK”.
Добро пожаловать в панель управления Traefik.
Эксклюзивы для подписчиков Patreon
Присоединяйтесь к моему Patreon и погрузитесь в мир Docker и DevOps. Здесь вас ждет эксклюзивный контент, разработанный специально для энтузиастов и профессионалов в области IT. Вашим наставником будет Владимир Михалев, опытный специалист, предлагающий ряд уровней членства от новичков до экспертов.
Что вы получите
🏆 Посты только для патронов: Полный доступ к глубоким статьям, которые раскрывают методы работы с Docker и DevOps, включая пошаговые инструкции, продвинутые советы и подробные анализы, недоступные широкой публике.
🏆 Ранний доступ: Получите возможность первыми узнавать о новых материалах и обучающих программах, опережая технологические тренды.
🏆 Приоритетная поддержка: Ваши вопросы и проблемы будут решены в первую очередь, обеспечивая индивидуальный подход и непосредственную помощь.
🏆 Влияние на будущий контент: Ваши предложения и отзывы напрямую влияют на выбор тем и создание учебных пособий, делая материалы максимально актуальными и полезными.
🏆 Признание и взаимодействие: Активные участники и поддерживающие пользователи получают благодарности в видео и на публичных трансляциях, подчеркивая вашу значимость для нашего сообщества.
🏆 Особые скидки: Наслаждайтесь скидками на курсы и предстоящие мероприятия, которые доступны исключительно для членов Patreon.
🏆 Возможности для нетворкинг: Общайтесь с другими IT-специалистами и энтузиастами в поддерживающей атмосфере, расширяя вашу профессиональную сеть и обмениваясь знаниями.
🏆 Искренняя благодарность и обновления: Личная благодарность за вашу поддержку, которая стимулирует создание нового контента и постоянное развитие.
Присоединяйтесь ко мне сейчас и начните свое путешествие по освоению Docker и DevOps с эксклюзивными материалами и поддерживающим сообществом!
Мои курсы
🎓 Погрузитесь в мои обширные курсы по информационным технологиям, разработанные как для энтузиастов, так и для профессионалов. Независимо от того, хотите ли вы освоить Docker, покорить Kubernetes или углубить свои навыки в области DevOps, мои курсы предлагают структурированный путь к повышению вашего технического мастерства.
Мои услуги
💼 Загляните в мой каталог услуг и узнайте, как мы можем сделать вашу технологическую жизнь лучше. Будь то повышение эффективности вашей IT-инфраструктуры, развитие вашей карьеры или расширение технологических горизонтов — я здесь, чтобы помочь вам достичь ваших целей. От DevOps-трансформаций до сборки игровых компьютеров — давайте сделаем ваши технологии непревзойденными!
Пополнить запасы моего кофе
💡 Telegram | Boost
💖 PayPal
🏆 Patreon
💎 GitHub
🥤 BuyMeaCoffee
🍪 Ko-fi
Подпишись
⭐ Telegram | Блог
🎬 YouTube
🐦 Twitter
🎨 Instagram
🐘 Mastodon
🧵 Threads
🎸 Facebook
🧊 Bluesky
🎥 TikTok
💻 LinkedIn
📣 daily.dev Squad
🧩 LeetCode
🐈 GitHub
Этот контент создан искусственным интеллектом?
Нет! Каждая статья — результат моей работы, наполненной страстью к Docker и десятилетиями опыта в IT. Я применяю ИИ для улучшения грамматики, чтобы обеспечить четкость технических деталей, однако все идеи, стратегии и рекомендации исключительно мои. Этот метод иногда может вызывать срабатывание детекторов ИИ, но можете быть уверены, что вся представленная информация и опыт — подлинно мои.
Устанавливаем Rocket.Chat на платформе Docker, настраиваем обратный прокси для HTTPS-доступа и выполняем интеграцию с Active Directory
устанавливаем Docker Engine — Community и Docker Compose, как рассказывается в этой статье
создаем папку для хранения параметров развертывания контейнеров
mkdir /etc/docker/rocketchat
создаем файл /etc/docker/rocketchat/docker-compose.yml с параметрами развертывания контейнеров
version: '3.7' networks: net: ipam: config: - subnet: 192.168.102.1/24 volumes: db: conf: app: proxy: services: db: container_name: rocketchat_db image: mongo:latest networks: - net volumes: - db:/data/db - conf:/data/configdb command: mongod --replSet rs0 restart: always app: depends_on: - db container_name: rocketchat_app image: rocket.chat:latest networks: - net volumes: - app:/app/uploads environment: - PORT=3000 - ROOT_URL=https://chat.domain.com/ - MONGO_URL=mongodb://db/rocketchat - MONGO_OPLOG_URL=mongodb://db/local restart: always proxy: depends_on: - app container_name: rocketchat_proxy image: httpd networks: - net ports: - 80:80 - 443:443 volumes: - proxy:/usr/local/apache2 restart: always
создаем контейнеры, разделы и сети
docker-compose -f /etc/docker/rocketchat/docker-compose.yml up —no-start
запускаем контейнер базы данных
docker container start rocketchat_db
подключаемся к контейнеру
docker exec -t -i rocketchat_db bash
запускаем интерфейс командной строки MongoDB
mongo
выполняем инициализацию набора репликации
rs.initiate({ _id : «rs0», members: [{ _id: 0, host: «localhost:27017» }] })
проверяем параметры и статус репликации
rs.conf()
rs.status()
выходим из интерфейса командной строки MongoDB
exit
отключаемся от контейнера базы данных
exit
запускаем контейнер приложения
docker container start rocketchat_app
запускаем контейнер прокси
docker container start rocketchat_proxy
настраиваем Apache контейнера прокси так же, как в этой статье, за исключением следующего:
LoadModule rewrite_module modules/mod_rewrite.so LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so <VirtualHost *:80> Redirect permanent / https://chat.domain.com/ </VirtualHost> <VirtualHost *:443> SSLEngine on SSLCertificateKeyFile /usr/local/apache2/conf/private.key SSLCertificateFile /usr/local/apache2/conf/public.cer SSLCertificateChainFile /usr/local/apache2/conf/chain.cer RewriteEngine On RewriteCond %{HTTP:Upgrade} =websocket [NC] RewriteRule /(.*) ws://app:3000/$1 [P,L] RewriteCond %{HTTP:Upgrade} !=websocket [NC] RewriteRule /(.*) http://app:3000/$1 [P,L] ProxyPassReverse / http://app:3000/ </VirtualHost>
проходим в браузере по ссылке https://chat.domain.com
в разделе «Администрирование — Настройки — Протокол LDAP» выполняем настройку интеграции с Active Directory
основные включить LDAP - да резервная авторизация - да (иначе авторизация под локальным администратором будет невозможна) найти пользователя после входа в систему - да хост - dc.domain.local ldap-порт - 389 переподключение - да шифрование - без шифрования base DN - cn=users,dc=domain,dc=local аутентификация включить - да user DN - cn=rocketchat,cn=users,dc=domain,dc=local пароль - ... синхронизация/импорт поле "Имя пользователя" - sAMAccountName поле уникального идентификатора - objectGUID домен по умолчанию - не указан объединить существующих пользователей - да синхронизация пользовательских данных - да карта пользовательских данных - {"displayName":"name", "mail":"email"} синхронизация групп - нет синхронизация пользовательских аватаров - да фоновая синхронизация - да интервал фоновой синхронизации - every 8 hours фоновая синхронизация импортирует новых пользователей - да Фоновая синхронизация обновляет сущестующих пользователей - да поиск пользователей фильтр - (&(objectclass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(memberOf:1.2.840.113556.1.4.1941:=cn=пользователи rocket.chat,cn=users,dc=domain,dc=local)) область - sub поле поиска - sAMAccountName
замечание: для успешного импорта пользователей соответствующие учетные записи Active Directory должны включать атрибут mail
включаем использование для отображения имен пользователей атрибута displayName (вместо sAMAccountName)
внешний вид - пользовательский интерфейс - использовать настоящее имя - да
включаем поддержку кириллицы в названиях каналов
общие настройки - UTF8 - проверка имен UTF8 - добавляем диапазоны символов А-Яа-я
выполняем тихую установку клиентов использую параметры установщика /S /allusers /disableAutoUpdates
Docker · December 21, 2024
Rocket.Chat is an open-source communication platform that allows teams to collaborate in real-time through chat, video, and audio calls. It is a popular choice for organizations looking to create a self-hosted chat solution. One of the most efficient ways to deploy Rocket.Chat is by using Docker, a platform that automates the deployment of applications inside lightweight containers. This article will guide you through the steps to install Rocket.Chat using Docker.
Prerequisites
Before you begin the installation process, ensure that you have the following prerequisites:
- A server with Docker installed. You can use a VPS (Virtual Private Server) for this purpose.
- Basic knowledge of command-line interface (CLI) commands.
- Access to your server via SSH.
Step 1: Install Docker
If Docker is not already installed on your server, you can install it by following these commands:
sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce
After installation, verify that Docker is running:
sudo systemctl status docker
Step 2: Install Docker Compose
Docker Compose is a tool for defining and running multi-container Docker applications. To install Docker Compose, run the following commands:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
Step 3: Create a Docker Compose File
Next, create a directory for Rocket.Chat and navigate into it:
mkdir rocket.chat
cd rocket.chat
Now, create a file named docker-compose.yml
using your preferred text editor:
nano docker-compose.yml
In this file, add the following configuration:
version: '3'
services:
rocketchat:
image: rocketchat/rocket.chat:latest
restart: always
ports:
- 3000:3000
environment:
- ROOT_URL=http://localhost:3000
- MONGO_URL=mongodb://mongo:27017/rocketchat
- REDIS_URL=redis://redis:6379
depends_on:
- mongo
- redis
mongo:
image: mongo:4.0
restart: always
volumes:
- mongo-data:/data/db
redis:
image: redis:alpine
restart: always
volumes:
mongo-data:
Step 4: Start Rocket.Chat
With the docker-compose.yml
file created, you can now start Rocket.Chat by running:
docker-compose up -d
This command will download the necessary images and start the Rocket.Chat application along with its dependencies (MongoDB and Redis) in detached mode.
Step 5: Access Rocket.Chat
Once the containers are up and running, you can access Rocket.Chat by navigating to http://your-server-ip:3000
in your web browser. You will be greeted with the Rocket.Chat setup page, where you can create an admin account and configure your chat server.
Troubleshooting
If you encounter any issues during the installation, check the logs of the Rocket.Chat container for errors:
docker-compose logs rocketchat
This command will provide insights into any problems that may have occurred during startup.
Conclusion
Installing Rocket.Chat using Docker is a straightforward process that allows you to set up a powerful communication tool for your team. By following the steps outlined in this article, you can have your own self-hosted chat solution running in no time. For those looking for reliable infrastructure to host their applications, consider exploring USA VPS Hosting options that can provide the necessary resources for your Rocket.Chat deployment.