Эта инструкция — как перенести рабочую инсталляцию MyChat Server с Windows на готовый Linux Docker-образ с сохранением базы, файлов и сертификатов. Если у сервера меняется IP-адрес — в конце показано, как перенастроить клиентов.
Если Linux-образ ещё не установлен — сначала пройдите Установку; эта инструкция её продолжает.
1 Что переносим, а что нет
С Windows-сервера переносим только данные пользователя. Остальное — пути, конфиги, бинарники — даёт сам образ.
| Переносим | Не переносим |
|---|---|
db/ — системная база (через бэкап-архив админки) | options.json — используются Linux-дефолты образа |
files/ — файлы пользователей | конфиги turn/mixer — генерирует сервер при каждом запуске |
cert/ — сертификаты (как есть, без перевыпуска) | любые Windows-пути и бинарники |
2 Шаг 1. Бэкап на Windows
- В веб-админке старого сервера: Settings → Backup → «Make backup now» — сделайте и скачайте архив базы.
- Запомните, где лежат данные. По умолчанию весь профиль лежит в
C:\ProgramData\MyChat Server\— большинство инсталляций используют стандартный путь, так что проще всего искать именно там. Внутри:- база:
C:\ProgramData\MyChat Server\db\ - файлы: админка → Settings → Folders (там указаны реальные пути)
- сертификаты:
C:\ProgramData\MyChat Server\cert\ - логи:
C:\ProgramData\MyChat Server\logs\(переносить при необходимости)
- база:
ProgramData совпадает с именем установочной папки в
Program Files (x86).
3 Шаг 2. Пустой старт на Linux
Сначала поднимите сервер на пустом профиле — при первом старте он сам развернёт корректную структуру, в которую на следующем шаге подложим данные со старого сервера.
Через лаунчер (рекомендуется):
wget https://nsoft-s.com/files/doker/deploy.tar.gz tar -xzf deploy.tar.gz cd deploy ./mc-launcher.sh
Мастер проведёт «за руку»:
- выберет язык интерфейса;
- проверит Docker и подскажет, чего не хватает;
- скачает и установит образ (
docker load) — в меню это пункты «Скачать Docker-образ с сайта» и «Подключить Docker-образ»; - создаст каталог профиля (
/srv/mychatserver); - запустит контейнер со всеми обязательными параметрами — пункт «Запустить сервер».
Или вручную (свой оркестратор, автоматизация, хост без TUI):
wget https://nsoft-s.com/files/doker/mychatserver-slim.tar.gz
docker load -i mychatserver-slim.tar.gz
mkdir -p /srv/mychatserver
docker run -d --name mychatserver --network host \
-v /srv/mychatserver:/var/lib/mychatserver \
--stop-timeout 30 \
mychatserver:slim
Дождитесь старта — админка откроется на http://<IP-сервера>:8080.
--network host и --stop-timeout 30 — обязательны: без
host-сети не будет работать TURN, без таймаута база может закрыться некорректно.
Лаунчер выставляет их сам.
4 Шаг 3. Остановка и заливка данных
Остановите сервер — в лаунчере пункт «Остановить сервер MyChat», или:
./mc-stop.sh # или вручную: docker stop -t 30 mychatserver
В каталог профиля на хосте (/srv/mychatserver) подложите данные со старого сервера:
- База. Распакуйте бэкап-архив в
/srv/mychatserver/db/, заменив созданную образом пустую базу. Копируйте все файлы каталогаdb\(архив содержит их все, не толькоmcserv.db). - Файлы. Скопируйте содержимое Windows-
files/в/srv/mychatserver/files/. - Сертификаты. Скопируйте
cert/со старого сервера в/srv/mychatserver/cert/. - Логи (при необходимости). Если важно сохранить историю логов — скопируйте
содержимое Windows-
logs/в/srv/mychatserver/logs/.
root — файлы профиля на хосте принадлежат root; для правок
понадобится sudo.
5 Шаг 4. Повторный старт и проверка
Запустите сервер снова — в лаунчере пункт «Запустить сервер», или ./mc-start.sh. При старте
сервер увидит имеющуюся базу и подхватит её (при необходимости обновит схему под версию образа).
Проверьте:
./mc-status.sh # контейнер, порты, TURN relay-адрес, диск ./mc-logs.sh # живые логи (логи всех сервисов — в /srv/mychatserver/logs/)
Войдите в админку и убедитесь, что история, пользователи и файлы со старого сервера на месте.
6 Шаг 5. Клиенты при смене IP-адреса
Серверная часть. Админка → Tools → «Server moving»: укажите новый IP-адрес, порты, основной и резервный адреса сервера.
Клиенты (все десктоп-клиенты ведут себя одинаково):
| Способ подключения | Действие |
|---|---|
| DNS-имя | Переназначьте старое DNS-имя на новый IP. Клиенты подхватят: в LAN — сразу, через интернет — в течение ~72 ч. |
| Прямой IP | Укажите новый адрес сервера в каждом клиенте вручную. |
| Active Directory | Обновите REG-файл с параметрами подключения и раздайте через GPO — клиенты применят при следующем входе. |
7 Бэкап, откат и устранение неполадок
- Дальнейший бэкап/перенос. Один том (
/srv/mychatserver) = полное состояние инсталляции. Остановите контейнер (./mc-stop.sh) и скопируйте каталог. Перенос на другой хост — разверните лаунчер там и подложите тот же каталог профиля. - Ошибка при старте «каталог непустой, но
mcserv.dbне найден» — скорее всего неверный путь в-vили база не попала вdb/. Проверьте, чтоmcserv.dbлежит именно в<профиль>/db/. - Не спешите удалять старый Windows-сервер — выключайте его только после полной проверки нового.

