# GoFilm 部署

# 1. 前置环境准备

  1. linux 服务器

  2. GitHub 下载 GoFilm 项目

  3. 修改默认信息 ( 直接使用默认配置则跳过此步骤 )

    1. 容器默认启动端口,默认账户密码配置
    # 文件路径: GoFilm/film/docker-compose.yml
    # nginx 容器配置
    ports:
    - port:80 # port 为浏览器访问的默认端口
    # film 容器配置
    environment:	# 环境变量,暂未使用
      MYSQL_PORT: 3661	# mysql 服务连接端口
      MYSQL_USER: root	# mysql 连接用户
      MYSQL_PASSWORD: root # mysql 连接用户的密码
      MYSQL_DBNAME: FilmSite # 默认使用的 mysql 数据库名称
      REDIS_PORT: 3662	# redis 服务连接端口
    ports:
      - port:3601 # port 为 go 服务端的默认访问端口
    # mysql 容器配置
    ports:
    - port:3306	# port 为 mysql 服务的外部访问端口
    environment:
      MYSQL_ROOT_PASSWORD: 默认密码	# 修改 Mysql 的 root 用户的默认密码
      MYSQL_DATABASE: 数据库名 # 默认创建的数据库名称
    # redis 容器配置
    ports:
      - prot:6379 # port 为 redis 服务的外部访问端口
    1. redis 配置
    # 文件路径 Gofilm/film/data/redis/redis.conf
    daemonize no
    requirepass 密码 # 设置 redis 服务的访问密码
    appendonly no
    tcp-keepalive 300 
    stop-writes-on-bgsave-error no
  4. film-api 后端服务配置

    # 文件路径 GoFilm/film/server/config/DataConfig.go
    # mysql 服务配置信息 设置 mysql 的 root 用户密码和数据库名为 docker-compose.yml 中对应的信息
    MysqlDsn = "root:密码@(mysql:3306)/数据库名称?charset=utf8mb4&parseTime=True&loc=Local"
    # Redis 连接信息,设置 redis 访问密码为 Gofilm/film/data/redis/redis.conf 中的密码
    RedisPassword = `root`
  5. 将 GoFilm 项目根目录下的 film 文件夹上传到 linux 服务器的 /opt 目录下

    • 上传完成后路径为: /opt/film (只上传 GoFilm 项目中的 film 文件夹)
    • 效果如下图所示

image-20240415121019649

# 2. 构建运行

# 1. docker 部署

  1. 安装 docker , docker compose 环境
  • Centos 安装 Docker Engine 官方文档链接

  • Ubuntu 安装 Docker Engine 官方文档链接

    # Centos 系统安装 Docker Engine 示例
    # 1. 卸载旧版本 Docker
    sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    #2. 设置存储库
    sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    #3. 安装最新版本 Docker
    $ sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    #启动 Docker 服务
    sudo systemctl start docker
    # Ubuntu 系统安装 Docker Engine 示例
    # 1. 卸载旧版本冲突依赖
    for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
    # 2. 添加 Docker 官方 GPG 密钥
    sudo apt-get update
    sudo apt-get install ca-certificates curl
    sudo install -m 0755 -d /etc/apt/keyrings
    sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
    sudo chmod a+r /etc/apt/keyrings/docker.asc
    # 3. 添加存储库到 apt 源
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
      $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt-get update
    # 4. 安装最新版本 Docker
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. 进入项目部署文件目录 /opt/film
  • 执行命令 cd /opt/film 进入项目目录
  1. 执行构建并运行容器
  • 执行命令 docker compose up -d 构建拉取相关镜像并启动
  • 等待容器构建并启动,启动完毕后可通过 docker compose ps 查看容器是否均正常启动

image-20240421205928999

  1. docker compose 相关命令

    • docker compose ps 查看已启动的相关容器, docker compose ps -a 查看所有相关容器
    • docker compose start 启动相关服务容器
    • docker compose restart 重启相关服务容器
    • docker compose up -d 以后台服务的方式构建并启动相关服务
    • docker compose down 删除相关服务容器及关联资源

注意事项:

  • docker compose 系列命令需在 docker-compose.yml 文件目录下执行,在其他路径下执行需使用 -f /opt/film/docker-compose.yml 指定关联的文件路径
  • server 相关文件改变后,需使用 docker rmi 容器名|ID 删除 film-film 镜像

# 2. 1panel 部署

  1. 安装 1Panel
  • 根据服务器系统选择对应的安装命令,1Panel 官方文档

    # RedHat, Centos
    curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.sh
    # Ubuntu
    curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
    # Debian
    curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh
  • 通过设置的启动端口,在浏览器中进行访问,默认访问路径 : http://目标服务器 IP 地址:目标端口/安全入口

  1. 登录 1Panel 管理面板

  2. 启动容器

    • 依次点击 容器 --> 编排 ---> 创建编排

    image-20240421205233998

    • 选择 来源 --> 路径选择,输入 GoFilm 安装文件的存放路径 /opt/film/docker-compose.yml

    image-20240421205127647

    • 等待编排完成,关闭编排添加页,点击 容器 查看容器启动状态

    image-20240421205444640

# 3. 程序初始化

# 1. 管理后台

  1. 登录项目管理后台
  • 访问路径: http://服务器IP:3600/manage
  • 默认账户密码: admin admin
  1. 采集设置初始化
  • 点击左侧菜单,采集管理 --> 影视采集,选择启用默认采集站点或自行添加站点信息
  • 启用需要采集的站点,将对应站点的是否启用状态设置为启用

image-20240421212222743

  • 选择主站点 (必要), 在需要设置的站点操作栏点击蓝色编辑按钮,设置站点权重为主站点

image-20240421212354116

  • 点击一键采集,选择需要执行采集的站点,设置采集时长为 - 1 (采集全部), 点击确认执行

image-20240421212703947

  • 等待采集完成 (手动采集一次即可,后续无需重复手动采集)
  1. 影视分类初始化

    • 点击左侧菜单,影片管理 --> 影视分类,对需要展示和隐藏的分类进行设置 (用于网站顶部导航以及首页数据展示)
    • 点击对应的分类操作栏对分类名称等默认信息进行修改

    image-20240421212958090

  2. 影片定时更新

    • 点击左侧菜单,定时任务 --> 任务管理,选择启用默认的定时任务 (默认每 20 分钟采集一次最新 6 小时内更新的影片)
    • 自定义定时任务:
      • 任务类型 (自动更新), 指定周期内对所有已启用的采集站点进行更新采集
      • 任务类型 (自定义更新), 指定周期内仅对选中的站点进行更新采集

    image-20240421213056998

# 2. 网站首页

  1. 管理后台进行相关设置并完成主站点采集后,访问首页地址: http://服务器IP:3600/index

  2. 首页访问提示导航数据获取失败或服务器繁忙,请等待数据采集完成后,重新访问

部署或自定义修改时遇到问题需要帮忙排错调试的可通过 TG 私聊

Telegram: @MuBaiCs

更新于 阅读次数 阅读次数