Привет! Кажется, что если тема о самохостинге, то напрашивается самособой вариант комнаты в матрице. Сейчас это похоже единственный адекватный вариант чата для самохостинга.
Что думаете?
Привет! Кажется, что если тема о самохостинге, то напрашивается самособой вариант комнаты в матрице. Сейчас это похоже единственный адекватный вариант чата для самохостинга.
Что думаете?
А отсюда напрашивается еще пачка вопросов =)
Просто запустить на дешевом VPS?
Не прокатит.
Нужно организовать отказоустойчивость, а это уже кубер, ресурсы на аренду и поддержку.
Модерировать еще 1 пространство?
У меня, к сожалению - временных ресурсов более нет.
Если кто-то готов поднять, оплачивать и модерировать - пишите, подумаем.
Субдомен matrix направить на ip задача не сложная.
PS
Вопрос “зачем?” я не задаю, но он имеется, как и ЧАТ встроенный в движок форума =)
Форум классный и чат тут прикольный. Матрикс на хоумсервере - это ж не только публичная рума. Когда телегу давят, то для самих себя в этих условиях нужно что-то независящее. В целом матрица сейчас единственная с хорошим клиентом доя всех устройств.
У меня алармы летят всякие и тп в матриксе. Телега без впн - все.
На дешнвом vps для этой цели не получится. Как только федерацию делаешь общедоступной, он начинает кушать ресурсы, а делать регистопуию только в пределах одного сервера, скорее всего, для такой цели нет.
У себя развернул его на Orange Pi 5 Plus для семьи и близких друзей, как резервный канал связи. 30 рользователей тянет без проблем, но федеоация закрытая, т.е. он не взаимодействует с другими серверами матрикс. Так же использую его для нотификаций с камеры, Home Assistant и n8n.
Пока мало статистики, но федерация на синапс открыта, прогружает сильно, когда добавляет кто-то новую руму большую. А потом норм.
я поднял себе на домашнем серваке, посадил туда родню, все довольны.
федерация работает, так, для теста пару каналов подключал и за сутки насобирал 20Gb всякого мусора, потом выпилился из этих комнат.
самое удобное - это мосты в тг и кацап.
последнее время вообще не захожу в телегу, общаюсь в ней через мост, очень удобно, поднастроил что бы автоматом создавались личные комнаты, а каналы и группы уже добавил через фильтры в тг боте в матриксе нужные.
время будет еще и вацап прикручу.
А есть инструкция подробная, как это все поднять у себя?
А по поводу подключения и настройки ТГ-моста есть инструкция?
Возможно ли 2, 3, 4 акка телеги подклюбчить через 1 мост? Или нужно будет добавлять каким-то макаром 2, 3, 4 моста к матриксу?
Тестирую на vps-ке 1cpu, 2Gb RAM - на нескольких пользователей работает нормально (звонки не тестил, здесь конечно нагрузка сразу будет большой).
Сегодня размышлял, что для семьи и друзей даже такой маленькой VPS-ки хватает по cpu/ram, а вот диска в 10Gb точно не хватит, как только все начнут фотки и видео слать, а брать доп.объем у провайдера дорого.
В качестве решения можно поднять тоннель между homelab и vps, смонтировать на VPS через NFS шару с homelab и настроить запись медиа в неё. Тогда получим “бесплатный диск” ограниченный только вашей лабой. Конечно в таком решении могут быть недостатки, но оно точно работает и даже очень неплохо. У меня так две удаленные друг от друга лабы обмениваются данными и всё ок.
Вот гайд по которому я настраивал: YouTube
Репа: ссылка
Домен для тестов бесплатно можно взять на duckdns, с ним всё работает без проблем.
Для нашего комьюнити конечно было бы неплохо такое иметь, но то что это всё нужно грамотно настраивать, админить и оплачивать - это факт.
Как вариант завести копилку, которая будет демонстрировать текущий баланс и потребность в средствах на следующий квартал, чтобы продлить аренду инфраструктуры и на кофе админу. Если комьюнити рублём не проголосует, значит и не будет никакого месенджера, если проголосует, то будет. Категорически согласен с тем, что финансово комьюнити обязано помогать при реализации таких проектов с учётом контекста.
P.s. готов помочь и оплатить на 3-6 месяцев сервер для пилотирования проекта и получения обратной связи от комьюнити.
Я тоже решил поднять свой Matrix-сервер. В качестве движка выбрал Tuwunel.
Все настройки делал через переменные окружения в Docker Compose. Авторизация (SSO) привязана к VoidAuth через OIDC.
services:
tuwunel:
image: jevolk/tuwunel:latest
container_name: tuwunel
restart: unless-stopped
volumes:
- ./tuwunel-db:/var/lib/tuwunel
networks:
- proxy1
environment:
# Настройки домена и порта
TUWUNEL_SERVER_NAME: ${MAIN_DOMAIN}
TUWUNEL_DATABASE_PATH: /var/lib/tuwunel
TUWUNEL_PORT: 6167
TUWUNEL_ADDRESS: 0.0.0.0
TUWUNEL_MAX_REQUEST_SIZE: 20000000 # Лимит на вложения
# Федерация
TUWUNEL_ALLOW_FEDERATION: "true"
TUWUNEL_TRUSTED_SERVERS: '["matrix.org", "vorsente.com", "unredacted.org", "kde.org", "mozilla.org", "gnome.org", "fedora.im", "tchncs.de", "archlinux.org"]'
TUWUNEL_FEDERATION_TIMEOUT: 120
TUWUNEL_REQUEST_TIMEOUT: 120
# Настройки обнаружения
TUWUNEL_WELL_KNOWN__CLIENT: https://${MAIN_DOMAIN}
TUWUNEL_WELL_KNOWN__SERVER: ${MAIN_DOMAIN}:443
# Интеграция с SSO (VoidAuth)
TUWUNEL_IDENTITY_PROVIDER__0__BRAND: VoidAuth
TUWUNEL_IDENTITY_PROVIDER__0__NAME: VoidAuth
TUWUNEL_IDENTITY_PROVIDER__0__CLIENT_ID: tuwunel-matrix
TUWUNEL_IDENTITY_PROVIDER__0__CLIENT_SECRET: # Сюда ваш секрет
TUWUNEL_IDENTITY_PROVIDER__0__ISSUER_URL: https://auth.${MAIN_DOMAIN}/oidc
TUWUNEL_IDENTITY_PROVIDER__0__CALLBACK_URL: https://${MAIN_DOMAIN}/_matrix/client/unstable/login/sso/callback/tuwunel-matrix
TUWUNEL_IDENTITY_PROVIDER__0__TRUSTED: true
TUWUNEL_IDENTITY_PROVIDER__0__REGISTRATION: true
# Политика входа
TUWUNEL_SINGLE_SSO: true # Авторедирект на SSO в клиентах вроде Element
TUWUNEL_ALLOW_REGISTRATION: "false" # Регистрация только через провайдера SSO
TUWUNEL_LOGIN_WITH_PASSWORD: "false"
# Доп. сервисы и оптимизация
TUWUNEL_TURN_URIS: '["stun:stun.l.google.com:19302", "stun:stun1.l.google.com:19302"]'
CONDUIT_ZSTD_COMPRESSION: true
CONDUIT_GZIP_COMPRESSION: true
CONDUIT_BROTLI_COMPRESSION: true
# Превью ссылок
TUWUNEL_URL_PREVIEW_DOMAIN_EXPLICIT_ALLOWLIST: '["google.com", "youtube.com", "youtu.be", "github.com", "gitlab.com", "wikipedia.org", "archlinux.org", "reddit.com", "t.me", "twitter.com", "x.com", "instagram.com", "steampowered.com", "warframe.com", "minecraft.net"]'
TUWUNEL_URL_PREVIEW_MAX_SPIDER_SIZE: 1048576
# Разрешение видимости публичных комнат и пользователей сервера в федерации
CONDUIT_ALLOW_PUBLIC_ROOM_DIRECTORY_OVER_FEDERATION: true
CONDUIT_ALLOW_PUBLIC_ROOM_DIRECTORY_WITHOUT_AUTH: true
CONDUIT_ALLOW_PUBLIC_ROOM_SEARCH_BY_ID: true
CONDUIT_SHOW_ALL_LOCAL_USERS_IN_USER_DIRECTORY: true
networks:
proxy1:
external: true
Для корректной федерации важно прокинуть пути /_matrix и /.well-known:
http:
routers:
matrix:
entryPoints:
- https-wan
- https-lan
middlewares:
- secured
service: matrix
rule: Host(`${MAIN_DOMAIN}`) && (PathPrefix(`/_matrix`) || PathPrefix(`/.well-known/matrix`))
priority: 100
tls:
certResolver: cloudflare
services:
matrix:
loadBalancer:
servers:
- url: http://tuwunel:6167
passHostHeader: true
По поводу связи: для групповых звонков требуется дополнительная настройка Matrix RTC. Я этого делать не стал, так как использую проксирование через Cloudflare, а Matrix RTC через него на бесплатном тарифе не завести. Тем не менее, обычные личные звонки (1 на 1) работают отлично через стандартные TURN-серверы Google, которые я прописал в конфиге.
На данный момент полет нормальный. Админка (!admin rooms list) показывает 48 комнат. База данных ./tuwunel-db весит всего 1.1 ГиБ.
Где лучше поднять в VM или LXC?
Если LXC, то привилегированный или нет?
у меня живет в непривилегированном lxc
Где сейчас купить домен на долгосрок с учётом грядущих блокировок? Безальтернативно отечественный регистрор?
Временно для теста поднял synapse на duckdns, но нужно что-то более надёжное на длинной дистанции.
Beget себе выбрал. Не жалуюсь. Я не профи в выборе, опыта с другими нет.