{"id":13792054,"url":"https://github.com/Piplin/Piplin","last_synced_at":"2025-05-12T14:31:36.275Z","repository":{"id":56576276,"uuid":"67609292","full_name":"Piplin/Piplin","owner":"Piplin","description":":outbox_tray: An open source self-hosted continuous integration and deployment system - QQ群： 656868 ","archived":false,"fork":false,"pushed_at":"2020-10-30T14:35:09.000Z","size":6840,"stargazers_count":1040,"open_issues_count":18,"forks_count":196,"subscribers_count":63,"default_branch":"1.0","last_synced_at":"2024-07-15T21:31:15.882Z","etag":null,"topics":["continuous-delivery","continuous-deployment","continuous-integration","devops","laravel","php","piplin"],"latest_commit_sha":null,"homepage":"http://piplin.com","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Piplin.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-09-07T13:31:11.000Z","updated_at":"2024-06-29T19:22:52.000Z","dependencies_parsed_at":"2022-08-15T21:20:16.162Z","dependency_job_id":null,"html_url":"https://github.com/Piplin/Piplin","commit_stats":null,"previous_names":["fixhub/fixhub"],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Piplin%2FPiplin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Piplin%2FPiplin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Piplin%2FPiplin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Piplin%2FPiplin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Piplin","download_url":"https://codeload.github.com/Piplin/Piplin/tar.gz/refs/heads/1.0","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253754967,"owners_count":21958934,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["continuous-delivery","continuous-deployment","continuous-integration","devops","laravel","php","piplin"],"created_at":"2024-08-03T22:01:07.541Z","updated_at":"2025-05-12T14:31:35.190Z","avatar_url":"https://github.com/Piplin.png","language":"PHP","funding_links":[],"categories":["PHP","成品软件"],"sub_categories":["构建/部署"],"readme":"# Piplin - [![Composer Cache](https://shield.with.social/cc/github/Piplin/Piplin/master.svg?style=flat-square)](https://packagist.org/packages/laravel/framework)\n\n[![StyleCI](https://styleci.io/repos/67609292/shield)](https://styleci.io/repos/67609292/)\n[![Build Status](https://travis-ci.org/Piplin/Piplin.svg?branch=master)](https://travis-ci.org/Piplin/Piplin)\n[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE)\n\nPiplin(灵感来自于\"pipeline\"，读作/ˈpɪpˌlɪn/ 或 /ˈpaɪpˌlaɪn/)是一款免费、开源的持续集成与部署系统，适用于软件的自动化构建、测试和部署相关的各种应用场景。\n\n\n![Screenshot](http://piplin.com/img/screenshot.png?v1)\n\n## Piplin能做什么？\n\n* 支持PHP、Python、JAVA、Ruby等项目的构建、测试与发布\n* 可与Gitlab、Github、Gogs、Gitee(Oschina)等代码托管平台进行集成\n* 可灵活配置自定义构建和部署步骤\n* 支持自定义构建物规则，对构建物创建发布版本并部署\n* 支持项目的多环境部署(可自行建立开发、测试、预发布和生产等多个环境)\n* 支持联动部署，比如：开发环境部署成功后可自动触发测试环境启动部署\n* 服务管理支持机柜功能，机柜可与多个部署环境绑定\n* 支持项目克隆功能\n* 项目支持多成员\n* 通过Websocket实现项目部署状态的实时跟踪\n* 支持钉钉机器人、Slack、邮件和自定义Webhook的服务集成\n\n## Piplin原理示意图\n\n### 总体\n\n![Principle](http://piplin.com/img/principle.png?v2)\n\n### 步骤命令\n\n![Commands](http://piplin.com/screenshots/commands.png?v1)\n\n## 安装环境要求\n\nPiplin目前只支持类Unix操作系统(如: Linux, Freebsd, Mac OS等)，为了能运行Piplin，您还需要安装一些基础软件。\n\n- Web服务器: **Nginx**, **Apache** (with mod_rewrite)，or **Lighttpd**\n- [PHP](http://www.php.net) 7.0+\n- 数据库: 推荐使用[MySQL](https://www.mysql.com) 或 [PostgreSQL](http://www.postgresql.org)。 [SQLite](https://www.sqlite.org)也可运行。\n- [Composer](https://getcomposer.org)\n- [Redis](http://redis.io)\n- [Node.js](https://nodejs.org/)\n- [队列系统](http://laravel.com/docs/5.5/queues), 推荐使用[Beanstalkd](http://kr.github.io/beanstalkd/)或Redis。\n- [Supservisord](http://www.supervisord.org/), Piplin使用Supervisord进行后台进程管理。\n- [Rsync](https://rsync.samba.org/) 如无特殊情况，一般系统都会自带rsync\n- 缓存服务: 推荐使用Memcached, 更多的缓存方案选择请看 [caching server](http://laravel.com/docs/5.5/cache).\n\n\u003e Docker安装，请访问我们的[Piplin Docker](https://github.com/Piplin/Docker)项目。\n\n## 安装手册\n\n### 全新安装\n\n#### 一. 克隆代码\n\n假设我们把Piplin安装在 /var/www 目录下\n\n```shell\n$ cd /var/www\n$ git clone https://github.com/Piplin/Piplin.git piplin\n```\n\n#### 二. 安装依赖包\n\n```shell\n$ cd piplin\n$ make\n```\n\n\u003e 安装过程如出现卡顿，请尝试更换npm镜像: `npm config set registry http://registry.npm.taobao.org/`\n\n#### 三. 安装Piplin\n\n```shell\n$ make install\n```\n\n\u003e Piplin安装器会进入一个交互式控制台，请根据提示进行相关参数设置。\n\n#### 四. 请将Web服务器的根目录指向 `public/`, 请参考 [examples/](/examples) 下的相关配置文件，里面包含 Apache和Nginx的配置范例.\n\n\u003e 注意: `examples/` 提供的仅仅是范例，并不能保证直接拷贝就能使用，需要根据实际情况进行相关配置调整。\n\n#### 五. 配置supervisord\n\nPiplin使用`supervisord`进行后台进程管理。该配置范例请查看[examples/supervisor.conf](examples/supervisor.conf)。 一般supervisord的主配置文件在 `/etc/supervisor/supervisord.conf` ，其大致内容：\n\n```\n[unix_http_server]\nfile=/var/run/supervisor.sock   ; (the path to the socket file)\nchmod=0700                       ; sockef file mode (default 0700)\n\n......\n\n[include]\nfiles = /etc/supervisor/conf.d/*.conf\n```\n\n##### 配置步骤如下：\n\n1). 拷贝 examples/supervisor.conf\n\n```shell\n$ cp examples/supervisor.conf /etc/supervisor/conf.d/piplin.conf\n$ vi /etc/supervisor/conf.d/piplin.conf\n```\n\n\u003e 请根据实际情况修改相关参数设置，尤其注意路径相关的参数。\n\n2). 重启supervisord\n\n```shell\n$ /etc/init.d/supervisord restart 或 service supervisord restart\n```\n\n3). 检查supervisord服务是否正常\n\n```shell\n$ supervisorctl\n```\n\n如果返回如下信息，代表服务正常:\n\n```\npiplin:queue_0                   RUNNING   pid 26981, uptime 2 days, 15:30:59\npiplin:queue_1                   RUNNING   pid 26980, uptime 2 days, 15:30:59\npiplin:queue_2                   RUNNING   pid 26979, uptime 2 days, 15:30:59\npiplin-broadcast                 RUNNING   pid 26987, uptime 2 days, 15:30:59\npiplin-socketio                  RUNNING   pid 26978, uptime 2 days, 15:30:59\nsupervisor\u003e\n```\n\n六. 访问Piplin\n\n恭喜！您已完成Piplin的安装。请通过浏览器访问安装过程中设置的应用网址。\n\n\u003e 如果安装完成之后修改了.env里的配置信息，要记得执行`php artisan config:cache`使其立即生效。\n\n七. 设置计划任务\n\n计划任务相关的设置请看 [examples/crontab](examples/crontab). \n\n\u003e Piplin的数据备份、项目Git仓库自动镜像等工作依赖于计划任务去实现。\n\n### 升级\n\n一. 获取最新代码\n\n```shell\n$ git fetch --all\n$ git checkout v1.0.2\n ```\n\n二. 升级\n\n```shell\n$ make update\n```\n\n## 系统演示\n\n体验Piplin, 请访问 [Piplin](http://piplin.com):\n\n- **用户名:** piplin 或 `piplin@piplin.com`\n- **密码:** `piplin`\n\n\u003e 注意：系统每5分钟会自动重置一次密码，该账号没有权限访问管理功能.\n\n## 帮助文档\n\n更多文档请访问 [https://github.com/Piplin/Docs](https://github.com/Piplin/Docs) 或 [http://piplin.com/docs](http://piplin.com/docs)。\n\n## 开发相关\n\nPiplin代码里已经自带编译后的前端静态资源，如果你不想修改前端样式，可直接忽略本环节。\n\n工具集：\n\n- Node.js\n- Webpack\n\n```shell\nnpm install\nnpm run prod\n```\n\n## 鸣谢\n\n- [Laravel](http://laravel.com)\n- [Bootstrap](https://github.com/twbs/bootstrap)\n- [AdminLTE](https://github.com/almasaeed2010/AdminLTE)\n- [Envoy](https://laravel.com/docs/5.5/envoy)\n- [Forge](https://forge.laravel.com/)\n- [Deployer](https://github.com/REBELinBLUE/deployer)\n- [socket.io](https://github.com/socketio/socket.io)\n- [ionicons](http://ionicons.com/)\n\n## 软件授权协议\n\nPiplin is licensed under [The MIT License (MIT)](LICENSE). Piplin is based on [Deployer](https://github.com/REBELinBLUE/deployer).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPiplin%2FPiplin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPiplin%2FPiplin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPiplin%2FPiplin/lists"}