这篇文章主要介绍“怎么将Github项目部署到服务器上”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么将Github项目部署到服务器上”文章能帮助大家解决问题。
一、登录服务器
使用SSH远程连接,输入命令:
ssh root@your_server_ip
二、安装必要的软件
在服务器上安装Git和Node.js。以Ubuntu系统为例,执行以下命令:
sudo apt-get update sudo apt-get install git sudo apt-get install nodejs
三、在服务器上创建一个Git仓库
在服务器上创建一个空的目录,并在其中初始化一个Git仓库,执行以下命令:
mkdir myapp cd myapp git init --bare
四、设置Git Hooks
在Git仓库中添加一个post-receive钩子以便自动部署应用程序,执行以下命令:
cd hooks touch post-receive sudo chmod +x post-receive nano post-receive
在打开的文本编辑器中输入以下内容:
#!/bin/bash git --work-tree=/var/www/html/myapp --git-dir=/root/myapp.git checkout -f cd /var/www/html/myapp sudo npm install
该脚本会自动将代码检出到/var/www/html/myapp下,并且执行npm install命令以安装项目依赖。
五、在Github上配置Webhooks
登录Github,在项目的Settings页面中点击Webhooks选项,然后点击Add webhook按钮。在Payload URL中输入服务器的IP地址和post-receive钩子的路径,例如:http://your_server_ip:8000/hooks/post-receive。在Content type中选择application/json,然后点击Add webhook。
六、在本地的代码中添加服务器地址
在本地的代码中修改package.json文件,增加以下内容:
{ "scripts": { "start": "node app.js", "deploy": "git push deploy master" }, "config": { "deploy": { "production": { "user": "root", "host": "your_server_ip", "ref": "origin/master", "repo": "ssh://git@your_server_ip:/root/myapp.git", "path": "/var/www/html/myapp", "ssh_options": ["StrictHostKeyChecking=no", "PasswordAuthentication=no"], "post-deploy": "npm install && pm2 restart app" } } } }
其中,deploy脚本会将代码推送到服务器上的myapp.git仓库中;config/deploy/production中定义了一些配置项,包括服务器的ip地址、项目的路径、钩子所在的路径等。
七、执行代码部署
在本地的代码目录中执行以下命令:
npm run deploy production
该命令将代码推送到服务器上,触发post-receive钩子,自动将代码部署到/var/www/html/myapp目录下。
八、启动应用程序
进入到/var/www/html/myapp目录中,执行以下命令来启动应用程序:
npm start
应用程序现在应该可以在服务器上运行了!如果应用程序启动失败,则需要检查依赖项是否已正确安装,以及应用程序的配置是否正确。