告别手动部署:Piku + GitLab CI打造极致轻量级自动化流水线

告别手动部署:Piku + GitLab CI打造极致轻量级自动化流水线

【免费下载链接】piku The tiniest PaaS you've ever seen. Piku allows you to do git push deployments to your own servers. 【免费下载链接】piku 项目地址: https://gitcode.com/GitHub_Trending/pi/piku

还在为每次代码更新后繁琐的部署流程头疼吗?手动SSH连接、执行命令、检查日志的时代该结束了!本文将带你使用Piku这个微型PaaS平台,结合GitLab CI/CD,打造一套零成本的自动化部署流水线。

什么是Piku?极简PaaS的革命

Piku是一个受Dokku启发的极简PaaS平台,让你能够通过简单的git push命令将代码部署到自己的服务器。它最大的特点是轻量级简单易用,核心代码仅约1500行,支持Python、Node.js、Go、Java等多种语言运行时。

Piku架构图

与传统的重型PaaS不同,Piku设计初衷就是在低端设备上运行,甚至可以在256MB内存的树莓派上稳定工作。它使用标准的Linux工具链:gitsshuwsginginx,无需复杂的容器技术。

GitLab CI + Piku:天作之合

GitLab CI/CD提供了强大的持续集成能力,而Piku提供了简单的部署接口,两者结合可以构建完整的自动化流水线:

mermaid

实战配置:三步搭建自动化部署

1. Piku服务器准备

首先在目标服务器安装Piku:

# 使用官方安装脚本
curl https://piku.github.io/get | sh

2. GitLab CI配置文件

在项目根目录创建.gitlab-ci.yml

stages:
  - test
  - deploy

test:
  stage: test
  image: python:3.9
  script:
    - pip install -r requirements.txt
    - python -m pytest

deploy_to_piku:
  stage: deploy
  image: alpine:latest
  script:
    - apk add --no-cache openssh-client git
    - mkdir -p ~/.ssh
    - echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
    - chmod 600 ~/.ssh/id_rsa
    - ssh-keyscan -H $PIKU_SERVER >> ~/.ssh/known_hosts
    - git remote add piku piku@$PIKU_SERVER:$CI_PROJECT_NAME
    - git push piku $CI_COMMIT_REF_NAME
  only:
    - main
  environment:
    name: production
    url: https://$CI_PROJECT_NAME.yourdomain.com

3. 环境变量配置

在GitLab项目的Settings → CI/CD → Variables中设置:

  • SSH_PRIVATE_KEY: Piku服务器的SSH私钥
  • PIKU_SERVER: Piku服务器IP或域名

高级配置技巧

ENV文件配置

在项目根目录创建ENV文件进行应用配置:

# 运行时设置
PYTHON_VERSION=3.9
PIKU_AUTO_RESTART=true

# Nginx配置
NGINX_SERVER_NAME=your-app.yourdomain.com
NGINX_HTTPS_ONLY=1

# uWSGI优化
UWSGI_PROCESSES=4
UWSGI_MAX_REQUESTS=1000

Procfile定义进程

创建Procfile定义应用进程:

web: python manage.py runserver
worker: python manage.py rqworker
release: python manage.py migrate && python manage.py collectstatic --noinput

完整部署流程解析

  1. 代码提交 → 触发GitLab CI流水线
  2. 测试阶段 → 运行单元测试和代码检查
  3. 部署阶段 → SSH连接到Piku服务器执行git push
  4. Piku自动处理 → 识别语言、安装依赖、启动应用
  5. Nginx配置 → 自动配置虚拟主机和SSL证书

优势总结

  • 零成本: 无需额外付费服务,利用现有基础设施
  • 极简配置: 配置文件简单明了,学习成本低
  • 多语言支持: Python、Node.js、Go、Java等全面支持
  • 自动SSL: 集成Let's Encrypt自动SSL证书
  • 资源友好: 低资源消耗,适合小型项目和边缘设备

适用场景

  • 个人项目和小型团队
  • 开发测试环境快速部署
  • 资源受限的边缘计算场景
  • 需要简单自动化部署的传统应用

通过Piku + GitLab CI的组合,你可以用最少的配置实现企业级的自动化部署体验。告别手动操作,拥抱高效的开发运维流程!

提示:更多配置示例可参考项目中的examples目录文档

【免费下载链接】piku The tiniest PaaS you've ever seen. Piku allows you to do git push deployments to your own servers. 【免费下载链接】piku 项目地址: https://gitcode.com/GitHub_Trending/pi/piku

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值