如何使用 GitHub Actions 在 VPS 上设置网站的持续部署

2025-06-07

如何使用 GitHub Actions 在 VPS 上设置网站的持续部署

不管它是私有还是公共存储库

先决条件

以下是本教程所需的先决条件:

  • GitHub帐户
  • 任何虚拟专用服务器都可以,不过我更喜欢 DigitalOcean,因为它上手简单。如果你能用我的推荐链接在 DigitalOcean 注册,就能获得 100 美元的信用额度,可在 60 天内使用。

我们将在本教程中介绍一些内容。

  • 在远程 VPS 上生成 ssh 密钥
  • 将生成的公钥添加到授权密钥中
  • 创建 GitHub 密钥
  • 配置 GitHub 操作以自动部署您的私有/公共存储库

步骤 1 - 打开终端,将 ssh 添加到您的 VPS



$ ssh user@hostname
$ cd ~/.ssh


Enter fullscreen mode Exit fullscreen mode

第 2 步 - 生成 ssh 密钥



$  ssh-keygen -t rsa -b 4096 -C "test@example.com"


Enter fullscreen mode Exit fullscreen mode
  • 该电子邮件是您在 GitHub 帐户上使用的电子邮件

步骤 3:反复按 Enter 键设置默认名称(不设置密码)

  • 如果您在终端中执行“ls”,您将看到这两个文件(id_rsa 和 id_rsa.pub)

步骤 4 - 将公钥添加到授权密钥



$  cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys


Enter fullscreen mode Exit fullscreen mode
  • 注意:我们使用 >> 以便将 id_rsa.pub 内容附加到 authorized_keys 文件内容的末尾,而不是覆盖 authorized_keys 中的内容。

步骤 5 - 创建 GitHub 机密



$  cat ~/.ssh/id_rsa


Enter fullscreen mode Exit fullscreen mode
  • 在您的终端运行上述命令选择输出内容并复制到您的剪贴板。

替代文本

转到您想要配置的 GitHub 存储库,单击设置选项卡,然后在选项菜单中单击并添加以下机密:

  • HOST:将密钥设置为您的主机名或 IP 地址。

  • 用户名:将密钥设置为您用于通过 SSH 进入 VPS 的用户名。

  • SSHKEY:将密钥设置为您从上面的命令复制的内容。

  • PORT:将密钥设置为 22

替代文本

如果您还在这里,恭喜!我们快完成了!

完成上述步骤后,我们只剩下一个步骤,即我们的 .github/workflows/deploy.yml 文件。

步骤 6 - 配置 GitHub 操作以自动部署您的私有/公共存储库

假设您已在计算机上本地克隆了 repo,请继续创建 .github/workflows 文件夹,并在其中创建 deploy.yml 文件

  • 将以下内容添加到 deploy.yml 文件


name: Deploy

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1

    - name: Copy repository contents via scp
      uses: appleboy/scp-action@master
      env:
        HOST: ${{ secrets.HOST }}
        USERNAME: ${{ secrets.USERNAME }}
        PORT: ${{ secrets.PORT }}
        KEY: ${{ secrets.SSHKEY }}
      with:
        source: "."
        target: "/var/www/mywebsite"

    - name: Executing remote command
      uses: appleboy/ssh-action@master
      with:
        host: ${{ secrets.HOST }}
        USERNAME: ${{ secrets.USERNAME }}
        PORT: ${{ secrets.PORT }}
        KEY: ${{ secrets.SSHKEY }}
        script: ls


Enter fullscreen mode Exit fullscreen mode

请注意,我的远程命令只是“ ls ”。如果您尝试自动部署 React App 或 Vue App,则可以将脚本命令设置为 Build 命令。

关键时刻!

提交 deploy.yml 更改,并推送到您的存储库。

它应该能够顺利构建并推送到 VPS。



$  git add .

$  git commit -m "deploy"

$  git push origin master


Enter fullscreen mode Exit fullscreen mode

如果你前往你的 GitHub 仓库并点击操作菜单,你会看到这个

替代文本

耶!就这样,你的仓库已经正式配置好了,现在每次你修改并推送到 GitHub 时,该操作都会运行并自动部署你的网站。
替代文本

感谢您的阅读!

欢迎提出您的意见

文章来源:https://dev.to/knowbee/how-to-setup-continuous-deployment-of-a-website-on-a-vps-using-github-actions-54im
PREV
执行繁重处理时有用的 Linux 命令
NEXT
您知道所有流行的 NPM 命令吗?