GitHub Actions + Nginx 部署React App到云服务器

2023-11-05

初始化环境

一台云服务器,我的服务器是基于centos的华为云; 个人电脑安装好git,node环境

安装Nginx

进入云服务器控制台,远程连接进服务器终端(或者本地终端输入ssh 你的服务器用户名@你的服务器公网ip(如果出现Someone could be eavesdropping on you right now (man-in-the-middle attack)!错误,则可以查看这里))

yum install nginx 
启动nginx服务器

终端输入

nginx 

浏览器输入服务器公网ip查看

image_9KVoS4cUfJjeKA2M1G8mhk.png

服务器安装git 并获取ssh公私钥
yum install git -y 

此处需要对git进行下初始化,即生成ssh公私钥

ssh-keygen -t rsa -C "你的邮箱" 

生成成功后,公私钥将存放在/.ssh/下,可以通过如下命令查看公钥,将之配置在github或码云这类平台上从而使得对应私钥具有操作仓库的权限

cat ~/.ssh/id_rsa.pub 

扩展:可以通过如下命令获取私钥

cat ~/.ssh/id_rsa 

注意:此处在我的华为云上获取的私钥是新格式(OPENSSH),也就是:

image_ncgpehKZfkFBvj1XwPUyWS.png

(如果你可以直接获取github需要的格式则无需做这一步转换)

但github actions上需要的是(RSA)格式:

image_uJunhkEffzuxGEkKc2xMqN.png

此处我们需要将OPENSSH转换为RSA格式:

首先更改key的读取权限

chmod 600 ~/.ssh/id_rsa 

然后更改格式

ssh-keygen -p -N ""  -m pem -f ~/.ssh/id_rsa 

最后再次获取私钥

cat ~/.ssh/id_rsa 
创建本地项目

具体可以参考react官方文档

npx create-react-app deploy-react-app 
上传至github

在github上新建一个repo ,命名为deploy-react-app

image_7gWZRZHQbgwkGgtHGpjLFF.png

填写好信息后,点击Create Repository

image_mzU7RcoHeeyaQEuBN96amw.png

复制仓库的地址

image_bY4Y3v5gPVit3PdCzF1hbj.png

将本地项目与远程仓库连接:

git remote add origin '你的仓库地址'
// github上的项目默认在main分支上,本地项目是master,需要切换分支
 git checkout -b main
 git pull origin main  --allow-unrelated-histories
 git add .
 git commit -m 'first commit'
 git push --set-upstream origin main 

查看项目是否push成功

image_hh4H4U7Y3CKripgdLaJhJr.png

添加ssh公钥

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2nYx3dmG-1653630476629)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/281729cb7c2b4b69b000a66d1c2a3878~tplv-k3u1fbpfcp-zoom-in-crop-mark:1956:0:0:0.image?)]

image_8YKQtD7A6XNRsbdqgCnQTa.png

image_rPXjnniH59wvDYqjthssqe.png

配置github actions

依次点击Actions=> Node.js => Configure

image_pqNH51wHC2xCv9ijqjqbZ5.png

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2VY6MSOH-1653630476630)(https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0a193437e65047fe872c63daca4c7200~tplv-k3u1fbpfcp-zoom-in-crop-mark:1956:0:0:0.image?)]

配置node.js.yml

 # This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: Node.js CI

on:
  push: # 在推送的时候运行此action
    branches: [ main ] # 指定分支
  pull_request:
    branches: [ main ]

jobs:
  build:

    runs-on: ubuntu-latest # 运行环境

    strategy:
      matrix:
        node-version: [16.x] # 这里指定node版本
        # See supported Node.js release schedule at https://nodejs.org/en/about/releases/

    steps:
    - uses: actions/checkout@v2 # 这里使用了github官方提供的action,checkout项目到虚拟机上
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v2
      with:
        node-version: ${{ matrix.node-version }}
    - name: 									
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GitHub Actions + Nginx 部署React App到云服务器 的相关文章

随机推荐

  • 【论文笔记】:PP-YOLO、PP-YOLOv2、PP-YOLO Tiny

    Title PP YOLO An Effective and Efficient Implementation of Object Detector 2020 PP YOLOv2 A Practical Object Detector 20
  • 热门AI开源项目

    目录 DiffusionBee 免费使用Stable Diffusion生成AI绘画软件 开源免部署 Chat2DB 开源AI智能数据库客户端工具 能够将自然语言转换为SQL RoomGPT AI自动生成房间设计图 AI 法律助手 基于Ch
  • 【数模/预测】灰色预测

    声明 文章参考数学建模清风的网课编写 文章目录 简介 符号说明 适用条件 准指数规律检验 残差检验 级比偏差检验 GM 1 1 模型求解 简介 灰色预测是对既含有已知信息又含有不确定信息的系统进行预测 就是对在一定范围内变化的 与时间有关的
  • 前端面试题整理—Vue篇

    1 对vue的理解 有什么特点 vue为什么不能兼容IE8及以下浏览器 vue是一套用于构建用户界面的渐进式框架 核心是一个响应的数据绑定系统 vue是一款MVVM框架 基于双向绑定数据 当数据发生变化时候 vue自身会进行一些运算 特点
  • 老猿学5G扫盲贴:移动边缘计算(Mobile Edge Computing, MEC)

    版权声明 本文为CSDN博主 魏晓蕾 的原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接及本声明 原文链接 https blog csdn net gongxifacai believe article detai
  • win10系统解决HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容。解决方案!!

    全网付费课程欢迎咨询QQ 3388486286 今天IIS发布网站 给我报错HTTP 错误 403 14 Forbidden Web 服务器被配置为不列出此目录的内容 如图 是怎么回事呢 根据我自己找资料 摸索 找出了这个错误得解决方案 本
  • qt ui文件生成对应头文件_UI 文件设计与运行机制

    上一篇通过一个 Hello World 实例 演示了在 Qt Creator 里创建应用程序 设计窗体界面 编译和运行程序的基本过程 这一篇将介绍可视化设计的 UI 界面文件的原理和运行机制 本篇目录 1 项目文件组成 2 项目管理文件 3
  • 方差分析:不同组间的差异真的显著吗

    http www datasoldier net post chayi html 在数据分析中 按照具体维度将数据分组进行组间比较是十分常见的 例如在零售业态中 按照性别 城市 收入水平将消费者进行分组进行对比分析 看似简单 其实这其中经常
  • Android手机定位恶意代码,基于动态特征的Android恶意代码检测和定位方法

    Android Malicious Code Detection and Localization based on Runtime Feature Wang Songhe 1 王淞鹤 1994年 男 硕士 主要研究方向为安卓安全 Guo
  • ChromeDriver淘宝镜像地址

    https npm taobao org mirrors chromedriver
  • java队列中的offer、poll方法

    首先 这个方法所在的包是java util Queue 1 offer boolean offer E e 将指定的元素插入此队列 如果立即可行且不会违反容量限制 当使用有容量限制的队列时 此方法通常要优于 add E 后者可能无法插入元素
  • MySQL收费方式

    导读 网络上多数朋友担心甲骨文会对MySQL软件采用收费模式 多数朋友也不清楚MySQL开源到底是什么模式 开源 免费嘛 是很多的疑问 MySQL是遵守双重协议的 一个是GPL授权协议 一个是商用授权协议 注释 为解决其他企业用MySQL软
  • Python的必学技术——Jupyter Notebook

    推荐 Jupyter NoteBook 的原因 整合所有的资源 交互性编程体验和零成本重现结果 Jupyter NoteBook 能够把软件代码 计算输出 解释文档 多媒体资源整合在一起的多功能科学运算平台 很符合英文里说一图胜千言 A p
  • pytorch-yolov3 train 报错

    UserWarning indexing with dtype torch uint8 is now deprecated please use a dtype torch bool insteadhttps github com erik
  • NB-IoT、Cat.1、5G将迎来新一波发展浪潮

    据工信部5月7日消息 工信部办公厅发布关于深入推进移动物联网全面发展的通知 通知提出主要目标和重要任务 通知全文如下 各省 自治区 直辖市及新疆生产建设兵团工业和信息化主管部门 各省 自治区 直辖市通信管理局 相关企业 移动物联网 基于蜂窝
  • Charles 弱网测试

    知识了解 网络延时 网络延时指一个数据包从用户的计算机发送到网站服务器 然后再立即从网站服务器返回用户计算机的来回时间 通常使用网络管理工具PING Packet Internet Grope 来测量网络延时 由于互联网络的复杂性 网络流量
  • 浏览器输入url后回车后全过程及其优化

    浏览器输入URL后回车后 会发生什么 嗯嗯 很经典的问题 概括性大致流程是这样的 1 查询URL对应的IP地址 DNS域名解析 2 建立TCP连接 连接服务器 3 浏览器发起请求 4 服务器响应浏览器请求 5 浏览器解析响应 渲染页面 6
  • 代码随想录算法训练营第二十四天

    LeetCode 77 组合 链接 77 组合 思路 回溯算法的典型应用 回溯算是理解难度比较大的算法了 经常会有一些循环嵌套在递归里 其本质就是罗列出所有的组合排列 可能性 因为是暴力算法时间复杂度都比较高 有时候需要搭配一定的剪枝操作
  • 数据结构——二叉树的遍历

    树 是一种重要的数据结构 本文浅谈二叉树的遍历问题 采用C语言描述 一 二叉树基础 1 定义 有且仅有一个根结点 除根节点外 每个结点只有一个父结点 最多含有两个子节点 子节点有左右之分 2 存储结构 二叉树的存储结构可以采用顺序存储 也可
  • GitHub Actions + Nginx 部署React App到云服务器

    初始化环境 一台云服务器 我的服务器是基于centos的华为云 个人电脑安装好git node环境 安装Nginx 进入云服务器控制台 远程连接进服务器终端 或者本地终端输入ssh 你的服务器用户名 你的服务器公网ip 如果出现Someon
Powered by Hwhale