码界工坊

htykm.cn
人生若只如初见

Nodejs 在 Ubuntu 上如何实现自动化部署

在 Ubuntu 上实现 Node.js 的自动化部署可以通过多种工具和方法来完成,下面将详细介绍如何使用 GitHub Actions 来实现前端项目的自动化部署。

1. 项目准备

  • 代码托管:确保你的项目代码已经托管在 GitHub 上。
  • GitHub Pages:如果你打算将项目部署到 GitHub Pages,确保你有一个 GitHub Pages 站点,或者准备部署到自己的服务器。

2. 创建 GitHub Actions 工作流

在你的项目根目录下创建一个 .github/workflows文件夹,然后在其中创建一个 deploy.yml文件,内容如下:

name: Deploy to GitHub Pageson:  push:    branches:      - mainjobs:  build-and-deploy:    runs-on: ubuntu-latest    steps:    - name: Checkout code      uses: actions/checkout@v3    - name: Set up Node.js      uses: actions/setup-node@v3      with:        node-version: '18'  # 你可以根据需要选择合适的 Node.js 版本    - name: Install dependencies      run: npm install    - name: Build project      run: npm run build    - name: Deploy to GitHub Pages      uses: JamesIves/github-pages-deploy-action@v4      with:        branch: gh-pages        folder: dist  # Vite 默认构建输出目录

3. 启用 GitHub Pages

进入你的 GitHub 仓库的 Settings,在左侧菜单选择 Pages,选择 gh-pages分支,点击 Save。等待 GitHub Actions 运行完毕,你的前端项目就会自动部署到 https://<你的用户名>.github.io/<你的仓库名>/

4. 部署到自己的服务器(Nginx + GitHub Actions)

如果你的前端项目需要部署到自己的服务器,可以使用 scp命令进行自动上传。修改 deploy.yml文件如下:

name: Deploy to Serveron:  push:    branches:      - mainjobs:  build-and-deploy:    runs-on: ubuntu-latest    steps:    - name: Checkout code      uses: actions/checkout@v3    - name: Set up Node.js      uses: actions/setup-node@v3      with:        node-version: '18'    - name: Install dependencies      run: npm install    - name: Build project      run: npm run build    - name: Deploy to Server      env:        SSH_PRIVATE_KEY: ${ {  secrets.SSH_PRIVATE_KEY }}        SERVER_USER: "your-user"        SERVER_HOST: "your-server-ip"        DEPLOY_PATH: "/var/www/html"      run: |        echo "$SSH_PRIVATE_KEY" >private_key.pem        chmod 600 private_key.pem        scp -o StrictHostKeyChecking=no -r dist/* $SERVER_USER@$SERVER_HOST:$DEPLOY_PATH

需要在 GitHub Secrets 配置 SSH_PRIVATE_KEY,用于 SSH 免密登录服务器。DEPLOY_PATH是你的服务器 Web 目录,Nginx 需要指向这个路径。

5. 常见问题与优化

  • 环境变量:可以在 GitHub Secret 中配置环境变量。
  • 处理构建产物:确保构建产物(如 dist目录)正确生成并上传。
  • 日志记录:查看 GitHub Actions 的运行日志,以便调试和优化部署流程。

通过上述步骤,你可以实现 Node.js 项目的自动化部署,提高开发效率和部署的可靠性。

未经允许不得转载 » 本文链接:http://htykm.cn/html/778c7299149.html

推荐文章

  • 如何调整Linux backlog参数

    在Linux系统中,backlog参数通常与网络连接相关,它定义了系统允许的最大挂起连接数。这个参数可以在几个不同的配置文件中设置,具体取决于你想要调整的网络服务。以下是一些常见的方法来调整backl ...

  • 哪个网站买域名便宜?如何选择合适的域名抢注平台?

    哪个网站买域名便宜?如何选择合适的域名抢注平台?随着越来越多的人投资于域名,域名的价值不言而喻。每个人都想要一个好域名,但他们不一定能得到。一般来说,如何抢注域名可以分为两类。一个是新域名的抢先注册, ...

  • 如果域名被注册怎么买?有什么方法进行域名购买?

    如果域名被注册怎么买?有什么方法进行域名购买?注册了域名,但是很喜欢,想买的话,可以通过whois的方式,查询域名所有者的信息,直接联系它购买。如果您发现域名被放置在域名交易市场,可以直接通过交易市场 ...

  • top域名真的不值钱吗?top域名有何价值?

    top域名真的不值钱吗?top域名有何价值?域名不仅仅是一个简单的网络标识,现在越来越多的人把它当作商品来投资,现在域名有很多不同的后缀,比如.top域名,下面聚名网小编就带大家看看top域名真的不值 ...

  • debian缓存清理技巧有哪些

    Debian系统缓存清理是一个重要的维护过程,可以保持系统的性能和稳定性。以下是一些常用的Debian缓存清理技巧:查看磁盘空间使用情况使用 lsblk命令列出所有块设备的信息,了解系统中所有存储设备 ...

  • 为什么网站域名越短越好?域名多短才好?

    为什么网站域名越短越好?域名多短才好?最短的域名是单个域名,由单个字母和单个数字组成的域名,如a.com、1.com等。单一域名具有简单、易记、唯一等特点。它受到域名收藏家和投资者的追捧。它是域名中的 ...

  • 域名如何过户?域名过户需要多久?

    域名如何过户?域名过户需要多久?如何转移他人注册的域名的所有权?域名所有权转移是指域名的当前所有人将域名转移给其他个人或团体,即域名所有权的转移。下面聚名网小编就带大家看看域名如何过户和域名过户需要多 ...

  • 辨别域名注册商好坏 找一个域名注册商要看这几点

    对于一个优秀的域名注册平台来说,应该具备怎样的条件?面对当今国内外的域名注册商,我们确实比较难选择,因为毕竟就这块来说,国内的域名注册商起码有几十家,大大小小数不清,而价格和服务自然也是用户关注的事情 ...