对于想搭建个人观影平台却不想购买服务器、不愿折腾复杂环境的用户,开源项目 JoyFlix 提供了一个近乎零门槛的解决方案。

该项目完全免费开源,支持 Vercel、Docker 和 Netlify 等多种部署渠道。即使没有 VPS 硬件,也能借助免费的云端 Serverless 平台,几分钟内构建出页面干净、无广告、支持自定义资源站的个人在线影视站。


核心特性

  • 多平台部署支持:兼容 Vercel、Docker 及 Netlify,满足从零基础新手到 NAS/VPS 玩家的各类需求。
  • 多端响应式设计:完美适配手机、平板及电脑端,界面清爽无广告。
  • 支持线路优选:允许用户自定义资源站与优选接口,有效解决传统影视站图片加载失败、封面丢失及播放线路失效等痛点。
  • 数据库同步(可选):通过接入 Upstash Redis,可实现多账户数据隔离、跨设备播放记录同步和后台管理。

存储支持矩阵

不同的部署环境对数据持久化的支持情况如下:

存储方式 Docker Vercel Netlify
LocalStorage (本地缓存) ✅ ✅ ✅
原生 Redis (容器化) ✅ ❌ ❌
Upstash Redis (云端) ❌ ✅ ✅

提示:使用 LocalStorage 以外的 Redis 方案,方可启用多账户管理、历史记录云同步以及后台管理页面。


部署教程

方案一:Vercel 部署(推荐,适合无服务器新手)

利用 Vercel 的免费配额与全球 CDN,无需任何服务器成本即可快速上线。

1. 基础部署(LocalStorage 模式)

  1. 访问 JoyFlix 官方仓库,点击 Fork 将仓库复制到您的个人 GitHub 账号中。
  2. 登录 Vercel 官网,依次点击 Add New → Project,导入刚才 Fork 的仓库。
  3. 在部署配置中,设置环境变量 PASSWORD(后台管理员密码)。
  4. 保持其他默认设置,点击 Deploy 完成首次部署。部署成功后即可绑定自定义域名或使用 Vercel 提供的默认域名访问。

2. 进阶部署(结合 Upstash Redis 实现数据同步)

  1. 访问 Upstash 官网 注册账号,新建一个 Redis 实例。
  2. 复制该 Redis 实例的 HTTPS Endpoint 和 Token。
  3. 返回 Vercel 的项目控制台,进入环境变量设置(Environment Variables),新增以下三个变量:
    • UPSTASH_URL:填写复制的 Endpoint 地址
    • UPSTASH_TOKEN:填写复制的 Token
    • NEXT_PUBLIC_STORAGE_TYPE:值设置为 upstash
  4. 另外设置 USERNAME 和 PASSWORD 作为超级管理员账号。
  5. 保存并重新触发项目部署(Redeploy)。

方案二:Docker 部署(适合 VPS / NAS 玩家)

如果您拥有群晖、威联通、飞牛等 NAS,或者独立的 Linux 服务器,推荐使用 Docker Compose 部署。该配置自带 Redis 容器,支持完整的账户隔离与同步功能。

  1. 创建工作目录:

    1
    2
    mkdir -p /root/joyflix
    cd /root/joyflix
  2. 配置容器清单:

    新建并编辑 docker-compose.yml 文件:

    1
    nano docker-compose.yml

    写入以下配置(请自行修改 USERNAME 与 PASSWORD 默认凭据):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    services:
    joyflix-core:
    image: ghcr.io/jeffernn/joyflix@sha256:453fd835de93538a880dce307680da0f20d805c575c6ddfe09557f7018a2a877
    container_name: joyflix-core
    restart: unless-stopped
    ports:
    - "3000:3000"
    environment:
    - USERNAME=admin
    - PASSWORD=your_secure_password
    - NEXT_PUBLIC_STORAGE_TYPE=redis
    - REDIS_URL=redis://joyflix-redis:6379
    depends_on:
    - joyflix-redis
    networks:
    - joyflix-network

    joyflix-redis:
    image: redis:alpine
    container_name: joyflix-redis
    restart: unless-stopped
    networks:
    - joyflix-network

    networks:
    joyflix-network:
    driver: bridge
  3. 启动容器:

    1
    2
    3
    4
    5
    # 新版 Docker 命令
    docker compose up -d

    # 旧版 Docker-compose 命令
    docker-compose up -d

    部署完成后,通过 http://<您的IP>:3000 即可登录您的专属观影台。


方案三:Netlify 部署

  1. Fork JoyFlix 官方仓库 到您的个人 GitHub。
  2. 登录 Netlify,依次点击 Add New project → Importing an existing project,授权并导入该仓库。
  3. 设置环境变量 PASSWORD 并部署。
  4. 如需数据持久化,可在 Project Configuration → Environment variables 中同样配置 UPSTASH_URL、UPSTASH_TOKEN、NEXT_PUBLIC_STORAGE_TYPE=upstash 以及超管凭据,保存后重新触发构建即可。

资源归档与参考