궁극의 홈 서버: ZimaBoard 832로 직접 만드는 DIY 빌드

에바 왕기술 작가상주 장인 ZimaSpace에서. 평생을 바친 기크로서 홈랩과 오픈소스 소프트웨어에 열정을 가지고 있으며, 복잡한 기술 개념을 쉽게 따라 할 수 있는 가이드로 번역하는 데 전문성을 갖추고 있습니다.에바는 셀프 호스팅이 어렵지 않고 재미있어야 한다고 믿습니다. 그녀의 튜토리얼을 통해 커뮤니티가 하드웨어 설정의 신비를 풀도록첫 NAS 구축부터 Docker 컨테이너 마스터링까지 돕습니다.

이 블로그 시리즈에서는 2년 전 ZimaBoard 크라우드펀딩 단계부터 함께해온 충성도 높은 커뮤니티 멤버 D. Rowland의 놀라운 여정을 공유할 수 있는 영광을 가집니다. 그는 각각 고유한 활용 시나리오를 가진 세 개의 보드를 구매했습니다. 이 블로그 시리즈에서는 그가 이 보드들을 어떻게 활용했는지, 그리고 이들이 그의 기술 도구로서 얼마나 소중한 존재가 되었는지 자세히 살펴봅니다.

이 3부작 블로그의 첫 번째 글에서 D. Rowland가 ZimaBoard 832로 홈 서버를 설정하는 방법을 안내합니다.

D. Rowland를 만나보세요

먼저 D. Rowland를 조금 더 알아보겠습니다. 그는 전형적인 기술 애호가로, 남편이자 두 아이의 아버지이며, 네트워킹과 IT 분야에서 풍부한 경력을 가진 숙련된 기술 전문가입니다. 그의 기술 여정은 고등학교 시절 시작되었고, 결국 서버, 네트워크 및 다양한 기술을 다루는 IT 경력으로 이어졌습니다. 그의 통찰력과 경험은 ZimaBoard가 그의 삶에 어떻게 자리 잡았는지 탐구하는 데 매우 소중합니다.

홈 서버 시나리오: ZimaBoard 832

D. Rowland가 832 장치를 구매한 주요 이유 중 하나는 자주 사용하는 서비스를 직접 호스팅하기 위해서입니다. ZimaBoard 이전에는, 그는 3U 크기의 맞춤 제작된 “서버”를 사용했는데, 이는 집에 있던 오래된 PC 부품이나 전자 폐기물에서 구한 부품으로 만든 것이었습니다. 아래 홈 랙 사진에서, 전원이 꺼진 채 랙 하단에 있는 구형 서버를 여전히 볼 수 있습니다.

ZimaBoard 832는 구형 서버의 모든 역할을 인계받았으며, 일부 파일 저장은 Synology NAS(사진에도 보임)로 이전되었습니다. D. Rowland의 ZimaBoard 832는 강력한 홈 서버가 되었으며, 다음은 그가 설정한 방법입니다:

하드웨어 환경:

  • ZimaBoard 832
  • /home 디렉터리를 위한 480GB SSD

소프트웨어 시스템:

  • Debian 11.5
  • 도커와 도커-컴포즈

ZimaBoard 832를 홈 서버로 설정하는 방법

D. Rowland의 홈 서버 설정은 다음 단계로 진행되었습니다:

  • 운영체제 설치: ZimaBoard 장치가 x86 시스템이기 때문에 D. Rowland는 일반적인 Debian 설치 절차를 따를 수 있었습니다. 그는 CasaOS 파티션을 삭제하고 ZimaBoard 832 eMMC에 깨끗한 Debian Bullseye를 설치했습니다. 루트 파티션으로 eMMC를 활용했습니다.
  • 추가 저장소: 데이터 저장을 위해 그는 /home 디렉터리에 480GB SSD를 사용했습니다. 운영체제와 데이터를 분리함으로써 효율적인 운영이 가능합니다.
  • 도커 설치: 운영체제가 실행된 후, D. Rowland는 도커와 도커-컴포즈를 설치했습니다. 설치 당시 도커와 도커-컴포즈는 별도의 구성 요소였으나, 현재 Debian Bookworm은 컴포즈를 도커에 통합하고 있습니다.
  • 데이터 마이그레이션: 이전 서버에서 Docker 마운트 포인트와 docker-compose.yml을 ZimaBoard 832로 복사했습니다. 이 단계로 데이터와 설정이 새 하드웨어로 원활히 이전되었습니다. docker-compose.yml과 “Backup-to-S3” bash 스크립트의 일부 파일 경로도 새 시스템 구조에 맞게 업데이트했습니다.
  • 도커 구성: docker-compose.yml의 파일 경로를 업데이트한 후, D. Rowland는 “docker-compose up -d” 명령으로 모든 서비스가 정상 작동하도록 복구했습니다.

애플리케이션 및 사용 사례

현재 D.Rowland는 ZimaBoard 832에서 다음 애플리케이션과 서비스를 실행 중입니다:

  • hkotel/mealie
  • linuxserver/calibre-web
  • gitea/gitea
  • matrixdotorg/synapse
  • vaultwarden/server
  • iarekylew00t/caddy-cloudflare
  • oznu/cloudflare-ddns
  • ugeek/webdav
  • itzg/minecraft-bedrock-server
  • mongo:4.4
  • pawelmalak/flame
  • drowland/phpfpm-alpine
  • drowland/fastapi
  • drowland/ipcalc
  • drowland/autolog

Q: 이 애플리케이션들은 다양한 시나리오에서 여러 용도로 사용됩니다. 아래는 D. Rowland의 공유 내용입니다.

D.Rowland는 위 모든 도커 컨테이너를 사용하면서, 그의 neofetch 스크린샷 기준으로 832가 일상 사용 시 메모리를 1.3GB만 사용한다는 점을 알리고 싶어 합니다.

Python 프로젝트D.Rowland: ZimaBoard 832 홈 서버의 핵심은 제가 개발하고 활발히 작업 중인 다양한 Python 프로젝트들입니다. 이 프로젝트들은 실용적인 유틸리티부터 실험적 시도까지 다양합니다. 현재 실행 중인 것은:

  • Autoblog : Autolog은 가족 차량의 정비 기록을 추적하고 관리하기 위한 웹 기반 자동차 서비스 로그입니다. 차량 정비를 간소화하고 예정된 서비스를 놓치지 않도록 도와줍니다.
  • ipcalc : kjokjo의 perl IPCALC에서 영감을 받아, IP 서브넷 계산기 Python 구현을 직접 만들고 싶었습니다. 네트워크 관련 작업과 계산에 유용한 도구입니다.
  • fastapi : FastAPI는 제가 탐구 중인 최신 Python 웹 프레임워크입니다. 이를 통해 샘플 REST API를 구축했고, 덕분에 업무용 벤더 통합 프로젝트를 개발할 수 있었습니다.

맞춤형 컨테이너 빌드

D. Rowland: 일부 도커 컨테이너는 대부분의 사용 사례에 잘 맞지만, 때로는 약간의 조정이 필요합니다.

  • PHP-FPM: 표준 PHP-FPM 컨테이너에 일반 배포판에는 없는 추가 패키지를 넣어 맞춤화했습니다. 여러 프로젝트에서 사용해 왔으며, 패키지는 imagick, mongodb, mysqli, sodium 등 계속 늘어나고 있습니다.

데이터베이스 및 스토리지

D.Rowland:

  • MongoDB (v4.4): ZimaBoard 832의 AVX 미지원 CPU 제한으로 인해, 저는 프로젝트에 MongoDB 버전 4.4를 사용하기로 했습니다. 다행히도 이 버전은 제 특정 사용 사례와 프로젝트에 잘 맞습니다.
  • WebDAV: 이 WebDAV 컨테이너는 제 작업 흐름에서 중요한 역할을 합니다. Obsidian 노트를 여러 기기에서 동기화하는 데 사용하며, 휴대폰, 개인 PC, 업무용 PC, 태블릿, 노트북 어디서든 원활하게 노트에 접근할 수 있도록 합니다.

리버스 프록시 및 원격 접속

D.Rowland:

  • Caddy 서버: 집을 비운 동안 서비스 원격 접속을 간소화하기 위해 Caddy 서버를 리버스 프록시로 사용합니다. 설정이 쉽고 안정적이라 이상적인 선택입니다. 통합된 Cloudflare DNS 플러그인을 원해 Caddy 서버 개발자 컨테이너는 사용하지 않았습니다.
  • Cloudflare DynDNS: Cloudflare DynDNS 컨테이너를 사용해 집 DNS A 레코드를 손쉽게 관리하며, 외출 중에도 서비스 접근성을 유지합니다.

기타 컨테이너

D.Rowland:

  • Mealie: 전자 레시피 북으로 사용합니다. 좋은 레시피를 발견하면 빠르고 쉽게 추가합니다. 이미지와 추가 메모 필드가 있어 손으로 쓴 레시피 북보다 더 좋습니다.
  • Gitea: 개인 Git 저장소로, 모든 개인 Python 및 Powershell 프로젝트 작업 시 사용하며 업무 프로젝트의 미러로도 활용합니다.
  • Flame: 제가 브라우저 홈 페이지로 사용하는 멋진 대시보드입니다. Docker 소켓과 연결되어 있어 새 컨테이너를 추가할 때 최소한의 설정으로 대시보드에 연결할 수 있습니다.
  • Minecraft Bedrock: 메모리 제약 때문에 Java 에디션 대신 Bedrock 서버를 운영합니다. 모드를 사용하지 않아 Bedrock 버전은 매우 쉽고 가벼운 서버입니다.

데이터 보안 및 백업

D.Rowland:

  • 백업 스크립트: 데이터 보안은 저에게 최우선입니다. 컨테이너 마운트포인트와 중요한 데이터를 보호하기 위해 tar를 사용해 도커 파일을 아카이브하고, 매일 밤 s3cmd로 아카이브를 Wasabi에 업로드하는 bash 스크립트를 개발했습니다.
  • Vaultwarden: Vaultwarden 컨테이너를 Bitwarden 클라이언트/앱과 함께 사용하여 모든 비밀번호와 2FA 토큰을 관리합니다. 이를 통해 제 데이터가 제 통제 하에 있으며 대형 기업의 네트워크에서 실행되지 않도록 보장합니다.

이 다양한 애플리케이션들은 홈 서버로서 ZimaBoard 832의 유연성과 강력함을 강조합니다.

결론:

ZimaBoard 시리즈의 첫 번째 부분에서는 D. Rowland의 인상적인 홈 서버 설정을 ZimaBoard 832를 사용해 살펴보았습니다. 그의 경험은 이 컴팩트한 SBC가 효율성을 유지하면서도 다양한 서비스를 호스팅하는 데 어떻게 활용될 수 있는지를 보여줍니다. 다음 편에서는 ZimaBoard의 더 창의적인 활용법을 공개할 예정이니 기대해 주세요!

우리 커뮤니티에 참여하여 회원들과 함께 토론하세요:

디스코드:zimaboard.com/discord

포럼: https://icewhale.community

지마 캠페인 허브

더 읽어보기

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.