환경설정
관리자 계정 만들기
웹브라우저를 통해 Nextcloud에 접속을 합니다. 처음 접속 시 아래와 같이 관리자 계정 생성 화면이 나옵니다.
데이터 폴더는 "/data"를 입력해주시고, 데이터베이스 항목은 앞서 mariaDB 생성 시 설정한 값을 넣어 줍니다.
이메일 서버 및 기본 국가 번호 설정
Nextcloud의 "관리자 설정"으로 들어갑니다.
초기 접속 시 smtp와 국가번호 관련 경고 화면이 나옵니다.
1. smtp : 관리자 설정 > 기본 설정 > 이메일 서버에 smtp 관련 사항을 넣어줍니다.
2. 국가 번호 설정 : "config/www/nextcloud/config/config.php" 파일을 수정합니다.
아래 문장을 "config.php"에 추가해 줍니다.
'default_phone_region' => 'KR',
Redis 설정
"config/www/nextcloud/config/config.php" 파일을 수정합니다.
아래 문장을 "config.php"에 추가해 줍니다.
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' =>
array
(
'host' => 'redis',
'port' => '6379',
'timeout' => '0',
'dbindex' => '0',
),
대용량 파일 업로드 설정
php.ini 수정이 필요 합니다.
Docker Container 콘솔에서 "/etc/php8x"에서 직접 수정을 해줘도 되지만 이 경우 Docker image가 업데이트 될 시
초기화가 되므로 Mapping된 volume에서 수정하시는 것을 추천 드립니다.
"config > php > php-local.ini"를 열어서 아래 값들을 수정해 줍니다.
max_execution_time = 3600
max_input_time = 3600
memory_limit = 3072M
post_max_size = 51200M
upload_max_filesize = 51200M
max_file_uploads = 1000
이번에는 "/config/nginx/site-confs/default.conf"를 열어서 위와 같은 방법으로 수정해 줍니다.
client_max_body_size = 51200M
마지막으로 대용량 업로드가 끊길 시 옵션사항으로 청크를 설정해 줍니다. (기본 청크 값 0에서 500MB로 수정)
단, 작은 파일들이 많을 시 느려질 수 있으므로 사용자 환경에 맞게 설정이 필요 합니다.
sudo docker exec -u (PUID) nextcloud php81 /config/www/nextcloud/occ config:app:set files max_chunk_size --value 524288000
(PUID)는 앞장에서 설명한 자신의 값을 넣어줍니다.
위 설정이 완료 됐으면 아래 사항을 최종 확인해 줍니다.
NAS에 있는 외부 저장소 추가
이 과정은 Portainer 같은 Docker 관리툴을 이용하면 편합니다. Portainer를 이용한 방법을 설명 드립니다.
1. Portainer 접속 후 Nextcloud Container에 진입해 "Duplicate/Edit"를 선택 합니다.
"Advanced container settings"을 찾아 "Volumes" 선택합니다.
" Volume mapping"에서 "map additional volume"을 선택합니다.
"container" 필드는 nextcloud에서 사용될 경로 입니다. 위치 입력 후 오른쪽 "Blind" 옵션 선택 합니다.
제 경우는 nextcloud root 및 data 디렉토리 밑에 임의 위치를 설정했습니다.
"host" 필드에는 NAS에 위치한 마운트할 대상물의 절대 경로를 입력합니다.
"Actions"에서 "Deploy the container"로 컨테이너를 재빌드 해줍니다.
마운트할 외부 디렉토리에 "777" 권한을 부여 합니다.
chmod 777 -R /volume1/xxxx (host에서 설정한 디렉토리)
이제는 Nextcloud에서 외부저장소를 설정해줄 차례 입니다.
Nextcloud에 관리자로 접속 후 "앱"에서 "External storage support" 앱을 찾아 설치해 줍니다.
관리자 설정 진입 후 "관리 > "외부 저장소"를 선택하고 아래 값을 넣으 줍니다.
폴더 이름 : Nextcloud에서 표시될 폴더 이름
설정 : 위에서 Binding한 nextcloud container 내부 경로 입력
설정이 완료 됐으면 아래와 같이 외부저장소가 추가된 것을 확인 할 수 있습니다.
Portainer > nextcloud 콘솔 > occ files:scan --all 실행
(도커 이미지가 공식이미지일 경우 sudo -u www-data php occ files:scan --all 입니다.)
[Tip]
1. "@eaDir" 삭제 방법
cd /volume1
find -type d -name '@eaDir' -print0 | xargs -0 rm -rfv
find -name 'thumbs.db' -exec rm -vf {} \;
find -name 'Thumbs.db' -exec rm -vf {} \