홈서버 구성도를 코드로 관리해 자동으로 다시 그리는 방법

홈서버와 네트워크 구성도는 장비나 서비스가 바뀌면 금방 낡은 그림이 되기 쉽다. 이 방식은 구성도를 손으로 그리는 대신 저장소 안의 `.d2` 텍스트 파일로 관리한다. 파일이 바뀌어 깃허브에 올라가면 가 자동으로 구성도를 다시 만든다.

처리 과정은 텍스트 파일을 읽어 으로 SVG 그림을 만들고, 다시 로 바꾼 뒤 결과물을 저장소에 커밋하는 흐름이다. README에 보이는 이미지는 같은 원본 파일에서 매번 다시 만들어지므로, 텍스트 원본과 그림이 따로 어긋날 가능성이 줄어든다. , Talos, ArgoCD, Cilium, Falco 같은 서비스 아이콘은 저장소에 넣지 않고, 만들 때 공개 아이콘 저장소에서 가져와 SVG 안에 포함한다.

공개 예시는 `docs/diagrams/`에 `.d2` 원본이 있고, `.github//render-diagram.yaml`에 자동화 설정이 있다.

핵심 포인트

  • 구성도를 손그림이 아니라 `.d2` 텍스트 파일로 관리한다.
  • 가 변경된 구성도 파일을 보고 자동으로 이미지를 다시 만든다.
  • SVG와 PNG 결과물이 저장소에 커밋되어 README 이미지가 최신 상태에 가까워진다.
  • 서비스 아이콘은 공개 저장소에서 가져와 결과 이미지 안에 포함한다.
  • 의 서비스와 네트워크가 늘어날수록 문서 관리 부담을 줄이는 데 도움이 된다.
원문 보기