daily update 2026-03-29
This commit is contained in:
Vendored
BIN
Binary file not shown.
@@ -0,0 +1,46 @@
|
||||
---
|
||||
title: "docs.a2v.space Basic Auth"
|
||||
date: 2026-03-29
|
||||
tags: ["docs", "authentication", "nginx"]
|
||||
description: "Учетные данные для доступа к docs.a2v.space"
|
||||
---
|
||||
|
||||
## Basic Authentication
|
||||
|
||||
```bash
|
||||
Username: agaltsovav
|
||||
Password: Magamet787!
|
||||
```
|
||||
|
||||
## Конфигурация Nginx
|
||||
|
||||
```nginx
|
||||
server {
|
||||
listen 8091;
|
||||
server_name docs.a2v.space;
|
||||
|
||||
auth_basic "Restricted Access";
|
||||
auth_basic_user_file /etc/nginx/.htpasswd;
|
||||
}
|
||||
```
|
||||
|
||||
## Доступ
|
||||
|
||||
- **URL**: https://docs.a2v.space (через reverse proxy)
|
||||
- **Local**: http://localhost:8091 (для разработки)
|
||||
- **Auth**: всегда требуется
|
||||
|
||||
## Мастер-пароль для шифрования
|
||||
|
||||
**Важно**: Пароль для расшифровки файлов в разделе `creds/`
|
||||
|
||||
```bash
|
||||
Master Password: Popoloka16!
|
||||
```
|
||||
|
||||
## Шифрование
|
||||
|
||||
- Алгоритм: AES-256-GCM
|
||||
- Хранилище: client-side encryption
|
||||
- Файлы шифруются при сохранении
|
||||
- Расшифровываются при чтении
|
||||
@@ -0,0 +1,37 @@
|
||||
---
|
||||
title: "Eversolo Companion PostgreSQL"
|
||||
date: 2026-03-29
|
||||
tags: ["eversolo", "companion", "postgresql", "docker"]
|
||||
description: "Учетные данные для базы данных Eversolo Companion"
|
||||
---
|
||||
|
||||
## Docker Compose креды (~/Projects/eversolo-companion/docker-compose.yml)
|
||||
|
||||
```yaml
|
||||
services:
|
||||
postgres:
|
||||
environment:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: password
|
||||
POSTGRES_DB: eversolo
|
||||
```
|
||||
|
||||
## Локальные креды (.env файл)
|
||||
|
||||
```bash
|
||||
POSTGRES_USER=postgres
|
||||
POSTGRES_PASSWORD=password
|
||||
POSTGRES_DB=eversolo
|
||||
```
|
||||
|
||||
## Хостинг
|
||||
|
||||
- **Host**: localhost
|
||||
- **Port**: 5433
|
||||
- **Database**: eversolo
|
||||
|
||||
## Безопасность
|
||||
|
||||
- Используйте разные пароли для production
|
||||
- Включите SSL для удаленного подключения
|
||||
- Регулярно делайте бэкапы
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
title: "Mac Studio — leadera-api БД (docker-compose)"
|
||||
description: "PostgreSQL (docker-compose) для Leadera"
|
||||
service: "PostgreSQL"
|
||||
date: 2026-03-29
|
||||
tags: ["postgresql", "docker-compose", "leadera", "database"]
|
||||
---
|
||||
|
||||
{{< encrypted-creds >}}
|
||||
NYVK4PEGwmOHmAnGk8IAUc+lyFJtnEAvX6ZddBro/ILRWHOXBGYywgglFvQZ18BLDLb5DuA8GPAIdB/LwTHRXYO0KsmtlZQVWGEeeXlXAoEXpa5theoOQhebkW6LmiKyNGAVW2z9rK3nz6NnztYdn49LvGMjrHuR4IwCLbl/pYa96CPNRnxGDFlduFi8lMSspM0rBFi/bZhNGhzy36ViCl+aKr5P9cle0ZvM8E8av/6c5JjgDt88QFI3VYdTaTCE0+uHsXlnJN7Qgg/KH7kD
|
||||
{{< /encrypted-creds >}}
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
title: "Mac Studio — leadera-api БД (локальная)"
|
||||
description: "PostgreSQL (Docker) для Leadera"
|
||||
service: "PostgreSQL"
|
||||
date: 2026-03-29
|
||||
tags: ["postgresql", "docker", "leadera", "database"]
|
||||
---
|
||||
|
||||
{{< encrypted-creds >}}
|
||||
p7Iw7Y3zbj1kLBcbOXGoO27oDwF85AhxBW7saT538hxi0ogJpyFeM49GDuLHzxuyknvdNC/rx3tb4AFnGkCeHSrrCmj+VK8Zxt7ujeujVJSRuOeeUlsqkHdlmaiXl2KQknrIsqVCi3Tnn0V5qcFxvo+1Ktc+surF6bBpWrTHzWV5mLtWVfD6C6kvvP/UFldFBD6v+FQs79yfoOe/j/bUrtpt6v5VndbbBmhUAQcy1BV2rpXxO373dTcLQ6coRWkt/RFo
|
||||
{{< /encrypted-creds >}}
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
title: "VPN VPS"
|
||||
description: "VPN сервер (Amnezia)"
|
||||
service: "VPN"
|
||||
date: 2026-03-29
|
||||
tags: ["vpn", "amnezia", "infrastructure"]
|
||||
---
|
||||
|
||||
{{< encrypted-creds >}}
|
||||
YEI16NAJ78d3lmSa/lca8Zxczt+u6GyMUYHduX47VoFQdj0Ixozd8R6yXoB7eM+AjhCtNGkOxGlOj2s73ABOBjLEIVIhD4Z+xTyzdtah4VpyLoltYOeNYsnbIIFARdF/FBYq5COXohhXs33K5ozznrtDd/awbKMjl/sbQqjXAZ+A3ZSob6/5uU+fFKetXLR6v4ZLAYQ57iiD21ImSLSggwv+rJgK5XyPDKEPD4N5nOsiDrLgoukVBMvgJ54PqfPp2Hni+2tdKOlMnOG2npTuu4SkyALcfFar
|
||||
{{< /encrypted-creds >}}
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
title: "VPS reg.ru"
|
||||
description: "VPS хостинг (реверс-прокси)"
|
||||
service: "VPS"
|
||||
date: 2026-03-29
|
||||
tags: ["vps", "reg.ru", "infrastructure"]
|
||||
---
|
||||
|
||||
{{< encrypted-creds >}}
|
||||
IpYXLMtgCFlGQ550DZCLjq37VsnNqL08Rn03iRS7kQ7ozBZNsiZySFzDAvYh4xIHytRDy0Sz0KGUXekr0S+cNiJsmtZ8kj0Pd0JhevhxTMZF2khFvs/LFWoTL5ZwAJ34y/qfLw2gaWX90VZDu0wO+KeAQeXhrWmol/2zUlfWX1AihyYqD2vRz+h2FcjD8ubYOXG35PyX7OlV1HPXgDv5X/bFNrxzPc867UOwB4aGxY9a
|
||||
{{< /encrypted-creds >}}
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
title: "29 марта 2026"
|
||||
date: 2026-03-29
|
||||
tags: ["angular", "go", "docker", "eversolo", "hugo", "docs", "identity", "infrastructure", "companion"]
|
||||
---
|
||||
|
||||
## Timeline
|
||||
|
||||
- **20:03** — Настроили Angular + Go проекты (leadera) через pm2, удалили proxy.conf, подняли PostgreSQL в Docker
|
||||
- **20:31** — Изучили API Eversolo T8 — полный список REST-эндпоинтов для управления музыкой
|
||||
- **20:49** — Обсудили важность записи контекста в файлы для сохранения памяти между сессиями
|
||||
- **21:13** — Начали проект docs.a2v.space — персональная документация на Hugo
|
||||
- **21:44** — Завершили настройку Identity (Братан, SOUL.md, USER.md, IDENTITY.md)
|
||||
- **22:15** — Документировали инфраструктуру: VPS reverse proxy (claw.a2v.space, code.a2v.space, sand.a2v.space, docs.a2v.space)
|
||||
- **22:31** — Настроили docs.a2v.space: Hugo сайт, 83 страницы, Bootstrap 5 тёмная тема, AES-256-GCM шифрование кредов (мастер-пароль: Popoloka16!)
|
||||
- **22:47** — Добавили Basic auth: agaltsovav / Magamet787! для доступа к документации
|
||||
- **23:02** — Создали cron задачу docs-a2v-daily-sync на ежедневное обновление в 03:00 МСК
|
||||
- **23:18** — Полностью задокументировали Eversolo T8 API (воспроизведение, громкость, дисплей, питание, поиск и т.д.)
|
||||
- **23:45** — Переписали TOOLS.md как полный справочник по инфраструктуре
|
||||
|
||||
## Eversolo Companion — статус проекта
|
||||
|
||||
**Backend (Go + Gin):**
|
||||
- Репозиторий: ~/Projects/eversolo-companion
|
||||
- Состояние: собран, 17+ REST API эндпоинтов, WebSocket, CORS, state poller
|
||||
|
||||
**Frontend (Angular 17):**
|
||||
- Состояние: собран, тёмная тема (Spotify-like), 5 экранов, 5 сервисов
|
||||
- Dev server: pm2 (eversolo-fe), порт 8096
|
||||
|
||||
**Инфраструктура:**
|
||||
- PostgreSQL: Docker, порт 5433, миграции готовы
|
||||
- Docker Compose: рабочий (postgres + api + frontend)
|
||||
|
||||
**Проблема:** нет доступа к Eversolo из OpenClaw sandbox (192.168.0.156)
|
||||
- Решение: настройка tools.elevated.allowFrom.webchat или запуск через launchd
|
||||
|
||||
**Следующие шаги:** после решения сети — этапы 3-9 (библиотека sync, плейлисты, scrobbler, обложки)
|
||||
@@ -0,0 +1,75 @@
|
||||
---
|
||||
title: "Подключение claw.a2v.space (OpenClaw)"
|
||||
date: 2026-03-29
|
||||
tags: ["openclaw", "ssh", "nginx", "vps", "reverse-proxy"]
|
||||
---
|
||||
|
||||
## Архитектура
|
||||
|
||||
```
|
||||
Mac Studio (192.168.0.37:18789)
|
||||
→ autossh SSH-туннель
|
||||
→ VPS 95.163.232.9:8080
|
||||
→ nginx HTTPS
|
||||
→ https://claw.a2v.space
|
||||
```
|
||||
|
||||
## Шаги настройки
|
||||
|
||||
### 1. DNS
|
||||
|
||||
A-запись `claw.a2v.space` → `95.163.232.9`
|
||||
|
||||
NS-серверы: `ns1.hosting.reg.ru`, `ns2.hosting.reg.ru`
|
||||
|
||||
### 2. Mac Studio — OpenClaw
|
||||
|
||||
- Порт: 18789
|
||||
- Конфиг: `~/.openclaw/openclaw.json`
|
||||
|
||||
### 3. SSH-туннель (launchd)
|
||||
|
||||
Plist: `~/Library/LaunchAgents/com.openclaw.sshtunnel.plist`
|
||||
|
||||
Ключевой флаг: `-R 8080:localhost:18789`
|
||||
|
||||
### 4. VPS — nginx конфиг
|
||||
|
||||
```nginx
|
||||
server {
|
||||
listen 80;
|
||||
server_name claw.a2v.space;
|
||||
return 301 https://$server_name$request_uri;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
server_name claw.a2v.space;
|
||||
|
||||
ssl_certificate /etc/letsencrypt/live/claw.a2v.space/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/claw.a2v.space/privkey.pem;
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
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;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 5. SSL-сертификат
|
||||
|
||||
```bash
|
||||
certbot certonly --nginx -d claw.a2v.space
|
||||
```
|
||||
|
||||
### 6. OpenClaw config
|
||||
|
||||
```json
|
||||
{
|
||||
"allowedOrigins": ["https://claw.a2v.space"],
|
||||
"trustedProxies": ["127.0.0.1"]
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,59 @@
|
||||
---
|
||||
title: "Подключение code.a2v.space (OpenCode)"
|
||||
date: 2026-03-29
|
||||
tags: ["opencode", "ssh", "nginx", "vps", "reverse-proxy"]
|
||||
---
|
||||
|
||||
## Архитектура
|
||||
|
||||
```
|
||||
Mac Studio (localhost:4096)
|
||||
→ autossh SSH-туннель (-R 8081:localhost:4096)
|
||||
→ VPS 95.163.232.9:8081
|
||||
→ nginx HTTPS
|
||||
→ https://code.a2v.space
|
||||
```
|
||||
|
||||
## Параметры
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| Локальный порт | 4096 |
|
||||
| Туннель порт | 8081 |
|
||||
| pm2 процесс | `opencode` |
|
||||
| SSL сертификат | `/etc/letsencrypt/live/code.a2v.space/` |
|
||||
|
||||
## nginx конфиг
|
||||
|
||||
```nginx
|
||||
server {
|
||||
listen 80;
|
||||
server_name code.a2v.space;
|
||||
return 301 https://$server_name$request_uri;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
server_name code.a2v.space;
|
||||
|
||||
ssl_certificate /etc/letsencrypt/live/code.a2v.space/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/code.a2v.space/privkey.pem;
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:8081;
|
||||
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_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## SSL-сертификат
|
||||
|
||||
```bash
|
||||
certbot certonly --nginx -d code.a2v.space
|
||||
```
|
||||
@@ -0,0 +1,73 @@
|
||||
---
|
||||
title: "Подключение sand.a2v.space (Leadera Project)"
|
||||
date: 2026-03-29
|
||||
tags: ["angular", "go", "docker", "nginx", "vps", "reverse-proxy"]
|
||||
---
|
||||
|
||||
## Архитектура
|
||||
|
||||
```
|
||||
Mac Studio
|
||||
├─ Frontend (Angular) :4200 (pm2: leadera-fe)
|
||||
├─ Backend (Go) :8080 (pm2: leadera-api)
|
||||
└─ PostgreSQL 16 в Docker (Colima, container: app-leadera-db)
|
||||
→ autossh SSH-туннель (-R 8082:localhost:4200 -R 8083:localhost:8080)
|
||||
→ VPS 95.163.232.9
|
||||
→ nginx HTTPS
|
||||
→ https://sand.a2v.space
|
||||
```
|
||||
|
||||
## Параметры
|
||||
|
||||
| Компонент | Локальный порт | Туннель порт | pm2 имя |
|
||||
|-----------|----------------|--------------|---------|
|
||||
| Frontend (Angular) | 4200 | 8082 | leadera-fe |
|
||||
| Backend (Go) | 8080 | 8083 | leadera-api |
|
||||
|
||||
SSL сертификат: `/etc/letsencrypt/live/sand.a2v.space/`
|
||||
|
||||
## nginx конфиг
|
||||
|
||||
```nginx
|
||||
server {
|
||||
listen 80;
|
||||
server_name sand.a2v.space;
|
||||
return 301 https://$server_name$request_uri;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
server_name sand.a2v.space;
|
||||
|
||||
ssl_certificate /etc/letsencrypt/live/sand.a2v.space/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/sand.a2v.space/privkey.pem;
|
||||
|
||||
location /api {
|
||||
proxy_pass http://127.0.0.1:8083;
|
||||
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;
|
||||
}
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:8082;
|
||||
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;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## База данных
|
||||
|
||||
PostgreSQL 16 в Docker через Colima:
|
||||
- Container: `app-leadera-db`
|
||||
- Port: 5432
|
||||
|
||||
## SSL-сертификат
|
||||
|
||||
```bash
|
||||
certbot certonly --nginx -d sand.a2v.space
|
||||
```
|
||||
@@ -0,0 +1,72 @@
|
||||
---
|
||||
title: "SSH туннели для VPS reverse proxy"
|
||||
date: 2026-03-29
|
||||
tags: ["ssh", "tunnel", "vps", "reverse-proxy"]
|
||||
description: "Настройка SSH туннелей для доступа к сервисам на Mac Studio через VPS"
|
||||
---
|
||||
|
||||
## Настройка SSH туннелей
|
||||
|
||||
### VPS reg.ru (95.163.232.9)
|
||||
|
||||
```bash
|
||||
# На Mac Studio: создать туннель для каждого сервиса
|
||||
ssh -N -R 8080:localhost:8080 root@95.163.232.9 # leadera-api
|
||||
ssh -N -R 8081:localhost:4096 root@95.163.232.9 # opencode
|
||||
ssh -N -R 8082:localhost:4200 root@95.163.232.9 # leadera-fe
|
||||
ssh -N -R 8083:localhost:8080 root@95.163.232.9 # docs-a2v
|
||||
```
|
||||
|
||||
### Настройка launchd plist
|
||||
|
||||
**Файл**: `~/Library/LaunchAgents/com.openclaw.sshtunnel.plist`
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>Label</key>
|
||||
<string>com.openclaw.sshtunnel</string>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>ssh</string>
|
||||
<string>-N</string>
|
||||
<string>-R</string>
|
||||
<string>8080:localhost:8080</string>
|
||||
<string>root@95.163.232.9</string>
|
||||
</array>
|
||||
<key>RunAtLoad</key>
|
||||
<true/>
|
||||
<key>KeepAlive</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
```
|
||||
|
||||
### Автозапуск
|
||||
|
||||
```bash
|
||||
# Загрузить plist
|
||||
launchctl load ~/Library/LaunchAgents/com.openclaw.sshtunnel.plist
|
||||
|
||||
# Проверить статус
|
||||
launchctl list | grep sshtunnel
|
||||
|
||||
# Удалить (при необходимости)
|
||||
launchctl unload ~/Library/LaunchAgents/com.openclaw.sshtunnel.plist
|
||||
```
|
||||
|
||||
## Доступ к сервисам
|
||||
|
||||
Через reverse proxy на VPS:
|
||||
- **code.a2v.space**: порт 8080 → Mac Studio:4096
|
||||
- **claw.a2v.space**: порт 8081 → Mac Studio:8080 (leadera-api)
|
||||
- **sand.a2v.space**: порт 8082 → Mac Studio:4200 (leadera-fe)
|
||||
- **docs.a2v.space**: порт 8083 → Mac Studio:8080 (docs-a2v)
|
||||
|
||||
## SSL
|
||||
|
||||
Все сервисы используют Let's Encrypt сертификаты:
|
||||
- Путь: `/etc/letsencrypt/live/{claw,code,sand}.a2v.space/`
|
||||
- Автопродление через certbot
|
||||
@@ -0,0 +1,102 @@
|
||||
---
|
||||
title: "Настройка VPS как реверс-прокси"
|
||||
date: 2026-03-29
|
||||
tags: ["vps", "nginx", "ssh", "reverse-proxy", "devops"]
|
||||
---
|
||||
|
||||
## Общая схема
|
||||
|
||||
```
|
||||
Mac Studio (локальная сеть)
|
||||
→ autossh (SSH-туннели)
|
||||
→ VPS 95.163.232.9 (Debian)
|
||||
→ nginx (HTTPS reverse proxy)
|
||||
→ интернет
|
||||
```
|
||||
|
||||
## Что нужно на VPS
|
||||
|
||||
### 1. Установленные пакеты
|
||||
|
||||
```bash
|
||||
apt update
|
||||
apt install nginx certbot python3-certbot-nginx
|
||||
```
|
||||
|
||||
### 2. SSH-доступ
|
||||
|
||||
- Авторизация только по ключам
|
||||
- Публичный ключ с Mac Studio добавлен в `/root/.ssh/authorized_keys`
|
||||
|
||||
### 3. nginx
|
||||
|
||||
Для каждого домена создать server block:
|
||||
|
||||
- HTTP → редирект на HTTPS
|
||||
- HTTPS с SSL-сертификатом Let's Encrypt
|
||||
- `proxy_pass` на localhost-порт туннеля
|
||||
|
||||
Пример структуры:
|
||||
|
||||
```
|
||||
/etc/nginx/sites-available/
|
||||
claw.a2v.space.conf
|
||||
code.a2v.space.conf
|
||||
sand.a2v.space.conf
|
||||
```
|
||||
|
||||
### 4. SSL-сертификаты
|
||||
|
||||
```bash
|
||||
certbot certonly --nginx -d <domain>
|
||||
certbot renew --dry-run # проверить автообновление
|
||||
```
|
||||
|
||||
## Что нужно на Mac Studio
|
||||
|
||||
### autossh через launchd
|
||||
|
||||
Plist: `~/Library/LaunchAgents/com.openclaw.sshtunnel.plist`
|
||||
|
||||
Один plist с несколькими `-R` флагами:
|
||||
|
||||
```xml
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>/usr/local/bin/autossh</string>
|
||||
<string>-M</string>
|
||||
<string>0</string>
|
||||
<string>-R</string>
|
||||
<string>8080:localhost:18789</string>
|
||||
<string>-R</string>
|
||||
<string>8081:localhost:4096</string>
|
||||
<string>-R</string>
|
||||
<string>8082:localhost:4200</string>
|
||||
<string>-R</string>
|
||||
<string>8083:localhost:8080</string>
|
||||
<string>root@95.163.232.9</string>
|
||||
<string>-N</string>
|
||||
<string>-i</string>
|
||||
<string>/Users/<user>/.ssh/id_rsa</string>
|
||||
</array>
|
||||
```
|
||||
|
||||
### Управление launchd
|
||||
|
||||
```bash
|
||||
launchctl load ~/Library/LaunchAgents/com.openclaw.sshtunnel.plist
|
||||
launchctl start com.openclaw.sshtunnel
|
||||
launchctl stop com.openclaw.sshtunnel
|
||||
```
|
||||
|
||||
## Проверка
|
||||
|
||||
```bash
|
||||
# На VPS
|
||||
ss -tlnp | grep -E '808[0-3]'
|
||||
|
||||
# Снаружи
|
||||
curl -I https://claw.a2v.space
|
||||
curl -I https://code.a2v.space
|
||||
curl -I https://sand.a2v.space
|
||||
```
|
||||
@@ -0,0 +1,89 @@
|
||||
---
|
||||
title: "Eversolo T8 API"
|
||||
date: 2026-03-29
|
||||
tags: ["api", "eversolo", "music", "streamer"]
|
||||
---
|
||||
|
||||
Eversolo T8 — музыкальный стример.
|
||||
|
||||
**IP:** 192.168.0.156
|
||||
**Порт:** 9529
|
||||
**Авторизация:** нет
|
||||
|
||||
Базовый URL: `http://192.168.0.156:9529`
|
||||
|
||||
## Воспроизведение
|
||||
|
||||
| Действие | URL |
|
||||
|----------|-----|
|
||||
| Play/Pause | `/ZidooMusicControl/v2/playOrPause` |
|
||||
| Следующий трек | `/ZidooMusicControl/v2/playNext` |
|
||||
| Предыдущий трек | `/ZidooMusicControl/v2/playLast` |
|
||||
| Перемотка (ms) | `/ZidooMusicControl/v2/seekTo?time=<ms>` |
|
||||
| Воспроизвести по ID | `/ZidooMusicControl/v2/playMusic?type=4&id=<id>` |
|
||||
| Состояние | `/ZidooMusicControl/v2/getState` |
|
||||
|
||||
## Громкость
|
||||
|
||||
| Действие | URL |
|
||||
|----------|-----|
|
||||
| Громкость вверх | `/ZidooControlCenter/RemoteControl/sendkey?key=Key.VolumeUp` |
|
||||
| Громкость вниз | `/ZidooControlCenter/RemoteControl/sendkey?key=Key.VolumeDown` |
|
||||
| Точная громкость | `/ZidooMusicControl/v2/setDevicesVolume?volume=<0-200>` |
|
||||
| Mute | `/ZidooMusicControl/v2/setMuteVolume?isMute=1` |
|
||||
| Unmute | `/ZidooMusicControl/v2/setMuteVolume?isMute=0` |
|
||||
|
||||
## Входы/Выходы
|
||||
|
||||
| Действие | URL |
|
||||
|----------|-----|
|
||||
| Получить список | `/ZidooMusicControl/v2/getInputAndOutputList` |
|
||||
| Установить вход | `/ZidooMusicControl/v2/setInputList?tag=<tag>&index=<n>` |
|
||||
| Установить выход | `/ZidooMusicControl/v2/setOutInputList?tag=<tag>&index=<n>` |
|
||||
|
||||
Теги выхода: RCA, XLRRCA, XLR, HDMI, SPDIF, USB
|
||||
|
||||
## Дисплей
|
||||
|
||||
| Действие | URL |
|
||||
|----------|-----|
|
||||
| Яркость экрана (get) | `/SystemSettings/displaySettings/getScreenBrightness` |
|
||||
| Яркость экрана (set) | `/SystemSettings/displaySettings/setScreenBrightness?index=<0-115>` |
|
||||
| Яркость ручки (get) | `/SystemSettings/displaySettings/getKnobBrightness` |
|
||||
| Яркость ручки (set) | `/SystemSettings/displaySettings/setKnobBrightness?index=<0-255>` |
|
||||
| VU-режим (get) | `/SystemSettings/displaySettings/getVUModeList` |
|
||||
| VU-режим (set) | `/SystemSettings/displaySettings/setVUMode?index=<n>` |
|
||||
| Спектр (get) | `/SystemSettings/displaySettings/getSpPlayModeList` |
|
||||
| Спектр (set) | `/SystemSettings/displaySettings/setSpPlayModeList?index=<n>` |
|
||||
| Переключить VU/Спектр | `/ZidooMusicControl/v2/changVUDisplay?openType=<0|1>` |
|
||||
|
||||
## Питание
|
||||
|
||||
| Действие | URL |
|
||||
|----------|-----|
|
||||
| Параметры питания | `/ZidooMusicControl/v2/getPowerOption` |
|
||||
| Перезагрузка | `/ZidooMusicControl/v2/setPowerOption?tag=reboot` |
|
||||
| Выключение | `/ZidooMusicControl/v2/setPowerOption?tag=poweroff` |
|
||||
| Переключить экран | `/ZidooMusicControl/v2/setPowerOption?tag=screen` |
|
||||
| Включить экран | `/ZidooControlCenter/RemoteControl/sendkey?key=Key.Screen.ON` |
|
||||
| Выключить экран | `/ZidooControlCenter/RemoteControl/sendkey?key=Key.Screen.OFF` |
|
||||
|
||||
## Поиск
|
||||
|
||||
| Поиск | URL |
|
||||
|-------|-----|
|
||||
| По трекам | `/ZidooMusicControl/v2/searchMusicV2?key=<text>&start=0&count=100` |
|
||||
| По артистам | `/ZidooMusicControl/v2/searchArtistV2?key=<text>&start=0&count=100` |
|
||||
| По альбомам | `/ZidooMusicControl/v2/searchAlbumV2?key=<text>&start=0&count=100` |
|
||||
|
||||
## Обложки и устройство
|
||||
|
||||
| Действие | URL |
|
||||
|----------|-----|
|
||||
| Обложка по ID | `/ZidooMusicControl/v2/getImage?id=<song_id>&target=16` |
|
||||
| Модель устройства | `/ControlCenter/getModel` |
|
||||
|
||||
## Источники
|
||||
|
||||
- [Zidoo Forum](https://forum.zidoo.tv/index.php?threads/some-api.96983/)
|
||||
- [Home Assistant Integration](https://github.com/hchris1/Eversolo/blob/main/custom_components/eversolo/api.py)
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
title: "Завершить Eversolo Companion - этапы 3-9"
|
||||
date: 2026-03-29
|
||||
plan_date:
|
||||
status: planned
|
||||
done_date:
|
||||
context_quote: "UI готов, API готов, БД готова — но API не может достучаться до Eversolo из-за ограничений OpenClaw sandbox"
|
||||
tags: ["eversolo", "companion", "angular", "go", "docker"]
|
||||
---
|
||||
|
||||
## Описание
|
||||
|
||||
Завершить разработку Eversolo Companion после решения проблемы с сетевым доступом.
|
||||
|
||||
## Что сделано
|
||||
|
||||
- **Backend (Go + Gin)**: собран, 17+ REST API эндпоинтов, WebSocket, CORS, state poller
|
||||
- **Frontend (Angular 17)**: собран, тёмная тема (Spotify-like), 5 экранов, 5 сервисов
|
||||
- **PostgreSQL**: Docker, порт 5433, миграции готовы
|
||||
- **Docker Compose**: рабочий (postgres + api + frontend)
|
||||
- **Спецификация**: полная в ~/Projects/eversolo-companion/SPEC.md
|
||||
|
||||
## Проблема
|
||||
|
||||
API не может достучаться до Eversolo T8 (192.168.0.156:9529) из-за ограничений OpenClaw sandbox.
|
||||
|
||||
## Возможные решения
|
||||
|
||||
1. Настроить `tools.elevated.allowFrom.webchat` для разрешения сетевых соединений
|
||||
2. Запустить API через launchd plist (как SSH туннели)
|
||||
3. Использовать отдельный контейнер без ограничений
|
||||
|
||||
## Этапы 3-9 (после решения сети)
|
||||
|
||||
1. **Библиотека синхронизации** — двухсторонний sync с Eversolo
|
||||
2. **Плейлисты** — импорт/экспорт, редактирование
|
||||
3. **Scrobbler** — Last.fm / ListenBrainz
|
||||
4. **Обложки** — кэширование, отображение в UI
|
||||
5. **Плеер** — улучшенный интерфейс управления
|
||||
6. **Система уведомлений** — события от Eversolo
|
||||
7. **Администрирование** — настройка подключений
|
||||
|
||||
## Связанные ресурсы
|
||||
|
||||
- [Спецификация проекта](/docs/eversolo-companion-spec/)
|
||||
- [API документация](/kb/eversolo-api/)
|
||||
- [Дневник разработки](/diary/2026-03-29/)
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
title: "Реализовать управление Eversolo из OpenClaw"
|
||||
date: 2026-03-29
|
||||
plan_date:
|
||||
status: planned
|
||||
done_date:
|
||||
context_quote: "API изучен, записан в TOOLS.md. Проблема: нет доступа к LAN из sandbox OpenClaw."
|
||||
tags: ["eversolo", "openclaw", "api"]
|
||||
---
|
||||
|
||||
## Описание
|
||||
|
||||
Добавить инструменты управления Eversolo T8 в OpenClaw.
|
||||
|
||||
## Что сделано
|
||||
|
||||
- Изучен полный API Eversolo T8 (см. [Базу знаний](/kb/eversolo-api/))
|
||||
|
||||
## Проблема
|
||||
|
||||
Sandbox OpenClaw не имеет доступа к локальной сети, где находится Eversolo.
|
||||
|
||||
## Возможные решения
|
||||
|
||||
1. Настроить проброс портов
|
||||
2. Запустить OpenClaw без sandbox-ограничений
|
||||
3. Использовать промежуточный proxy-сервис
|
||||
@@ -0,0 +1,21 @@
|
||||
---
|
||||
title: "Настроить интеграцию Ollama с OpenClaw"
|
||||
date: 2026-03-29
|
||||
plan_date:
|
||||
status: planned
|
||||
done_date:
|
||||
context_quote: "Добавлен qwen3.5:9b в openclaw.json, но модель не появилась в openclaw models list. Отложено по решению Антона."
|
||||
tags: ["ollama", "openclaw", "llm"]
|
||||
---
|
||||
|
||||
## Описание
|
||||
|
||||
Добавить поддержку Ollama в OpenClaw для использования локальных LLM моделей.
|
||||
|
||||
## Проблема
|
||||
|
||||
Модель `qwen3.5:9b` добавлена в конфиг `openclaw.json`, но не отображается в `openclaw models list`.
|
||||
|
||||
## Статус
|
||||
|
||||
Отложено по решению Антона.
|
||||
Reference in New Issue
Block a user