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.gzDownload 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)
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:
- pick the interface language;
- check the host has what it needs (Docker, etc.) and tell you what to add;
- download the server image from the site and verify its integrity;
- load the image into Docker;
- 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.
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.
| Architecture | x86-64 (amd64). ARM / aarch64 is not supported. |
|---|---|
| Kernel | Linux ≥ 3.10 (≥ 4.x recommended) with 32-bit emulation enabled: CONFIG_IA32_EMULATION=y. |
| Docker | A modern Docker Engine (tested on 26.x). Native Linux Docker — not Docker Desktop on Mac/Windows. |
| Network | Runs in --network host mode (the wizard does this automatically). |
| Free ports | Web — 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
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):
| Distribution | Minimum |
|---|---|
| Debian | 8 (Jessie); 10–13 recommended |
| Ubuntu | 14.04 LTS; 20.04 / 22.04 / 24.04 recommended |
| RHEL / CentOS / Rocky / Alma | 7 (⚠️ 6 is too old, won’t work) |
| Fedora | any supported release |
| Arch / Manjaro | rolling (always) |
| openSUSE Leap / SLES | Leap 15 / SLES 12 |
--network host, so TURN fails); kernels without IA32 emulation;
CentOS/RHEL 6, Debian 7, Ubuntu 12.04 and older.
7 Recommended resources
| Resource | Minimum | Recommended | Note |
|---|---|---|---|
| CPU | 2 vCPU | 4 vCPU | mixer/ffmpeg load the CPU during media calls |
| RAM | 2 GB | 4–8 GB | idle Wine+server ≈ 0.5–1 GB |
| Disk (image) | 2 GB | — | unpacked image ≈ 1.77 GB |
| Disk (data/volume) | 5 GB | 20–50+ GB | grows with chat history and files |
| Swap | — | 1–2 GB | safety net for peak load on small VMs |
A good baseline for a small-to-medium organization: 4 vCPU / 8 GB RAM / 50 GB SSD.
8 The deploy archive scripts
What’s inside deploy.tar.gz:
| File | Purpose |
|---|---|
| mc-launcher.sh | The main script. Pseudo-graphical wizard and menu: download, image install, start/stop, status, logs, update check. Start here. |
| mc-launcher.conf | Settings: language, download URL, container name, image, volume path, stop timeout. Editable. |
| mc-start.sh | Start the server. logs — follow logs, recreate — rebuild the container. |
| mc-stop.sh | Graceful stop. |
| mc-restart.sh | Restart the server. |
| mc-status.sh | Status: container state, busy ports, TURN relay address, free disk space. |
| mc-logs.sh | Follow logs live (./mc-logs.sh N — last N lines). |
| mc-common.sh | Shared core (functions, config). Sourced by the others — not run on its own. |
| mc-i18n.sh | Interface strings in three languages (uk / en / ru). |
| mc-launcher.state | Created automatically at runtime: local state (chosen directory, installed version, etc.). Not shipped in the archive. |
sudo on their own when needed. Running mc-launcher.sh is enough — everything else is reachable from the menu.

