由于安装了 PVE 的机器只有一个网口,安装后需要设置 WAN 口访问 Web 管理界面。

环境

  • PVE 6.0

准备

  • Koolshare LEDE x86-64 镜像
    • 下载地址
    • 下载最新版本(当前为 2.32),无需下载虚拟机专用版本

参考

步骤

PVE安装LEDE

  1. 上传固件
    • 将下载的 .img.gz 压缩包解压,得到 .img 格式的 700M 镜像
    • 将镜像通过 PVE 的网页端上传到 PVE 镜像存储区
  2. 新建虚拟机
    • 新建虚拟机的操作系统配置选择【不使用任何介质】,关闭网卡的防火墙,其他没有特殊要求
      • LEDE给2GB内存足够,家中另一个实体 LEDE 路由开了几个插件常年跑不满512M,磁盘需求也只有大概1G
    • 配置完毕后打开【硬件】,选择【硬盘】,然后选择【分离 – 删除】,将硬盘删除
  3. 安装 LEDE
    • 打开 PVE 的 shell,创建启动盘,执行指令
      # 100 为虚拟机编号,根据自己情况更改
      # /var/lib/vz/template/iso/openwrt-koolshare.img 为上传的 LEDE 镜像路径,若上传到其他目录,请更改
      # local 为 PVE 的存储磁盘,请根据自己的情况更改,例如我的 PVE 有存储磁盘名为 Disk1 ,我将其修改为 Disk1
      qm importdisk 100 /var/lib/vz/template/iso/openwrt-koolshare.img local
    • 回到虚拟机硬件界面,可以看到多出了一个磁盘,选中这个磁盘,点击【编辑 – 添加】
    • 添加磁盘后可以点击【调整磁盘大小】来增加磁盘大小
    • 最终的配置情况,可以选择添加第二个网卡
    • 最后可以在【选项 – 引导顺序】中删除其他的引导方式,仅保留硬盘
  4. 开启虚拟机

Continue reading “Proxmox VE 单网口安装 Koolshare LEDE x86”

环境

  • Ubuntu 18.04 Server

准备

参考

步骤

服务端配置

  1. 首先编译并安装带 rtmp 模块的 nginx
    • 使用包管理安装的 nginx 不自带 rtmp 模块,后来查到可以安装 libnginx-mod-rtmp 来加入 rtmp 模块,但实践后失败了,最后选择编译安装  如果已经安装了 nginx,需要添加其他 nginx 模块,参见 nginx 安装后添加 rtmp 模块
    • 安装编译工具/依赖
      sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev git zlib1g-dev -y
    • 创建编译目录并下载源码
      sudo mkdir ~/build && cd ~/build
      sudo git clone git://github.com/arut/nginx-rtmp-module.git
    • 下载并解压 nginx 安装包(这里使用1.14版)
      sudo wget http://nginx.org/download/nginx-1.14.1.tar.gz
      sudo tar xzf nginx-1.14.1.tar.gz
      cd nginx-1.14.1
    • 编译并安装带 rtmp 模块的 nginx
      sudo ./configure --with-http_ssl_module --add-module=../nginx-rtmp-module
      sudo make
      sudo make install
    • 开启 nginx 服务
      # 链接到 /usr/local/bin
      # sudo ln -s /usr/local/nginx/sbin/nginx /usr/local/bin
      # nginx
      # 或者直接用绝对路径
      sudo /usr/local/nginx/sbin/nginx
  2. 设置 nginx.conf
    • 默认生成的 nginx 配置文件没有启用 rtmp 模块,将默认配置文件备份
      sudo mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak

      然后替换为以下内容

      #user  nobody;
      worker_processes  1;
      
      error_log  logs/error.log debug;
      
      events {
          worker_connections  1024;
      }
      
      http {
          include       mime.types;
          default_type  application/octet-stream;
      
          sendfile        on;
          keepalive_timeout  65;
      
          server {
              listen       8080;
              server_name  localhost;
      
              # sample handlers
              #location /on_play {
              #    if ($arg_pageUrl ~* localhost) {
              #        return 201;
              #    }
              #    return 202;
              #}
              #location /on_publish {
              #    return 201;
              #}
      
              #location /vod {
              #    alias /var/myvideos;
              #}
      
              # rtmp stat
              # 查看 rtmp 服务状态
              location /stat {
                  rtmp_stat all;
                  rtmp_stat_stylesheet stat.xsl;
              }
              location /stat.xsl {
                  # you can move stat.xsl to a different location
                  # stat.xsl 文件的路径
                  root /usr/build/nginx-rtmp-module;
              }
      
              # rtmp control
              location /control {
                  rtmp_control all;
              }
      
              error_page   500 502 503 504  /50x.html;
              location = /50x.html {
                  root   html;
              }
          }
      }
      
      rtmp {
          server {
              listen 1935;
              ping 30s;
              notify_method get;
      
              # 设置直播 myapp 为直播应用名称,可以自行更改
              # 相应的,也可以设置多个直播应用
              application myapp {
                  live on; # 开启直播
      
                  # sample play/publish handlers
                  #on_play http://localhost:8080/on_play;
                  #on_publish http://localhost:8080/on_publish;
      
                  # sample recorder
                  #recorder rec1 {
                  #    record all;
                  #    record_interval 30s;
                  #    record_path /tmp;
                  #    record_unique on;
                  #}
      
                  # sample HLS
                  # 开启HLS
                  #hls on;
                  #hls_path /tmp/hls;
                  #hls_sync 100ms;
              }
      
              # Video on demand
              # 点播服务
              application vod {
                  play /var/Videos; # 更改为视频路径
              }
      
              # Video on demand over HTTP
              # HTTP点播服务,这里我没有设置成功
              #application vod_http {
              #    play http://localhost:8080/vod/;
              #}
          }
      }
    • 将 stat.xsl 移动到 /usr/build/nginx-rtmp-module/ 目录下
      mkdir /usr/build
      mkdir /usr/build/nginx-rtmp-module
      mv [your build directory]/stat.xsl /usr/build/nginx-rtmp-module

      或者更改 nginx 配置文件的 stat.xsl 的文件路径

    • 测试并重启 nginx
      nginx -t
      # if OK then
      nginx -s reload
  3. 访问 http://[your domain or IP]:8080/stat 查看 nginx-rtmp 的运行状态myapp 即为直播用到的配置,vod 为 rtmp 点播所用配置,vod_http 为 http 的点播服务(这个没有实践成功),至此服务端配置完成

Continue reading “使用 nginx rtmp module 实现 rmtp 点播/直播功能”

官网:https://comments.app/

准备

  • Telegram账号
  • Telegram

步骤

  1. 打开链接,点击右侧的Log in to Connect,登录Telegram账号
  2. 打开Telegram,确认登录请求
  3. 回到主页面,原本的 Log in to Connect 变成了 Connect Website,点击 Connect Website
  4. 输入自定义名称和网站域名,点击 Connect Website
  5. 新留言板新建完成,在设置面板可以设置留言板的样式和显示条目
  6. 将页面下方的js代码添加至网页代码即可嵌入留言板

效果