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:
- Сайты → Создать сайт.
- Домен:
matrix.stackworks.ru. - PHP можно не использовать.
- Включить SSL/Let's Encrypt для домена.
- Проверить, что сайт открывается по 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.