服务器vps部署MoonTv

2026-02-20  阅读 4 次

项目地址:https://github.com/MoonTechLab/LunaTV

终端登录到VPS

更新系统软件包

apt update && apt upgrade -y

2.安装必要的工具

apt install -y curl nano

3.安装 Docker

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

启动Docker并设置开机自启:

systemctl start docker
systemctl enable docker

4.安装 Docker Compose

curl -L "https://github.com/docker/compose/releases/download/v2.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

5.验证安装

docker –version
docker-compose –version

两行命令都输出了版本号,说明安装成功!

6.创建项目并配置 Docker Compose

创建一个项目目录:

mkdir -p /opt/moontv

进入创建的moontv文件夹:

cd /opt/moontv

创建并编辑 Docker Compose 配置文件:

nano docker-compose.yml

配置文件:

# Docker Compose 配置文件
# 定义所有要运行的服务/容器

services:
  # MoonTV 主应用服务 - 您的影视库
  moontv-core:
    # 使用的 Docker 镜像地址 (GitHub Container Registry)
    image: ghcr.io/moontechlab/lunatv:latest
    # 容器名称 (便于管理)
    container_name: moontv-core
    # 重启策略: 当容器因错误退出(退出码 ≠ 0)时才会自动重启。
    restart: on-failure
    # 端口映射: 主机端口:容器内部端口
    ports:
      - "3000:3000"  # 将容器内3000端口映射到主机的3000端口,左边是服务器端口,右边是容器内部端口。如果想换端口,比如用8080,就改成 '8080:3000'
    # 环境变量配置
    environment:
      - USERNAME=apepine  # 登录后台管理页面的用户名
      - PASSWORD=1990Apepine  # 登录后台管理页面的密码(必须修改强密码!)
      - NEXT_PUBLIC_STORAGE_TYPE=redis  # 指定使用Redis作为存储后端
      - REDIS_URL=redis://moontv-redis:6379  # Redis连接地址(使用服务名moontv-redis)
    # 网络配置: 连接到自定义网络
    networks:
      - moontv-network
    # 依赖关系: 确保先启动Redis服务
    depends_on:
      - moontv-redis

  # Redis 数据库服务 (用于存储用户数据、收藏等)
  moontv-redis:
    # 使用官方Redis Alpine镜像 (轻量级)
    image: redis:alpine
    # 容器名称
    container_name: moontv-redis
    # 重启策略
    restart: unless-stopped
    # 网络配置
    networks:
      - moontv-network
    # 数据卷映射: 将容器内/data目录映射到宿主机的./data目录
    volumes:
      - "./data:/data"  # 实现数据持久化,防止容器重启后数据丢失

  # Watchtower 自动更新服务
  watchtower:
    # 使用官方Watchtower镜像
    image: containrrr/watchtower
    # 容器名称
    container_name: moontv-watchtower
    # 重启策略
    restart: unless-stopped
    # 卷映射: 赋予Watchtower访问Docker守护进程的权限
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"  # 关键配置: 允许Watchtower控制Docker
    # 环境变量配置
    environment:
      - "WATCHTOWER_CLEANUP=true"  # 更新后自动删除旧镜像,节省磁盘空间
      - "WATCHTOWER_POLL_INTERVAL=3600"  # 检查更新间隔(秒),3600=1小时

  # Nginx Proxy Manager - 反向代理和SSL证书管理
  nginx-proxy-manager:
    # 使用官方Nginx Proxy Manager镜像
    image: 'docker.io/jc21/nginx-proxy-manager:latest'
    # 容器名称
    container_name: nginx-proxy-manager
    # 重启策略
    restart: unless-stopped
    # 端口映射
    ports:
      - '80:80'    # HTTP 端口
      - '81:81'    # 管理界面端口
      - '443:443'  # HTTPS 端口
    # 数据卷映射
    volumes:
      - ./nginx-data:/data  # 配置数据持久化
      - ./nginx-letsencrypt:/etc/letsencrypt  # SSL证书持久化
    # 网络配置: 连接到自定义网络,以便能够访问MoonTV服务
    networks:
      - moontv-network

# 网络配置部分
networks:
  # 定义自定义网络
  moontv-network:
    driver: bridge  # 使用桥接网络模式,使容器间可以相互通信


7.启动 MoonTV 项目,在后台启动所有服务:

docker-compose up -d

8.查看容器运行状态:

docker-compose ps

容器的状态(STATUS)都是 Up,就说明成功了!

如果哪个容器启动失败请查找容器启动日志解决

查看容器日志(用于排查问题)

docker logs moontv-core

docker logs moontv-redis

docker logs moontv-watchtower


查看 Watchtower 日志:

docker-compose logs watchtower

打开你的浏览器,在地址栏输入:ip:端口 ( 122.3.243.113:3000 )


9.设置这个自定义域名:


访问nginx管理面板:ip:81( 如:122.3.243.113:81 )


初始账号&密码:


Email: [email protected]

Password: changeme



配置文件json:

{
  "cache_time": 7200,
  "api_site": {
    "dyttzy": {
      "api": "http://caiji.dyttzyapi.com/api.php/provide/vod",
      "name": "电影天堂资源",
      "detail": "http://caiji.dyttzyapi.com"
    },
    "ruyi": {
      "api": "http://cj.rycjapi.com/api.php/provide/vod",
      "name": "如意资源"
    },
    "tyyszy": {
      "api": "https://tyyszy.com/api.php/provide/vod",
      "name": "天涯资源"
    },
    "ffzy": {
      "api": "http://ffzy5.tv/api.php/provide/vod",
      "name": "非凡影视",
      "detail": "http://ffzy5.tv"
    },
    "zy360": {
      "api": "https://360zy.com/api.php/provide/vod",
      "name": "360资源"
    },
    "maotaizy": {
      "api": "https://caiji.maotaizy.cc/api.php/provide/vod",
      "name": "茅台资源"
    },
    "wolong": {
      "api": "https://wolongzyw.com/api.php/provide/vod",
      "name": "卧龙资源"
    },
    "jisu": {
      "api": "https://jszyapi.com/api.php/provide/vod",
      "name": "极速资源",
      "detail": "https://jszyapi.com"
    },
    "dbzy": {
      "api": "https://dbzy.tv/api.php/provide/vod",
      "name": "豆瓣资源"
    },
    "mdzy": {
      "api": "https://www.mdzyapi.com/api.php/provide/vod",
      "name": "魔都资源"
    },
    "zuid": {
      "api": "https://api.zuidapi.com/api.php/provide/vod",
      "name": "最大资源"
    },
    "yinghua": {
      "api": "https://m3u8.apiyhzy.com/api.php/provide/vod",
      "name": "樱花资源"
    },
    "wujin": {
      "api": "https://api.wujinapi.me/api.php/provide/vod",
      "name": "无尽资源"
    },
    "wwzy": {
      "api": "https://wwzy.tv/api.php/provide/vod",
      "name": "旺旺短剧"
    },
    "ikun": {
      "api": "https://ikunzyapi.com/api.php/provide/vod",
      "name": "iKun资源"
    },
    "lzi": {
      "api": "https://cj.lziapi.com/api.php/provide/vod",
      "name": "量子资源站"
    },
    "liangzi": {
      "api": "https://cj.lziapi.com/api.php/provide/vod/",
      "name": "量子资源"
    },
    "feifan": {
      "api": "http://www.ffzy.tv/api.php/provide/vod/",
      "name": "非凡资源"
    },
    "hongniu": {
      "api": "https://www.hongniuzy2.com/api.php/provide/vod/at/josn/",
      "name": "红牛资源"
    },
    "shandian": {
      "api": "https://sdzyapi.com/api.php/provide/vod/",
      "name": "闪电资源"
    },
    "zuida": {
      "api": "https://zuidazy.com/api.php/provide/vod/",
      "name": "最大资源"
    }
  }
}



本文地址:https://yaaibk.com/post/411.html
版权声明:本文为原创文章,版权归 本站 所有,欢迎分享本文,转载请保留出处!
NEXT:已经是最新一篇了

评论已关闭!