← 뒤로가기

라즈베리파이 운영 문서

현재 사이트와 라즈베리파이 서버의 웹, SSH, 배포 구조를 정리한 운영 메모.

이 글은 현재 muabow.com을 운영하는 라즈베리파이 환경을 정리한 문서다.

지금 사이트는 다음 구조를 기준으로 동작한다.

  • 공개 웹은 메인 도메인과 보조 도메인으로 운영한다.
  • 공개 기능 페이지는 /info 같은 경로 아래에 둔다.
  • SSH는 별도 호스트로 분리해 둔다.
  • 웹 서버는 nginx
  • 외부 연결은 Cloudflare Tunnel
  • 정적 사이트 원본은 Markdown

중요 경로는 아래와 같다.

  • 웹 루트: 정적 빌드 결과물 디렉터리
  • 터널 설정: cloudflared 설정 파일
  • 인증 정보: Cloudflare Tunnel이 읽는 로컬 인증 파일

트래픽 흐름도 단순하다.

  1. 사용자가 도메인으로 접속한다.
  2. Cloudflare가 요청을 받는다.
  3. Tunnel이 요청을 라즈베리파이로 전달한다.
  4. cloudflared가 요청을 내부 웹 서비스와 관리용 서비스로 분기한다.

운영하면서 자주 보는 명령은 이 정도다.

sudo systemctl status nginx
sudo systemctl status cloudflared
sudo journalctl -u cloudflared --no-pager -n 100
curl -I http://127.0.0.1
dig +short <public-domain>

배포 흐름도 가볍게 유지하고 있다.

  • 글 원본은 Markdown으로 작성한다.
  • node scripts/build.js로 HTML을 생성한다.
  • 결과물은 public 디렉터리에 모인다.
  • publish.sh가 라즈베리파이로 동기화한다.

정적 페이지 외에 작은 동적 기능도 함께 운영 중이다.

  • /info는 Go + NATS 기반의 실시간 장치 정보 대시보드
  • /api/visits는 footer 방문자 수를 위한 작은 API
  • 관리 기능은 별도 앱으로 분리해 운영한다

복잡한 앱보다 오래 굴러가는 단순한 구조를 우선으로 두고 운영 중이다.

이어서 보기