ParleyChat/README.md
2026-07-03 23:28:45 +03:00

97 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ParleyChat
---
## На базе этого чата я воспроизвожу сценарий CI/CD
на текущий момент (июль 2026) никаких тестов нет, мне просто нужен был рабочий приватный чат,
в дальнейшем это проект будет развиваться, так как если бы это был типичный прод
в моем случае разрабами и QA будет выступать нейронка, а я буду исполнять свою часть работы как девопс
---
![Icon](icon.png)
простой чат, можно обмениваться только текстом
### Рекомендации
- настроить админа в бд в методе initDB() сразу
- либо можно помнять прям в cli ``` sqlite3 /opt/parley/chat.db "UPDATE users SET password = 'новый_пароль' WHERE username = 'admin';" ```
- очиститьь переменные на всякий случай
```bash
$env:GOOS = "linux"
$env:GOARCH = "amd64"
$env:CGO_ENABLED = "0"
```
- сбилдить бинарник
```bash
go build -o parley main.go
```
- положить на сервер
- сделать его исполняемым
- написать к нему сервис и сделать enabled(см. сервис)
- настроить nginx(конфиг)
- дать nginx разрешение на чтение файлов фронта (в зависимости от того где лежит приложение - ```sudo chmod -R 755 /opt/parley/static/ и sudo chown -R www-data:www-data /opt/parley/static/ ```)
- установить sqlite: apt-get install -y sqlite3
- начать использвать
### конфиги
#### nginx /etc/nginx/sites-available/default
- СДЕЛАЙ БЭКАП ПРЕЖДЕ ЧЕМ ЧТО-ТО ДЕЛАТЬ!!!!!
```bash
# --- PARLEY CHAT ---
location = /parley {
return 301 /parley/;
}
location /parley/ {
proxy_pass http://127.0.0.1:3100/parley/;
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 $scheme;
proxy_set_header X-Forwarded-Prefix /parley;
}
location /parley/static/ {
alias /opt/parley/static/;
expires 30d;
add_header Cache-Control "public, immutable";
}
# --- PARLEY CHAT END ---
```
- проверь что изменения в nginx применились успешно и перезагрузи
```bash
sudo nginx -t
sudo systemctl reload nginx
```
#### сервис
```bash
sudo nano /etc/systemd/system/parley.service
```
```ini
[Unit]
Description=Parley Chat Service
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/parley
Environment="BASE_PATH=/parley"
ExecStart=/opt/parley/parley
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
```
##### запуск сервиса
```bash
sudo systemctl daemon-reload
sudo systemctl enable parley
sudo systemctl start parley
sudo systemctl status parley
# проверим что слушает порт
sudo netstat -tlnp | grep 3100
```