내가 직접 만든 제어판으로 128 MB RAM NAS를 부활시킨 방법
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 파일로 분산하고 요청 큐링 적용
교훈: 베타는 베타일 뿐. 이제는 안정 버전입니다.
보안은 어떻게?
전체 과정이 문서화돼 있지만 핵심만 정리하면:
- Host Manager → FQDN 설정(예:
minib.local) - Security → SSL Manager → Create → 자체 서명 인증서 생성
- System → Mini‑B Settings → Enable HTTPS
- 적용하고 설정 테스트
브라우저가 자체 서명 인증서를 경고하겠지만 트래픽은 암호화됩니다. 가정용 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. 저는 프로그래머가 아니지만, 작동합니다. 그리고 오픈소스입니다.