詳解將Github項目部署到服務器上的步驟

github是目前全球最大的開源社區,很多程序員都會將自己的代碼托管在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

應用程序現在應該可以在服務器上運行了!如果應用程序啟動失敗,則需要檢查依賴項是否已正確安裝,以及應用程序的配置是否正確。

總結:

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享