Добавлена пошаговая инструкция подключения FastPanel proxy к SWChat Core
Этот коммит содержится в:
@@ -0,0 +1,188 @@
|
||||
# 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.
|
||||
Ссылка в новой задаче
Block a user