piku

piku

轻量级Git推送式应用部署工具

piku是一个轻量级应用部署工具,支持通过Git推送将应用部署到服务器。它兼容多种编程语言,如Python、Node.js和Java,提供虚拟主机和SSL功能。piku适用于低端设备和云服务器,遵循12因子应用原则,为开发者提供简单高效的部署方式。该工具支持多应用管理、独立扩展,适用于ARM和Intel架构,可在各种云提供商和裸机上运行。

piku部署工具Git推送服务器管理应用程序部署Github开源项目

piku 标志

piku,受dokku启发而生,允许您将应用程序通过git push部署到自己的服务器,无论服务器有多小。

演示

asciicast

许可证: MIT

文档: 安装 | 使用 | Procfile | ENV | 示例 | 路线图 | 贡献 | LinuxConf 演讲 | 快速 Web 应用程序教程 | 讨论论坛

安装

TL;DR:

curl https://piku.github.io/get | sh

还有其他安装方法,包括 cloud-init手动安装

项目活动

piku 被视为稳定。它正在积极维护,但"积极"在此意味着功能集已基本完成,因此只有在添加新的语言运行时或出现可重现的错误时才会更新。

它当前需要 Python 3.7 或更高版本,因为即使 3.8+ 现在是 Ubuntu LTS 20.04 和 Debian 11 中的 Python 3 的基准版本,但这些版本之间没有实质性的差异。

动机

我们希望拥有一种类似于 Heroku/CloudFoundry 的方式来部署一些 ARM 主板上的东西,但由于 dokku 当时不适用于 ARM, 即使 docker 有时也可能过于复杂,因此需要一个更简单的解决方案。

piku 目前能够在 ARM 和 Intel 架构上独立部署、管理和扩展多个应用程序,并在任何可以运行 Python、nginxuwsgi 的云提供商(以及裸机)上工作。

工作流程

piku 支持类似于 Heroku 的工作流程:

  • 创建一个指向您的 piku 服务器的 git SSH 远程,以应用程序名称作为仓库名称: git remote add piku piku@yourserver:appname
  • 推送您的代码: git push piku master(或者如果您想推送一个不同于当前分支的分支,请使用 git push piku release-branch-name)。
  • piku 确定运行时并为您的应用程序安装依赖项(构建所需的任何内容)。
    • 对于 Python,它会将每个应用程序的依赖项隔离到一个 virtualenv 中。
    • 对于 Go,它为每个应用程序定义一个单独的 GOPATH
    • 对于 Node,它会将 package.json 中的内容安装到 node_modules
    • 对于 Java,它会根据 pom.xmlbuild.gradle 文件来构建您的应用程序。
    • 对于 Clojure,它可以使用 leiningen 或 Clojure CLI 和 deps.edn 文件。
    • 对于 Ruby,它会在一个隔离的文件夹中执行 bundle install 来安装您的 gems。
  • 然后它会查看 Procfile 并使用 uwsgi 作为通用进程管理器启动相关的工作进程。
  • 您还可以选择指定一个 release 工作进程,该工作进程在应用程序部署时运行一次。
  • 您可以远程更改应用程序设置(config:set)或扩展/缩减工作进程(ps:scale)。
  • 您还可以将应用程序和 nginx 设置纳入 ENV 文件。 您还可以使用 static 工作类型和根路径作为参数来部署一个 gh-pages 风格的静态站点,并在 git push 后运行一个 release 任务来对服务器进行一些处理。

虚拟主机和 SSL

piku 拥有完整的虚拟主机支持,也就是说,您可以在同一台 VPS 上托管多个应用程序,并使用 DNS 别名通过不同的主机名访问它们。

piku 还会设置私有证书或通过 Let's Encrypt 获取证书来启用 SSL。

如果您在局域网上,并且从 macOS/iOS/Linux 客户端访问 piku,您可以尝试使用 piku/avahi-aliases 通过 Avahi/mDNS/Bonjour 为同一 IP 地址公布不同的主机。

缓存和静态路径

除了静态站点,piku 还支持直接将特定的 URL 前缀映射到文件系统路径(用于提供静态资产)或缓存后端响应(以减轻应用程序的负载)。

这些特性是通过在 ENV 文件中设置适当的值来配置的。

支持的平台

piku 旨在在任何有 Python、nginxuwsgi 和 SSH 的 POSIX 类环境中工作:它已经在 Linux、FreeBSD、CygwinWindows 子系统 for Linux 上部署过。

作为一个基准,它是从一台 256MB 树莓派 Model B 开始开发的,并且仍然可以可靠地运行在上面。

但它的主要用途是作为一个微型 PaaS,在具有 Intel 和 ARM CPU 的云服务器上运行应用程序,以 Debian 和 Ubuntu Linux 作为目标平台。

支持的运行时

piku 目前支持用 Python、Node、Clojure、Java 等语言编写的应用程序(Go 等其他一些语言也在开发中)。

但一般来说,只要可以从 shell 调用,就可以在 piku 中运行。

核心价值观

  • 在低端设备上运行。
  • 对业余爱好者和 K-12 学校可访问。
  • ~1500 行可读代码。
  • 函数式编程风格。
  • 少量(单个?)依赖项
  • 12 因素应用
  • 简化用户体验。
  • 覆盖 80% 的常见用例。
  • 为所有功能提供合理的默认值。
  • 在 Raspbian/Debian/Ubuntu 中利用发行版软件包(对 Alpine 和 RHEL 的支持正在进行中)
  • 利用标准工具(gitsshuwsginginx)。
  • 尽可能保持向后兼容性

编辑推荐精选

扣子-AI办公

扣子-AI办公

职场AI,就用扣子

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成AI工具AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机AI图像热门
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

下拉加载更多