前提环境搭建

现在假设新拿到一台工控机,什么都没配置,那么我们需要自己先手动搭建安装所需的环境,具体内容可看另一篇关于工控机配置的文档。

脚本

为了快速部署,实现了一套易于使用的脚本,脚本以及对应的webview相关代码已上传github

https://github.com/Kerinlin/auto-jitsi-meet

image.png

├── README.md ├── configure_jvb.sh // 会议服务局域网配置 ├── configure_nginx.sh // 443端口nginx配置 ├── configure_nginx_old.sh // 之前使用其他端口进行nginx配置 ├── configure_sip.sh // 会议服务局域网相关配置 ├── install.sh // 安装脚本 ├── jitsi-sample.conf // jitsi-meet 服务的nginx参考 ├── jitsi.sh // 主要入口,包括服务的安装,启动,停止,查看 ├── room-web // webview 相关内容 ├── update_webip.sh // 更新room-web下index.html中的ip配置 └── webview.conf // 之前使用其他端口进行nginx配置

安装

git clone <https://github.com/Kerinlin/auto-jitsi-meet.git>

下载下来后安装依赖,打包,然后切换到jitsi脚本目录

yarn

yarn build

cd ./jitsi

然后开始安装会议服务

sudo sh ./jitsi.sh

会出现类似的选择项

image.png

选择**重新安装 ,**安装会检测是否已经安装会议服务,如果已经安装会先卸载原有服务,然后再重新安装,正式安装前会检测本机IP,如果不改的话,会默认使用本机IP,安装的过程中会自动检查安装相关必要的依赖,然后进行自签名,以及配置一些会议的默认配置,还有配置开机自启动,具体的流程可看脚本代码install.sh

# 主安装流程
main() {
  local IP_ADDRESS=""

  # 首先检查并卸载已存在的安装
  check_and_uninstall_jitsi

  # 如果提供了命令行参数,使用参数作为IP地址
  if [ $# -eq 1 ]; then
    if validate_ip "$1"; then
      IP_ADDRESS="$1"
    else
      echo "错误: 无效的IP地址格式"
      exit 1
    fi
  else
    # 如果没有提供参数,自动检测IP
    IP_ADDRESS=$(get_system_ip)
    echo "检测到系统IP地址: $IP_ADDRESS"
    read -p "是否使用此IP地址? [Y/n] " response
    response=${response:-Y}
    if [[ ! $response =~ ^[Yy]$ ]]; then
      read -p "请输入要使用的IP地址: " manual_ip
      if validate_ip "$manual_ip"; then
        IP_ADDRESS="$manual_ip"
      else
        echo "错误: 无效的IP地址格式"
        exit 1
      fi
    fi
  fi

  echo "开始安装 Jitsi Meet..."
  echo "将使用的IP地址: $IP_ADDRESS"

  # 更新包列表
  echo "正在更新软件包列表..."
  apt update

  # 检查并安装必要的工具
  check_and_install_tools

  # 预配置 jitsi-videobridge 和 jitsi-meet-web-config
  echo "正在配置安装选项..."
  echo "jitsi-videobridge jitsi-videobridge/jvb-hostname string $IP_ADDRESS" | debconf-set-selections
  echo "jitsi-meet-web-config jitsi-meet/cert-choice select 'Generate a new self-signed certificate (You will later get a chance to obtain a Let's encrypt certificate)'" | debconf-set-selections

  # 安装 Jitsi Meet
  echo "正在安装 Jitsi Meet..."
  DEBIAN_FRONTEND=noninteractive apt-get --option=Dpkg::Options::=--force-confold \\
    --option=Dpkg::options::=--force-unsafe-io \\
    --assume-yes --quiet install jitsi-meet

  # 检查防火墙设置
  check_firewall

  # 配置默认设置项
  configure_default_setting $IP_ADDRESS

  # 配置webview nginx
  configure_webview_nginx $IP_ADDRESS

  # 修改interface.js配置
  change_interface_js

  sleep 2

  # 配置服务开机自启
  configure_autostart

  # 显示服务状态和开机自启状态
  echo "检查服务状态和开机自启配置:"
  for service in nginx prosody jicofo jitsi-videobridge2; do
    printf "%-20s 运行状态: %s\\t自启状态: %s\\n" \\
      "$service" \\
      "$(systemctl is-active $service)" \\
      "$(systemctl is-enabled $service)"
  done

  echo "安装完成!"

}

安装完成后查看服务是否正常

sudo sh ./jitsh.sh