맥미니를 홈서버·셀프호스팅 장비로 운영하는 데 필요한 셋업, 전력·발열, 소프트웨어 팁을 모읍니다.
xcode-remote는 화면 없이 돌아가는 맥 미니 서버에서 iOS와 macOS 앱을 바로 실행하게 해주는 도구다. 맥 미니 서버에서 Claude Code로 개발하고 노트북으로 조작하는 방식은 웹 개발에는 잘 맞지만, iOS와 macOS 앱은 보통 코드를 노트북에 따로 내려받아 다시 빌드한 뒤 시뮬레이터나 실제 기기에서 확인해야 했다. xcode-remote는 그 번거로운 단계를 줄여 원격 맥에서 앱을 시뮬레이터로 실행할 수 있게 한다. 실제 기기 실행도 지원한다. 관련 설명 글과 GitHub 저장소가 함께 공개됐다.
새로 공개된 리눅스 커널 취약점 CVE-2026-53359, 별칭 Januscape가 KVM의 섀도 페이징 코드에 영향을 줍니다. 문제가 생기는 조건은 중첩 가상화가 켜져 있을 때입니다. 중첩 가상화는 가상 머신 안에서 다시 가상 머신을 실행하는 방식입니다. 공개된 PoC는 호스트 서버를 안정적으로 멈추게 할 수 있습니다. 이미 패치된 커널이 나왔습니다. 바로 업데이트할 수 없다면 신뢰하기 어려운 가상 머신에는 중첩 가상화를 끄는 것이 권장됩니다.
Gemma 4 12B는 2026년 6월 3일 공개된 120억 개 매개변수 규모의 인공지능 모델이다. 4비트 양자화 기준으로 약 6.6GB의 비디오 메모리에 들어간다고 소개된다. 제시된 벤치마크에서는 이전 세대의 더 큰 Gemma 3 27B보다 높은 점수를 냈다. MMLU Pro는 77.2% 대 67.6%, 수학 추론 AIME는 77.5% 대 20.8%, 코드 평가 LiveCodeBench는 72.0% 대 29.1%, 과학 추론 GPQA Diamond는 71.6% 대 56.7%로 제시됐다. 핵심 주장은 16GB 메모리 기기에서도 예전보다 훨씬 쓸 만한 로컬 인공지능 모델을 돌릴 수 있다는 것이다. 예전에는 27B나 32B급 모델을 쓰려면 32GB 메모리 업그레이드가 필요하다는 조언이 많았지만, 이 비교에서는 16GB 기기도 당분간 충분할 수 있다고 본다.
Facet 1.6.0은 사진 보관함을 내 컴퓨터에서 직접 분석하고 정리하는 셀프호스팅 도구다. 사진마다 미적 느낌, 구도, 얼굴 품질, 선명도, 노출 같은 9가지 기준으로 점수를 매기고, 결과는 SQLite에 저장한다. JPG, HEIF/HEIC, RAW 10종을 읽을 수 있다. 비슷한 사진과 중복 사진을 묶고, 연사 사진과 눈 감은 사진을 찾아내며, 시간순 장면 단위로 사진을 추려낼 수 있다. 자동 추리기는 한 번에 정리안을 만들고, 실제 적용 전 미리보기로 확인할 수 있다. 웹 갤러리에서는 격자 보기, 시간순 보기, 지도 보기, 폴더 보기, 특정 날짜 추억 보기, 말로 찾는 semantic search, 테마 슬라이드쇼를 쓸 수 있다. 얼굴 인식과 얼굴 묶기, 앨범, 별점과 즐겨찾기, 인공지능 태그, 되돌리기가 있는 일괄 작업도 제공한다. 점수 기준별 세부 평가, 선택형 VLM 자연어 평가, A/B 비교로 취향을 배우는 가중치 조정, 개인 취향 순위 기능도 있다.
안드로이드 17로 휴대폰을 업데이트한 뒤, 직접 만든 동반 앱이 집 안의 홈 어시스턴트 서버로 데이터를 보내지 못하는 문제가 생겼다. 연결은 이유를 알려주지 않은 채 시간 초과로 끝났다. 원인은 안드로이드 17에서 앱이 로컬 아이피 주소에 접근하려면 새 권한을 받아야 하는 방식으로 바뀐 점이다. 집 안 주소를 가리키는 도메인 이름도 영향을 받는다. 예를 들어 example.com이 집 안 장비 주소로 연결되면, 앱이 새 실행 중 권한을 구현하지 않은 경우 접속이 실패할 수 있다. 앱 개발자는 이 권한을 요청하고, 사용자가 나중에 권한을 취소하는 상황까지 처리해야 정상 작동을 기대할 수 있다.
친구들과 함께 쓰려고 공개해 둔 qBittorrent가 약 1년 동안 문제없이 돌아가다가 서버가 느려졌다. 확인해 보니 `tcrond`라는 프로그램이 실행 중이었고, 이 프로그램이 암호화폐 채굴에 서버 자원을 쓰고 있었다. qBittorrent에는 명령을 실행할 수 있는 기능이 있었고, 보호가 약한 상태로 외부에 열려 있으면 이 기능이 악용될 수 있었다. 다행히 qBittorrent가 Docker 안에서 실행되고 있어서 피해 범위가 더 커지지는 않았다. 외부에서 접속할 수 있는 앱은 위험한 기능이 없다고 확신할 수 있을 때만 열어 두어야 하고, 그렇지 않으면 반드시 접근 보호를 걸어야 한다.
맥 미니 같은 Apple Silicon 기기에서 Frigate 보안 카메라 분석을 더 쉽게 실행할 수 있는 macOS 앱이 나왔다. 기존 방식은 Apple Neural Engine에서 YOLO 객체 인식을 돌리고, Frigate는 Apple의 container 실행 환경 안에서 움직이게 하는 구조였다. 하지만 설치에는 셸 스크립트, 네트워크 규칙, 자동 실행 설정, 손으로 고치는 설정 파일이 필요했다. 새 앱은 이 과정을 한 번에 묶어 MQTT, Home Assistant, 저장 위치, 카메라, 보관 기간, 모델 선택을 안내한다. Frigate 설정 파일과 저장 공간을 확인하는 시작 스크립트도 자동으로 만든다. 실행 화면에서는 초당 인식 횟수, Apple Neural Engine 상태, 컨테이너 네트워크 설정을 확인할 수 있다. MQTT 연결, RTSP 카메라 접근, Apple Neural Engine 감지기 자체 테스트도 제공한다. 감지기에 필요한 파이썬을 함께 넣어 따로 설치할 것을 줄였고, Apple의 container 실행 환경을 찾아 설치까지 도울 수 있다.
TinyGPU는 Apple Silicon 맥에서 AMD와 NVIDIA 외장 그래픽카드를 USB4나 Thunderbolt로 연결해 계산 작업에 쓰게 해 주는 앱이다. 용도는 외부 화면 출력이 아니라 GPU compute다. Apple은 인텔 맥에서 Apple Silicon으로 넘어오면서 타사 외장 그래픽카드 지원을 중단했고, 그래서 외장 그래픽카드는 감지되더라도 실제 작업에는 쓰기 어려웠다. 맥북이나 맥미니에서 로컬 LLM이나 이미지 생성 모델을 내부 하드웨어만으로 돌리면 시스템 자원을 많이 써서 성능 저하, 입력 지연, 멈춤, 화상회의 연결 끊김이 생길 수 있다. TinyGPU는 이런 부담을 외장 그래픽카드로 넘길 수 있게 하며, 로컬 모델을 끄거나 별도 컴퓨터를 쓰는 선택지 사이에 새 대안을 만든다.
Podman 6.0.0은 큰 변경이 들어간 새 버전이다. CVE-2026-57231 보안 문제가 수정됐다. 악성 컨테이너 이미지가 잘못된 Env 항목을 이용하면, 호스트의 환경 변수가 컨테이너 안으로 새어 나갈 수 있었다. 별표(*) 같은 글로브 연산자를 쓰면 정확한 변수 이름을 몰라도 많은 환경 변수를 빼낼 수 있었다. 이 버전은 Podman만 올려서는 안 되고 Buildah 1.44.0, Skopeo 1.23, Netavark와 Aardvark 2.0.0, container-libs의 common/v0.68.0 설정 파일이 함께 필요하다. BoltDB 지원은 끝났고, Podman 6을 시작하면 BoltDB를 쓰던 데이터베이스를 SQLite로 자동 이전하려고 한다. 인텔 맥, Windows 10, cgroups v1, iptables, CNI 네트워킹, slirp4netns 기반 루트리스 네트워크 스택 지원도 제거됐다. 앞으로는 cgroups v2, nftables, Netavark를 써야 한다.
VirtualProg는 맥에서 가상 머신을 만들고 관리하는 앱이다. 애플의 Virtualization Framework를 사용해 맥에 맞게 만들어졌고, 지난 1년 동안 서버처럼 쓰기 좋은 기능이 크게 늘었다. 주요 기능에는 USB 장치를 가상 머신에 연결하는 USB passthrough, 저장 상태를 되돌릴 수 있는 스냅샷 관리, 빠른 배포용 가상 머신 준비, 템플릿과 복제, 화면 없이 백그라운드에서 돌리는 headless VM 지원이 포함된다. 여러 가상 머신을 묶어서 한꺼번에 조작하고, 정해진 시간에 자동으로 켜고 끄는 예약 기능도 있다. 네트워크 쪽에서는 사용자 지정 가상 네트워크, 호스트 전용 연결, 공유 네트워크, 고정 아이피, 포트 포워딩, 네트워크 구조를 눈으로 보는 기능을 제공한다. 원격 관리는 웹 대시보드, 브라우저에서 보는 가상 머신 화면과 제어, 모바일 접속, 웹 터미널, HTTPS/TLS 보안 연결, 하드웨어 가속 H.265/H.264 영상 전송, 토큰 기반 인증, 2단계 인증을 포함한다.
500GB 저장공간을 가진 맥미니에서 내부 저장공간이 계속 부족해지고 있다. 별도의 Unraid 로컬 저장소는 잘 쓰고 있지만, 맥미니 자체 공간은 생각보다 빨리 차고 있다. 당장 새 맥스튜디오나 맥북 프로로 바꾸기 전까지, 1TB Crucial T500 NVMe SSD를 40Gbps 외장 케이스에 넣고 맥의 홈 폴더를 그 외장 저장장치로 옮기는 방안이 검토되고 있다. 백업은 Time Machine으로 Unraid 서버에 계속 저장할 계획이다. 후보 케이스는 방열판이 있는 UGREEN 40Gbps M.2 NVMe SSD 케이스가 65.99파운드, active cooling이 있는 SABRENT USB4 M.2 NVMe 케이스가 79.99파운드다. 기존에 쓰는 삼성 Evo 970 1TB USB-C 외장 드라이브는 일반 파일 저장용으로 남겨두고, 새 NVMe 드라이브를 홈 폴더용으로 쓰려는 구상이다.
MS-02 미니 피시를 홈서버로 두고 전용 그래픽카드 없이 대형 언어 모델을 돌리는 실사용 테스트가 진행됐다. 장비는 Intel Core Ultra 285HX와 메모리 64GB 구성이며, 주로 Llama.cpp의 Docker 배포판 기본 설정을 사용했다. 모델을 빠르게 바꿔 실행하는 Llama-Swap은 편리했지만, SYCL과 잘 맞지 않아 테스트가 번거로웠다. Vulkan으로 iGPU를 쓰기 위해 /dev/dri를 추가했지만, 실행 중에는 iGPU만 쓰는 것이 아니라 CPU도 거의 같은 수준으로 함께 쓰는 것처럼 보였다. Qwen3-30B-A3B-Instruct-2507-IQ4_NL은 실행되지만 약 2토큰/초로 느렸다. Qwen3.6-35B-A3B의 Q4_K_S 4.22bpw 버전과 IQ4_XS 3.93bpw 버전은 각각 약 0.5토큰/초에 그쳤다. Gemma 4 26B A4B MXFP4 MOE도 실행 대상에 포함됐지만, 확인 가능한 내용 안에는 완성된 속도 수치가 없다.
기본형 M4 맥 미니와 기본형 M4 맥북 프로는 핵심 칩 구성이 같다. 두 제품 모두 같은 M4 칩을 쓰며, 성능 코어 4개와 효율 코어 6개를 갖고 있다. 그래픽 처리 장치도 둘 다 10코어 GPU다. 시작 사양의 통합 메모리는 16GB이고, 메모리 대역폭도 초당 120GB로 같다. 연결 규격도 둘 다 Thunderbolt 4이며, Thunderbolt 5는 M4 Pro 모델로 올라가야 나온다. 외부 화면을 처리하는 장치도 같아서, 같은 수와 해상도의 외부 모니터를 연결할 수 있다는 주장이다. 이름은 한쪽만 ‘프로’지만, 기본 하드웨어만 보면 두 제품은 매우 비슷한 컴퓨터라는 내용이다.
맥 미니 2014는 12년 넘게 업무와 일상용으로 무겁게 쓰였지만, 하드웨어 고장은 없었다. 교체 이유는 고장이 아니라 CPU 성능이 지금 필요한 작업에 부족해졌기 때문이다. 새 후보는 중국산 미니 PC이며, 브랜드와 모델이 너무 많아 고르기 어렵다. 가벼운 게임과 영상 편집에는 Radeon 680M 또는 Radeon 780M 내장 그래픽이 들어간 제품이 적당한 성능대처럼 보인다. 가장 큰 판단 기준은 빠른 성능보다 신뢰성과 오래 쓰는 수명이다. Minisforum, GMKtec, Beelink, GEEKOM 같은 브랜드가 메인보드나 칩 고장 없이 10년 이상 버틸 수 있는지, 아니면 맥 미니보다 수명이 훨씬 짧다고 봐야 하는지가 핵심 의문이다.
Mac Mini M4 서버에서 몇 달 동안 문제없이 돌던 Scrypted가 최근 하루 이틀 사이에 카메라 화면을 자주 잃기 시작했다. 장애는 한두 대 카메라에만 생길 때도 있고, 다섯 대 전체가 끊길 때도 있었다. 처음에는 새 NVR 베타 기능 때문으로 보고 안정 버전으로 되돌렸지만 문제가 계속됐다. Scrypted를 종료하거나 다시 시작하려 하면 JavaScript 오류와 함께 Scrypted 실행 세션이 계속 늘어났다. 정상 종료가 되지 않아 전원 버튼을 길게 눌러 강제 재부팅하거나, 터미널에서 sudo reboot 명령을 써야 멈출 수 있었다. macOS 설정에서 Node 권한은 확인됐다. 서버에는 Homebridge용 Node 24.18.0과 Homebrew로 설치된 Prismcast용 Node 26.5.0이 함께 있었고, Scrypted가 어느 Node를 쓰는지는 확실하지 않았다. 진단 결과에서는 카메라가 멈춘 뒤 GPU 디코딩 단계에서 긴 오류가 나왔고, 당시 서버에서 GPU를 쓰는 다른 작업은 없었다. 환경은 메모리 16GB Mac Mini M4와 macOS Tahoe 26.5.2다.
소규모 사업장의 현재 인공지능 작업 환경은 16기가바이트 메모리의 클라우드 가상 서버, 12기가바이트 메모리의 Dell 데스크톱, 8기가바이트 메모리의 미니 피시를 SSH 터널로 이어 쓰는 구조다. 여러 기계가 나뉘어 있지만 그래픽카드를 묶어 쓰는 구조는 없어서, 안정적인 장기 운영에는 맞지 않는다. 새 목표는 회사 안에 한 대의 장비를 두고, 비공개 업무 자료를 바탕으로 로컬 거대 언어 모델 추론과 RAG를 돌리는 것이다. 나중에는 가벼운 파인튜닝도 고려한다. 후보는 세 가지다. RTX PRO 6000 Blackwell은 96기가바이트 비디오 메모리로 더 큰 모델을 다룰 여지가 가장 크다. RTX PRO 5000 Blackwell은 48기가바이트 비디오 메모리로 비용이 낮고 실제 규모에는 충분할 가능성이 있다. RTX 5090 두 장 구성은 계산 성능은 높아 보이지만, 모델을 나눠 올려야 하고 부품과 설정이 더 복잡해진다. 우선순위는 안정성, 원격 관리, 모델을 자주 바꾸지 않아도 되는 충분한 비디오 메모리, 한 번 잡아두면 계속 유지되는 전력과 발열 관리, 매일 손봐야 하지 않는 운영이다.
Valheim 게임 서비스를 끄려고 하는 서버에서 집에 있는 오래된 맥 미니로 옮겼다. 예전 서버에는 아직 프로그램 하나가 남아 있고, 그것까지 옮기면 예전 서버를 끄고 한 달에 약 20달러를 아낄 수 있다. 집 서버로 쓰는 맥 미니는 Intel 칩을 쓴 오래된 모델이라 열이 많이 난다. 대신 메모리가 32기가바이트라 여러 프로그램을 함께 돌리는 데는 여유가 있다. 내장 SSD는 128기가바이트뿐이라 저장 공간이 부족해 Thunderbolt 외장 SSD를 연결했다. 이 외장 SSD도 작고 뜨거워지지만, 대부분의 파일은 70테라바이트 공간이 있는 NAS에 보관하고 있어 큰 문제는 아니다. 맥 미니를 산 주된 이유는 Plex를 돌리기 위해서였고, 영상 파일은 크기 때문에 별도 저장 공간이 중요했다.
스트리밍 구독을 줄이려고 Jellyfin을 직접 돌리는 작은 계획이 몇 주 만에 20개 Docker Compose 서비스로 커졌다. 장비는 Lenovo ThinkCentre M720q Tiny이며, Intel i5-8400T 프로세서, 16GB 메모리, 내부 256GB SATA SSD, 외장 Seagate 6TB USB 3.0 저장장치를 쓴다. 모든 장비는 10인치 DIGITUS 9U 캐비닛 안에 들어가고, NETGEAR GS308EP PoE 스위치와 24시간 켜진 대시보드 화면도 함께 둔다. 미디어 쪽은 Jellyfin, Sonarr, Radarr, Prowlarr, Jellyseerr, qBittorrent로 구성되어 있고, qBittorrent는 gluetun과 Mullvad WireGuard를 통해서만 인터넷에 나간다. VPN 컨테이너 상태가 나쁘면 qBittorrent 연결이 완전히 끊기도록 해 노출을 막는다. Tdarr는 Intel Quick Sync를 이용해 영상 변환을 하며, Cleanuparr는 악성 파일이나 불필요한 파일, 멈춘 다운로드를 정리한다. 원격 접속은 직접 운영하는 WireGuard로 처리하고, Pi-hole은 광고 차단용 DNS를 맡는다. Nginx Proxy Manager는 외부 접속 주소와 Let’s Encrypt 인증서를 관리하며, Vaultwarden은 별도 HTTPS 도메인에서 비밀번호 보관소로 운영된다.
목표는 인터넷 서비스에 맡기지 않고 로컬 거대 언어 모델로 정해진 형식의 코딩 보조 작업을 처리하는 것이다. 예시는 C++11로 Arena allocator 클래스를 만들고, 객체 추가·삭제·조회 기능을 넣으며, 복사와 이동 생성자는 막는 작업이다. OpenRouter의 poolside/laguna-xs-2.1 무료 모델에서는 이런 요청에 쓸 만한 결과가 나왔다. 하지만 그 모델의 크기를 알기 어려워서 실제로 어느 정도의 VRAM이 필요한지 판단하기 어렵다. 현재 보유한 장비는 16GB VRAM이 있는 6800XT 그래픽카드와 32GB 메모리를 갖춘 게임용 PC지만, 본체가 너무 커서 맥 미니나 비슷한 작은 장비를 고려하고 있다. 업무 성격상 AI를 폭넓게 쓰기는 어렵지만, 반복적이고 지루한 코딩 보조에는 시간이 줄어드는 효과가 있어 무시하기 어렵다는 판단이다. 구매 지역은 영국이다.
OpenClaw를 별도 맥미니나 전용 서버 없이 일반 컴퓨터에서 써도 되는지가 핵심이다. 실행 방법으로 Docker가 거론되며, 같은 내장 디스크를 쓰는 경우와 USB 외장 디스크를 붙여 쓰는 경우에 보안 차이가 있는지도 걱정된다. 특히 OpenClaw가 자율 에이전트처럼 스스로 작업을 이어갈 수 있고, 외부 스킬을 열어 쓸 수 있다는 점이 불안 요소다. Docker 안에서 실행하면 충분히 분리되어 실험해도 괜찮은지, 아니면 호스트 컴퓨터와 파일에 위험이 남는지가 실제 고민이다.
목표는 직접 조립한 NAS/미디어 서버를 만들고, 나중에 8개의 SATA 디스크를 모두 채워 큰 저장공간을 확보하는 것이다. 이미 가진 부품은 DDR4 메모리와 케이스뿐이라, 이 두 가지는 바꾸지 않는 조건이다. 나중에는 SFP+ 10GbE 확장 카드와 RTX 3070 Ti 그래픽카드도 추가할 계획이다. 그래픽카드는 인공지능 작업과 게임 서버 실험에 쓰려는 장기 목표다. 저장공간은 ZFS 파일 시스템으로 묶고, 처음에는 RAID 1 또는 RAID 5로 시작한 뒤 디스크가 충분히 많아지면 RAID 6으로 옮기는 구상이다. 운영 방식은 Proxmox 위에 TrueNAS를 가상 머신으로 올릴지, 아니면 TrueNAS를 기기에 바로 설치할지 고민 중이다. 실행하려는 서비스는 Jellyfin, Immich, Wazuh, Calibre 같은 미디어 관리, 사진 관리, 보안 감시, 전자책 관리 도구들이다. 전체 방향은 처음부터 넉넉한 사양으로 맞춰서 당분간 확장 여지를 확보하는 것이다.
TeamsAssist-macOS는 맥에서 Microsoft Teams의 현재 상태를 읽어 Home Assistant로 보내는 가벼운 앱이다. 백그라운드에서 조용히 실행되며, 맥용으로 만든 네이티브 도구라는 점이 핵심이다. Windows용 비슷한 해결책은 이미 있지만, 맥 환경에서 회의 상태를 집 안 자동화에 안정적으로 연결하려는 필요에서 나왔다. 예를 들어 회의에 들어가거나 마이크 음소거를 풀면 사무실 문 밖의 전구나 띠 조명이 빨간색으로 바뀔 수 있다. 통화가 시작되면 배경 음악이나 스마트 스피커를 자동으로 멈출 수도 있다. 카메라에 더 잘 보이도록 조명 장면을 바꾸거나, 발표 중 방의 온도 조절을 함께 움직이는 식의 자동화도 가능하다. 제작 환경에서는 Home Assistant가 이미 전력 사용 관리, 히트펌프 감시, 네트워크 장비 관리에 쓰이고 있다. 코드는 GitHub의 TheRudin/TeamsAssist-macOS 저장소에 공개되어 있다.
2기가 내려받기와 800메가 올리기 속도의 광인터넷으로 바꾸면서, 통신사 공유기 대신 직접 고른 공유기를 쓰려는 상황이다. 통신사 공유기는 설정할 수 있는 항목이 적고, 관리 화면이 느리고 불안정하며, 광회선이 끊기면 장비 자체도 멈추는 문제가 있다. 문제는 Sosh의 Livebox 6 공유기가 브리지 모드를 지원하지 않아 이중 NAT가 생길 수 있다는 점이다. 통신사 장비를 건너뛰고 개인 GPON 어댑터를 바로 쓸 수 있는지도 확실하지 않다. 후보 장비는 2.5기가 이더넷 포트 2개가 있는 Radxa E52C 공유기이며, 2GB 또는 4GB 메모리 모델에 OpenWRT를 올려 WireGuard 같은 VPN과 Pi-hole 같은 작은 서비스를 컨테이너로 돌릴 계획이다. 집 안에는 백업, 미디어 서버, 가상 머신, 홈 자동화, 시드박스를 맡는 TrueNAS Scale NAS가 있고, 현재 1기가 이더넷 포트 2개 중 하나는 IPMI용이다. 나중에 NAS에도 2.5기가 이더넷 또는 SFP+ 확장 카드를 달지 고민하고 있다. 게임용 PC는 2.5기가 이더넷을 갖췄고, 안드로이드 TV 박스는 현재 1기가 이더넷이며, 프린터와 Zigbee 관련 장비처럼 속도가 낮은 유선 장비도 함께 있다.
2014년식으로 보이는 맥 미니 7,1 모델에서 JetKVM 같은 USB 방식 KVM을 연결해도 부팅 단계의 키보드 입력이 먹지 않는 문제가 발생한다. 운영체제가 완전히 켜진 뒤에는 KVM으로 조작이 되지만, 부팅 선택 화면에서는 반응하지 않는다. 이 상태에서는 SSD로 그냥 부팅하려고 해도 엔터 키를 누르거나 마우스로 선택해야 하는데, KVM 입력이 먹지 않아 직접 USB 키보드를 꽂아야 한다. HDMI, DP, DVI, VGA용 여러 USB KVM을 써도 다른 장비보다 이 맥 미니만 까다롭게 동작한다. 문제의 핵심은 화면 출력보다 부팅 전 단계에서 USB 입력 장치를 제대로 인식하지 못하는 점이다.
CTRoadmap은 홈서버 구성을 그림과 문서로 정리하는 도구다. 서버를 자동으로 훑어보는 방식이 아니라, 설정 파일 위치, 스크립트 위치, 작동 방식 같은 내용을 직접 적어 두는 데 맞춰져 있다. 오픈소스로 공개되어 있고, 도커 컨테이너로 실행한 뒤 같은 네트워크의 다른 기기 브라우저에서 볼 수 있다. 새 베타 0.2.0에는 절차와 세부 정보를 더 길게 적을 수 있는 핸드북 보기가 추가됐다. 화면 구성은 아직 투박하며, 앞으로 테마 꾸미기, 내보내기 기능, 선택형 인증 계층을 추가하는 작업이 진행 중이다. 이 도구는 홈서버를 처음 세팅할 때 무엇을 어디에 두었는지 잊지 않기 위한 개인 참고 자료 용도로 만들어졌다.
서버 랙에 Tripp Lite SMART1500LCD UPS 두 대가 서버 몇 대와 네트워크 장비 앞에 연결되어 있었다. 부하는 두 장비에 나눠 걸려 있었고, 둘 다 새 제품으로 산 지 2년이 되지 않았다. 그런데 집 전기가 순간적으로 깜빡일 때 두 UPS가 모두 제 역할을 하지 못했다. 그 결과 전문 드라이브 복구를 맡겨야 했고, SuperMicro 장비의 전원공급장치도 하나 고장 났다. 배터리 자체 점검은 두 대 모두 통과했지만, 실제 전기 깜빡임 상황에서는 한 대가 완전히 꺼졌고 앞면 전원 버튼을 직접 눌러야 다시 켜졌다. 같은 방식의 실패가 두 대에서 반복되어 Tripp Lite 장비의 신뢰성에 의문이 생겼다. 사무실에서는 APC 800와트 UPS를 Goldenmate 1킬로와트 LiFePO4 배터리 모델로 바꿨고, 납산 배터리 UPS 대신 이런 방식으로 옮기는 방안이 검토되고 있다.
지하에는 광단말이 있고, 위층에는 라우터가 있다. 두 층 사이에는 케이블이 하나뿐이라서, 지하의 인터넷 신호를 위층 라우터로 올리고 라우터에서 나온 집안망을 다시 지하 스위치로 내려보내야 한다. 인터넷 업체는 Deutsche Glasfaser이고, 광단말을 라우터에 바로 연결할 때는 VLAN 360을 써야 한다. 장비는 Ubiquiti USW Flex 2.5G 스위치 2대, UCG Fiber 라우터, 임시 TP-Link TL-SG105E 스위치다. 구성은 기본 집안망을 VLAN 1로 두고, 인터넷 쪽 신호를 VLAN 360으로 나누려는 방식이다. 지하 스위치의 광단말 연결 포트와 위층 스위치의 라우터 WAN 연결 포트에는 VLAN 360을 기본값처럼 넣고, 두 스위치를 잇는 포트에는 VLAN 1 기본값과 전체 허용을 설정했다. 라우터의 WAN 포트에서는 VLAN 설정을 넣은 경우와 뺀 경우를 모두 시도했다. 인터넷 업체의 DHCP 임대가 풀리도록 한 시간 기다려도 연결은 되지 않았다.
싱가포르의 가정용 인터넷은 기존 GPON이 사라지고, 가장 낮은 요금제도 3Gbps 광인터넷이 된 상황이다. 이 환경에서 6Gbps XGS-PON 회선을 쓰고, 집 안 네트워크도 10G 장비로 맞췄다. 집에 10G 포트를 가진 유선 기기가 아직 없어 당장은 과한 구성에 가깝지만, 나중을 생각하면 10G 기반을 깔아 둔 점은 만족스럽다. 다만 10G 스위치와 XGS-PON ONT는 열이 많이 나서, 통풍구가 있는 수납장과 공기 냉각으로 안정적으로 버티게 하고 있다. Jellyfin은 잘 작동하며, Intel CPU의 Quick Video Sync 덕분에 집 밖 모바일 기기에서도 WireGuard로 접속해 영상을 볼 수 있다. 영상은 5G 데이터 사용량을 줄이기 위해 5Mbps 아래로 변환하고, 이때 CPU 사용량은 거의 늘지 않는다. Sunshine, Immich, NextCloud는 아직 조정 중이다. 원격 물리 저장소가 없어서 Google Drive를 세 번째 백업 위치로 쓰며 3-2-1 backup rule을 맞추려 하고, 추가로 Pi-hole 같은 집 서버 서비스를 고려하고 있다.
USBridge-KVM 2.0은 서버의 HDMI 신호를 직접 가로채 BIOS 화면을 텍스트로 변환한 뒤, 이를 SSH 세션으로 그대로 받아볼 수 있게 해주는 하드웨어 장치다. 화면에 표시되는 글자와 색상 정보까지 담은 JSON 데이터 스트림도 함께 제공한다. 이 기능은 원래 AI 에이전트(MCP)가 화면 내용을 '읽고' 하드웨어 상태를 점검할 수 있도록 만든 것이었는데, 개발자는 동일한 데이터를 화면 낭독 프로그램에 연결하면 시각장애인도 BIOS 메뉴를 실시간으로 들으며 조작할 수 있다는 점을 뒤늦게 깨달았다. 계기는 완전 시각장애를 가진 소프트웨어 엔지니어가 보낸 이메일이었다. 그는 PC Weasel 같은 전용 접근성 하드웨어가 사라진 뒤 약 15년간, 운영체제가 뜨기 전 단계(Layer 0)에서는 화면 낭독기가 전혀 작동하지 않아 BIOS/부팅 전 화면 접근이 큰 난제였다고 설명했다. 개발자는 애초에 접근성을 염두에 두고 만든 제품이 아니라, 스크립트 자동화를 위해 안정적인 텍스트 인터페이스가 필요했던 것이 우연히 접근성 문제 해결로 이어졌다고 밝히며, 이 기능이 실제로 얼마나 유용할지, 시각장애인에게 얼마나 도움이 될지 커뮤니티에 의견을 구하고 있다.
2년 동안 델 R730 기업용 서버를 24시간 켜 두고 쓰던 홈서버 환경이 자작 서버로 옮겨졌다. 기존에는 태양광 패널에서 남는 전기가 있어 전력 사용량 부담이 덜했지만, 이제는 전기를 훨씬 덜 쓰는 구성이 목표가 됐다. 저장장치는 2.5인치 SAS 디스크 대신 3.5인치 SATA 하드디스크를 쓰는 방향으로 바뀌었다. 회사에서 128기가바이트 DDR4 ECC-RDIMM 메모리와 4테라바이트 하드디스크 11개를 무료로 받았고, 대부분 HGST와 Seagate Constellation 제품이다. 예전 R730의 CPU로 업그레이드할 가능성을 남기기 위해 LGA2011-3 소켓 메인보드가 필요했고, 결국 Supermicro X10SRI-F와 Intel Xeon E5-1620 v4 조합을 이베이에서 구했다. 영상 변환과 가벼운 인공지능 작업에는 남아 있던 Gigabyte 1660 Super OC 그래픽카드를 재사용했다. 디스크 전원을 모두 연결하려고 SATA 전원 케이블과 분배기를 추가로 샀고, 무거운 CPU 작업도 가능하게 하려고 Noctua NH-U9DX i4 쿨러도 새로 샀다.