Skip to content

Latest commit

 

History

History
120 lines (85 loc) · 2.39 KB

File metadata and controls

120 lines (85 loc) · 2.39 KB

pushboard

라즈베리파이 및 엣지 디바이스를 위한 Git push 기반 배포 플랫폼

pushboard는 GitHub에 코드를 push하면 라즈베리파이와 같은 엣지 디바이스에 자동으로 배포 및 실행되는 경량 CI/CD 및 배포 시스템입니다.

로봇, IoT, 엣지 AI 환경에서 Docker나 복잡한 배포 도구 없이 git push만으로 코드가 실행되도록 하는 것이 목표입니다.


왜 pushboard인가?

웹 개발자는 Vercel, Netlify를 사용하지만 로봇과 엣지 디바이스에는 그런 도구가 없습니다.

엣지 디바이스는 다음과 같은 문제를 가집니다:

  • NAT 뒤에 있어 외부 접근이 어려움
  • IP가 자주 바뀜
  • 원격 접속이 제한적
  • 전원 차단이 빈번함
  • 업데이트 실패 시 복구가 어려움

pushboard는 GitHub Actions + AWS 저장소 + MQTT를 이용해 이 문제를 해결합니다.


아키텍처

개발자
   |
git push
   |
GitHub Actions
   |
빌드 및 패키징
   |
AWS 저장소(S3 등)
   |
제어 서버(Control Plane)
   |
MQTT
   |
엣지 디바이스 (Raspberry Pi)
   |
다운로드 → 검증 → 실행

구성 요소

  • GitHub Actions 코드 빌드 및 패키징

  • AWS 저장소 배포 아티팩트 저장

  • 제어 서버 (Control Plane) 버전 관리 및 배포 지시

  • MQTT 브로커 디바이스와 서버 간 통신

  • pushboard Agent 디바이스에서 실행되며 파일 다운로드, 검증, 실행 수행


동작 방식

  1. 개발자가 GitHub에 코드 push
  2. GitHub Actions가 빌드 및 패키징
  3. 결과물을 AWS 저장소에 업로드
  4. 제어 서버가 MQTT로 디바이스에 배포 지시
  5. 디바이스가 파일 다운로드 및 검증
  6. 새로운 버전 실행
  7. 상태 및 결과를 서버에 보고

설계 목표

  • Docker 없이 사용 가능
  • NAT 환경에서도 동작
  • 안전한 원자적 업데이트
  • 롤백 가능
  • 저사양 장치 지원
  • 단순한 개발자 경험

현재 상태

⚠ 본 프로젝트는 초기 개발 단계입니다.

v0.1 목표:

  • 단일 레포지토리
  • 단일 라즈베리파이
  • Python 기반 에이전트
  • GitHub Actions → AWS → MQTT → 디바이스 흐름 구현

v0.2 목표:

  • 디바이스 상태 확인
  • 실행 중인 버전 조회
  • 수동 롤백 기능

라이선스

오픈소스로 배포 예정 (추후 확정)