189 строки
4.7 KiB
Markdown
189 строки
4.7 KiB
Markdown
# SWChat — пошаговое подключение FastPanel reverse proxy → Core
|
|
|
|
## Переменные
|
|
|
|
Заменить значения перед выполнением:
|
|
|
|
```text
|
|
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-записи:
|
|
|
|
```text
|
|
matrix.stackworks.ru A FASTPANEL_PROXY_IP
|
|
chat.stackworks.ru A FASTPANEL_PROXY_IP
|
|
```
|
|
|
|
Если используется `messenger.stackworks.ru`, добавить:
|
|
|
|
```text
|
|
messenger.stackworks.ru A FASTPANEL_PROXY_IP
|
|
```
|
|
|
|
Проверка с любого компьютера:
|
|
|
|
```bash
|
|
nslookup matrix.stackworks.ru
|
|
nslookup chat.stackworks.ru
|
|
```
|
|
|
|
Ожидается IP FastPanel proxy сервера.
|
|
|
|
## 2. Core-сервер
|
|
|
|
На Core-сервере проверить, что Synapse работает локально:
|
|
|
|
```bash
|
|
cd /opt/swchat/source
|
|
docker ps
|
|
curl http://127.0.0.1:8008/_matrix/client/versions
|
|
```
|
|
|
|
Ожидается JSON Matrix API.
|
|
|
|
Проверить, открыт ли порт 8008:
|
|
|
|
```bash
|
|
ss -tulpn | grep 8008
|
|
```
|
|
|
|
## 3. Разрешить FastPanel доступ к Core:8008
|
|
|
|
На Core-сервере разрешить доступ к Synapse только с FastPanel proxy сервера.
|
|
|
|
Если используется UFW:
|
|
|
|
```bash
|
|
ufw allow from FASTPANEL_PROXY_IP to any port 8008 proto tcp
|
|
ufw deny 8008/tcp
|
|
ufw status numbered
|
|
```
|
|
|
|
Важно: сначала `allow`, потом `deny`.
|
|
|
|
Проверка с FastPanel-сервера:
|
|
|
|
```bash
|
|
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-сервера.
|
|
|
|
```nginx
|
|
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 через публичный домен
|
|
|
|
С локального компьютера или любого сервера:
|
|
|
|
```bash
|
|
curl -I https://matrix.stackworks.ru/_matrix/client/versions
|
|
curl https://matrix.stackworks.ru/_matrix/client/versions
|
|
```
|
|
|
|
Ожидается:
|
|
|
|
```text
|
|
HTTP/2 200
|
|
```
|
|
|
|
И JSON Matrix API.
|
|
|
|
## 7. Создание первого пользователя Matrix
|
|
|
|
На Core-сервере:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```text
|
|
https://matrix.stackworks.ru
|
|
```
|
|
|
|
Войти созданным пользователем.
|
|
|
|
Проверить:
|
|
- логин;
|
|
- создание комнаты;
|
|
- отправку сообщения;
|
|
- отправку изображения/файла.
|
|
|
|
## 9. Web-клиент SWChat
|
|
|
|
После успешной проверки Matrix через Element можно создавать сайт:
|
|
|
|
```text
|
|
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.
|