部署:上传项目代码 配置数据库

一、上传代码

1、使用git

可以使用Git Clone。使用前,在服务器上也要创建秘钥对。这里的密钥对,是专门用来读取Git仓库的。
宝塔上,点击终端。进来后,运行

ssh-keygen

还是一路回车,密钥对就建好了。
在这里插入图片描述

接着用命令查看下,刚才生成的公钥。看到后,老规矩,直接复制一下。

cat ~/.ssh/id_rsa.pub

在这里插入图片描述

然后打开GItHub里自己的仓库,点击:设置,左侧找到部署密钥,再点击新增部署密钥

在这里插入图片描述

  • Title大家可以随便填写一个,只要自己知道是干什么的就行。

  • 然后把刚才复制的密钥,粘贴到这里。

  • 部署密钥只能用来克隆Clone和拉取Pull,但是不能用来推送Push代码。所以不要给写入权限。

  • 最后提交一下
    在这里插入图片描述
    GitHub的话,会要求用手机上的GitHub App输入验证码。用国内其他仓库的,则没有这一步。

在这里插入图片描述
现在部署密钥就添加好了,如果用其他 Git 仓库也是类似的添加操作。接着,回到仓库的代码这里。点击Code,确认当前选择的是SSH,复制一下地址。
在这里插入图片描述
再回到宝塔里,点击文件,确保现在所在的位置是:/www/wwwroot。这个路径是专门用来存放项目的位置,然后点击终端
在这里插入图片描述
注意,如果出现宝塔终端提示无法自动认证,这是自己生成的密钥与宝塔终端的密钥互相冲突导致的,按以下步骤操作:

  • 点击文件,进入/root/.ssh目录,删掉所有密钥。
  • 重新点击宝塔终端,就可以进去了。
  • 再次回到/root/.ssh目录,会发现宝塔终端自己生成了新的密钥。
  • 为了避免冲突,直接将此密钥传到Git即可,就不要自己生成密钥了。

里面输入

git clone 你的仓库地址

在这里插入图片描述
这样仓库就克隆下来了。关闭窗口后,刷新一下,就能看到自己的项目了。
在这里插入图片描述

2、使用宝塔直接上传

另外一种方式,大家可以直接使用宝塔的上传功能。将自己的本地项目打个zip压缩包。上传到服务器后,再解压,这样也是可以的。这种操作非常简单,我们这里就不演示了。
在这里插入图片描述

3、安装依赖包

接着在宝塔里,点击自己的项目。进入项目目录里后,再次打开终端。运行

npm i

在这里插入图片描述

4、 修改代码

我们还需要对服务器上的代码做个配置

4.1. 设置环境变量

在项目目录中,找到.env.example,右侧找到更多,选择复制
在这里插入图片描述
直接按Ctrl + V,进行粘贴。改为名.env后,点击确认

在这里插入图片描述
双击打开.env后,将环境改为生产环境。

NODE_ENV=production
4.2. 设置密钥

还需要设置密钥,大家打开自己电脑上的终端。运行:

node

进入交互模式后,依次运行

const crypto = require('crypto');
console.log(crypto.randomBytes(32).toString('hex'));

在这里插入图片描述

复制得到的秘钥,填写到.env文件中的SECRET配置中。
在这里插入图片描述
这个秘钥就专供生产环境使用,它不归 Git 仓库管理,更不要告诉其他人了。

4.3. 配置数据库连接

关闭编辑器后,接着点击宝塔左侧的数据库,点击root密码。这里默认已经有一个数据库密码了,大家可以自定义其他的,或者随机生成另一个新的。
在这里插入图片描述
我就不改了,直接复制一下。再点击文件,找到数据库配置的config/config.json
在这里插入图片描述

双击后,将刚复制的密码填写到production里。还有千万不要忘记了,密码要用双引号包裹起来。
在这里插入图片描述
接着保存,关闭编辑器。

5. 创建数据库

我们还要需要在服务器上创建数据库。回到项目根目录,位置千万不要搞错,点击终端,运行创建数据库的命令 参考node ORM (sequelize)使用、查询、验证及express 基础框架的搭建及实例的使用

npx sequelize-cli db:create --charset utf8mb4 --collate utf8mb4_general_ci --env production

第一次运行,会询问是否确认,直接回车。命令后面的--env production,表示要创建的是,生产环境的数据库,也就是clwy_api_production
在这里插入图片描述

6. 创建数据表

接着创建数据表,直接运行迁移。同样需要指定是生产环境。

npx sequelize-cli db:migrate --env production

在这里插入图片描述

7. 生成初始数据

还可以用种子文件,生成初始数据。

npx sequelize-cli db:seed:all --env production

在这里插入图片描述

8.使用 MySQL 客户端,远程管理数据库

全都运行完毕后,关闭终端。我们可以用客户端,连接到服务器上的MySQL,查看一下数据库有没有什么问题。当然,想要导入导出SQL文件,使用客户端也非常方便。

  • 新建一个连接在这里插入图片描述
  • 选择 SSH
    在这里插入图片描述
  • 选择私钥
    在这里插入图片描述
  • 打开后,已经能访问服务器上的数据库了。
  • 在这里插入图片描述
9. 总结一下
  • 上传代码,推荐使用Git Clone。或者用宝塔面板直接上传,但是不推荐。
  • Linux上的npm包,有可能和Windows上不同。上传到服务器后,需要重新安装。
  • 生产环境,有自己的环境变量、秘钥和数据库配置。
  • 可以使用命令,创建生产环境的数据库、表和数据。
  • 使用MySQL客户端,也可以远程管理服务器上的数据库。

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

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

相关文章

时敏软件定义网络的服务保证

论文标题: Service Guarantees for Time-Sensitive Software-Defined Networks作者信息: Weijiang Kong论文出处: Eindhoven University of Technology, 2025年1月20日 摘要: 在过去十年中,随着半导体技术的进步和对更…

【Linux】sed编辑器

一、基本介绍 sed编辑器也叫流编辑器(stream editor),它是根据事先设计好得一组规则编辑数据流。 交互式文本编辑器(如Vim)中,可以用键盘命令交互式地插入、删除或替换文本数据。 sed编辑器是根据命令处理…

嵌入式入门Day40

C Day3 C对C的结构体的扩充类this指针类的大小类中的特殊成员函数构造函数 作业 C对C的结构体的扩充 C语言中的结构体,仅仅只是属性(变量)的聚合体,不可以在结构体中定义行为(函数)。如果非要在结构体中定…

《自动驾驶与机器人中的SLAM技术》ch2:基础数学知识

目录 2.1 几何学 向量的内积和外积 旋转矩阵 旋转向量 四元数 李群和李代数 SO(3)上的 BCH 线性近似式 2.2 运动学 李群视角下的运动学 SO(3) t 上的运动学 线速度和加速度 扰动模型和雅可比矩阵 典型算例:对向量进行旋转 典型算例:旋转的复合 2.3 …

C语言教程——指针进阶(1)

目录 前言 1、字符指针 2、指针数组 3、数组指针 3.1数组指针 3.2&数组名VS数组名 3.3数组指针的使用 4、数组参数、指针参数 4.1一维数组传参 4.2二维数组传参 4.3一级指针传参 4.4二级指针传参 4.5总结 5、函数指针 5.1思考 总结 前言 我们在之前知道指针…

[应用类App] 轮廓线 aia源码 UI界面精美,画布实现手柄摇杆

屏幕数量:10个,仅主界面近3000代码块,请自行研究参考。 实现了手柄摇杆功能,界面做的比较好。 下载地址:轮廓线 aia源码 UI界面精美,画布实现手柄摇杆 - .aia 案例源码 - 清泛IT社区,为创新赋能…

C++—9、如何在Microsoft Visual Studio中调试C++

本文通过实例操作来介绍 Visual Studio 调试器的功能。调试器在运行过程中可提供许多方法让你查看代码的情况。 你可以逐步浏览代码、查看变量中存储的值、设置对变量的监视以查看值何时改变、检查代码的执行路径、查看代码分支是否正在运行等等。本实例主要是设置断点及查看内…

SpringBoot项目实战(39)--Beetl网页HTML文件中静态图片及CSS、JS文件的引用和展示

使用Beetl开发网页时,在网页中使用的CSS、JS、图片等静态资源需要进行适当的配置才可以展示。大致的过程如下: (1)首先Spring Security框架需要允许js、css、图片资源免授权访问。 (2)网站开发时&#xff0…

GetMaterialApp组件的功能与用法

文章目录 1. 知识回顾2. 使用方法2.1 源码分析2.2 常用属性3. 示例代码4. 内容总结我们在上一章回中介绍了"Get包简介"相关的内容,本章回中将介绍GetMaterialApp组件.闲话休提,让我们一起Talk Flutter吧。 1. 知识回顾 我们在上一章回中已经介绍过GetMaterialApp组…

插入实体自增主键太长,mybatis-plaus自增主键

1、问题 spring-boot整合mybtais执行insert语句时,主键id为长文本数据。 2、分析问题 1)数据库主键是否自增 2)数据库主键的种子值设置的多少 3、解决问题 1)数据库主键设置的时自增 3)种子值是1 所以排查是数据库的问题 4、继…

【嵌入式硬件】嵌入式显示屏接口

数字显示串行接口(Digital Display Serial Interface) SPI 不过多赘述。 I2C-bus interface 不过多赘述 MIPI DSI MIPI (Mobile Industry Processor Interface) Alliance, DSI (Display Serial Interface) 一般用于移动设备,下面是接口…

(STM32笔记)十二、DMA的基础知识与用法 第三部分

我用的是正点的STM32F103来进行学习,板子和教程是野火的指南者。 之后的这个系列笔记开头未标明的话,用的也是这个板子和教程。 DMA的基础知识与用法 三、DMA程序验证1、DMA 存储器到存储器模式实验(1)DMA结构体解释(2…

MySQL 如何赶上 PostgreSQL 的势头?

原文地址 我与 MySQL 社区的前辈交谈时,经常遇到这个问题:「为什么 MySQL 这么棒,而且(至少根据 DB-Engines 的计算)仍然比 PostgreSQL 更流行;但它的地位在下降,PostgreSQL 却势不可挡地越来越…

完全二叉树的删除

(1)删除叶子节点 找到要删除的节点 targetNode找到要删除节点的父节点parent(父节点是否存在)要删除的节点是父节点的左子树还是右子树如果是左子树,则parent.leftnull;如果是右子树则parent.rightnull。 (…

Docker入门之docker基本命令

Docker入门之docker基本命令 官方网站:https://www.docker.com/ 1. 拉取官方镜像并创建容器(以redis为例) 拉取官方镜像 docker pull redis# 如果不需要添加到自定义网络使用这个命令,如需要,直接看第二步 docker r…

玩转大语言模型——ollama导入huggingface下载的模型

ollama导入huggingface模型 前言gguf模型查找相关模型下载模型 导入Ollama配置参数文件导入模型查看导入情况 safetensfors模型下载模型下载llama.cpp配置环境并转换 前言 ollama在大语言模型的应用中十分的方便,但是也存在一定的问题,比如不能使用自己…

DFS之迭代加深、双向DFS、IDA*

迭代加深 迭代加深&#xff1a; 170. 加成序列 满足如下条件的序列 X X X&#xff08;序列中元素被标号为 1 、 2 、 3 … m 1、2、3…m 1、2、3…m&#xff09;被称为“加成序列”&#xff1a; X [ 1 ] 1 X[1]1 X[1]1 X [ m ] n X[m]n X[m]n X [ 1 ] < X [ 2 ] < …

Ansible之批量管理服务器

文章目录 背景第一步、安装第二步、配置免密登录2.1 生成密钥2.2 分发公钥2.3 测试无密连接 背景 Ansible是Python强大的服务器批量管理 第一步、安装 首先要拉取epel数据源&#xff0c;执行以下命令 yum -y install epel-release安装完毕如下所示。 使用 yum 命令安装 an…

【Linux网络编程】第二十二弹---深入理解 I/O 多路转接之 epoll:系统调用、工作原理、代码演示及应用场景

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、I/O 多路转接之 epoll 1.1、epoll 初识 1.2、epoll 的相关系统调用 1.2.1、epoll_create 1.2.2、epol…

双向列表的实现(C++)

一.实现思路 主要是一个空间存储一个数值&#xff0c;然后为了索引后面的数据单元和前面的数据单元&#xff0c;所以在每个空间里面还要存储前面和后面数据单元的指针&#xff0c;就形成了每个数据单元 后面就是要管理的是双向列表的头结点和尾节点&#xff0c;方便实现后面的头…