правки в транспорт сообщений + немного мониторинга
This commit is contained in:
+152
-1
@@ -8,7 +8,7 @@
|
||||
- (без спец.символов) openssl rand -hex 16
|
||||
- openssl rand -base64 16 | xclip -selection clipboard # Linux
|
||||
|
||||
Туннель до БД: ssh -i C:\Users\MI\.ssh\hansel -L 5433:192.168.0.211:5433 root@135.106.164.58 -N
|
||||
Туннель до БД: ssh -i C:\Users\MI\.ssh\hansel -L 5433:192.168.0.211:5432 root@135.106.164.58 -N
|
||||
|
||||
#Обновление проекта
|
||||
|
||||
@@ -90,6 +90,28 @@ mkdir -p ~/.postgresql/
|
||||
wget https://storage.dbaas.selcloud.ru/CA.pem -O ~/.postgresql/root.crt
|
||||
chmod 0600 ~/.postgresql/root.crt
|
||||
|
||||
### Правки DNS-маршрутизации (в прошлый раз, какие-то трабблы были с базовой маршрутизацией) - скрипт ниже создаст
|
||||
sudo tee /etc/netplan/99-han-dns.yaml <<'EOF'
|
||||
network:
|
||||
version: 2
|
||||
ethernets:
|
||||
eth0:
|
||||
nameservers:
|
||||
addresses:
|
||||
- 8.8.8.8
|
||||
- 1.1.1.1
|
||||
search:
|
||||
- selcloud.ru
|
||||
eth1:
|
||||
dhcp4-overrides:
|
||||
use-dns: false
|
||||
use-domains: false
|
||||
EOF
|
||||
|
||||
sudo chmod 600 /etc/netplan/99-han-dns.yaml
|
||||
sudo netplan apply
|
||||
resolvectl flush-caches
|
||||
|
||||
### Проверка подключения к Postgers в ВМ
|
||||
nc -zv 192.168.0.211 5433
|
||||
|
||||
@@ -292,3 +314,132 @@ docker compose --env-file .env ps
|
||||
docker compose --env-file .env logs --tail=200 <SERVICE_NAME>
|
||||
docker inspect "$(docker compose --env-file .env ps -q <SERVICE_NAME>)"
|
||||
```
|
||||
|
||||
## Первоначальный выпуск TLS-сертификата
|
||||
|
||||
Для ACME требуется работающий nginx по HTTP. В `.env` оставьте
|
||||
`NGINX_TLS_ENABLED=true`, но первый nginx запустите с временным переопределением:
|
||||
|
||||
```sh
|
||||
NGINX_TLS_ENABLED=false \
|
||||
docker compose --env-file .env up -d frontend-static nginx
|
||||
```
|
||||
|
||||
Проверьте HTTP:
|
||||
|
||||
```sh
|
||||
curl -I http://chat.han0107.ru/
|
||||
```
|
||||
|
||||
Сначала рекомендуется проверить Certbot через staging:
|
||||
|
||||
```sh
|
||||
docker compose --env-file .env --profile certbot run --rm certbot certonly \
|
||||
--staging \
|
||||
--webroot -w /var/www/certbot \
|
||||
-d chat.han0107.ru \
|
||||
--cert-name chat.han0107.ru-staging \
|
||||
--email ap@han.ru \
|
||||
--agree-tos --no-eff-email --non-interactive
|
||||
```
|
||||
|
||||
После успешного staging-теста выпустите рабочий сертификат с основным cert-name
|
||||
без `--staging`:
|
||||
|
||||
```sh
|
||||
docker compose --env-file .env --profile certbot run --rm certbot certonly \
|
||||
--webroot -w /var/www/certbot \
|
||||
-d chat.han0107.ru \
|
||||
--cert-name chat.han0107.ru \
|
||||
--email ap@han.ru \
|
||||
--agree-tos --no-eff-email --non-interactive
|
||||
```
|
||||
|
||||
Пересоздайте nginx уже с TLS:
|
||||
|
||||
```sh
|
||||
docker compose --env-file .env up -d --force-recreate nginx
|
||||
docker compose --env-file .env exec -T nginx nginx -t -c /tmp/nginx.conf
|
||||
curl -I https://chat.han0107.ru/
|
||||
```
|
||||
|
||||
Повторно запустите VM setup, чтобы он обнаружил проект и установил systemd-таймер
|
||||
продления сертификата:
|
||||
|
||||
```sh
|
||||
sudo /opt/han-chat/backend/deployment/scripts/setup-vm.sh
|
||||
systemctl status han-chat-ssl-renew.timer
|
||||
|
||||
## Запуск всего контура
|
||||
|
||||
Теперь можно привести весь проект к состоянию, описанному Compose:
|
||||
|
||||
```sh
|
||||
cd /opt/han-chat/backend
|
||||
docker compose --env-file .env up -d
|
||||
docker compose --env-file .env ps
|
||||
```
|
||||
|
||||
Проверьте, что контейнеры не перезапускаются:
|
||||
|
||||
```sh
|
||||
docker compose --env-file .env ps
|
||||
docker compose --env-file .env logs --since=10m
|
||||
```
|
||||
|
||||
|
||||
## Публичная проверка
|
||||
|
||||
Запустите smoke-тест:
|
||||
|
||||
```sh
|
||||
cd /opt/han-chat/backend
|
||||
deployment/scripts/smoke.sh
|
||||
```
|
||||
|
||||
Также вручную проверьте:
|
||||
|
||||
```sh
|
||||
curl -fsS https://chat.han0107.ru/api/v1/public/app-config | jq
|
||||
curl -fsS https://chat.han0107.ru/api/v1/public/content | jq
|
||||
curl -fsS \
|
||||
https://chat.han0107.ru/auth/realms/han-chat/.well-known/openid-configuration | jq
|
||||
```
|
||||
|
||||
Внутренний API не должен быть опубликован:
|
||||
|
||||
```sh
|
||||
curl -i https://chat.han0107.ru/internal/safety/v1/messages/check
|
||||
```
|
||||
|
||||
Ожидаемый статус — `404`.
|
||||
|
||||
Откройте в браузере:
|
||||
|
||||
```text
|
||||
https://chat.example.ru/
|
||||
```
|
||||
|
||||
Для тестовой авторизации используйте значение `KEYCLOAK_OTP_MOCK_CODE` из `.env`.
|
||||
|
||||
|
||||
Настройки keykcloack:
|
||||
|
||||
|
||||
|
||||
|
||||
Для битрикса код установки приложения:
|
||||
docker compose --env-file .env exec -T api-backend python - <<'PY'
|
||||
import os
|
||||
import urllib.request
|
||||
|
||||
base = os.environ["BITRIX_LOCAL_APP_BASE_URL"]
|
||||
token = os.environ["BITRIX_LOCAL_APP_INTERNAL_TOKEN"]
|
||||
|
||||
request = urllib.request.Request(
|
||||
base + "/internal/openlines/v1/setup/retry",
|
||||
method="POST",
|
||||
headers={"Authorization": "Bearer " + token},
|
||||
)
|
||||
print(urllib.request.urlopen(request).read().decode())
|
||||
PY
|
||||
Reference in New Issue
Block a user