docs: Update README for v3.7 release

This commit is contained in:
vndangkhoa 2026-02-18 19:15:20 +07:00
parent 7d696a93af
commit e788043395

198
README.md
View file

@ -1,86 +1,148 @@
# StreamFlow V3.7 # StreamFlow V3.7
StreamFlow is a high-performance video streaming web application featuring a pure Go backend and a modern React + Tailwind frontend. A high-performance video streaming web application with a pure Go backend and modern React + Tailwind frontend.
## 🚀 Features ## Features
- **Modern UI**: Built with React, TypeScript, and Tailwind CSS for a premium, responsive experience. - **Modern UI** - React 19, TypeScript, Vite 7, Tailwind CSS 4
- **High Performance**: Backend written in Go (Golang) for speed and concurrency. - **High Performance** - Go backend with concurrent API fetching
- **Smart Scraping**: Integrated scraping engine (Rophim) with automated episode extraction. - **Smart Scraping** - Multi-provider support (Ophim, PhimMoiChill)
- **HLS Streaming**: Native HLS playback support. - **HLS Streaming** - Native HLS playback with proxy support
- **Android TV Support**: Optimized TV client with D-pad controls and 10s skip. - **Android TV** - Native TV app with D-pad controls and 10s skip
- **Performance Optimized**: Parallel API fetching and global image caching for instant loading. - **PWA Support** - Install as a progressive web app
- **Android TV App**: Native TV app support with dedicated APK available for download. - **Docker Ready** - Multi-stage build for Synology NAS (linux/amd64)
- **Docker Ready**: Multi-stage Docker build optimized for NAS Synology (linux/amd64).
- **PWA Support**: Install as a progressive web app on mobile devices.
## 🛠️ Tech Stack ## Tech Stack
- **Backend**: Go 1.23 (Chi Router, GORM, GoQuery) | Component | Technology |
- **Frontend**: React 19, TypeScript, Vite 7, Tailwind CSS 4 |-----------|------------|
- **Database**: SQLite | Backend | Go 1.24, Chi Router, GORM, SQLite |
- **Deployment**: Docker | Frontend | React 19, TypeScript, Vite 7, Tailwind CSS 4 |
| Mobile | Android TV (Kotlin + Jetpack Compose) |
| Deployment | Docker multi-stage build |
## 📦 Installation ## Quick Start
### Prerequisites ### Docker (Recommended)
- Go 1.23+ ```yaml
- Node.js 20+ # docker-compose.yml
- Docker (optional) version: '3.8'
services:
streamflow:
image: git.khoavo.myds.me/vndangkhoa/kv-streamflow:v3.7
container_name: streamflow
platform: linux/amd64
ports:
- "3478:8000"
environment:
- DATABASE_URL=/app/data/streamflow.db
- TZ=Asia/Ho_Chi_Minh
volumes:
- ./data:/app/data
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8000/api/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
```
```bash
docker-compose up -d
```
Access at: `http://YOUR_NAS_IP:3478`
### Local Development ### Local Development
1. **Backend** **Prerequisites:** Go 1.24+, Node.js 20+
```bash
cd backend
go mod tidy
go run ./cmd/server/main.go
```
Server runs at `http://localhost:8000`.
2. **Frontend** ```bash
```bash # Backend (port 8000)
cd frontend-react cd backend
npm install go mod tidy
npm run dev go run ./cmd/server/main.go
```
Frontend runs at `http://localhost:5173` (proxying to backend).
### Docker Deployment (Recommended for NAS Synology) # Frontend (port 5173)
cd frontend-react
npm install
npm run dev
```
1. **Run with Docker Compose**: ## API Endpoints
```yaml
version: '3.8'
services: | Endpoint | Method | Description |
streamflow: |----------|--------|-------------|
image: git.khoavo.myds.me/vndangkhoa/kv-streamflow:v3.7 | `/api/health` | GET | Health check |
container_name: streamflow | `/api/videos/home` | GET | Get home page movies |
platform: linux/amd64 | `/api/videos/search?q=` | GET | Search movies |
ports: | `/api/videos/{slug}` | GET | Get movie details |
- "3478:8000" | `/api/extract` | POST | Extract video URL |
environment: | `/api/stream?url=` | GET | Proxy video stream |
- DATABASE_URL=/app/data/streamflow.db | `/api/images/proxy?url=` | GET | Proxy images |
- TZ=Asia/Ho_Chi_Minh | `/api/categories/genres` | GET | Get genre list |
volumes: | `/api/categories/countries` | GET | Get country list |
- ./data:/app/data
restart: unless-stopped
```
```bash ## Project Structure
docker-compose up -d
```
Access the application at `http://YOUR_NAS_IP:3478`. You can download the **Android TV App** directly from the navigation bar once the webapp is running. ```
Streamflow/
## 📂 Project Structure ├── backend/
│ ├── cmd/server/main.go # Entry point
- `backend/` - Go source code │ ├── internal/
- `frontend-react/` - React source code │ │ ├── api/ # HTTP handlers & routes
- `Dockerfile` - Multi-stage build definition │ │ ├── config/ # Configuration
- `docker-compose.yml` - Deployment configuration │ │ ├── database/ # Database layer
│ │ ├── models/ # Data models
## 📝 License │ │ ├── scraper/ # Movie providers
│ │ └── service/ # Business logic
MIT │ ├── go.mod
│ └── go.sum
├── frontend-react/
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── context/ # React context
│ │ ├── hooks/ # Custom hooks
│ │ ├── pages/ # Page components
│ │ ├── themes/ # Theme variants
│ │ └── types/ # TypeScript types
│ ├── package.json
│ └── vite.config.ts
├── android-tv/ # Android TV app
├── Dockerfile
├── docker-compose.yml
└── README.md
```
## Changelog
### v3.7 (Current)
- Codebase cleanup and security improvements
- Added SSRF protection with URL validation
- Added graceful shutdown and config module
- Added React ErrorBoundary and lazy loading
- Refactored handlers to reduce code duplication
- Updated to Go 1.24 and Node.js 20
- Added healthcheck to Docker Compose
### v3.6
- Fixed duplicate episodes
- Updated Android TV app
### v3.5
- Fixed extract 500 error
- Fixed Android TV crash
### v3.4
- Prevent screen sleep during playback
### v3.3
- Rebranded to kv-netflix
- Added PWA support
## License
MIT