Files
SWChat/docs/DEPLOY_FASTPANEL_PROXY_STEPS.md

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.