IT 관련/기타

시놀로지 Docker Calibre 서버 외부 웹 업로드 오류 해결 가이드

islet2 2025. 9. 28. 20:03

 이 가이드는 시놀로지 NAS의 Docker(Container Manager)를 통해 Calibre 또는 Calibre-Web 서버를 설치하고, 역방향 프록시로 외부 접속을 설정한 사용자가 흔히 겪는 파일 업로드 실패 문제를 해결하는 것을 목표로 합니다.

문제의 핵심 원인은 크게 두 가지입니다.

  1. Nginx의 업로드 용량 제한: 시놀로지 웹서버(Nginx)가 기본적으로 큰 파일의 업로드를 허용하지 않습니다.
  2. Docker 컨테이너의 파일 접근 권한: Docker 안의 Calibre 프로세스가 NAS 저장소의 폴더에 파일을 쓸 권한이 없습니다.

아래 절차를 순서대로 진행하면 이 두 가지 문제를 모두 해결할 수 있습니다.

1단계: Nginx 설정 수정 (업로드 용량 제한 해제)

이 단계는 SSH(터미널)를 통해 NAS에 접속하여 진행합니다.

  1. SSH 접속
    • PC에서 터미널 프로그램(PuTTY, Terminal 등)을 사용하여 관리자 계정으로 시놀로지 NAS에 접속합니다.
  2. Nginx 설정 파일 열기
    • vi 에디터를 사용하여 Nginx 설정 파일을 엽니다.
    sudo vi /etc/nginx/nginx.conf
    

     

  3. 업로드 용량 설정 추가
    • i 키를 눌러 입력 모드로 전환합니다.
    • http { ... } 블록 안의 적당한 위치에 아래 코드를 추가합니다. (1024m은 1GB를 의미하며, 필요에 따라 2048m 등으로 조절할 수 있습니다.)
    http {
        # ... 다른 설정들 ...
        client_max_body_size 1024m;
        # ... 다른 설정들 ...
    }
    

     

    • Esc 키를 눌러 명령 모드로 돌아온 뒤, :wq를 입력하고 Enter를 눌러 파일을 저장하고 종료합니다.
  4. Nginx 설정 문법 검사
    • 저장한 파일에 오류가 없는지 확인합니다. 이는 매우 중요한 과정입니다.
    sudo nginx -t
    

     

    • [warn] 경고는 무시해도 괜찮습니다. 마지막에 syntax is ok와 test is successful 메시지가 나타나면 성공입니다. 만약 [error]가 발생하면 3번 단계로 돌아가 오타가 없는지 확인합니다.
  5. Nginx 서비스 재시작
    • 아래 명령어를 입력하여 수정된 설정을 최종 적용합니다.
    sudo synopkg restart WebStation
    

     

    • 이 명령어가 Web Station 패키지 전체를 재시작하므로 가장 확실합니다.

2단계: Docker 컨테이너 권한 문제 해결 (PUID/PGID 설정)

이 단계는 시놀로지 DSM의 Container Manager GUI를 통해 진행합니다.

  1. 사용자 ID(PUID, PGID) 확인
    • SSH(터미널) 창에 id 명령어를 입력하여 현재 접속한 관리자 계정의 uid와 gid 번호를 확인하고 기억해 둡니다.
    # 예시 출력
    uid=1026(jongmin) gid=100(users)
    

     

    • 이 경우 PUID는 1026, PGID는 100이 됩니다.
  2. Container Manager에서 컨테이너 복제 및 수정
    • Container Manager는 생성된 컨테이너의 중요 설정을 직접 편집하는 대신, 복제를 통해 새로 만드는 방식을 사용합니다.
    1. DSM에서 Container Manager를 실행하고 [컨테이너] 탭으로 이동합니다.
    2. 수정할 Calibre 컨테이너를 선택하고 **[작업] > [중지]**를 눌러 컨테이너를 정지시킵니다.
    3. 컨테이너가 중지되면, 다시 선택하고 **[작업] > [복제]**를 클릭합니다.
    4. 컨테이너 설정 창이 나타나면, 하단의 [고급 설정] 버튼을 클릭합니다.
    5. 고급 설정 창에서 [환경] 탭으로 이동합니다.
    6. [추가] 버튼을 눌러 아래 두 환경 변수를 추가하거나, 이미 있다면 값을 수정합니다.
      • 변수: PUID / 값: 1번 단계에서 확인한 uid 번호 (예: 1026)
      • 변수: PGID / 값: 1번 단계에서 확인한 gid 번호 (예: 100)
    7. **[저장]**을 눌러 고급 설정을 닫고, 마법사를 완료하여 복제된 새 컨테이너를 생성합니다.
  3. 최종 확인 및 정리
    1. 새로 생성된 컨테이너(이름 뒤에 2 등이 붙어있을 수 있음)를 시작합니다.
    2. Calibre에 접속하여 파일 업로드가 정상적으로 완료되는지 테스트합니다.
    3. 테스트가 성공적이면, 기존에 사용하던 원본 컨테이너는 삭제하여 중복 실행을 방지합니다.

이것으로 모든 설정이 완료되었습니다.

'IT 관련 > 기타' 카테고리의 다른 글

윈도우 11 설치 usb 만들기  (1) 2025.12.01
vi 에디터 사용법  (0) 2025.09.28
pyenv 파이썬 버전 관리  (0) 2025.08.25
미니콘다(Miniconda) 설치 방법  (1) 2025.07.11
python 가상화 비교(아나콘다, python)  (2) 2025.07.08