构建部署
本教程基于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
虚拟货币付款:https://bitcoin-vps.com
推荐商家:https://www.dmit.io
购买域名
阿里万网(常用域名):https://wanwang.aliyun.com/domain
porkbun(冷门域名):https://porkbun.com
宝塔管理面板
为了方便管理,推荐在公有云上安装宝塔管理面板,本教程很多内容也会依赖此管理框架:
装好宝塔之后选择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证书,获得证书和私钥,接下来会用到:


前往火山引擎官网,注册账号,接着前往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:

最后就能通过域名访问位于本地的各项服务了~
系统更新
暂时还没有找到合适的自动更新方案,手动更新可以通过「拉代码→重新编译→重启服务」的方式实现:
之后重启系统即可完成更新~
最后更新于
这有帮助吗?