Home
Softono
kerkerker

kerkerker

Open source MIT TypeScript
673
Stars
211
Forks
5
Issues
4
Watchers
4 months
Last Commit

About kerkerker

Kerkerker is a modern, open-source video resource aggregation platform designed to streamline access to multimedia content by integrating multiple data sources and playback options. Built with Next.js and TypeScript, the application combines a Netflix-style user interface with robust backend functionality powered by MongoDB. Its primary purpose is to aggregate video streams, primarily from Dailymotion, while automatically matching titles and information with the Douban database to provide accurate metadata, descriptions, and user ratings. The platform features an advanced custom media player based on ArtPlayer, which supports HLS streaming protocols, variable playback speeds, and keyboard shortcuts for an optimized viewing experience. A standout capability is its integrated danmaku system, which automatically loads viewer comments synchronized with video timelines and allows users to manually search for existing comment overlays. The entire system is fully responsive, ensuring a seamless experience across des ...

Platforms

Web Self-hosted Docker

Languages

TypeScript

🎬 Kerkerker - 影视资源聚合平台

Next.js TypeScript MongoDB Docker License

现代化影视资源聚合平台 - 支持 Dailymotion 视频源、豆瓣信息匹配、多种部署方式

🌐 在线演示: https://kerkerker.vercel.app

功能特性部署方式环境变量本地开发


✨ 功能特性

  • 🎬 视频聚合 - 聚合 Dailymotion 等多个视频源
  • 📝 豆瓣匹配 - 自动匹配豆瓣电影信息和评分
  • 💬 弹幕功能 - 自动匹配加载弹幕,支持手动搜索
  • 🎥 高级播放器 - ArtPlayer 播放器,支持 HLS、倍速、快捷键
  • 📱 响应式设计 - 完美支持移动端和桌面端
  • 🎨 现代化 UI - Netflix 风格界面设计
  • 🔐 后台管理 - 视频源配置、频道管理 (/login)
  • 🚀 多种部署 - 支持 Vercel、Docker、VPS 一键部署

📸 界面预览

点击展开预览图

首页

首页

搜索页

搜索

详情页

详情页

播放页

播放页


🚀 部署方式

方式一:Vercel 部署(推荐)

无需服务器,免费托管,自动 HTTPS

Deploy with Vercel

步骤:

  1. 点击上方按钮,Fork 项目到 Vercel
  2. 在 Vercel 控制台设置环境变量:
    MONGODB_URI=mongodb+srv://user:[email protected]/kerkerker
    ADMIN_PASSWORD=your_password
  3. 部署完成!

💡 提示:Vercel 部署需要使用云端 MongoDB(如 MongoDB Atlas 免费版)


方式二:Docker Compose 部署

快速启动

# 1. 克隆项目
git clone https://github.com/unilei/kerkerker.git
cd kerkerker

# 2. 创建配置文件
cp .env.example .env

# 3. 编辑配置(可选)
nano .env

# 4. 启动服务
docker-compose up -d

# 5. 查看日志
docker-compose logs -f app

docker-compose.yml 说明

services:
  app:
    build: .
    ports:
      - "3000:3000" # 修改左侧端口号自定义访问端口
    environment:
      - ADMIN_PASSWORD=${ADMIN_PASSWORD}
      - MONGODB_URI=mongodb://mongodb:27017/kerkerker
    depends_on:
      mongodb:
        condition: service_healthy

  mongodb:
    image: mongo:7
    volumes:
      - mongodb-data:/data/db # 数据持久化

常用命令

docker-compose up -d       # 后台启动
docker-compose down        # 停止服务
docker-compose logs -f     # 查看日志
docker-compose restart     # 重启服务
docker-compose pull        # 更新镜像

方式三:VPS 一键部署

在任何装有 Docker 的服务器上执行:

# 使用 curl
curl -fsSL https://raw.githubusercontent.com/unilei/kerkerker/master/scripts/install.sh | bash

# 使用 wget
wget -qO- https://raw.githubusercontent.com/unilei/kerkerker/master/scripts/install.sh | bash

部署后管理:

cd ~/kerkerker
./kerkerker.sh start     # 启动
./kerkerker.sh stop      # 停止
./kerkerker.sh restart   # 重启
./kerkerker.sh logs      # 日志
./kerkerker.sh update    # 更新
./kerkerker.sh backup    # 备份

⚙️ 环境变量

必需变量

变量名 说明 示例
MONGODB_URI MongoDB 连接字符串 mongodb+srv://user:[email protected]/db

可选变量

变量名 说明 默认值
ADMIN_PASSWORD 后台管理密码 admin123
MONGODB_DB_NAME 数据库名称 kerkerker
NEXT_PUBLIC_DANMU_API_URL 弹幕 API 地址 https://danmuapi1-eight.vercel.app
NEXT_PUBLIC_DANMU_API_TOKEN 弹幕 API Token -

MongoDB URI 示例

# Docker 内部(docker-compose 自动配置)
MONGODB_URI=mongodb://mongodb:27017/kerkerker

# 本地 MongoDB
MONGODB_URI=mongodb://localhost:27017/kerkerker

# MongoDB Atlas(云端)
MONGODB_URI=mongodb+srv://username:[email protected]/kerkerker

💻 本地开发

使用 Docker(推荐)

# 启动开发环境(包含 MongoDB)
npm run docker:dev

# 停止服务
docker-compose -f docker-compose.dev.yml down

不使用 Docker

# 1. 安装依赖
npm install

# 2. 配置环境变量
cp .env.example .env
# 编辑 .env,设置 MONGODB_URI

# 3. 启动开发服务器
npm run dev

# 4. 访问
open http://localhost:3000

脚本说明

命令 说明
npm run dev 启动开发服务器
npm run build 构建生产版本
npm run docker:dev Docker 开发环境(热重载)
npm run docker:prod 构建并推送 Docker 镜像

📁 项目结构

kerkerker/
├── app/                    # Next.js App Router
├── components/             # React 组件
│   └── player/             # 播放器组件
│       ├── LocalHlsPlayer.tsx  # 本地 HLS 播放器
│       └── DanmakuPanel.tsx    # 弹幕搜索面板
├── lib/                    # 工具库
│   ├── cache.ts            # 内存缓存
│   ├── db.ts               # MongoDB 连接
│   └── player/             # 播放器工具
│       └── danmaku-service.ts  # 弹幕服务
├── scripts/                # 部署脚本
│   └── install.sh          # 一键部署脚本
├── docker-compose.yml      # 生产环境
├── docker-compose.dev.yml  # 开发环境
└── docker-compose.server.yml

📄 License

MIT License © 2026