시놀로지 도커에 Dock나비-beta 설치하기

스크린샷 2026-01-01 10.13.04.png

그냥 간단한 아이디어와 기존 서비스의 불편함을 해소하고자 시작했던 프로젝트 Dock나비 입니다

 

우선 대부분은 완성이 된 거 같고 디테일을 깎고 있는데 이정도면 베타 정도는 할 수 있겠다 싶어서 글을 적습니다

 

우선 설치 방법부터 이야기를 하자면

 

version: "3.8"

services:
  backend:
    image: sruinz/docknabi-backend:beta
    container_name: docknabi-backend
    restart: unless-stopped
    ports:
      - "8580:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data:/app/data
      - /volume1/docker:/volume1/docker
      - /var/packages/ContainerManager/etc/projects:/var/packages/ContainerManager/etc/projects
    environment:
      - DATABASE_PATH=/app/data/docknabi.db
      - JWT_SECRET=${JWT_SECRET:-change-this-secret-in-production}
      - PORT=8080
      - BASE_PATH=/volume1/docker
    healthcheck:
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s

  frontend:
    image: sruinz/docknabi-frontend:beta
    container_name: docknabi-frontend
    restart: unless-stopped
    ports:
      - "8581:80"
    depends_on:
      - backend
    environment:
      - API_URL=http://backend:8080

networks:
  default:
    name: docknabi-network

현재는 시놀로지를 우선 테스트 중입니다 

 

시놀로지 컨테이너 매니저에서 프로젝트 생성으로 생성 해주시면 됩니다

/volume1/docker/docknabi/data

폴더를 이렇게 만들어주시면 됩니다

 

# 🦋 Docknabi 베타 버전 소개

> **버전**: Beta 0.0.0  
> **마지막 업데이트**: 2026-01-01

---

## 📋 목차

1. [서비스 개요](#서비스-개요)
2. [핵심 기능](#핵심-기능)
3. [주요 장점](#주요-장점)
4. [알려진 제한사항 및 단점](#알려진-제한사항-및-단점)
5. [지원 환경](#지원-환경)
6. [로드맵](#로드맵)

---

## 서비스 개요

**Docknabi(독나비)**는 Synology NAS와 Linux 서버를 위한 차세대 Docker 컨테이너 관리 플랫폼입니다.

기존 Docker 관리 도구들의 복잡성을 해소하고, 멀티 테넌시(Multi-Tenancy) 환경에서 여러 사용자가 안전하게 Docker 리소스를 공유할 수 있도록 설계되었습니다.

### 왜 Docknabi인가?

| 기존 문제점 | Docknabi 솔루션 |
|------------|----------------|
| 모든 사용자가 Docker에 무제한 접근 | 역할 기반 권한으로 리소스 접근 통제 |
| 리소스 쿼터 부재 | CPU, 메모리, 컨테이너 수, 스토리지 쿼터 |
| 복잡한 CLI 조작 필요 | 직관적인 웹 UI로 원클릭 관리 |
| 프록시 설정의 어려움 | NPM 연동 자동 프록시 요청/승인 시스템 |

---

## 핵심 기능

### 🐳 컨테이너 & 스택 관리

- **실시간 모니터링**: 컨테이너 상태, CPU/메모리 사용량 시각화
- **터미널 접속**: 웹 기반 xterm.js 터미널로 컨테이너 직접 접속
- **로그 스트리밍**: 실시간 로그 확인 및 검색
- **Docker Compose 편집**: Monaco Editor를 통한 YAML 편집 및 문법 강조

### 👥 멀티 테넌시 & 권한 관리

- **첫 가입자 = 슈퍼 관리자**: 하드코딩 없이 동적 권한 할당
- **3단계 역할 시스템**: Super Admin → Admin → User
- **세분화된 권한**: 스택 생성/수정/삭제, 컨테이너 관리, 프리셋 등록 개별 설정
- **리소스 쿼터**: 사용자별/역할별 CPU, 메모리, 컨테이너 수, 이미지/볼륨 스토리지 제한

### 🔌 NPM (Nginx Proxy Manager) 연동

- **프록시 요청 시스템**: 사용자가 도메인 → 컨테이너 프록시를 요청
- **관리자 승인 워크플로우**: 요청 → 검토 → 승인/거부 프로세스
- **자동 SSL 인증서**: Let's Encrypt 연동 자동 인증서 발급
- **토큰 자동 갱신**: NPM API 토큰 만료 시 자동 재발급

### 📚 프리셋 라이브러리

- **커뮤니티 템플릿**: 검증된 Docker Compose 템플릿 공유
- **카테고리 분류**: 미디어 서버, 개발 도구, 홈 자동화 등
- **원클릭 가져오기**: 프리셋 선택 → 자동 배포
- **.env 파일 지원**: 환경 변수 포함 프리셋 저장/불러오기

### 📂 파일 탐색기

- **FileStation 스타일 UI**: 익숙한 파일 관리 인터페이스
- **드래그 앤 드롭**: 파일 업로드/다운로드
- **압축/해제**: ZIP 파일 생성 및 해제
- **텍스트 편집**: Monaco Editor 기반 파일 편집

### 🔔 알림 시스템

- **실시간 알림**: 스택 배포, 컨테이너 상태, 프록시 승인 등
- **개인화 설정**: 알림 종류별 활성화/비활성화
- **관리자 시스템 알림**: 다른 사용자 활동 모니터링

---

## 주요 장점

### ✅ 직관적인 사용자 경험

- **글래스모피즘 다크 모드 UI**: 현대적이고 세련된 디자인
- **다국어 지원**: 한국어/영어 완벽 지원
- **반응형 레이아웃**: 데스크톱/태블릿 최적화

### ✅ 보안 및 격리

- **사용자별 폴더 격리**: `/docker/_users/{username}` 기반 데이터 분리
- **JWT 기반 인증**: 안전한 토큰 기반 인증
- **역할별 권한 강제**: 백엔드에서 모든 권한 검증

### ✅ Synology 최적화

- **Container Manager 연동**: 스택 자동 등록/해제
- **시놀로지 CPU 제한**: cpu_shares 기반 CPU 쿼터
- **DSM 7.x 호환**: 시놀로지 최신 OS 완벽 지원

### ✅ 운영 편의성

- **자동 마커 시스템**: Docknabi 관리 스택 vs 외부 스택 구분
- **외부 스택 가져오기**: 기존 Docker 스택을 Docknabi로 전환
- **볼륨 자동 생성**: Docker Compose 배포 시 필요 폴더 자동 생성

---

## 알려진 제한사항 및 단점

### ⚠️ 베타 버전 제한

| 항목 | 제한 사항 |
|------|----------|
| **안정성** | 일부 엣지 케이스에서 예기치 않은 동작 가능 |
| **백업 기능** | 내장 백업/복원 기능 미지원 (수동 DB 백업 필요) |
| **클러스터** | 단일 노드만 지원, Docker Swarm/K8s 미지원 |

### 🔶 기능적 제한

| 항목 | 제한 사항 |
|------|----------|
| **네트워크/볼륨 충돌** | Compose 파일 내 네트워크/볼륨 이름 충돌 자동 수정 미지원 |
| **이미지 빌드** | Dockerfile 빌드 미지원 (pull만 지원) |
| **컨테이너 로그 저장** | 로그 영구 저장/내보내기 미지원 |

### 🟡 환경 의존성

| 항목 | 요구 사항 |
|------|----------|
| **NPM 연동** | Nginx Proxy Manager 사전 설치 필요 |
| **Docker 소켓** | `/var/run/docker.sock` 마운트 필수 |
| **시놀로지 전용 기능** | Container Manager 연동은 DSM 7.x 전용 |

### 🔴 보안 고려사항

- **Docker 소켓 접근**: 백엔드가 Docker 소켓에 접근하므로 호스트 제어권 보유
- **내부 네트워크 전용**: 외부 네트워크 노출 시 리버스 프록시 + SSL 필수
- **비밀번호 해싱**: bcrypt 사용, 그러나 DB 암호화 미지원

---

## 지원 환경

### 하드웨어 요구사항

| 항목 | 최소 | 권장 |
|------|------|------|
| CPU | 2코어 | 4코어 이상 |
| RAM | 1GB | 4GB 이상 |
| 스토리지 | 100MB (앱) | 1GB+ (데이터) |

### 소프트웨어 요구사항

| 항목 | 버전 |
|------|------|
| Docker | 20.10+ |
| Docker Compose | v2.0+ |
| Synology DSM | 7.0+ (선택) |
| 브라우저 | Chrome/Firefox/Safari 최신 버전 |

### 기술 스택

| 구분 | 기술 |
|------|------|
| **백엔드** | Go 1.21+, Fiber, GORM, SQLite |
| **프론트엔드** | React 18+, TypeScript, Tailwind CSS, Zustand |
| **편집기** | Monaco Editor |
| **터미널** | xterm.js |

---

## 로드맵

### 🎯 v1.0 정식 릴리즈 (예정)

- [ ] 네트워크/볼륨 이름 충돌 자동 수정
- [ ] 사용자 데이터 백업/복원 기능
- [ ] 다중 NAS/서버 관리 (멀티 노드)
- [ ] 이미지 레지스트리 연동 (Docker Hub, GHCR)
- [ ] Webhook 알림 (Discord, Slack, Telegram)

### 🔮 장기 계획

- [ ] Kubernetes 지원
- [ ] 모바일 앱 (PWA)
- [ ] 플러그인 시스템
- [ ] AI 기반 Compose 파일 생성
- [ ] SSO 연동
- [ ] 텔레그램 봇, 디스코드 봇 내장 계획

---

## 피드백 및 버그 제보

베타 버전 테스트 중 발견된 버그나 개선 제안은 댓글을 통해 제보해 주세요.

> 🦋 **Docknabi** - 가볍고 자유로운 Docker 관리

간단한 서비스 소개 글입니다

임시 계획이니 나중에 변경 될 가능성이 큽니다

 

https://svrforum.com/nas/2941643

자세한 스샷은 위 게시글과 크게 변경 된 부분은 없을 겁니다

최초 가입하는 계정이 슈퍼관리자가 됩니다

 

아직 정식 버전이 아니라 위키나 가이드 문서를 작성하진 않았습니다만

이전 게시글과 조금 바뀐 부분을 소개하자면

 

스크린샷 2026-01-01 10.29.58.png

검색 기능이 추가 됐습니다

 

텍스트를 입력하면 검색 결과가 보이고 엔터를 누르면

 

스크린샷 2026-01-01 10.31.38.png

검색 결과창이 나오고 결과를 선택 하면 해당 디테일 정보로 이동 됩니다

 

 

스크린샷 2026-01-01 10.32.25.png

스크린샷 2026-01-01 10.32.44.png

컨테이너 정보에 터미널 기능이 구현 됐고요

 

스크린샷 2026-01-01 10.34.10.png

 

스크린샷 2026-01-01 10.34.37.png

독나비에서 스택을 생성하면 컨테이너 매니저에서 프로젝트 표시가 됩니다

프로젝트가 회색으로 표시되지만 

 

스크린샷 2026-01-01 10.35.42.png

작업 – 빌드를 한 번 눌러주시면 됩니다

컨테이너가 실행 중인 상태여도 상관 없습니다

 

스크린샷 2026-01-01 10.36.37.png

창이 하나 뜨고 이제 컨테이너 매니저에서도 프로젝트가 제대로 표시되고 소유권을 갖습니다

 

스크린샷 2026-01-01 12.27.26.png

파일 탐색기에서 업로드를 할 때 업로드 진행바가 표시 됩니다

 

스크린샷 2026-01-01 12.44.00.png

쿼터 제한이 있으면 업로드 자체가 안되고요

그 외에도 압축이나 텍스트 편집 기능과 이런저런 기능들이 포함 돼있습니다 

 

스크린샷 2026-01-01 10.37.46.png

시놀로지에서 사용할 경우에는 시놀로지 모드를 켜주세요

회원 가입을 허용/거부 하거나

회원 가입 승인 기능을 켤 수 있습니다

 

승인 기능을 켜면 새로운 사용자가 가입을 했을 때 

대기 상태가 되고 슈퍼 관리자 알림이 오게 됩니다

 

스크린샷 2026-01-01 10.38.27.png

알림은 각 사용자 개인 알림과

 

스크린샷 2026-01-01 10.38.54.png

슈퍼 애드민이 관리 가능한 시스템 알림이 있습니다

 

스크린샷 2026-01-01 10.39.31.png

알림은 이런 식으로 표시되고요

 

스크린샷 2026-01-01 10.39.51.png

전체 알림 보기를 통해 알림 히스토리 관리가 가능합니다

슈퍼 애드민은 다른 사용자의 활동을 알림 받을 수 있습니다

 

스크린샷 2026-01-01 10.40.52.png

역할 기본 권한을 설정 가능합니다

시놀로지에서는 완벽하게 쿼터 관리가 되지는 않습니다

우선 순위를 설정하는 방식으로 우회를 했고요

볼륨 쿼터 제한은 용량이 꽉 차면 업로드, 복사가 제한되고

스택 생성을 제한 하는 방식으로 구현했습니다

 

스크린샷 2026-01-01 10.47.00.png

스크린샷 2026-01-01 10.47.22.png

NPM 설정은 아이디 비번을 입력 후 토큰 등록을 하면

프록시 등록, 수정, 삭제 등등의 요청을 승인을 통해

NPM에 자동으로 등록 수정 삭제가 가능합니다

  

스크린샷 2026-01-01 10.54.22.png

도움말 정보 페이지에는 아직 별 기능은 없습니다…

 

스크린샷 2026-01-01 10.55.06.png

사이드 바는 축소 가능합니다

 

이 프로젝트는 아는 지인들이나 가족과 사용하기 위한 시스템이며

불특정 다수의 사용자에게 서비스하기 위한 프로젝트는 아닙니다

사용자간의 신뢰가 필요하고 여러 방법으로 제한을 두고있고

이런저런 보안 적인 문제들을 업데이트 할 예정이지만

사용자가 악의 적인 의도로 우회 공격이 가능할 수 있으니

공개 서비스에 이용 하지 마시길 바랍니다

 

도커와 연결 돼있기 때문에 로컬 접속으로만 사용하시길 바랍니다

 

치명적인 오류는 없겠지만 혹시 모르니 테스트 환경에서 사용하시길 바랍니다

아직 수정할 부분도 있을거고 추가할 기능들도 있습니다

SSO나 텔레그램 봇 같은 기능도 나중에 추가될 수 있습니다

 

사용 해보실 분들은 사용 해보시고 불편한 점이나 추가했으면 하는 기능들

버그나 오류 같은 부분들 제보해주시면 프로젝트 개선에 큰 도움이 될 거 같습니다

 

아직 깃헙 등록은 안돼있고 도커 허브에 베타 이미지만 등록 된 상태입니다

현재 반응형UI와 모바일UI는 최적화가 안됐습니다

 

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다