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

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


核心特性

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

存储支持矩阵

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

存储方式DockerVercelNetlify
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 EndpointToken
  3. 返回 Vercel 的项目控制台,进入环境变量设置(Environment Variables),新增以下三个变量:
    • UPSTASH_URL:填写复制的 Endpoint 地址
    • UPSTASH_TOKEN:填写复制的 Token
    • NEXT_PUBLIC_STORAGE_TYPE:值设置为 upstash
  4. 另外设置 USERNAMEPASSWORD 作为超级管理员账号。
  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

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

    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_URLUPSTASH_TOKENNEXT_PUBLIC_STORAGE_TYPE=upstash 以及超管凭据,保存后重新触发构建即可。

资源归档与参考