u/bender_69

▲ 69 r/ruAsska

В какой-то момент окончательно задолбало зависеть от корпоративных мессенджеров, внешних серверов и бороться с кривым прохождением звонков.
Официальный Synapse жрет ресурсы как не в себя, поэтому взял за основу Conduit. Он написан на Rust, не течет по памяти и спокойно держит 50-70 человек. Чтобы не ловить отвалы аудио и видео из-за жесткого NAT у мобильных операторов, завернул медиатрафик в TLS.

Упаковал всю эту историю в один bash-скрипт для чистого Debian 12. Он сам все устанавливает и заворачивает в шаурму.
Минимальные требования для сервера смешные, потянет любая бичевская VPS: 1 vCPU, 1гб но место на диске зависит уже от вас. У меня сейчас крутится где 2гб оперативы, но 70% всегда свободны.

Исходники открытые, скрипт лежит на гитхабе, буду по возможности его допиливать. Глянуть и забрать можно тут: https://github.com/TimiQA/nodus
Если эта штука сэкономит вам пару вечеров курения мануалов — с вас нихуя, ну или апвоут или репост, чтобы тема не утонула. Если есть вопросы или найдете баги — пишите в комменты.

u/bender_69 — 12 days ago

TL;DR: Created a bash script to deploy a full Matrix stack (Conduit, Coturn, and a web client) on a fresh Debian 12 VPS. Ideal for low-resource environments and fixing NAT-related VoIP issues.

I am officially done with bloated corporate messengers. Between the unsolicited ads, data tracking, and "innovative" features nobody asked for, it has become a digital circus. My final straw was trying to explain to my family why their video calls kept dropping during handovers between Wi-Fi and mobile data. They just want a reliable way to chat and share photos without a tech giant sniffing the metadata.

I wanted a private digital bunker. End-to-end encryption, stable VoIP, and zero prying eyes.
Trying to wrap something like Jabber into a clean automation script is a world of hurt it is all hacks and misery. So I went with Matrix. Since the official server eats RAM like a beast, I picked Conduit. It is written in Rust and runs perfectly on a tiny VPS. I also added a TURN server using Coturn to handle the aggressive NAT issues that usually break mobile video calls.

Because doing this manually is a masochistic waste of time, I wrote a bash script that handles the entire deployment on a fresh Debian 12 install. It sets up Docker, firewall rules, SSL via Let’s Encrypt, and the web interface while you grab a coffee.
It costs about two dollars a month, which is cheaper than a single cup of specialty coffee.

The project is open source. You can find the code and the manual here:
https://github.com/TimiQA/nodus/tree/main

I am looking for some critical feedback from the community. If you have tips on hardening the config or optimizing the stack further, let me know. Or just come tell me why your manual setup is superior.

reddit.com
u/bender_69 — 13 days ago

Заходишь в мессенджер по делу — а в лицо летят унылые сторис и реклама. Плюс серваки стабильно ложатся ровно в тот момент, когда нужно срочно скинуть файл. Добавим сюда сливы баз и скармливание переписок ИИ. От этого цифрового колхоза уже реально дёргается глаз.
Но финальным гвоздем стали жалобы мамы и её подруг на вечные обрывы в звонилках. Людям хочется просто нормально поговорить и перекинуть друг другу фотки котиков и рецептов, а не слушать металлическое бульканье из-за кривого коннекта.
Короче, исключительно в образовательных целях и от острой нелюбви к корпоративным сервисам, решил поднять свой сервер.
Из требований набросал абсолютный минимум для выживания:
• чтобы работало железобетонно;
• видеозвонки и пуши прямо из коробки;
• глухой End-to-End шифр. Никто, включая маркетологов и даже меня самого (админа с полным доступом к базе), не должен при всём желании суметь расшифровать секретный ингредиент семейной шарлотки. Ключи остаются только на устройствах;
• ну и чтобы это влезло на самый дешманский VPS. Исключительно (лол) в рамках поддержки отечественного производителя (ну и ради норм пинга) сервер логично брать прямо внутри страны.
Остановился на Matrix. На пальцах: это как популярные мессенджеры, только сервер твой и правила твои. Официальный сервак (Synapse) жрёт оперативку так, словно это Chrome с парой сотен открытых вкладок. Поэтому я взял Conduit — он написан на Rust и отлично себя чувствует даже на смарт-микроволновке.
Самая дикая боль вылезла со звонками. Наши доблестные операторы обожают лепить жёсткий NAT, из-за которого прямые WebRTC-соединения тупо дохнут. Чтобы звонки не отваливались при каждом переходе от вышки сотовой связи к домашнему Wi-Fi, я поднял TURN-сервер на Coturn и пустил трафик по TLS. Теперь всё работает стабильно и красиво.
Ещё один прикол: некоторые мобильные клиенты при первом запуске ломятся на глобальный matrix.org и радостно ловят таймаут. Чтобы окончательно закрепить статус «сына маминой подруги», я ещё на этапе регистрации поднял веб-клиент прямо на своём сервере. Зашла по ссылке, вбила логин-пароль, кликнула диплинк — и её перекинуло в мобилу. Профит.
Делать это всё руками мне физически больно. Поэтому я собрал всё добро в один bash-скрипт. Он делает всё под ключ: ставит Docker, настраивает firewall, дёргает SSL от Let’s Encrypt, генерит конфиги, поднимает связку на чистом Debian 12 и разворачивает веб-морду для регистрации.
По деньгам: Домен — рублей 150 в год. Отечественный VPS — 160–200 ₽ в месяц (если поискать по акции). То есть свой self-hosted мессенджер без корпоративного надзора обходится дешевле, чем выпить чашку хорошего спешелти кофе из воронки.
Сообщения летают, звонки не квакают, мама довольна, рецепты под надёжным замком.
Скрипт и мануал (если любите контролировать каждый конфиг ручками) выложил на GitHub:
https://github.com/TimiQA/nodus/tree/main

Буду рад токсичной (и не очень) критике от суровых админов и тех, кто собаку съел на Matrix. Что тут можно докрутить, чтобы работало как швейцарские часы?

reddit.com
u/bender_69 — 13 days ago