Fixhub, 一款基于最新版本 Laravel 5.3 开发的开源 Web 自动部署系统.
59

Fixhub 是一套免费、开源,基于最新版本Laravel 5.3框架开发的web自动上线部署系统。

老规矩,废话少说,上图:

1、首页

file

2、项目详情页

file

3、测试服务器连接状态

file

4、填写上线单

file

5、上线进行时

file

6、完成上线

file

7、查看服务器控制台输出

file

file

8、Slack通知

file

演示地址:http://fixhub.org/ 源码地址: https://github.com/Fixhub/Fixhub or http://git.oschina.net/Fixhub/Fixhub

个人能力有限,程序肯定存在很多不成熟的地方,欢迎大家拍砖,谢谢。

本帖已被设为精华帖!
附言 1  ·  2年前

最近更新

改进秘钥管理。多个项目可以共享秘钥。

file

file

本帖由 Summer 于 2年前 加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 42
MrJing

666,之前用过瓦力部署,感觉楼主这个功能更多。问一下,部署是原子操作吗?

2年前

赞赞,我就奇怪有段时间不见楼主,原来在憋大招~~:laughing:

2年前
maxincai

太棒了,下载学习下

2年前

正想找类似的学习,太及时了

2年前
Ryan

:+1: , 不知道和Deployer比怎么样,有空试试

2年前

@MrJing 还不是原子操作。

2年前

@maxincai 一起学习。

2年前

不错:+1: 很久前写过一个svn上线系统,现在用envoy脚本。

2年前

支持!希望越来越完善!

2年前

我想深度使用你这个项目,请问你会长久维护,持续更新吗?

2年前

@xiejianwen

感谢支持,欢迎多提想法,多多贡献。

2年前

@phecho 你的demo不能用啊

2年前

@xiejianwen 可以登录浏览,因为我设置了权限。只有admin可以发起部署。

2年前

@phecho 不行哦,登陆后500错误。http://fixhub.org/

2年前

@xiejianwen 不会啊。你刚还试了一把,没有问题。

用户名:demo
密码:fixhub

2年前

@phecho 确实不行,这个能不能贴图,我发给你看。或者能不能私聊的

2年前

@xiejianwen

可以截图啊。

2年前

@phecho look,look

file

file

2年前

@xiejianwen

please try again.

2年前

@phecho , I can run , what's the problem

2年前

@xiejianwen

cache分配的目录刚好一个是以root创建的,忘了修改了。正好被你赶上了。

已修改cache driver为memcached.

2年前

@phecho 楼主效率真高,学习了学习了:+1: :sunglasses:

2年前

看起来不错,已加星

2年前

目前再用 Envoyer, 比较稳定, 自己搭建的有点悬哒哒的, 不过楼主的代码一定要学习一下.

2年前

@dinghua 可视化还是挺重要的。

2年前

可以回滚吗?

2年前
leo

自己也写过一个类似的东西,不过不适合开源,楼主这个赞,有时间给你提PR

2年前

@leo 期待你的PR :+1:

2年前

file

新增测试服务器连接状态的控制台输出。

2年前
leo

PR是提交到哪个分支?安装过程中发现一些问题

2年前

@leo 发送到1.0

2年前
leo

尝试了一下,感觉这个系统的设计和我个人对部署的理解差别挺大的

1.项目部署路径应该是在项目中设置而不是在服务器中设置,需要部署系统的企业、组织这点基本规范应该还是有的。运行用户同理。

2.心跳检测不像是部署系统应该做的事情

3.部署系统最好是语言无关的,创建项目的时候可以勾选composer让我很懵逼。

4.一个比较完整的部署流程通常包含编译->单台->全量这个几个步骤,小项目可以忽略单台这个步骤,大项目的全量还需要变成分批。这里解释一下编译,拿laravel的项目举例,拿到源码之后通常还想需要执行composer installgulp之类的命令,如果把这些命令放在线上服务器运行一来占用内存cpu带宽,二来万一某台服务器失败还得全量回滚,因此需要一个编译步骤,在全量上线之前在编译机上将这些事情做好,然后删掉.git等无用的目录,之后打包。全量部署的时候服务器直接拉去这个包就可以了,解压就能用。

2年前

@leo

@leo 非常感谢。
1、为了单台物理机可部署多个服务,可以靠规范去约束,个人觉得这个不是什么问题。
2、可以不设置
3、部署本身是与语言无关的,勾选个composer并不是为了安装composer,而是问是否需要安装开发包,只是为composer项目更为方便。部署脚本通过判断是否存在composer.json来确定是一个composer项目,如果包里没有composer.json就不需要执行composer
4、单台->多台,甚至可以跳过等,确实需要加上,gulp之类的我们目前的做法就是在开发或持续集成阶段执行后将结果提交到git库的。

2年前
leo

@phecho

第2点我想表达的是,部署系统应该专注部署这件事,部署系统加监控功能就感觉买了一把雨伞上面挂一本书一样

第3点,我认为是否需要composer install这个应该交给使用者自己在部署脚本中去做

2年前

@leo 考虑简化步骤。

2年前

@leo
已将composer剥离。现在部署做到真正意义上的与语言无关。 :smile:

2年前
ADKi

厉害厉害

2年前

file

允许指定commit进行上线。

2年前

@phecho 还在维护吗?

1年前

@dinghua 我们内部一直在使用。

1年前

已经laravel从5.3升级到5.5

1年前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!