NAS & ODROID/OMV 5 NAS

OMV 5 NAS - Docker - Nextcloud (클라우드 스토리지)

awesometic 2020. 9. 8. 14:48
반응형
  • 환경: Odroid SBC + various HDDs
  • 최초 작성: 2020-09-08
  • 마지막 업데이트: 2020-09-10
  • 글을 퍼가실 땐 꼭 출처를 남겨주세요. :)

Nextcloud on Portainer Stacks

Nextcloud는 Owncloud에서 포크된 인지도 높은 무료 클라우드 서비스입니다. 현재 버전 19인데, 오래된 만큼 인터넷에 정보량이 많아 문제가 생겨도 해결 방법을 찾아볼 수 있습니다. 그리고 다양한 확장 프로그램을 지원합니다. 뉴스 보기, RAW 사진 미리 보기, 일정 연동, 채팅, GPS 기반 위치 찾기 등의 확장 프로그램으로 클라우드 서비스를 확장해 사용할 수도 있습니다.

Portainer 웹 패널에 로그인 후 Stacks 메뉴로 갑니다. 그리고 Add stack 버튼을 눌러 Nextcloud Stack을 추가할 준비를 합니다.

Stack의 이름은 nextcloud로 짓겠습니다. 웹 페이지 가운데 Web editor에 아래 코드를 붙여넣습니다.

version: "2"
services:
  nextcloud:
    image: linuxserver/nextcloud:arm32v7-latest
    container_name: nextcloud
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Seoul
    volumes:
      - /srv/dev-disk-by-label-HDD/docker/nextcloud/config:/config
      - /srv/dev-disk-by-label-HDD/docker/nextcloud/data:/data
    ports:
      - 443:443
    depends_on:
      - nextcloud-mariadb
    restart: unless-stopped
  nextcloud-mariadb:
    image: linuxserver/mariadb:arm32v7-latest
    container_name: mariadb
    environment:
      - PUID=1000
      - PGID=1000
      - MYSQL_ROOT_PASSWORD=1234
      - TZ=Asia/Seoul
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=awesometic
      - MYSQL_PASSWORD=1234
    volumes:
      - /srv/dev-disk-by-label-HDD/docker/mariadb/config:/config
    ports:
      - 3306:3306
    restart: unless-stopped

위의 코드를 그대로 사용하기 전에 확인해야할 게 있습니다.

  • 위 코드는 nextcloudnextcloud-mariadb 두 개의 컨테이너를 동시에 실행합니다.
  • 위 코드의 이미지는 ARM 32bit 플랫폼 기반입니다. 다른 플랫폼에서 돌리시려면 각 컨테이너의 image 항목을 수정합니다.
    • arm32v7-latest 부분을 수정합니다.
    • x86 PC 일 경우 => amd64-latest
    • ARM64 일 경우 => arm64v8-latest
  • volumes: 자신의 실제 하드디스크 마운트 경로로 바꿔줍니다. 하드디스크 경로 아래 도커 컨테이너 전용 디렉토리인 /docker 디렉토리를 만들고, 그 아래에 각 컨테이너 디렉토리인 /docker/nextcloud /docker/mariadb를 만들어 컨테이너와 연결될 장소로 지정합니다.
  • environments: PUID, PGID는 그대로 두셔도 됩니다. nextcloud-mariadb 컨테이너의 MYSQL_ROOT_PASSWORD와 MYSQL_USER, MYSQL_PASSWORD는 자신의 것으로 바꿔줍니다.

페이지 맨 아래 Deploy the stack 버튼을 눌러 Stack을 생성합니다.

이 작업은 꽤 오래 걸립니다. 이미지가 없다면 Docker hub에서 이미지를 새로 받아와야 하고, 또 압축을 풀어 설정에 맞게 컨테이너를 실행시켜야 하기 때문입니다.  5~10분 이상 충분히 기다리시면 됩니다.

모두 완료되면 Stacks 메뉴에 nextcloud 라는 Stack이 새로 생긴 걸 보실 수 있습니다. Stack을 누르면 해당 Stack의 상세 페이지로 넘어갑니다.

이제 Nextcloud 서비스에 접속할 수 있습니다.

Nextcloud 관리자 계정과 데이터베이스 연결 설정

웹 주소창에 아래 주소처럼 자신의 IP를 입력해주시면 Nextcloud 초기 구성 화면이 나타납니다.

443 포트는 주소 뒤에 :443 를 붙이는 대신 주소 앞을 https:// 로 바꿔 접속할 수 있습니다.
https://192.168.11.49

Advanced 탭을 누르고, 나타나는 Proceed to 192.168.11.49(unsafe) 를 눌러 진행합니다.

웹 브라우저에선 SSL을 통해 접속할 때 공인 인증된 인증서를 요구합니다. 인증서 없이 암호화 키만으로 SSL 을 구현하거나 인증서가 만료되면 위 화면처럼 정보가 노출될 수 있다는 경고 창이 먼저 나타납니다. 지금은 자신의 서버에 구성했기 때문에 정보가 새어나갈 위험이 없으므로 진행해도 괜찮습니다. 만약 인터넷 서핑 중 위의 화면을 보시면 정말 믿을만한 사이트인지 먼저 의심해보셔야 합니다.

Nextcloud 초기 설정 화면이 나타납니다. 아래 스크린샷처럼 관리자 계정 정보와 데이터베이스 정보를 넣어 진행합니다.

데이터베이스 정보는 Stack을 구성할 때 적었던 environments에 나와 있습니다.

MYSQL_DATABASE, MYSQL_USER, MYSQL_PASSWORD로 Nextcloud 데이터베이스 정보를 적고, 데이터베이스의 주소는 MariaDB 컨테이너의 이름인 nextcloud-mariadb를 적습니다.

완료 버튼을 눌러 진행하는데 시스템에 따라 초기화 과정이 길어지면 타임 아웃 화면이 나올 수도 있습니다. 내부적으로 PHP에서 작업 결과를 기다리다가 타임 아웃 오류를 뱉는 것이므로, 시스템은 여전히 초기화 작업 중입니다.

여유를 두고 5분~10분 이상 기다리신 다음 새로고침하면 로그인할 수 있습니다.

이 가이드에서는 Nextcloud와 MariaDB의 개별 사용법은 기술하지 않습니다. 각 서비스의 사용법은 각 서비스 공식 문서나 커뮤니티를 통해 알아가시길 바랍니다.

참고

반응형