详解将Github项目部署到服务器上的步骤
发布时间 - 2023-03-27 00:00:00 点击率:次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
应用程序现在应该可以在服务器上运行了!如果应用程序启动失败,则需要检查依赖项是否已正确安装,以及应用程序的配置是否正确。
总结:
以上就是将Github上的项目部署到服务器上的步骤。虽然这个过程看起来有些繁琐,但是通过使用这种方法,可以实现高效的代码部署和协作。同时,也为我们提供了很好的学习机会,让我们更深入地了解Git、Node.js等技术。
# github
# git
# 器上
# 应用程序
# 会将
# 创建一个
# 自己的
# 很好
# 让我们
# 目录中
# 并在
# 要把
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
JS碰撞运动实现方法详解
如何快速启动建站代理加盟业务?
如何在阿里云部署织梦网站?
Laravel如何生成API文档?(Swagger/OpenAPI教程)
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
如何用西部建站助手快速创建专业网站?
教你用AI将一段旋律扩展成一首完整的曲子
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
Laravel怎么连接多个数据库_Laravel多数据库连接配置
WordPress 子目录安装中正确处理脚本路径的完整指南
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
zabbix利用python脚本发送报警邮件的方法
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
jquery插件bootstrapValidator表单验证详解
原生JS获取元素集合的子元素宽度实例
Laravel如何实现API资源集合?(Resource Collection教程)
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
如何在香港服务器上快速搭建免备案网站?
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
怎么用AI帮你设计一套个性化的手机App图标?
中山网站推广排名,中山信息港登录入口?
5种Android数据存储方式汇总
浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】
如何在Windows虚拟主机上快速搭建网站?
Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程
利用JavaScript实现拖拽改变元素大小
HTML 中动态设置元素 name 属性的正确语法详解
在线制作视频的网站有哪些,电脑如何制作视频短片?
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
Android okhttputils现在进度显示实例代码
CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
如何在香港免费服务器上快速搭建网站?
网站建设要注意的标准 促进网站用户好感度!
详解Oracle修改字段类型方法总结
Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑
使用豆包 AI 辅助进行简单网页 HTML 结构设计
动图在线制作网站有哪些,滑动动图图集怎么做?
laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法
Python文本处理实践_日志清洗解析【指导】
Laravel如何实现数据库事务?(DB Facade示例)
米侠浏览器网页背景异常怎么办 米侠显示修复
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
如何在万网开始建站?分步指南解析


"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"
}
}
}
}