운영 API

RESTful API

현재 사이트에서 공개하는 장치 상태와 운영 보조 API를 한눈에 볼 수 있게 정리했습니다.

기본 원칙

구성 원칙

읽기는 GET

상태 조회는 읽기 전용으로 열고, 브라우저나 터미널 어디서든 같은 URL로 확인합니다.

응답은 JSON

사람이 읽기 쉬우면서도 다른 프로그램이 바로 붙기 좋은 형식으로 응답합니다.

경로는 뜻이 드러나게

무엇을 돌려주는지 경로만 보고 감이 오도록 이름을 단순하게 유지합니다.

주요 엔드포인트

공개 경로

GET /api/device-status

대시보드에서 실시간으로 보여주는 최신 장치 상태를 JSON으로 응답합니다.

GET /api/visits

오늘 방문 수와 총 방문 수를 간단한 JSON으로 응답합니다.

GET /info

브라우저에서 바로 보는 실시간 장치 정보 화면입니다.

장치 상태 응답 예시

GET /api/device-status

curl https://muabow.com/api/device-status
{
  "collectedAt": "2026-05-15T03:15:00+09:00",
  "hostname": "muabow",
  "os": "linux",
  "arch": "arm64",
  "uptimeSeconds": 12345.67,
  "load": {
    "one": 0.12,
    "five": 0.08,
    "fifteen": 0.04
  },
  "cpu": {
    "usagePercent": 6.4,
    "cores": 4
  },
  "memory": {
    "totalBytes": 4141201408,
    "availableBytes": 3310635008,
    "usedBytes": 830566400,
    "usedPercent": 20.05
  },
  "disk": {
    "path": "/",
    "totalBytes": 127865454592,
    "freeBytes": 103582195712,
    "usedBytes": 24283258880,
    "usedPercent": 18.99
  },
  "temperatureC": 48.3,
  "services": [
    { "name": "nginx", "active": "active" },
    { "name": "cloudflared", "active": "active" },
    { "name": "nats", "active": "active" },
    { "name": "muabow-admin", "active": "active" },
    { "name": "muabow-info", "active": "active" }
  ]
}

방문자 수 응답 예시

GET /api/visits

curl https://muabow.com/api/visits
{
  "today": 12,
  "total": 248
}

운영 메모

현재 연결

응답 원본

/api/device-status는 Go 서비스가 수집해 NATS로 흘린 최신 장치 상태를 그대로 돌려줍니다.

프록시 경로

nginx/api/device-status, /api/visits, /info를 내부 서비스로 연결합니다.

활용 예시

나중에는 배포 상태, 최근 이벤트, 사진 업데이트 같은 정보도 같은 방식으로 늘려갈 수 있습니다.