라즈베리파이로 NAS 만들기 20 – Nextcloud 클라우드 프로그램 초간단 설치 방법 – 복사후 붙여넣기 수준

라즈베리파이로 NAS 만들기 20 – Nextcloud 클라우드 프로그램 초간단 설치 방법 – 복사후 붙여넣기 수준

Nextcloud는 라즈베리 파이에서 클라우드 구현을 가능하게 해주는 Opensource 프로그램으로, 과거 owncloud를 개발했던 개발진 중 일부가 만든 것으로 알려져 있는데, 구글 드라이브나 원 드라이브 같은 클라우드를 자신의 서버에 구현할 수 있게 해준다. 이러한 Nextcloud는 일반적으로 나 사용 프로그램들과 병행하여 사용되는데, 라즈베리 파이에서도 나스 사용 운영체제인 OMV를 설치하면, 도 커 이미지 형식으로 설치 및 운용이 가능하다.

Nextcloud는 일반적인 클라우드 프로그램들처럼, 가장 기본적인 자료의 인터넷 저장 외에, 최근 클라우드 서비스들이 제공하는 것처럼 메신저 기능, 사진 관리 기능, 메일 기능, 캘린더 기능, 오피스 프로그램 등의 기능들까지 제공할 수 있는 것으로 알려져 있다.

일반적으로는 Nextcloud 설치가 복잡하나, OMV6가 설치된 라즈베리 파이에서는 로커와 도 커 이미지 관리프로그램인 포테이너 (portainer)를 기본적으로 지원하기 때문에, 이를 이용하여 Nextcloud를 아주 간단하게 설치가 가능하다.

라즈베리파이에 Portainer설치 과정에 대해서는 이전 글을 참조하기 바란다.

https://blog.naver.com/mythee1/223081516290

먼저 portainer의 Container 화면에 들어간다. 이 화면에서 “Add container”메뉴를 선택한다.

이어서 나타나는 Container 생성 화면에서, “nextcloud” 키워드를 넣고 옆의 Search 버튼으로 검색한다.

그러면 다음과 같이 Dockerhub에서 nextcloud가 검색되어 나타난다. 여기서 arm 지원 여부를 확인하고, 이를 선택하여 클릭한다.

그러면 다음과 같은 화면으로 바뀌는데,

아랫부분으로 쭉 내려가다 보면 다음과 같은 부분이 나타난다. Docker-Compose 형태로 사용하는 부분이다. 이 스크립트를 복사해서 Container를 만들면 쉽게 만들 수가 있다. 물론 아애 적색 마킹 한 부분들은 사용자가 지정해 주어야 한다. 이 스크립트를 그대로 복사한다.

이를 복사한 상태로 portainer로 돌아와, 왼쪽의 Stack 메뉴를 선택해 Stack 화면으로 이동한 후, “Add stack..”을 누른다.

그리고 다음 화면이 나오면, 먼저 이름을 지어주고, 아래 화면의 web editor 부분에 복사해온 스크립트를 붙여넣기 해준다

이때 다음 부분에는 각자가 패스워드를 지정해야 한다. 그리고 SQL password는 위와 아래에 기재하는 값이 일치해야 한다. (참고- 이 에디터 사용 시 Tab을 사용하면 안 된다.-오류 발생 원인)

참고로 내가 예제에서 패스워드를 지정해서 실제 사용한 코드는 다음과 같다.

version: '2'
volumes:
nextcloud:
db:
services:
db:
image: mariadb:10.6
restart: always
    command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
volumes:
- db:/var/lib/mysql
    environment:
- MYSQL_ROOT_PASSWORD=nextcloud
      - MYSQL_PASSWORD=kongyi2021
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
image: nextcloud
    restart: always
    ports:
- 8080:80
links:
- db
    volumes:
- nextcloud:/var/www/html
    environment:
- MYSQL_PASSWORD=kongyi2021
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db

패스워드 지정이 끝나면 다음과 같이 “Deploy the stack” 메뉴를 선택한다.

이렇게 하면, 다음과 같이 해당 스크립트와 패스워드 정보로 nextcloud 스택이 만들어지며, 해당 스택을 클릭하면

다음 화면이 되는데, 여기서 Deploy를 해주면

기본적인 Nextcloud 프로그램과 nextcloud 운영에 필요한 Maria DB가 함께 설치가 완료되고, 다음과 같이 2개의 Container가 생성된다.

여기서 port 부분을 클릭해 주면 다음과 같이 정상적으로 Nextcloud 접속 및 사용설정을 할 수가 있다.

대표 관리자 계정을 만들고, 진행하면 다음과 같이 Nextcloud 환경에서 사용자들이 활용할 수 있는 Application들을 소개해 준다.

오른쪽 상단의 메뉴를 보면 사용자 메뉴가 있는데

여기를 통해 현재 등록된 사용자들을 확인할 수 있고,

신규 사용자들을 등록할 수도 있다

왼쪽 부분 메뉴에서는 사용 가능한 Application 메뉴들이 나타나는데,

다음과 같이 사진들이나 동영상

그리고 문서들이나 지도들을 활용하는 앱들도 나타난다.

이렇게 아주 간단하게 라즈베리 파이에 portainer를 이용하여 nextcloud를 설치하는 방법을 상세히 소개했다. 기본 설치까지는 위의 내용을 참조하면 되면 본격적인 사용을 위해서는 다음 참고사항들을 반드시 참고하기 바란다.

중요한 참고사항)

  1. 내부망의 경우, IP 주소와 포트 번호를 이용하여 접속이 가능하나, 외부에서의 접속을 위해서는 외부 공인 IP 주소를 내부망의 IP 주소로 연결하는 포트 포워딩이 필요하다. 만일 IP 주소 대신 이름 형태의 주소로 접속하려면 인터넷 주소를 발급받아 이 주소로 연결하거나 DDNS 서비스를 포트포워딩과 함께 사용해야 한다.

2. 외부 Volume을 연결하기

위의 설치 과정에서는 디스크의 특정 Volume을 할당하지는 않은 상태이다. 때문에 해당 컨테이너의 상세 설정 메뉴에 들어가 보면 Volume이 설정되어 있다. 이 상태에서 Nextcloud를 사용하게 되면, Docker에서 생성한 Volume을 자료 저장소로 이용하게 된다. 물론 이 상태에서도 Nextcloud를 사용할 수 있다.

그러나 저장하는 자료의 양이 많아지는 경우나, Data는 디스크의 별도 공간에 저장하고 싶은 경우에는 다음과 같이 디스크의 특정 폴더를 연결해 주는 것이 필수적이다.

Data는 컨테이너의 /var/www/html/data 경로에 저장되므로, 아래와 같이 이 경로에 내가 원하는 폴더를 연결해 주면 된다. 나는 SSD 디스크의 루트 디렉터리에 clouddata라는 이름으로 폴더를 만들었고 이 폴더를 컨테이너의 /var/www/html/data 경로에 연결(volume mapping)시켜 주었다.

Volume 지정 후 Deploy 해주면 설정이 완료된다.

이와 관련해서는 Dockerhub 페이지에 다음과 같은 자세한 설명이 있으므로 이를 참조하기 바란다.

또한 아래 설명에 있듯이 기본 정보 Volume인 /var/www/html 는 Default 값이므로 변경하지 말고 사용한다. 단 Volume 지정 과정에서 이 부분 때문에 에러가 나는 경우도 있다. Default이기 때문에 지정된 상태로 Deploy를 하다 보면 내부적으로 설정된 것 때문에 이중 지정으로 판단하고, Error를 발생시키는 것이다. 그때는 이 행을 삭제하고 Deploy 하면 된다.