# FilmHive **Repository Path**: hiwanger/FilmHive ## Basic Information - **Project Name**: FilmHive - **Description**: FilmHive是一个专注于电影推荐系统的开源项目,集成了多种算法和数据处理技术,旨在为用户提供个性化观影体验。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-03 - **Last Updated**: 2026-03-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FilmHive 一站式私人影视媒体管理与观看平台,支持影视信息聚合、NAS 媒体串流、智能搜索与多端访问。 ## 功能特性 - 🎬 **影视信息聚合** — 整合 TMDB / 豆瓣 / DDYS 等多数据源 - 📡 **NAS 媒体串流** — 通过 CIFS/SMB 挂载,支持本地 NAS 视频在线播放 - 🔍 **中文智能搜索** — Elasticsearch + IK 分词器,支持中文模糊搜索 - ⭐ **用户系统** — 注册 / 登录 / 收藏 / 评分 / 评论 - 🛠️ **管理后台** — 影视管理 / 用户管理 / 爬虫任务 / NAS 配置 - 📱 **响应式设计** — PC / 平板 / 手机自适应 ## 技术栈 | 模块 | 技术 | |------|------| | 后端 API | Spring Boot 3.x / JDK 17 / MyBatis Plus / Spring Data Elasticsearch | | 用户端 | Next.js 14 / React 18 / TypeScript / ArtPlayer | | 管理端 | Next.js / React / TypeScript | | 爬虫引擎 | Python 3.11 / FastAPI / Scrapy | | 数据库 | MySQL 8.0 / Redis 7 / Elasticsearch 8.x (IK 分词) | | 部署 | Docker Compose / Nginx (gzip + 安全头) | ## 项目结构 ``` FilmHive/ ├── backend-api/ # Spring Boot 后端服务 ├── web-client/ # Next.js 用户端 ├── admin-web/ # Next.js 管理后台 ├── crawler-engine/ # Python 爬虫引擎 ├── elasticsearch/ # ES Dockerfile (含 IK 分词插件) ├── nginx/ # Nginx 反向代理配置 ├── docker-compose.yml # 生产环境编排 (核心) ├── docker-compose.dev.yml # 开发环境覆盖 (暴露端口) ├── docker-compose.nas.yml # NAS 挂载覆盖 (可选) └── .env.example # 环境变量模板 ``` ## 快速开始 ### 环境要求 - Docker & Docker Compose v2+ - 内存 ≥ 4GB(ES 需要 ≥ 512MB) ### 1. 克隆 & 配置 ```bash git clone https://gitee.com/hiwanger/FilmHive.git cd FilmHive cp .env.example .env # 编辑 .env,填入 MySQL 密码、Redis 密码、TMDB API Key 等 ``` ### 2. 启动服务 ```bash # 基础启动(不含 NAS) docker compose up -d # 含 NAS 挂载 docker compose -f docker-compose.yml -f docker-compose.nas.yml up -d # 开发模式(暴露所有端口到宿主机) docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d # 开发 + NAS docker compose -f docker-compose.yml -f docker-compose.dev.yml -f docker-compose.nas.yml up -d ``` ### 3. 访问 | 页面 | 地址 | |------|------| | 用户端首页 | http://localhost | | 管理后台 | http://localhost/admin | ## Docker Compose 文件说明 | 文件 | 用途 | |------|------| | `docker-compose.yml` | **核心文件**,包含 8 个服务,生产环境只暴露 Nginx 80 端口 | | `docker-compose.dev.yml` | 开发覆盖,暴露 MySQL(3307) / Redis(6379) / ES(9200) / 后端(8101) / 爬虫(8200) / 管理端(8000) / 用户端(3000) | | `docker-compose.nas.yml` | NAS 覆盖,添加 CIFS/SMB 卷挂载到 backend-api 和 crawler-engine | ## 服务架构 ``` ┌──────────┐ :80 ──▶ │ Nginx │ └────┬─────┘ ┌─────────┬───┴────┬────────────┐ ▼ ▼ ▼ ▼ web-client admin-web backend-api crawler-api (:3000) (:8000) (:8101) (:8200) │ ┌──────────┼──────────┐ ▼ ▼ ▼ MySQL Redis Elasticsearch (:3306) (:6379) (:9200) ``` ## 默认端口 | 服务 | 容器端口 | 开发模式宿主机端口 | |------|----------|-------------------| | Nginx | 80 | 80 | | 后端 API | 8101 | 8101 | | 用户端 | 3000 | 3000 | | 管理端 | 8000 | 8000 | | 爬虫 | 8200 | 8200 | | MySQL | 3306 | 3307 | | Redis | 6379 | 6379 | | Elasticsearch | 9200 | 9200 | ## 本地开发(不使用 Docker) ```bash # 后端 cd backend-api mvn clean package -DskipTests java -jar server/target/springboot-init-server-0.0.1-SNAPSHOT.jar # 用户端 cd web-client npm install && npm run dev # 管理端 cd admin-web npm install && npm run dev # 爬虫 cd crawler-engine pip install -r requirements.txt python main.py ``` ## License MIT