Installing MyChat Server on a Linux host or virtual machine


1 What and how to download

You only need one file — the archive with the setup scripts:

Download deploy.tar.gz

Download straight onto the server (terminal):

wget https://nsoft-s.com/files/doker/deploy.tar.gz

You do not need to download the server image manually. The image (mychatserver-slim.tar.gz) and the version file (version.txt) live in the same folder on the site, and the wizard fetches them automatically during the “Download” step. If you prefer, you can grab them by hand from the same location:

https://nsoft-s.com/files/doker/deploy.tar.gz   # scripts (required)
https://nsoft-s.com/files/doker/version.txt     # version (wizard pulls it)
https://nsoft-s.com/files/doker/mychatserver-slim.tar.gz  # image (wizard pulls it)
The short path: download deploy.tar.gz → unpack → run ./mc-launcher.sh → keep pressing “Next”. The wizard does the rest.

2 How to unpack

Extract the archive into any convenient directory:

tar -xzf deploy.tar.gz
cd deploy

Inside is a small set of scripts (mc-*.sh). Make them executable if needed:

chmod +x *.sh

3 How to start

Recommended — the setup wizard (a pseudo-graphical menu in the terminal):

./mc-launcher.sh

The wizard walks you through everything:

  1. pick the interface language;
  2. check the host has what it needs (Docker, etc.) and tell you what to add;
  3. download the server image from the site and verify its integrity;
  4. load the image into Docker;
  5. create and start the container.

Every step is saved: if you interrupt it, next time the wizard resumes from where you left off.

Without the menu (once the image is installed):

./mc-start.sh            # bring the server up
./mc-start.sh logs       # bring up and follow logs (Ctrl+C to quit)
./mc-status.sh           # status: container, ports, disk
./mc-logs.sh             # follow logs live

The first start takes a little while (it deploys the profile) — up to a few minutes on slower machines. Then open http://<your-server-IP> in a browser and configure domain/HTTPS in the web admin.

The scripts request sudo automatically when needed — Docker requires administrator rights.

4 How to stop

Graceful stop (the server gets time to close its database):

./mc-stop.sh

Or use the “Stop” item in the wizard menu. Other handy commands:

./mc-restart.sh          # restart
./mc-start.sh recreate   # recreate the container (data in the volume is safe)

Stopping gives the server up to 30 seconds to shut down cleanly. Your data lives in the host volume and survives stops and restarts.

5 Linux host requirements

The image is self-contained (Debian + Wine + all components inside). The requirements apply to the host, because the container shares the host kernel.

Architecturex86-64 (amd64). ARM / aarch64 is not supported.
KernelLinux ≥ 3.10 (≥ 4.x recommended) with 32-bit emulation enabled: CONFIG_IA32_EMULATION=y.
DockerA modern Docker Engine (tested on 26.x). Native Linux Docker — not Docker Desktop on Mac/Windows.
NetworkRuns in --network host mode (the wizard does this automatically).
Free portsWeb — 80, 443; clients — 2004; TURN — UDP 49000–50000 and 8888.

Quick suitability check for the machine:

uname -m                                      # expect: x86_64
grep IA32_EMULATION /boot/config-$(uname -r)  # expect: ...=y
docker --version                              # Docker present
nproc ; free -h ; df -h /srv                  # CPU / RAM / disk
If Docker isn’t installed yet: curl -fsSL https://get.docker.com | sh

6 Supported distributions

The distribution family doesn’t matter — you just need a modern kernel + Docker (x86-64):

DistributionMinimum
Debian8 (Jessie); 10–13 recommended
Ubuntu14.04 LTS; 20.04 / 22.04 / 24.04 recommended
RHEL / CentOS / Rocky / Alma7 (⚠️ 6 is too old, won’t work)
Fedoraany supported release
Arch / Manjarorolling (always)
openSUSE Leap / SLESLeap 15 / SLES 12
Won’t work: ARM hosts; Docker Desktop (Mac/Windows — breaks --network host, so TURN fails); kernels without IA32 emulation; CentOS/RHEL 6, Debian 7, Ubuntu 12.04 and older.

7 Recommended resources

ResourceMinimumRecommendedNote
CPU2 vCPU4 vCPUmixer/ffmpeg load the CPU during media calls
RAM2 GB4–8 GBidle Wine+server ≈ 0.5–1 GB
Disk (image)2 GBunpacked image ≈ 1.77 GB
Disk (data/volume)5 GB20–50+ GBgrows with chat history and files
Swap1–2 GBsafety net for peak load on small VMs

A good baseline for a small-to-medium organization: 4 vCPU / 8 GB RAM / 50 GB SSD.

Best production hosts (LTS, long support): Ubuntu Server 24.04 / 22.04 LTS, Debian 12, Rocky Linux 9 / AlmaLinux 9, RHEL 9 / SLES 15.

8 The deploy archive scripts

What’s inside deploy.tar.gz:

FilePurpose
mc-launcher.shThe main script. Pseudo-graphical wizard and menu: download, image install, start/stop, status, logs, update check. Start here.
mc-launcher.confSettings: language, download URL, container name, image, volume path, stop timeout. Editable.
mc-start.shStart the server. logs — follow logs, recreate — rebuild the container.
mc-stop.shGraceful stop.
mc-restart.shRestart the server.
mc-status.shStatus: container state, busy ports, TURN relay address, free disk space.
mc-logs.shFollow logs live (./mc-logs.sh N — last N lines).
mc-common.shShared core (functions, config). Sourced by the others — not run on its own.
mc-i18n.shInterface strings in three languages (uk / en / ru).
mc-launcher.stateCreated automatically at runtime: local state (chosen directory, installed version, etc.). Not shipped in the archive.
All scripts elevate to sudo on their own when needed. Running mc-launcher.sh is enough — everything else is reachable from the menu.
Служба поддержки