OMV5(OpenMediaVault 5)에 NextCloud 설치하기 - 종합
지금까지 docker 기반 NextCloud 설치를 위해 1) mariadb 설치 2) NextCloud 설치 그리고 3) 외장 HDD 연결 방법에 대해 순차적으로 설명한바 있다.
이번에는 2)번과 3)번을 합치고 추가적으로 NextCloud의 사용자 영역까지 외장 HDD로 연결하는 방법에 처음부터 설명하도록 하겠다. 이를 위해서는 사전에 mariadb 설치가 이미 되어 있어야 하며, 설치 방법은 "OMV5(OpenMediaVault 5)에 NextCloud 설치하기 1 - mariadb 설치"편을 참고하도록 한다.
1. NextCloud 컨테이너 볼륨별 용도 확인
이번 절(1. NextCloud 컨테이너 볼륨별 용도 확인)은 NextCloud가 이미 설치되어 있을 경우 볼륨 용도 분석을 위해 했던 부분이므로, 생략해도 무방하다.
우선, NextCloud 컨테이너의 볼륨 용도 확인을 위해서 컨테이너 리스트에서 NextCloud 컨테이너를 클릭하도록 한다.
이 컨테이너는 두개 혹은 세개의 볼륨이 사용되고 있으며 각각 "/config"와 "/data" 등의 폴더로 연결되어 있다. (지난번 포스팅을 따라 했다면, /external 폴더도 추가되어 있을 수 있다)
각 폴더의 용도를 살펴보면, "/config" 폴더는 NextCloud 실행을 위한 웹서버 및 php 소스 코드 등이 저장되어 있으며, "/data" 폴더는 사용자별 설정값 및 파일 저장 영역으로 사용되고 있음을 확인할 수 있다.
따라서, "/config" 폴더는 기존처럼 가상 볼륨으로, "/data" 폴더는 외장 HDD의 특정 폴더로 마운트 하면 될 것이다.
2. NextCloud 컨테이너용 마운트 영역 생성
다시 OMV5로 돌아가, NextCloud에 마운트할 공유 폴더를 생성한다. 여기서는 nextcloud라는 SMB 공유 폴더로 생성하였다.
아래처럼 "nextcloud"라는 공유폴더가 생성된 것을 확인할 수 있다.
이제, "공유 폴더" 메뉴로 이동, "nextcloud" 폴더의 절대 경로를 확인하도록 한다. 절대 경로 확인을 위해서는 "Columns"에서 "절대 경로" 체크 버튼을 Enable 시켜 주도록 한다.
이제, 아래처럼 윈도우즈 탐색기로 새로 만든 공유 폴더로 접속한다. 차후 UID 및 GID 등 권한 확인을 위해 아무 파일이나 하나 생성하도록 한다.
SSH 클라이언트를 이용, 라즈베리파이에 접속한다. 그리고, 위에서 임시로 생성한 파일의 사용자 및 그룹 권한 그리고 각각의 고유 식별 번호도 확인하도록 한다. SMB 공유 폴더에 생성되는 파일의 경우, 사용자 권한은 nobody(65534), 그룹 권한은 users(100) 임을 확인할 수 있다.
만일 기존의 NextCloud 컨테이너가 존재 한다면 삭제한다. 이때 업로드한 파일이 있다면 같이 삭제될 수 있으니 미리 백업은 필수이다.
3. NextCloud 켄테이너 생성
아까 2절에서 "/config" 폴더는 가상 볼륨으로, "/data" 폴더는 외장 HDD 마운트로 연결하기로 결정한 바 있다. 2절에서 "/data" 폴더를 위한 사전 작업을 하였으니, 이번에는 "/config" 폴더를 위한 가상 볼륨을 생성한다.
왼편의 "Volumes" 메뉴를 선택하고 "Add volume" 버튼을 클릭, 아래처럼 "nextcloud_config"라는 가상 볼륨을 생성한다.
이제 컨테이너를 생성할 차례이다. 컨테이너 이름, 이미지, 그리고 포워딩할 포트를 아래처럼 입력한다.
그리고 아래 "Volumes" 탭으로 이동, "/config", "/data", "/external" 폴더를 각각 가상 볼륨 및 외장 HDD의 폴더로 연결한다.
"Env" 탭으로 이동, "PUID", "PGID", "TZ" 값을 아래처럼 설정한다.
"Restart policy"를 "Always"로 선택하고 "Deploy the container" 버튼을 클릭한다.
4. mariadb database 삭제
만일 NextCloud를 설치한 적이 있다면 mariadb내에 NextCloud용 DB가 남아 있을 것이다. 지금이 처음 설치라면 4. 절은 건너 뛰도록 한다.
우선, mariadb 컨테이너의 콘솔로 접속한다.
아래처럼 NextCloud DB를 삭제한다.
# mysql -uroot -p
<mysql root password>
> drop database nextcloud;
> exit
#
4. NextCloud 접속 및 환경 설정
https로 라즈베리파이 IP주소로 접속하면 아래와 같은 초기 화면이 나온다. 관리자 ID 및 비밀번호, 그리고 db 접속정보 설정을 하도록 한다. 설정 방법은 https://blog.codesarang.com/28를 참고하자.
초기 환경 설정이 완료되었다면 아래와 같은 화면이 나온다.
이제, 윈도우 탐색기로 nextcloud 공유 폴더에 들어가보면 관리자(admin) 폴더 아래 "files" 폴더에 admin이 공유한 파일들에 접근할 수 있다.
이제 외장 HDD 연결을 위해 "Apps" 버튼 클릭 후 "External storage support"를 "Enable" 시키도록 한다.
추가 App이 설치되면 아래처럼 "External storages"라는 새로운 메뉴가 생성된다.
다시, Settings메뉴를 선택하고 왼편의 "External storages" 메뉴를 선택한다.
외장 저장소 영역의 이름을 "HDD"로, External storage 형태를 "Local"로, Location을 "/external"로 입력 또는 선택한다.
이제 외장 저장장치인 HDD 폴더에 접속할 수 있다.
이제, 동일 네트워크에서 SMB로 연결한 것과 같이 NextCloud에서도 외장 HDD에 접속, 데이터를 업로드 및 다운로드 할 수 있게 되었다.
아래 그림은 로컬 네트워크에서 SMB로 접속한 화면이다. 위 NextCloud와 동일 폴더에 접근이 가능하다.