Skip to content

ntorgov/simplex_bundle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

📡 simplex-selfhost

Автоматическая установка самохостируемого стека SimpleX Chat: SMP-relay, XFTP-сервер файлов и TURN-сервер для голосовых звонков.

Один скрипт — полностью рабочий приватный мессенджер на вашем сервере.
Без регистрации. Без телефонных номеров. Без слежки.


⚡ Быстрый старт

curl -fsSL https://raw.githubusercontent.com/ntorgov/simplex_bundle/refs/heads/master/installer.sh | bash

Скрипт задаст несколько вопросов (адрес сервера, порты, квота) и запустит всё автоматически.


🧩 Что устанавливается

Сервис Образ Назначение Порт по умолчанию
SMP Server simplexchat/smp-server Relay для доставки сообщений 993 (IMAPS)
XFTP Server simplexchat/xftp-server Передача файлов и медиа 995 (POP3S)
coturn coturn/coturn STUN/TURN для голосовых звонков 3478

Порты 993 и 995 выбраны намеренно — они относятся к почтовым протоколам и практически не блокируются провайдерами, в отличие от стандартного порта SimpleX 5223.


📋 Требования

  • Linux-сервер (Ubuntu 20.04+ рекомендуется)
  • Docker (>= 20.x)
  • docker-compose или плагин docker compose
  • openssl (обычно предустановлен)
  • Публичный IP-адрес или домен

🔧 Что делает скрипт

  1. Проверяет зависимости — docker, docker-compose, openssl
  2. Интерактивно спрашивает параметры: адрес сервера, порты, квоту хранилища
  3. Генерирует случайный пароль для TURN-сервера
  4. Создаёт ~/simplex/docker-compose.yml и ~/simplex/credentials.txt
  5. Скачивает образы и запускает контейнеры
  6. Выводит готовые строки для вставки в приложение SimpleX Chat

🛡️ Файрвол

После установки откройте необходимые порты:

ufw allow 993/tcp    # SMP relay
ufw allow 995/tcp    # XFTP файлы
ufw allow 3478/tcp   # TURN (голос)
ufw allow 3478/udp   # TURN (голос)
ufw allow 49152:65535/udp  # TURN медиа-диапазон

📱 Настройка приложения

После успешной установки скрипт выведет готовые адреса. Добавьте их в SimpleX Chat:

SMP и XFTP серверы

Настройки → Сеть и серверы → SMP-серверы (и XFTP аналогично):

smp://<fingerprint>@your-server.com:993
xftp://<fingerprint>@your-server.com:995

Точные адреса с fingerprint смотрите в логах:

docker logs simplex-smp 2>&1 | grep "Server address"
docker logs simplex-xftp 2>&1 | grep "Server address"

TURN для голосовых звонков

Настройки → Конфиденциальность и безопасность → WebRTC ICE серверы → отключить дефолтные → добавить:

turn:simplex:ВАШ_ПАРОЛЬ@your-server.com:3478?transport=udp
turn:simplex:ВАШ_ПАРОЛЬ@your-server.com:3478?transport=tcp
stun:your-server.com:3478

Пароль хранится в ~/simplex/credentials.txt.


🔄 Управление

cd ~/simplex

# Статус
docker compose ps

# Логи всех сервисов
docker compose logs -f

# Логи конкретного сервиса
docker compose logs -f smp-server

# Остановить
docker compose down

# Обновить образы
docker compose pull && docker compose up -d

🗂️ Структура файлов

~/simplex/
├── docker-compose.yml       # конфигурация сервисов
├── credentials.txt          # пароли и адреса (chmod 600)
├── smp/
│   ├── config/              # ключи и конфиг SMP сервера
│   └── logs/                # логи и данные SMP
├── xftp/
│   ├── config/              # ключи и конфиг XFTP сервера
│   ├── logs/                # логи XFTP
│   └── files/               # хранилище файлов

⚠️ Сделайте резервную копию smp/config/ca.key — это CA-ключ вашего SMP сервера. При его потере клиенты потеряют доверие к серверу и нужно будет перенастраивать подключения.


🔒 Безопасность

  • TURN-пароль генерируется случайно при каждой установке (openssl rand)
  • credentials.txt создаётся с правами 600 (только владелец)
  • SMP и XFTP серверы используют собственные TLS-сертификаты (генерируются автоматически при первом запуске)
  • Содержимое сообщений и файлов недоступно серверу — сквозное шифрование на стороне клиента

❓ Частые вопросы

Работает ли это в России?
Да. Порты 993 и 995 относятся к почтовым протоколам (IMAPS/POP3S) и почти никогда не блокируются. Порт 5223 (стандартный для SimpleX) блокируется — поэтому мы его не используем.

Нужен ли домен или хватит IP?
Хватит IP. Укажите просто IP-адрес сервера при установке.

Что с push-уведомлениями?
Push-уведомления в SimpleX реализованы через серверы simplex.im. Если они недоступны — переключите в приложении режим на «Периодически»: приложение будет само опрашивать ваш SMP-сервер без обращения к сторонним серверам.

Как узнать fingerprint моего SMP сервера?

docker logs simplex-smp 2>&1 | grep "Server address"

📄 Лицензия

MIT — делайте что хотите, упоминание приветствуется.


Сделано с ❤️ для тех, кто ценит приватность

About

Установщик SimpleX Chat серверов

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages