Files
SWChat/docs/DEPLOY_FASTPANEL_PROXY_STEPS.md
T

4.7 KiB

SWChat — пошаговое подключение FastPanel reverse proxy → Core

Переменные

Заменить значения перед выполнением:

FASTPANEL_PROXY_IP = IP сервера с FastPanel, где будут домены и SSL
CORE_SERVER_IP     = IP Core-сервера, где работает SWChat/Synapse
MATRIX_DOMAIN      = matrix.stackworks.ru
CHAT_DOMAIN        = chat.stackworks.ru или messenger.stackworks.ru

1. DNS

В панели DNS домена stackworks.ru создать A-записи:

matrix.stackworks.ru    A    FASTPANEL_PROXY_IP
chat.stackworks.ru      A    FASTPANEL_PROXY_IP

Если используется messenger.stackworks.ru, добавить:

messenger.stackworks.ru A    FASTPANEL_PROXY_IP

Проверка с любого компьютера:

nslookup matrix.stackworks.ru
nslookup chat.stackworks.ru

Ожидается IP FastPanel proxy сервера.

2. Core-сервер

На Core-сервере проверить, что Synapse работает локально:

cd /opt/swchat/source
docker ps
curl http://127.0.0.1:8008/_matrix/client/versions

Ожидается JSON Matrix API.

Проверить, открыт ли порт 8008:

ss -tulpn | grep 8008

3. Разрешить FastPanel доступ к Core:8008

На Core-сервере разрешить доступ к Synapse только с FastPanel proxy сервера.

Если используется UFW:

ufw allow from FASTPANEL_PROXY_IP to any port 8008 proto tcp
ufw deny 8008/tcp
ufw status numbered

Важно: сначала allow, потом deny.

Проверка с FastPanel-сервера:

curl http://CORE_SERVER_IP:8008/_matrix/client/versions

Ожидается JSON Matrix API.

4. FastPanel: создать сайт matrix.stackworks.ru

В FastPanel:

  1. Сайты → Создать сайт.
  2. Домен: matrix.stackworks.ru.
  3. PHP можно не использовать.
  4. Включить SSL/Let's Encrypt для домена.
  5. Проверить, что сайт открывается по HTTPS.

5. FastPanel/Nginx proxy для matrix.stackworks.ru

В настройках сайта matrix.stackworks.ru добавить Nginx proxy-конфигурацию.

CORE_SERVER_IP заменить на IP Core-сервера.

location / {
    proxy_pass http://CORE_SERVER_IP:8008;

    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;

    client_max_body_size 100M;
    proxy_read_timeout 600s;
    proxy_send_timeout 600s;
}

После сохранения перезагрузить конфигурацию сайта через FastPanel.

6. Проверка Matrix через публичный домен

С локального компьютера или любого сервера:

curl -I https://matrix.stackworks.ru/_matrix/client/versions
curl https://matrix.stackworks.ru/_matrix/client/versions

Ожидается:

HTTP/2 200

И JSON Matrix API.

7. Создание первого пользователя Matrix

На Core-сервере:

docker exec -it swchat-synapse register_new_matrix_user \
  -c /data/homeserver.yaml \
  http://localhost:8008

Далее ввести:

  • username;
  • password;
  • admin: yes/no.

Для первого пользователя рекомендуется admin: yes.

8. Проверка входа через Element

Открыть Element Web/Desktop/Android.

Homeserver:

https://matrix.stackworks.ru

Войти созданным пользователем.

Проверить:

  • логин;
  • создание комнаты;
  • отправку сообщения;
  • отправку изображения/файла.

9. Web-клиент SWChat

После успешной проверки Matrix через Element можно создавать сайт:

chat.stackworks.ru

На FastPanel-сервере он будет использоваться для будущего web-клиента SWChat.

До успешного Matrix-теста собственный web/android клиент не начинать.

10. Что не делать

Не размещать на FastPanel:

  • PostgreSQL Matrix;
  • Synapse DB;
  • media storage Matrix;
  • backups Matrix;
  • TURN/STUN.

Не трогать:

  • artistflow.ru;
  • widget.stackworks.ru;
  • production FastPanel, если это не отдельный proxy-сервер SWChat.