feat: init vlc-sender
This commit is contained in:
64
docs/vlc-sender.md
Normal file
64
docs/vlc-sender.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# VLC Sender
|
||||
|
||||
Веб-приложение для отправки медиафайлов на VLC через WiFi Upload API.
|
||||
|
||||
## Архитектура
|
||||
|
||||
- **Backend**: Express (TypeScript) — API для навигации по файлам и отправки на VLC
|
||||
- **Frontend**: Single-file HTML/CSS/JS в `src/public/index.html`
|
||||
- **Docker**: multi-stage build на node:22-alpine
|
||||
|
||||
## API
|
||||
|
||||
| Endpoint | Метод | Описание |
|
||||
|----------|-------|----------|
|
||||
| `/api/files?path=` | GET | Список файлов/папок (name, size, isDir). Корень — список томов |
|
||||
| `/api/send` | POST | Отправка файлов на VLC, возвращает SSE с прогрессом |
|
||||
|
||||
### POST /api/send
|
||||
```json
|
||||
{ "ip": "243", "files": ["Torrents/movie.mkv"] }
|
||||
```
|
||||
Путь файла: `{volume_label}/{subpath}`. Ответ — SSE stream с событиями: `start`, `done`, `error`, `complete`.
|
||||
|
||||
## VLC API
|
||||
|
||||
VLC принимает файлы через `POST http://192.168.1.{ip}:80/upload.json` (multipart/form-data, поле `file`).
|
||||
|
||||
## Переменные окружения
|
||||
|
||||
| Переменная | Значение по умолчанию | Описание |
|
||||
|---|---|---|
|
||||
| `PORT` | `3000` | Порт сервера |
|
||||
| `MEDIA_PATHS` | `/media` | Тома для отображения (см. ниже) |
|
||||
|
||||
### MEDIA_PATHS
|
||||
|
||||
Поддерживает несколько томов через запятую. Два формата:
|
||||
|
||||
```bash
|
||||
# С лейблами
|
||||
MEDIA_PATHS=Torrents:/data/torrents,Media:/data/media
|
||||
|
||||
# Без лейблов (имя директории = лейбл)
|
||||
MEDIA_PATHS=/data/torrents,/data/media
|
||||
```
|
||||
|
||||
Обратная совместимость: `MEDIA_PATH` (без S) тоже поддерживается для одного тома.
|
||||
|
||||
## Docker
|
||||
|
||||
```bash
|
||||
docker build -t vlc-sender .
|
||||
```
|
||||
|
||||
`compose.yaml` использует `network_mode: host` для доступа к устройствам в локальной сети. Тома настраиваются в `.env` (см. `.env.example`).
|
||||
|
||||
## Структура
|
||||
|
||||
```
|
||||
src/
|
||||
├── index.ts # Express сервер + API
|
||||
└── public/
|
||||
└── index.html # Фронтенд (single file)
|
||||
```
|
||||
Reference in New Issue
Block a user