내가 직접 만든 제어판으로 128 MB RAM NAS를 부활시킨 방법

발행: (2026년 6월 10일 PM 08:20 GMT+9)
8 분 소요
원문: Dev.to

Source: Dev.to

128 MB RAM NAS를 직접 만든 제어판으로 되살린 이야기

지루함과 오래된 하드웨어에서 시작되었습니다

오래된 Netgear Stora MS2000이 있었는데, RAM이 겨우 128 MB에 불과한 박스였습니다. 한 번은 Debian 7과 OpenMediaVault(OMV)를 설치했었죠. 그 뒤 디스크가 고장 나서 Debian 9를 다시 설치했지만, OMV는 이 하드웨어에 너무 무거웠습니다.
콘솔에서 Samba와 NFS 설정을 매번 수정하는 건 고통이었습니다. 공유 폴더를 만들기 위해 두 페이지만 있으면 충분했죠. “PHP 스크립트 몇 개만 만들면 끝이겠지”라고 생각했습니다.
그렇게 Mini Bucket이 탄생했습니다.

⚠️ 주의: 저는 프로그래머가 아닙니다. 코드가 더 아름다울 수도 있고, 설계가 더 우아할 수도 있겠지만, 제 목표는 오래된 하드웨어에서 시스템 관리자로서 쓸 수 있는 유용한 도구를 만드는 것이었습니다.

첫 두 페이지는 금방 만들었고, 공유가 정상적으로 생성되었습니다.
그 다음엔 “통계도 좀 보고 싶다”는 생각이 들어 대시보드에 그래프를 추가했습니다.
그리고 “SMB와 NFS가 이미 있으니 rsync와 FTP도 넣자”고 생각해서 구현했습니다.

날이 갈수록 제 “두 페이지짜리 패널”은 Mini Bucket — NAS Control Panel이라는 프로젝트로 성장했습니다.

  • Raspberry Pi 1 (256 MB RAM) — 바로 첫 번째 모델
  • Netgear Stora MS2000 (128 MB RAM)
  • 오래된 노트북·VM에 설치한 Debian 9

할 수 있는 일 (간단히)

  • CPU, RAM, 네트워크, 디스크 그래프가 포함된 실시간 대시보드
  • CRUD와 미리 정의된 규칙을 갖춘 방화벽(UFW)
  • 시스템 모니터 + 진단(ping, traceroute, speedtest)
  • 웹 콘솔(브라우저를 통한 SSH)
  • 로그가 포함된 Cron 스케줄러
  • 사용자 관리
  • 디스크, RAID(0,1,5,6,10), LVM, SMART
  • 두 패널 파일 매니저
  • SMB, NFS, FTP, Rsync
  • “전체 점검” 버튼이 있는 시스템 체크러
  • 여러 서버를 위한 API 키 교체
  • 전체 목록 — 12개 섹션, 20개 이상 페이지

베타 버전에서 있었던 실수들 (Habr 커뮤니티의 지적)

  • 워커 파일, cron 스크립트, 임시 파일을 웹 서버 문서 루트 안에 저장
  • 인증 없이 실행 파일에 직접 요청을 보낼 수 있음
  • 모든 데이터를 하나의 SQLite DB에 저장해 부하가 걸리면 “database is locked” 오류 발생

부인하지 않습니다. 배우고 있습니다.

  • 모든 핵심 파일을 웹사이트 폴더 외부(/var/www/minib/)로 이동
  • Apache 설정 재검토
  • 외부에서 접근할 수 없도록 임시 파일·로그 차단
  • DB를 여러 SQLite 파일로 분산하고 요청 큐링 적용

교훈: 베타는 베타일 뿐. 이제는 안정 버전입니다.

보안은 어떻게?

전체 과정이 문서화돼 있지만 핵심만 정리하면:

  1. Host Manager → FQDN 설정(예: minib.local)
  2. Security → SSL Manager → Create → 자체 서명 인증서 생성
  3. System → Mini‑B Settings → Enable HTTPS
  4. 적용하고 설정 테스트

브라우저가 자체 서명 인증서를 경고하겠지만 트래픽은 암호화됩니다. 가정용 NAS라면 충분합니다.

“아웃‑오브‑박스” 시스템의 현실

대부분 80%는 기본 제공되고, 나머지 20%는 개인이 직접 채워야 합니다. 그래서 3.6.4 버전부터 Mini Bucket은 플러그인 플랫폼이 되었습니다.

  • Log Manager — 실시간 로그 뷰어, 검색, 내보내기, 정리. /var/log 경로를 기억할 필요 없이 브라우저에서 바로 확인.
  • Plugin Template — 인증·API·SQLite 지원이 내장된 플러그인 스켈레톤.

누구든 자신만의 플러그인(예: S3 백업, 텔레그램 봇, 디스크 온도 모니터링)을 만들고 커뮤니티와 공유할 수 있습니다.

배운 점

  • 실행 파일을 웹루트에 두지 말 것 — 기본 보안 원칙이며 제가 놓친 부분입니다.
  • DB를 분산할 것 — 하나의 SQLite가 부하에 취약합니다.
  • 비판을 수용할 것 — Habr에서 기부 요청과 초보 실수 때문에 다운받았지만, 실수를 고치고 기부는 유지하되 눈에 띄지 않게 했습니다.
  • 모든 사람을 만족시킬 수는 없다 — 제 프로젝트는 니치 시장, 오래된 하드웨어와 “그냥 빨리 끝내자”는 마인드의 사람들을 위한 것입니다.
  • 오픈소스는 코드만이 아니라 커뮤니티다. 포럼, 위키, 문서, 플러그인까지.

앞으로의 로드맵

  • 패널 내부 플러그인 마켓플레이스
  • 다국어 지원 확대(현재 러시아어/영어 혼합)
  • 인기 백업 도구와 연동(S3, Borg, Restic)

GitHub: https://github.com/itprogresscorp/Mini-Bucket

데모 & 문서: https://mini-bucket.ru

포럼: 웹사이트 참고

이 프로젝트는 실제로 유용하다고 생각하는 사람들의 기부로 유지됩니다. 만약 여러분이 Mini Bucket으로 오래된 NAS를 되살렸다면, 작은 지원이라도 큰 힘이 됩니다. 링크는 GitHub와 웹사이트에 있습니다.

P.S. 깨끗한 Debian 9에 설치하려면 한 줄 명령어만 실행하면 됩니다. 자세한 내용은 GitHub README에 적혀 있습니다.

P.P.S. 저는 프로그래머가 아니지만, 작동합니다. 그리고 오픈소스입니다.

0 조회
Back to Blog

관련 글

더 보기 »

Eidentic 소개

Today we're releasing Eidentic, an open-source TypeScript SDK for building AI agents with self-improving memory and the production fundamentals built in — not b...

Typescript의 타입

Introdução Tipos são uma forma de definir a “forma” ou o contrato dos dados que estamos usando no código. Pensando em Javascript puro, ele é dinâmico: você pode...