构建部署

本教程基于Ubuntu20.04构建,其他系统可能会有细微的差别

由于GitBook性能问题,此文档过长,故该页停止更新,请前往飞书文档查看最新教程~

完整文档:https://hocassian.feishu.cn/docs/doccnmkWI0ndhoSn1xDI8R7rKEf#kQL3xF

矩阵依赖

前期我们可以根据主体需要的功能来准备云服务,比如我只需要在本地建立素材矩阵帮忙处理视频素材,且不需要外网访问和多余的云服务,那么只用准备私有云和部分云服务即可;当然,为了服务的完整性和可扩展性,我们推荐全部准备和安装。

私有云

公有云

云服务

是否付费

素材矩阵

(必需)

(非必需,若无此模块外网无法访问,且部分依赖独立域名的云服务无法使用)

(非必需,若无此模块无法AI打标签)

云服务需要付费,普通个人主体使用,平均一年十多块钱

文学矩阵

(非必需)

(必需)

(非必需)

由参与机构提供的服务,同步文章功能需要付费,一次购买永久使用,价格为300元

视频矩阵

(必需)

(非必需,若无此模块只能手动上传视频)

(非必需)

硬件费用+vps费用+域名费用

创作矩阵

(必需)

(非必需)

(非必需)

硬件费用

分发矩阵(开发中)

(必需,且需要额外配置安卓手机)

(非必需)

(非必需)

暂无

前期准备

私有云

私有云实际上就是一台(或两台,主机+NAS,根据实际需要存储空间来决定)能够在本地7*24运行的服务器,我们推荐你购买以下配置的服务器,同时如果你是硬件供应商,欢迎和我们合作。

低配(适合个人主体)

(图片仅供参考)
  • 机箱:静音防尘机箱,若盘位不够可考虑另购NAS扩充(图片仅供参考)

  • 特点:占地相对小,噪音低

  • 主板:华南X79

  • CPU:e3 1230 v2(或其他主频高于3.0Ghz的e3 v2)

  • 内存:4*8G

  • 电源:600w(金牌)

  • 固态:128G

  • 机械:(根据自己实际使用来定,建议raid1防止数据损失,有条件建议上NAS)

  • 散热:静音风扇(要求噪音最小)

高配(适合工作室主体)

  • 机箱:2U、8盘位以上(R720、R730等)

  • 机柜:1.2~1.6米高、1米以上深度(附加一块挡板托盘)

  • 导轨:合适服务器的就行(请勿忘记购买)

  • 主板:华南X79

  • CPU:e5 2680 v2(或其他主频高于3.0Ghz的e5 v2)

  • 内存:4*8G~8*8G

  • 电源:600w(金牌,尽可能双电源)

  • 固态:128G

  • 机械:(根据自己实际使用来定,建议raid1防止数据损失)

  • 散热:机箱自带风扇即可,对音量无要求

Q&A

Q:对于服务器的存放有什么要求?

A:建议放在通风散热好的地方,如果放在密闭空间推荐安装空调降温,有条件的还可以购买烟雾报警器,安全第一!

Q:为什么不能使用个人电脑作为服务器?

A:理论上来说,在普通PC中安装虚拟机、构建镜像后确实可以跑服务,但是我们没试过(扶额),而且普通电脑没有ECC纠错内存,且I系CPU不如E系稳定,个人仅推荐用于素材矩阵中的slave渲染节点(下文会提到),可以尝试但是得做好踩坑的心理准备。

Q:由于挖矿风潮最近服务器价格攀升,在哪里可以买到价格相对优惠的硬件呢?

A:这个确实是个难题,而且正是因为这件事导致整个矩阵的发布延期了一个月……个人和团队还在持续寻找供应商,暂时的建议是去淘宝看看,或者去闲鱼捡垃圾。

公有云

公有云一般指提供公网IP的VPS供应商,百度云、腾讯云、阿里云都有提供这方面的服务;但是由于我们是要从YouTube上同步视频,而且未来可能会安装一些「附加」服务以供更好的网上冲浪服务(懂的都懂),所以更推荐香港的IP和VPS。

购买VPS

购买域名

宝塔管理面板

为了方便管理,推荐在公有云上安装宝塔管理面板,本教程很多内容也会依赖此管理框架:

装好宝塔之后选择LNMP(Nginx+MySQL+PHP):

(注意,私有云请勿安装宝塔管理面板)

Q&A

(等待补充)

云服务

目前仅素材矩阵需要云服务,仅配置其他矩阵不需要进行如下配置;不过未来可能更多业务也会需要,所以就特别加了一栏;若需要配置素材矩阵,可以按照下文来准备下各云服务平台的账号。

飞书提醒

每当素材处理完成之后,飞书机器人将发送一条消息通知;首先注册和下载飞书客户端,接着建立群组:

记录下这串webhook地址,后边会用到

腾讯云(图像识别)

识别率相对较高的AI图像识别服务提供方,注册与开通服务流程如下:

首先访问腾讯云官网,并注册账号:https://cloud.tencent.com

接着前往图像分析页面:https://console.cloud.tencent.com/tiia/detectlabel

选择开通服务:

然后去到控制台秘钥管理:https://console.cloud.tencent.com/cam/capi

如果不放心可以另开一个子账号,简单来说直接用主账号就行,注意保密(尤其不要往仓库上push)

接着从以下三个地点里挑一个离自己家最近的,记下地域代码:

在本地记下上述三个值,后边会用得上。

火山引擎(图像转漫画)

本功能依赖独立域名和公有云,具体功能为将输入的图像转换为动漫风格,未来可能会加入更多的AI功能助力图片编辑,故特此添加;

火山引擎还在不断地推出新的功能……

当然这也是可选功能,不要也行;首先需要准备一个独立的二级域名,比如image.你的域名.你的域名后缀,接着通过宝塔面板建站的方式或者在域名提供方 申请SSL证书,获得证书和私钥,接下来会用到:

这马赛克打了个寂寞.jpg
阿里万网可以来这里获得免费证书

前往火山引擎官网,注册账号,接着前往ImageX图片服务,理论也有个像腾讯云一样的开通步骤;目前使用服务会收费,需要先去这里充值个几块钱,但约等于免费,笔者至今为止处理了上万张图像,也只收了我几毛钱……进行完之后前往域名配置

填写完后前往图片服务管理新建服务:

之后会显示已绑定域名和CNAME值,这时需要把两者在域名解析后台那边关联起来:

接着前往图片处理配置,按下列配置进行设置,并记录红框中的内容(正常格式为~aaaa-bbbbbbbb-color-v1):

然后去获取秘钥,记录到本地保存备用:

微软Azure服务(图像识别)

微软识图最牛逼的一点在于,它能够将图片转为文字描述(参考此处),虽然准确率有待提高,但至少功能十分新颖,方便后期素材整理:

微软账户注册与登录略去不表,首先开启一个到用即付资源池:

在订阅中新建一个资源组:

转到资源组:

创建资源:

创建认知服务:如图设置:

创建资源找到概述页面:

管理秘钥:

api使用得到json格式的数据:

url为统一资源定位器Analyze Image - Analyze Image - REST API (Azure Cognitive Services - Computer Vision) | Microsoft Docs打开微软文档,使用自己的api完成服务:

蓝宝石(音乐识别)

(正在和供应商积极沟通,暂未开通)

部署基础后台

(本后台将部署到私有云上,如果你只需要部署文学矩阵,可跳过此步骤)

本教程基于Ubuntu20.04构建,其他系统可能会有细微的差别;默认用户名称为ubuntu,请各位大佬们在实际部署的时候换成自己的路径名!无论是执行命令还是修改文件配置,都必须检查好这一点!

安装基础组件

首先记得换源:

注:在nano中,用ctrl+k批量删除,ctrl+o保存,ctrl+x退出

然后刷新下:

建议更改设置使得每次sudo命令时不需要输入密码(在此之前请先用「sudo passwd」更改root密码):

配置远程连接

接着用终端管理工具就能登入了~

基础设施

需要安装的组件:MySQL、java8、Nginx、Docker、redis、RabbitMQ(基于docker)、Python、Neo4j

具体安装教程:https://hocassian.cn/archives/tech/8164/

如果遇到无法访问的情况,记得通过「sudo ufw allow 端口号」的方式开端口!

RabbitMQ比较复杂,这里详细说下——

首先下载并启动镜像:

接着开启15672端口,进入「ip:15672」:

可以选择直接用guest用户操作,也可以新建用户;然后前往virtual hosts标签页,创建新的virtual-host(/media):

仅部署基础后台,执行到这一步就OK了

拉代码&编译前后端

首先拉代码到本地:

先改后端配置,把示例文件去掉.bak后缀:

接着修改配置:

将之前配置好的数据填写进来:

别忘了把这个改成自己的路径名

按Ctrl+O保存,Ctrl+X退出;接着配置第二个后端:

同上,记得修改profile为自己的路径名,除此之外没别的需要更改的了;接着配置前端:

主要还是以配置Nginx为主,打开Nginx配置文件:

存入以下配置(记得把ubuntu改为自己的路径名),其中prod这个路径我们后期会创建,专门用于存放生产环境的文件:

重启Nginx:

编译前后端,准备运行(还需要挂载硬盘才能运行,当然如果你对自己的本地存储空间有自信,比如不配置素材矩阵,可以不挂载……)

挂载硬盘&存储空间

挂载本地硬盘

输入df -h,可以看到本地硬盘会以类似下图中/dev/sda1的形式列出,这取决于服务器实际硬盘的情况

选择合适的磁盘,执行下列命令挂载(记得把sdb1替换成自己查出的磁盘路径)

挂载网络硬盘

如果你选用的是主机+NAS的搭配方案,那么需要将NAS网络硬盘挂载到本地,首先需要安装nfs驱动:

接着将特定文件目录挂载到本地(记得替换为自己的ip和文件路径):

配置各项资源路径

首先在/home/ubuntu/matrix路径下建立如下几个文件夹(相当于在硬盘里建立):

配置软路由(为何不直接将硬盘挂载的路径设置为后台文件夹?这是非常危险的行为!如果不在Nginx里明确设置,黑客将有机会暴力扫描你的硬盘文件):

配置基础数据库

将sql文件导入本地数据库:

配置开机启动

写入以下文段:

接着写入具体脚本:

写入以下文段:

配置完成后重启机器(sudo reboot),等待3-5分钟,访问「ip:14201」即可,初始账号&密码为:

部署素材矩阵

配置运行环境

这是我们自认为做得最好的一个矩阵,在安装此矩阵前请确保基础后台已经安装完毕并能够正常打开;首先配置队列与队列交换机,素材矩阵中的一部分操作涉及队列,所以需要配置;打开「ip:15672」,点开Queues标签页:

依次添加「audioOptionalQueue」、「clipOptionalQueue」、「imageOptionalQueue」三个队列;然后点开Exchanges标签页,依次添加「audioOptionalExchange」、「clipOptionalExchange」、「imageOptionalExchange」三个交换机:

接着配置python批处理脚本中的各项参数;首先打开数据库配置:

在红框中填写之前mysql数据库的账号和密码:

然后配置队列和云服务:

按照下列提示来配置就行了(没提示的地方不写也行,对于开发者来说应该知道这些是干啥用的):

pip安装python基础库:

还需要把ffmpeg下载到本地:

把ffmpeg和ffprobe移动到material_process路径下,就像这样:

(其实仅命令也可以操作,由于ffmpeg版本不同命令也不同,所以不写具体命令了)给予运行权限:

我们的speeter服务比较特殊,它本身也依赖ffmpeg,所以还得用apt来装一个……本来只用装一个的,但是只有最新的2021版本才有对bt2020的HDR做了适配,所以在apt源不更新的情况下,还是只能装两次,设置两个不同的运行环境。

之后下载spleeter训练好的神经网络,用来歌曲转伴奏:

一系列配置完成后就可以开启素材矩阵相关的服务了:

按下Ctrl+A、Ctrl+D退出screen,如果需要进入可以使用「screen -r python」,接着配置开机自启,这样就算断电也能恢复:

还是打开这个脚本,

配置内网访问

接着还需要内网中的其他设备也能访问,此处拿windows添加网络位置为例:

最终效果↑

首先安装Samba文件共享协议:

打开编写配置文件:

把红框内配置改为以下(记得替换为自己的路径):

设置自己的用户名和密码:

最后重启服务:

在windows上添加下网络位置就行了:

此时我们可以将素材按种类拖入这三个临时文件夹,之后回到面板点击「素材导入」就能正式开始使用这套系统了,具体的使用教程可以看隔壁教程栏:

配置前端

如果希望展示自己的素材,可以选择配置前端;和之前的配置类似,先对前端代码进行编译,之后再把编译好的文件转移到生产环境:

记得配置Nginx(加多一个server对象):

重启Nginx服务后,打开「ip:14203」即可访问:

配置开机启动

注意:这里存在一个问题,spleeter只能以普通用户的身份安装和运行,切到root身份之后无论是安装还是运行都会报错,但是目前我们教程里的开机自启都是默认以root用户身份启用的,我们试了很多方法,要么开机自启时使用普通用户,要么想尽方法把spleeter装到root那一侧,但都失败了……所以现在求大神解决……目前由于以上问题,只能手动启用脚本,非常遗憾……

配置渲染节点

如果你在本地还有其他计算单元,可以协助分担一些渲染工作;和主要节点配置方案类似,运行时请在对应机器上运行slave_starter.py

部署视频矩阵

前端配置

视频矩阵可以展示主体视频作品,打造私域流量,且某种意义上规避「信息霸权」式审查;本地编译→部署→启用:

Nginx更新配置文件(加多一个server对象):

重启Nginx服务后,打开「ip:14202」即可访问:

自动同步

如果不打算从YouTube上同步视频的话,就得手动往矩阵上传视频了……对于在油管有投稿或者打算投稿的小伙伴,你们可以选择配置以下自动同步脚本;首先配置代理,需要在公有云和私有云分别配置服务端和客户端;先配置服务端,进入公有云后台,装shadowsocks软件包:

之后是加速必备的BBR:

验证方法:

由于2020年发布的openssl 1.1.0版本中,因为安全问题废弃了 EVP_CIPHER_CTX_cleanup() 函数而引入了 EVE_CIPHER_CTX_reset() 函数,但shadowsocks项目在18年就停止维护了,所以需要手动更改软件包中的部分代码(否则启动失败):

使用nano全局替换,将全局中两个cleanup关键字换为reset,Ctrl+O保存Ctrl+X退出;接着编辑配置文件:

自定义各项参数:

编辑完后,Ctrl+O保存Ctrl+X退出;最后运行下列命令启动:

有的vps网络管理比较严格,需要手动开一下端口允许入口流量:

服务端配置完并开启之后,转到本地配置客户端,同样安装ss:

还是更改openssl相关代码(客户端就不用装BBR了):

使用nano全局替换,将全局中两个cleanup关键字换为reset,Ctrl+O保存Ctrl+X退出;接着编辑配置文件:

自定义各项参数:

编辑完后,Ctrl+O保存Ctrl+X退出,开启本地客户端服务:

这样代理就打通了,接着配置python同步脚本;打开此脚本的配置:

注意,配置了cookies可以有效防止油管的反爬,尤其是爬自己的视频,带上cookie油管就不管了。那么如何获取油管的cookie呢?先登录油管账号,接着按f12,切到Network,切到XHR,随便选一个点进去,切到header,找到cookie,是非常长的一串代码,把它复制到配置文件中对应位置。

之后去后台配置需要同步的账号:

配置好后就启动吧:

等待程序运行完毕即可,以及最好设置一下开机启动,系统会自动扫描(周期为每周一次):

部署文学矩阵

首先给网站准备好一个域名(或二级域名),做好解析;进入宝塔面板,安装WordPress:

改为刚刚设置好的域名,点击提交:

点击链接,一路跟着配置:

把刚刚获取的信息复制过来:

根据主体信息来配置(下边仅为示例):

用刚刚的账号密码登陆:

关于主题,你可以点击外观选项来进行配置,就个人而言,目前我感觉最棒的wp主题应该是这个:https://2heng.xin/theme-sakura/,比较适合个人为主体的创作者,具体配置教程可以去他们网站看看~

接下来就是重头戏了,需要配置「QQ World收藏家」来同步主体在各种平台发布的文章,进入官网下载插件包,我们先安装插件:

等待自动安装完成后(可能会比较久),进入标签页,选择激活试用站长版(正常来说这个够用了):

但是由于某些不可抗力的因素,目前该插件的合作方暂时停止了试用的部分功能,需要开通的话得联系管理员:

其他的介绍可以去看看这个视频:https://www.bilibili.com/video/av28517524

这个是他们的官网,之后与文学矩阵文章同步相关的服务全权交由他们负责,关于购买和采集讨论可以直接和他们的开发团队沟通~

部署创作矩阵

(目前有的功能即后台登陆后第一个界面,其他功能还在开发中,故无需额外配置)

部署分发矩阵

(还在开发中,敬请期待)

部署对外服务

此处以公有云+宝塔面板为例演示快捷配置;先在本地和vps上分别放上frp,在这里挑一个和自己系统适配的编译版本,一会我们要用它来建立内网穿透:

解释一下frp的运行机制,部署在本地的叫做frp客户端,负责接收frp服务端传来的信息,和发送数据给frp服务端(vps),而这个服务端是安装在vps上的,专门接收访问用户传来的信息,并将这个信息转发给frp客户端,客户端处理好之后又把这个信息转回去,由服务端推送给用户。这个处理机制有点像代理,如果你了解过相关的知识,相信不难理解的。

下载完之后,我建议大家在本地解压并编辑各项参数,然后再通过FTP或者SFTP的形式上传到服务器,这样的话好处有两个,其一是如果你云服务器要换了,直接关闭frp服务然后重新找另一个服务器把相同的配置文件和运行文件一传,直接执行就能短时间内完成变更。

其中,frpc是客户端(client),frps是服务端(server),千万要厘清,不要弄混了。服务端配置示例:

客户端配置示例:

这里以4201~4203端口举例,可以自行改为其他端口;此时可以通过「公网ip:端口号」的方式来验证;接着在宝塔上配置反向代理,用域名也能访问网页:

推荐整一个SSL:

最后就能通过域名访问位于本地的各项服务了~

系统更新

暂时还没有找到合适的自动更新方案,手动更新可以通过「拉代码→重新编译→重启服务」的方式实现:

之后重启系统即可完成更新~

最后更新于

这有帮助吗?