保姆级教程:Linux (Ubuntu) 部署流光卡片开源 API

流光卡片 API 开源地址 Github:https://github.com/ygh3279799773/streamer-card

流光卡片 API 开源地址 Gitee:https://gitee.com/y-gh/streamer-card

流光卡片在线使用地址:https://fireflycard.shushiai.com/

等等,你说你不知道流光卡片是什么?总之这是一个能将你得文字,或者图片美化成好看的卡片的工具哒~仙子你知道了吧,而且还提供了一个开源 api 可以调用哦

image-20240709152519725 image-20240709152051777

想要使用 api 调用服务,需要有一个服务器来时刻监听请求。

服务器终端界面阅读不方便,因此需要使用宝塔面板进行管理。

特别提醒:在部署服务器前,现在本地跑通流程是一个好习惯!!!(在开源地址里面也有视频教程)

一、轻量云服务器(阿里云)

1.1 服务器类型

省略购买过程,选最低配最便宜的即可。

在购买时选择 Ubuntu 镜像,版本随便选一个较新的稳定版即可。

重点强调,不要选择低版本 Linux,不要选择低版本 Linux,为什么不选择 centos7.9 呢?因为他得Linux 内核版本不支持

选择自定义密码,并设置密码。

image-20240709145433993

每个云服务器都是一个实例。

image-20240709145733787

1.2 添加宝塔面板

打开实例后的界面如下图。

为了更方便地操作我们的服务器,最好是使用便利工具(宝塔面板)来可视化管理。

因此在这里点击 远程连接。

image-20240709145752972

在上一步打开的界面,输入自己的密码,会进入服务器的终端界面。
在这里复制一下安装 宝塔界面 的代码:

wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec

链接:https://www.bt.cn/new/download.html

image-20240709145852135

备注:在终端界面无法Ctrl + V,需要鼠标右键,然后选择粘贴。

image-20240709145918577

无脑输入y 。

image-20240709145927642

最终成功。

注意:

1.面板地址(后续使用第一个外网面板地址)、账户名、密码很重要,注意保存;

2.注意使用的端口,需要在服务器里打开。

image-20240709145952830

1.3 打开宝塔面板端口

在实例的安全组,点击安全组ID。

image-20240709150004669

点击手动添加。

image-20240709150012119

添加上面获得的端口,源选择 “所有IPv4(0.0.0.0/0)”,点击保存。

image-20240709150018929

二、操作宝塔面板

2.1 基础设置

打开上面的“外网面板地址”,输入用户名及密码。

image-20240709150127429

绑定宝塔账号(没有就免费注册一个)。

image-20240709150139099

选择套件,第一个就行。

image-20240709150146367

安装中……

image-20240709150153675

2.2 上传项目文件

再次强调:需要部署的文件,最好本地先把流程跑通。

上传项目压缩文件(源文件数量太多,以压缩方式上传)。

image-20240709150259130

解压文件。

image-20240709150305343

image-20240709150312819

在项目目录下,点开重点,安装项目所需要的库。

image-20240709150338879

2.3 安装 Node.js

Node.js 是一个 JavaScript 的运行环境。可在客户端、服务器运行,应用非常广泛。

在宝塔面板找到 Node项目。

由于是新的面板,需要先安装Node版本管理器。

image-20240709150359715

选择合适的源、版本就行安装。

image-20240709150408106

2.3.5 设置 Node 路径

使用管理器安装 Node 后,在宝塔的终端输入 node -v 查看版本号。

image-20240709150421503

第一次讯问 AI,决定加一下环境变量。

image-20240709150430968

选搜索找到 Node 的安装路径。

image-20240709150439725

根据 AI 的提示,一步步完成环境变量的设置。

image-20240709150448105

2.4 第一个 Node.js 项目

在同一个界面,添加项目。

image-20240709150457929

点击文件夹图标选择项目路径。

项目端口填3000,同时勾选“放行端口”。

image-20240709150506993

提示名称格式不正确,微调去掉“-”即可。

image-20240709150516249

打开设置,可以看到项目的运行情况。

image-20240709150523304

2.5 排错与运行

由于本地使用 python 脚本跑通过流程。

因此这里把 localhost 换为服务器的公网IP,重新进行请求。

失败了,在项目的设置里,可以看到项目日志。

image-20240709150535990

把报错丢给 AI,得知需要设置环境变量。

在宝塔面板的终端输入 npx puppeteer browsers install chrome

发现还没安装 puppeteer。

在终端输入 y 确认后,顺便自动把对应的 chrome 版本也下载好了。

image-20240709150549686

再次运行仍有问题,AI 建议在代码中直接指定chrome路径。

在 example1.js 的第42行下面插入以下代码:

executablePath: ‘/root/.cache/puppeteer/chrome/linux-126.0.6478.126/chrome-linux64/chrome’,

image-20240709150605559

以上设置后,还是有 puppeteer 无法访问 chrome 的问题。

经过问题AI,可能是权限问题。需要把这里改为 root。

image-20240709150741829

再次运行,发现日志有新的错误,说明chrome 路径设置OK了。

后面都是缺少库的内容,让 AI “一步步地” 详细解答问题,足够我们完成任务。

当然也可以把 “三、缺少的库” 中的代码在宝塔终端都安装一次,就可以了。

image-20240709150754181

服务器报错后,需要重启。

image-20240709150804485

三、缺少的库

在第二步结束后,还有 7 个库的缺少。

挨个在宝塔的终端安装即可。

sudo apt-get update
sudo apt-get install -y libatk1.0-0
sudo apt-get install -y libatk-bridge2.0-0
sudo apt-get install -y libxdamage1
sudo apt-get install -y libgbm1
sudo apt-get install -y libxkbcommon0
sudo apt-get install -y libpango1.0-0
sudo apt-get install -y libasound2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/869431.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

0基础学会在亚马逊云科技AWS上搭建生成式AI云原生Serverless问答QA机器人(含代码和步骤)

小李哥今天带大家继续学习在国际主流云计算平台亚马逊云科技AWS上开发生成式AI软件应用方案。上一篇文章我们为大家介绍了,如何在亚马逊云科技上利用Amazon SageMaker搭建、部署和测试开源模型Llama 7B。下面我将会带大家探索如何搭建高扩展性、高可用的完全托管云原…

FullCalendar的使用,react日历组件

1.下载 yarn add fullcalendar/core fullcalendar/react fullcalendar/daygrid 2.运行 import React from react; import FullCalendar from "fullcalendar/react"; import dayGridPlugin from "fullcalendar/daygrid";const ExperimentalSchedule () …

初识STM32:寄存器编程 × 库函数编程 × 开发环境

STM32的编程模型 假如使用C语言的方式写了一段程序,这段程序首先会被烧录到芯片当中(Flash存储器中),Flash存储器中的程序会逐条的进入CPU里面去执行。 CPU相当于人的一个大脑,虽然能执行运算和执行指令,…

面试官:讲一下如何终止一个 Promise 继续执行

我们知道 Promise 一旦实例化之后,状态就只能由 Pending 转变为 Rejected 或者 Fulfilled, 本身是不可以取消已经实例化之后的 Promise 了。 但是我们可以通过一些其他的手段来实现终止 Promise 的继续执行来模拟 Promise 取消的效果。 Promise.race …

SAP_MMABAP模块_MM60物料清单新增物料组描述字段

业务背景: 用户需要在系统标准的物料主数据查询报表MM60中,添加物料组描述,一直以来,我都觉得标准的MM60显示的内容字段不够多,不太好用。 以往都是给用户新开发一个物料主数据查询报表来解决的,但是这次刚…

数学建模及国赛

认识数学建模及国赛 认识数学建模 环境类:预测一下明天的气温 实证类: 评价一下政策的优缺点 农业类: 预测一下小麦的产量 财经类: 分析一下理财产品的最优组合 规划类: 土地利用情况进行 合理的划分 力学类&#xf…

ProFuzzBench入门教学——使用(Ubuntu22.04)

ProFuzzBench是网络协议状态模糊测试的基准测试。它包括一套用于流行协议(例如 TLS、SSH、SMTP、FTP、SIP)的代表性开源网络服务器,以及用于自动执行实验的工具。详细参考:阅读笔记——《ProFuzzBench: A Benchmark for Stateful …

一句话彻底搞懂Java的编译和执行过程

编译和运行可以在不同的计算机上实现。 编译阶段:由Javac编译器将 .Java 的源文件编译为 .class 的字节码文件; 运行阶段: jvm中Java编译器运行 .class 的字节码文件,运行过程中,类加载器从硬盘中找到该字节码文件并…

WPF引入多个控件库使用

目的 设计开发时有的控件库的一部分符合我们想要的UI样式,另一部分来自另一个控件库,想把两种库的样式做一个整合在同一个控件资源上。单纯通过引用的方式会导致原有样式被覆盖。这里通过设置全局样式的方式来实现。 1.安装控件库nuget包:H…

Webpack: 模块编译打包及运行时Runtime逻辑

概述 回顾最近几节内容,Webpack 运行过程中首先会根据 Module 之间的引用关系构建 ModuleGraph 对象;接下来按照若干内置规则将 Module 组织进不同 Chunk 对象中,形成 ChunkGraph 关系图。 接着,构建流程将来到最后一个重要步骤…

Argo CD入门、实战指南

1. Argo CD概述 1.1 什么是 Argo CD Argo CD 是针对 Kubernetes 的声明式 GitOps 持续交付工具。 1.2 为什么选择 Argo CD 应用程序定义、配置和环境应具有声明性并受版本控制。应用程序部署和生命周期管理应自动化、可审计且易于理解。 2. Argo CD基础知识 在有效使用 Ar…

中职网络安全B模块渗透测试server2003

通过本地PC中渗透测试平台Kali对服务器场景Windows进⾏系统服务及版本扫描渗透测 试,并将该操作显示结果中Telnet服务对应的端⼝号作为FLAG提交 使用nmap扫描发现目标靶机开放端口232疑似telnet直接进行连接测试成功 Flag:232 通过本地PC中渗透测试平台…

使用 Hugging Face 的 Transformers 库加载预训练模型遇到的问题

题意: Size mismatch for embed_out.weight: copying a param with shape torch.Size([0]) from checkpoint - Huggingface PyTorch 这个错误信息 "Size mismatch for embed_out.weight: copying a param with shape torch.Size([0]) from checkpoint - Hugg…

Elasticsearch基础(四):Elasticsearch语法与案例介绍

文章目录 Elasticsearch语法与案例介绍 一、Restful API 二、查询语法 1、ES分词器 2、ES查询 2.1、match 2.2、match_phrase 2.3、multi_match 2.4、term 2.5、terms 2.6、fuzzy 2.7、range 2.8、bool Elasticsearch语法与案例介绍 一、Restful API Elastics…

服务攻防——中间件Jboss

文章目录 一、Jboss简介二、Jboss渗透2.1 JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)2.2 JBoss JMXInvokerServlet 反序列化漏洞(CVE-2015-7501)2.3 JBossMQ JMS 反序列化漏洞(CVE-2017-7504)2.4 Adminis…

Java如何自定义注解及在SpringBoot中的应用

注解 注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说…

leetcode:LCR 018. 验证回文串(python3解法)

难度:简单 给定一个字符串 s ,验证 s 是否是 回文串 ,只考虑字母和数字字符,可以忽略字母的大小写。 本题中,将空字符串定义为有效的 回文串 。 示例 1: 输入: s "A man, a plan, a canal: Panama" 输出: t…

【C++】开源:坐标转换和大地测量GeographicLib库配置使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍坐标转换和大地测量GeographicLib库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关…

Effective C++笔记之二十一:One Definition Rule(ODR)

ODR细节有点复杂,跨越各种情况。基本内容如下: ●普通(非模板)的noninline函数和成员函数、noninline全局变量、静态数据成员在整个程序中都应当只定义一次。 ●class类型(包括structs和unions)、模板&…

2018-2022 年份微博签到数据集

前阵子接到一个实验室老师的需求,采集五年前(2024-52019)过年前后的北京微博签到数据。 前两年采集的深圳签到数据是 2022 年是当年的尚可,这次虽然时间跨度只有两个月,但是由于时间太过久远,但是颇费了一…