2026-06-30 10:58:37 +03:00
# ParleyChat
2026-07-03 23:28:45 +03:00
---
## Н а базе этого чата я воспроизвожу сценарий CI/CD
на текущий момент (июль 2026) никаких тестов нет, мне просто нужен был рабочий приватный чат,
в дальнейшем это проект будет развиваться, так как если бы это был типичный прод
в моем случае разрабами и QA будет выступать нейронка, а я буду исполнять свою часть работы как девопс
---
2026-06-30 11:31:59 +03:00

2026-06-30 10:58:37 +03:00
2026-06-30 11:22:38 +03:00
простой чат, можно обмениваться только текстом
### Рекомендации
2026-06-30 11:31:59 +03:00
- настроить админа в бд в методе initDB() сразу
- либо можно помнять прям в cli ``` sqlite3 /opt/parley/chat.db "UPDATE users SET password = 'но вый_па р о ль' WHERE username = 'admin';" ` ``
2026-06-30 11:22:38 +03:00
- очиститьь переменные на всякий случай
```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
```