설치
Docker Volume 폴더 생성
Nextcloud의 Data 자료와 Config 설정을 Mapping 할 디렉토리를 생성 합니다.
생성할 디렉토리 구조는 아래와 같습니다.
nextcloud - data : nextcloud에 등록한 자료가 저장되는 디렉토리와 Mapping 할 디렉토리
ㄴ config : nextcloud의 설정값과 Mapping 할 디렉토리
저의 경우 예제로 "/volume3/nextcloud/data"와 "/volume3/nextcloud/config"의 경로로 두개의 디렉토리를 생성 했습니다.
mkdir /volume1/nextcloud/data
mkdir /volume1/nextcloud/config
디렉토리 생성 후 "777" 권한을 부여해 줍니다.
chmod 777 -R /volume1/nextcloud/data
chmod 777 -R /volume1/nextcloud/config
Nextcloud Docker 설치
1. Docker 이미지는 가장 많이 사용하는 "linuxserver.io"의 이미지를 사용 하겠습니다.
2. Docker 설치에 앞서 자신의 계정에 대한 "PUID"와 "PGID"를 확인 합니다.
id 계정명
여기서 uid값 (PUID)과 gid값 (PGID)를 기록해 둡니다. 제 경우 uid=1026, gid=100 입니다.
3. Docker를 설치 합니다.
docker run -d \
--name=nextcloud \
-e PUID=1026 \
-e PGID=100 \
-e TZ=Asia/Seoul \
-p 사용할포트:443 \
-v /volume1/nextcloud/config:/config \
-v /volume1/nextcloud/data:/data \
--restart unless-stopped \
lscr.io/linuxserver/nextcloud:latest
생성된 Docker Container를 전용 network에 연결합니다. 전용 network는 "home_network"라고 임의 설정 하였습니다.
docker network create home_network
docker network connect home_network nextcloud
모든 설치가 완료되면 "관리자 설정" 메뉴에서 정상 동작 여부를 확인합니다.
문제 발생 시 "문제해결" 챕터를 참고하시기 바랍니다.
Onlyoffice 설치 및 Nextcloud와 연동
Nextcloud에서 Onlyoffice 사용에 앞서 Onlyoffice Docker 설치가 필요 합니다.
1. "/volume1/docker/onlyoffice/DocumentServer/" 하위에 "logs", "data", "lib", "db" 디렉토리 생성 합니다.
mkdir /volume1/docker/onlyoffice/DocumentServer/logs
mkdir /volume1/docker/onlyoffice/DocumentServer/data
mkdir /volume1/docker/onlyoffice/DocumentServer/lib
mkdir /volume1/docker/onlyoffice/DocumentServer/db
2. 아래 명령으로Onlyoffice Docker를 설치 합니다.
sudo docker run -i -t -d -p 포트번호:443 --name=onlyoffice --restart=always \ # https 이용 (http는 nextcloud에서 연결 불가)
-v /volume1/docker/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
-v /volume1/docker/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-v /volume1/docker/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \
-v /volume1/docker/onlyoffice/DocumentServer/db:/var/lib/postgresql \
#외부저장소를 붙였을때 필요한 환경 옵션 (Error occurred in the document service: Error while downloading the document file to be converted. 발생 시 필요)
-e USE_UNAUTHORIZED_STORAGE=true \
-e JWT_SECRET=비밀번호 onlyoffice/documentserver
3. 인증서를 생성 합니다. certbot도 이용 가능하지만 간단하게 기존 시놀로지 인증서 사용 하겠습니다.
인증서 생성 위치는 아래와 같으며, nano 또는 vi를 이용해 수정을 해줍니다.
nano /volume1/docker/onlyoffice/DocumentServer/certs/onlyoffice.key
nano /volume1/docker/onlyoffice/DocumentServer/certs/onlyoffice.crt
세부 방법은 "문제해결"에 있는 "SSL 인증서 오류 해결"과 동일 방식으로 진행하시면 됩니다.
4. Nextcloud의 "config.php" 설정을 수정해 줍니다.
"config/www/nextcloud/config/config.php"에 아래 항목을 추가해 줍니다.
'onlyoffice' => array (
'verify_peer_off' => true,
),
5. Nextcloud에 관리자로 접속 후" 앱"에서 onlyoffice 앱을 설치하고 관리자 설정을 진행 합니다.