2026 OpenClaw 대여 Mac Mini 실전 GitHub API workflow_dispatch로 야간 배치 체인·멱등·백오프

약 6분

맥 미니 대여칠곱이십사 OpenClaw를 돌릴 때, 야간 배치의 “시계”를 GitHub on.schedule에만 맡기면 APFS 조용한 구간·로컬 GPU·SSH 피크와 어긋나기 쉽습니다. 여기서는 저장소 YAML에는 workflow_dispatch 계약만 두고, 맥의 cron/launchd가 GitHub REST dispatches로 실행을 밀어 넣는 최소 재현 경로를 정리합니다. GitLab 예약 파이프라인 글과 달리 트리거 축이 GitLab이 아니라 GitHub Actions + 맥 시계입니다. 연계: 스케줄 매트릭스·크론·백오프·OpenClaw 모아보기.

토큰 최소 권한

Fine-grained PAT를 한 저장소에만 묶고 메타데이터 읽기, 비공개 체크아웃이 필요할 때만 콘텐츠 읽기, 그리고 Actions 쓰기(workflow_dispatch 호출)만 켭니다. 관리·워크플로 권한은 YAML을 자동으로 고치지 않는 한 빼세요. 주기 교체와 비상 롤백은 게이트웨이 업그레이드·롤백 글과 같은 티켓으로 묶으면 추적이 쉽습니다.

cron/launchd 트리거

호스트 현지 01:00–05:00StartCalendarInterval 또는 crontab으로 래퍼 스크립트를 돌리면 칠곱이십사 창이 맥 전원·디스크 정책과 맞습니다. curl에는 --connect-timeout·--max-time을 박고, 429·503이면 지수 백오프(예: 4–60초 지터 3회) 후 실패 분기로 넘깁니다. 표준 출력은 ~/Library/Logs/OpenClaw/에 두면 GitHub UI를 열지 않고도 야간 차이를 봅니다. 패턴 비교는 크론·웹훅 백오프를 참고하세요.

멱등 체크포인트

dispatch 본문 inputsbatch_id·segment·force_rerun을 고정하고, YAML에는 concurrency: 그룹(예: openclaw-night)과 cancel-in-progress: false를 넣어 겹친 실행이 공용 스크래치를 깨지 않게 합니다. 맥 쪽에는 마지막 성공 batch_id + run_id를 JSON으로 남기고, 같은 batch_id가 짧은 쿨다운 안에 오면 건너뜁니다(수동 재처리는 force_rerun).

curl -sS -X POST \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer ${GITHUB_DISPATCH_TOKEN}" \
  https://api.github.com/repos/OWNER/REPO/actions/workflows/night-openclaw.yml/dispatches \
  -d '{"ref":"main","inputs":{"batch_id":"'"$(date +%Y%m%d)"'","segment":"02","force_rerun":"false"}}'

실패 Webhook

백오프를 다 쓴 뒤에만 수집기로 짧은 JSON을 보냅니다. 본문은 HMAC-SHA256으로 서명하고 저장소·워크플로 파일·HTTP 코드·잘린 응답·시도한 batch_id를 넣습니다. 429 한 번으로 사람을 부르지 말고, 연속 자정 두 번 실패 또는 401 반복(자격 증명 드리프트)일 때만 페이징합니다. 수집기 예시 패턴은 launchd 헬스·웹훅 글을 함께 보세요.

최소 재현 순서

  1. YAML에 workflow_dispatch·inputs·concurrency만 넣고 기본 브랜치에 병합합니다.
  2. 안전한 워크스테이션에서 토큰으로 수동 dispatch 한 번, Actions 실행 URL을 메모합니다.
  3. 대여 맥에 래퍼·체크포인트 경로·로그 디렉터리를 만들고 launchd plist를 로드합니다.
  4. 의도적으로 429를 한 번 낸 뒤 백오프·로그 타임스탬프가 기대대로인지 확인합니다.
  5. 실패 Webhook만 스테이징에서 깨진 토큰으로 검증한 뒤 운영에 켭니다.
  6. 상시 에이전트는 하트비트·자가 복구와 역할을 나눕니다.

FAQ

204인데 큐에 안 잡혀요
파일명 경로·브랜치·토큰의 Actions 쓰기를 다시 확인하세요.
repository_dispatch도 켤까요
사람·맥이 건드리기 쉬운 진입은 workflow_dispatch에 두고, 외부 버스 이벤트가 생기면 그때 추가하세요.

다음 단계

예측 가능한 출구·CPU가 있어야 야간 체인이 의미 있습니다. 가격·로그인 없이 대여·고객센터·블로그를 참고하세요.

OpenClaw + GitHub 야간 배치용 맥 미니

칠곱이십사로 돌릴 맥 미니 대여를 준비하세요. ·가격·로그인 없이 대여·고객센터·블로그.

로그인 없이 맥 미니 대여