Обновить

Комментарии 37

Очередной продукт жизнедеятельности нейросетки. Чтение полузаброшенных форумов с редкими постами уже стало интереснее, чем как бы живой ресурс с вот этим. Хоть бы потрудился написать в промпте “напиши похоже на человека” или “давай без эмодзи”. Даже если бы этот текст не был сгенерирован, польза такой инструкции нулевая без описания СВОЕГО опыта использования matrix.

В 10:15 приглашен, через пол часа статья. Ну надо же как-то минусить"неугодных" и заплюсовывать "правильных". А я вот даже минус поставить не могу (((

Кому-то статья в Песочнице сразу понравилась?

В 10:15 приглашен, через пол часа статья. Ну надо же как-то минусить"неугодных" и заплюсовывать "правильных". А я вот даже минус поставить не могу (((

Тут не понял в чём вопрос. Я данную статью написал примерно неделю назад, она лежала в песочнице. Затем статью одобрили и мне выдали приглашение а не наоборот.

Да я не мастер текстов, попросил нейросекту сформировать пошаговую инструкцию на моих готовых конфигах. Она по сути помогла отчистить конфиги и расписать по шагам. Сам пользуюсь matrix уже примерно месяц, при условии постоянно вылетающих впн и не работающих прокси, вполне себе решение для общения (учитывая что мосты так же работают и можно через него переписыватсья в телеграм обходя блокировки). А вот форумы не сильно помогли в этом вопросе, очень много устаревших конфигов которые не работают.

Сразу вопрос, почему для хранения медиа не использовалось S3 ?

Как реализованы мосты, напрямую с сервера или через proxy ?

А расположение сервера на территории страны где ограничены WhatsApp и TG, если нет, то какова вероятность что сервер попадет под веерные блокировки и element превратиться в тыкву ?

Зачем авторизацию именно Google ?

Сразу вопрос, почему для хранения медиа не использовалось S3 ?

Возможно это следующий шаг, "проект" живой постоянно его допиливаю, по ходу буду дополнять статью.

Как реализованы мосты, напрямую с сервера или через proxy ?

У меня в домашней сети (где пока расположен сервер) настроена маршрутизация до серверов Telegram и WhatsApp, забыл это в тексте упомянуть.

А расположение сервера на территории страны где ограничены WhatsApp и TG, если нет, то какова вероятность что сервер попадет под веерные блокировки и element превратиться в тыкву ?

Сервер на территории РФ, пока работает, проблемы с блокировкой буду решать по ходу.

Зачем авторизацию именно Google ?

Потому что у всей целевой аудитории (семья, друзья, коллеги) есть гугл аккаунты. Соответственно это проще, чем каждому логин пароль придумывать.

Не знаю ответит ли автор или нет, но вопрос про упомянутые белые списки - каким боком это решение поможет их обойти?

Скажем так, это чисто результат эксперимента, на данный момент когда включают белые списки, данное решение работает с мобильного интернета (возможно это только в моём городе так)

Ну это значит ваш сервер на котором вы запустили Matrix находится в белых списках, больше эту магию никак нельзя объяснить

Тоже страннно, это простой IP домашнего интернета, при этом к дому по VPN я подключиться не могу (блочат) а Matrix работает. Честно не вникал как это работает, но чисто из любопытства, могу попробовать провести более детальный анализ.

4–8 ГБ (рекомендуется 6+)

Такие требования всегда отпугивали меня от установки Synapse для маленького круга общения.

Если цель в уютном чате для друзей и семьи, то можно попробовать установить Tuwunel (или форки форков) и уместить всё в 1 Гб ОЗУ. При этом федерация, LiveKit, все клиенты будут работать.
Ещё если ограничиться Element Desktop / Element Classic (который больше не обновляется) то вместо LiveKit можно использовать легковесный coturn для звонков 1-1.

А есть инструкция для установки этого варианта?

Точнее, есть ли пошаговая инструкция, которую вы можете посоветовать?

Пошаговой инструкции у меня нет. Я настроил LLM агента на извлечение необходимого контекста из документации https://matrix-construct.github.io/tuwunel/ и затем на генерацию ansible плейбуков для моих условий.

Ещё если ограничиться Element Desktop / Element Classic (который больше не обновляется) то вместо LiveKit можно использовать легковесный coturn для звонков 1-1.

Тут дело в том, что я хотел изначально всё реализовать с гугл аутентификацией, потому что так мне проще, чем всем генерить логины пароли, а с гугл аутентификацией не Element Classic не работает, только Element X он же в свою очередь не заработал с coturn.

Если цель в уютном чате для друзей и семьи, то можно попробовать установить Tuwunel (или форки форков) и уместить всё в 1 Гб ОЗУ

Возможно, не рассматривал данное решение. На самом деле сейчас на моём сервере по факту используется 2гб ОЗУ, 6+ это рекомендованное значение, которое я примерно посчитал сложив все компоненты.

Не очень понял, зачем несколько постгресов в сетапе?

Не очень понял, зачем несколько постгресов в сетапе?

Я считаю что так надёжней и проще. Но, у меня не было ограничений по ОЗУ, так что если всё держать в одном постгрес, будет нужно меньше ресурсов.

Зачем делать всё вручную, если есть matrix-docker-ansible-deploy?

Тут две причины в данном случае:
1. Изначально хотел сам всё настроить, что бы понимать как всё будет работать
2. В matrix-docker-ansible-deploy есть не все сервисы которые мне были нужны

для докер компоста уже давно есть на гите более толковая инструкция, кроме того, есть на официальном гите элемента/матрицы чарт для разворачивания сервака хелмом в кубере.

вот если б ты посмотрел статью запили, как это все сделать нативно в системд, то цены б тебе не было.

а так - кг/км.

для докер компоста уже давно есть на гите более толковая инструкция

Скажем та инструкция частично устарела, не всё по ней работает. В данной статье моя реализация, моего домашнего сервера, с моим виденьем как лучше это сделать. Причём изложена максимально простым языком. Специально не стал расписывать значение параметров и уходить в тонкости, что бы не перегружать инструкцию.

Честно, не понял зачем нужен этот монстр, которого нужно администрировать самостоятельно, если у вас на маршрутизаторе работает vless? А что мешает напрямую войти в тг и др ресурсы и не делать хранение переписки в уязвимой прослойке + головняк с администрированием?

Поясню, vless на маршрутизаторе работает только в локальной сети дома, вне дома последнее время vless тоже часто перестаёт работать, пока однозначно динамику не понял, но очень часто в любом виде не работает. Изначально я вообще хотел развернуть любой мессенджер для родни, но в процессе поисков наткнулся на matrix с его бридж, оказалось вполне удобно. И не такая уж она уязвимая, там все сообщения шифруются, вплоть до того, что если потеряешь свой ключ шифрования, то начинаешь переписки с чистого листа. Ну и изначально было интересно попробовать развернуть, посмотреть, что из этого выйдет, вышло вполне рабочее решение. В условиях когда другое не работает, есть канал связи.

Спасибо за статью. Пытаюсь разобратся с МАС вместе с синапсом. Никак не могу понять как пользователю зарегистрироваться через МАС без использования внешних провайдеров. На странице регистрации только кнопка "У вас уже есть аккаунт?". А как зарегистрировать аккаунт через вёб интерфейс?

В теории в конфиг /opt/matrix-synapse/mas-config/config.yaml нужно добавить:

# --- НАСТРОЙКИ ВХОДА ПО ПАРОЛЮ ---
passwords:
  enabled: true                      # Показывает форму входа
  minimum_complexity: 3

# --- НАСТРОЙКИ РЕГИСТРАЦИИ ---
account:
  password_registration_enabled: true   # РАЗРЕШАЕТ РЕГИСТРАЦИЮ НОВЫХ ПОЛЬЗОВАТЕЛЕЙ по паролю
  registration_token_required: false    # НЕ ТРЕБУЕТ инвайт-токен при регистрации

registration:
  enabled: true                         # ГЛОБАЛЬНО ВКЛЮЧАЕТ РЕГИСТРАЦИЮ в MAS
  requires_email_verification: false    # МОЖНО ВКЛЮЧИТЬ ПОТОМ

Сейчас не могу проверить действительно сработает или нет. Позже разверну тестовый сервер гляну.

Да спасибо. В официальной документации это очень глубоко запрятано в самом конце. Я столкнулся еще с проблемой входа в элемент-веб. Через приложение заходит отлично, но элемент веб при входе присылает ошибку. В логах мас ошибка mas_handlers::oath2::token::163 POST-4375 The signing key is invalid. Не сталкивались с этим? Уже всю голову сломал.

Возможно поможет ключи перегенерить:

cd /opt/matrix-synapse
docker compose stop matrix-auth
mv mas-config/config.yaml mas-config/config.yaml.old
docker run --rm ghcr.io/element-hq/matrix-authentication-service:latest config generate > mas-config/config.yaml
nano mas-config/config.yaml

и из файлаconfig.yaml.old

  • database:: строка uri

  • matrix:: ваши старые значения homeserver и secret.

  • upstream_oauth2:: если аутентификация гугл то скопировать client_id и client_secret.

И запустите контейнер обратно

docker compose up -d matrix-auth

И synapse тоже

docker compose restart synapse

Да разобрался. Битый файл с ключём был. Подскажи еще пожалуйста в конфигахYOUR_TURN_SHARED_SECRET вместо него вставлять секрет из лайфкита?

Изначально у меня был настроен cotur и в итоговых конфигах забыл удалить эти строки закоментируйте или удалите эти строки так как в данном случае livekit использует встроенный turn:
turn_uris: - "turn:matrix.ваш-домен.ru:3478?transport=udp" - "turns:matrix.ваш-домен.ru:5349?transport=tcp"turn_shared_secret: "YOUR_TURN_SHARED_SECRET"

При звонке после соединения сбрасывает с ошибкой "Не достаточная пропускная способность сети", не сталкивались с таким?

Удалось победить. У вас ошибка в конфиге
room: auto_create: true
должно быть false - так написано в официальных доках к LIVEKIT JWT

Да, вы правы, должно быть false походу в процессе написания статьи ошибся, так как в моих конфигах так же false.

В ближайшее время хочу немного поправить статью с учётом найденных ошибок и более в удобном виде конфиги написать. Так же хочу попробовать сделать сборку с максимально низкими системными требованиями, что бы на VDS можно было развернуть.

Хотел сделать регистрацию сразу через element x, по инвайт токену. Но пока не могу победить. Никто не разбирался?

Попробовал настроить по вашей инструкции, только вместо Nginx у меня npm.
Не могу понять во первых почему не работают звонки, как сделать обычную авторизацию и регистрацию через mas по логин паролю так и не понял т.к. он пытается отправить код на почту, а отправлялку smtp я не видел тут настройки( плюс из за такой авторизации когда заходишь на element web не даёт дальше кнопки продолжить пройти). Приходится вручную пути указывать /login /register и т.д. Плюс в конфигах не указано как использовать переменные из .env файла.
Сможете подсказать как это всё реализовать правильно?

Причина проста - клиентское приложение работает через quic (udp/443), а npm не умеет в quic. Запрос на добавление поддержки http/3 https://github.com/nginxproxymanager/nginx-proxy-manager/pull/5296

Вам подойдут npmplus, caddy или traefik - они умеют в quic

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации