본문 바로가기
Docker Container 설치 및 설정/Nextcloud

Nextcloud 설치 - Stack 작성 및 실행

by 아기고래 관리자 2024. 1. 26.

Nextcloud 설치 - Stack 작성 및 실행

NAS를 사용하기 위한 첫 번째 목적이었습니다.

Nextcloud에 여러가지 기능이 있지만 가장 편리했던 기능이 크게 3가지 정도 있습니다.

  1. 스마트 기기의 사진 및 자료 Back-up 및 공유
  2. Talk app으로 채팅 및 원격공유 및 화상 회의 가능
  3. Map 에서 사진 촬영 위치를 확인 가능

이 외에도 일정관리 및 대시보드에서 날씨 등을 확인할 수도 있습니다.

Onlyoffice를 연결하면 Nextcloud 웹 상에서 문서를 편집할 수도 있습니다.

 

Nextcloud 설치 순서

(Portainer 사용 방법 참고)

Nextcloud을 Potainer에서 Stack을 작성하여 설치합니다.

Nextcloud를 설치하기 위해서는 Mariadb(or MySQL)를 먼저 설치하셔야 됩니다.

Stack 작성 시 Mariadb 도 같이 설치 가능하지만, Container 하나에 Stack 하나 씩 설치하겠습니다.

(docker-compose.yml으로 작성하는 내용과 동일합니다.)

1. Portainer의 Stack에서 Name을 nextcloud로 입력합니다.

   Name은 Stack을 구분하기 위한 것으로 원하시는 것으로 변경하셔도 됩니다.

2. Stack 내용을 작성합니다.

version: '3.3'

services:
 nextcloud:
  image: nextcloud:latest
  container_name: nextcloud
  restart: always
  ports:
  - 3480:80
  volumes:
  - /data_set/nextcloud/html:/var/www/html
  - /data_set/nextcloud/apps:/var/www/html/custom_apps
  - /data_set/nextcloud/config:/var/www/html/config
  - /data_set/nextcloud/themes:/var/www/html/themes
  - /data/cloud:/var/www/html/data
  environment:
  - MYSQL_HOST=mariadb
  - MYSQL_DATABASE=nextcloud
  - MYSQL_USER=$MYSQL_USER
  - MYSQL_PASSWORD=$MYSQL_PASSWORD

주황색 영역은 환경에 따라 변경하시면 되겠습니다.

1) port는 앞이 Container 외부포트로 원하는 포트 번호를 부여하시면 됩니다.

   외부포트 번호는 여러 Container를 설치하다보면 중복의 우려가 있습니다.

   지난 글에서 Phpmyadmin 의 경우도 내부포트가 80으로 외부포트를 3380으로 설정하였습니다.

   Container가 많아지게 되면 중복이 되지않게 관리하셔야 되겠습니다.

2) volumes의 경우

   /data_set 경로의 directory는 설정을 관리하기 위한 경로이기 때문에 Ubuntu 설치된 disk의 directory로 설정하면 됩니다.

   실제로 저장되는 data는 disk 설정에서 RAID를 설정하고 연결하였던 /data directory로 설정하면 되겠습니다. 

3) environment 에서 db 관련 설정을 입력해 줍니다.

   Mariadb를 사용하여도 녹색배경은 동일한 내용으로 입력하시면 되고, HOST만 db Container에 따라 입력하시면 됩니다.

   DATABASE는 'Phpmyadmin 사용자 및 데이터베이스 추가 방법' 의 글을 참고하여,

   데이터베이스를 추가한 내용으로 입력하면 되겠습니다.

   저의 경우 Phpmyadmin에서 nextcloud 라는 데이터베이스를 생성하였습니다.

3. Deploy the stack 을 클릭하여 설치를 진행합니다.

설치가 진행되고 running으로 표시되는 Nextcloud Container를 확인하실 수 있습니다.

4. Mariadb Container를 Nextcloud의 Network에 연결시켜 줍니다.

Portainer의 Containers에서 Mariadb Container를 클릭하여 Container details로 이동합니다.

화면 제일 하단에 Network 설정에서 nextcloud_default 를 선택하고 Join network를 클릭합니다.

5. /data directory의 권한 설정을 변경합니다.

Nextcloud의 사용자는 인터넷으로 접속하여야 되고, 읽기/쓰기가 되기때문에 사용자 권한을 부여해 주어야 합니다.

/data/cloud directory의 소유자 및 권한 설정 변경하기 위해 Ubuntu 환경으로 로그인 합니다.

1) putty로 NAS에 접속하여 root 계정으로 로그인 합니다.

2) '/' directory로 이동하여, /data의 소유자 및 권한을 확인합니다.

cd /

ls -l

3) 사용자의 data가 저장되는  /data/cloud 소유자 및 권한을 변경합니다.

('file 및 directory 소유자 및 권한 설정' 참고)

chown -R www-data:www-data /data/cloud

chmod -R 755 /data/cloud

변경 확인

ls -l

4) putty 접속을 종료합니다.

exit

6. Nextcloud에 접속합니다.

앞의 글에서와 같이, 

  공유기에 연결된 PC의 경우 IP주소:포트번호 를 인터넷 주소창에 입력하여 접속합니다.

  또는 외부에서 DDNS를 이용하여 DDNS주소:포트번호 를 입력하여 접속합니다.

외부에서 접속하기 위해서는 공유기의 포트포워드 설정이 되어 있어야 합니다.

7. Nextcloud 관리자 계정 생성 및 구성에 필요한 정보를 입력합니다.

정상적으로 설치되고 접속할 수 있다면 아래와 같이 초기 접속 시

설정에 필요한 정보를 입력하는 화면이 나옵니다. 

1) 관리자 계정 ID 입력

2) 비밀번호 입력

3) MySQL/MariaDB 선택

4) root 입력 (or Phpmyadmin에서 생성한 계정)

5) Maraidb 설치 시 입력한 root 비밀번호 (or Phpmyadmin에서 생성한 계정 비밀번호)

6) Nextcloud stack에서 입력한 DATABASE 입력 (nextcloud)

7) Nextcloud stack에서 입력한 HOST 입력 (mariadb)

설치를 클릭하면 입력한 내용으로 설정이 완료됩니다.

 

재 접속하면 아래와 같이 로그인 화면이 나오고 로그인할 수 있습니다.

 

Nextcloud의 기본 설치가 완료되었고, 설정 관련 내용은 별도로 정리 예정입니다.

반응형