컨텐츠로 건너뛰기

Onlyoffice 설치하기 (Container Manager, Docker)

시놀로지에서 기본 제공하는 오피스는 설치하기는 편하지만, 스프레드시트(엑셀) 등에서 특정 기능이 없어 편집이 제한적이기도 합니다. Synology Office를 대체해서 Onlyoffice를 설치해 사용 해보세요. 한글도 지원하고, 훨씬 편하고, 직관적입니다. 도커 위에 Nextcloud를 올리기 때문에, DSM에서 제공하지 않는 기타 기능도 사용하실 수 있습니다.

필요한 사항들(빠른 요약 정리)

  • 도커와 포테이너 필요합니다.
  • 시놀로지 DDNS 등록을 했다면, 따로 필요하지 않습니다.
  • Nextcloud 도메인은 nextcloud.나의아이디.synology.me 가 됩니다.
  • Onlyoffice 도메인 onlyoffice.나의아이디.synology.me가 됩니다.
  • 시놀로지 DDNS와 함께 기본 인증서로 사용중이라면 따로 설정할 필요 없습니다.
    ((선택) Step.3 생략)

사용할 포트 (리버스 프록시)

구분대상 호스트사용할 포트
Nextcloud용localhost8082
Onlyoffice용localhost8467

천천히 같이 해보겠습니다.

1. 파일 디렉토리 만들기

대부분 도커(docker)를 volume1에 설치하셔서 그대로 적용하시면 되지만, 다른 볼륨에 설치하셨다면 맞는 볼륨으로 변경하셔야합니다. 여러가지 방법이 있습니다. 편하신대로 하시면 됩니다.


(방법1) 사용자 정의 스크립트로 간편하게 생성하기

  1. 사용자 정의 스크립트로 간편하게 생성하기 제어판 - 작업 스케줄러 - 1. 생성 - 2. 트리거된 작업- 3. 사용자 정의 스크립트로 이동합니다.

  1. 작업에는 적당한 이름을 입력해 줍니다. (크게 관계없습니다.)
  2. 사용자에는 root를 선택합니다
  3. 한번만 실행할 것이므로 활성화됨 체크 해제합니다.
  4. 작업 설정을 클릭합니다.

이메일로 실행 상세 정보를 받아보고 싶으시면, 체크하시고 필요 없으시면 체크 해제합니다.

사용자 정의 스크립트에 아래의 스크립트를 붙여 넣습니다.

nextcloud 폴더 만들기
mkdir -p /volume1/docker/nextcloud/{themes,redis,html,db,data,custom_apps,config,onlyoffice/{db,logs}}

명령어는 디렉토리를 한 번에 생성합니다.

사용자가 root권한으로 실행을 명령했으므로 알림창이 뜹니다.

DSM계정의 패스워드도 입력해 줍니다.

방금 우리가 만든 사용자정의 스크립트의 이름이 있는 을 클릭하고, 실행을 누릅니다

확인버튼을 눌러 진행하시면 됩니다.


(방법2) 개별적으로 폴더를 만들기

원하신다면 개별적으로 폴더를 만드셔도 됩니다.

그러나 반드시 모든 폴더가 소문자로 구성되어야 하고, 폴더 이름이 다르면 스택을 쌓을 때 오류가 납니다.

또한 경로를 잘 확인해주세요 경로의 주요한 부분에 제가 하늘색으로 표시를 해두었습니다.


2. 폴더권한 수정하기


위의 방법들중 어떤 방법을 선택하시든 관계없습니다. 지금부터가 더 중요합니다.

  1. File Station을 켜서서 docker의 경로로 가서, nextcloud 폴더를 마우스 오른쪽 클릭합니다.
  2. 속성을 누릅니다.

창이 뜨면, 1. 권한 - 2. 고급 옵션 - 3. 상속된 권한을 명시적으로 만들기를 순차적으로 클릭합니다.

  1. Everyone이라고 적힌 행이 이미 클릭되어 파란색으로 나옵니다. 나오지 않는다면 클릭하면 됩니다. 아무 문제 없습니다.
  2. 편집을 누릅니다.
  3. 쓰기를 체크해서 권한을 부여하고
  4. 완료를 누릅니다.

처음과는 다르게 이제 Everyone항목에 읽기 & 쓰기 권한이 올라갔습니다.

  1. 이 폴더, 하위 폴더 및 파일에 적용을 클릭하고
  2. 저장을 클릭하여 마무리합니다.

3. 리버스 프록시 등록하기


앞서 언급드린 것 처럼, Nextcloud는 8082포트, Onlyoffice는 8467포트를 사용할 예정입니다.

혹시 포트가 겹치는 경우 수정하셔서 진행하시면 됩니다.

개인 도메인 사용자는 반드시 DNS레코드에 입력을 해주시고 목적지의 NAS를 바라보게 해주셔야 합니다.

시놀로지 DDNS사용자는 그대로 진행하시면 됩니다.

천천히 해보겠습니다.

  1. 제어판 - 로그인 포털 로 이동하고
  2. 고급
  3. 역방향 프록시
  4. 생성을 순차적으로 클릭합니다. 보시기 편하도록 한 번에 캡쳐 해서 순차적으로 클릭하시면 같은 화면이 나옵니다.
  5. 역방향 프록시 이름은 적당한 이름을 넣어주시면 됩니다 (크게 관계 없습니다.)
  6. 소스의 프로토콜은 외부에서 접속하는 프로토콜을 의미합니다. 우리는 인증서를 적용할 것이므로 HTTPS를 선택합니다.
  7. 호스트 이름은 외부에서 접속할 주소입니다. 시놀로지 DDNS사용자는 nextcloud.\나의 아이디.synology.me가 되겠네요. 개인 도메인 사용자는 nextcloud.\나의 도메인.com 정도가 되겠네요. 저는 개인 도메인을 사용하므로, nextcloud.navystack.com으로 적었습니다.
  8. 포트는 최소한으로 80, 443 정도만 개방하고 계시리라 생각합니다. 혹은 시놀로지 드라이브용으로 6690도 있기는 한데. 결론만 말씀드리면 443으로 입력해주시면 됩니다.
  9. HSTS 활성화 체크 합니다.

이제 대상입니다. 내부망에서 왔다 갔다 하므로, 인증서를 적용하지 않습니다.

  1. 프로토콜은 HTTP를 선택합니다.
  2. 호스트 이름은 localhost, 127.0.0.1, 나스의 내부망 IP 등도 가능합니다.
  3. 포트는 8082로 하겠습니다.
  4. 사용자 지정 머리글을 클릭해서 웹소켓을 설정합시다.

생성 - WebSockek을 순차적으로 누르시면 아래의 사진처럼 나옵니다.

머릿글 이름이랑 값이 잘 나왔는지 눈으로 구경 한번 하시고 이제서야 저장을 누릅니다.

여기까지가 Nextcloud를 사용하기 위한 주소를 설정한 것입니다.


이번에는 Onlyoffice를 사용하기 위한 주소를 설정하겠습니다.

이번에도 마찬가지로 천천히 해보겠습니다. 위에서 했던 내용과 거의 비슷합니다. 제어판 - 로그인 포털 - 고급 - 생성 으로 이동하고

  1. 역방향 프록시 이름은 역시 원하는대로 입력합니다 (크게 중요하지 않습니다.)
  2. 프로토콜은 HTTPS
  3. 호스트 이름은 외부에서 접속할 주소입니다. 시놀로지 DDNS사용자는 onlyoffice.나의 아이디.synology.me가 되겠네요. 개인 도메인 사용자는 onlyoffice.나의 도메인.com 정도가 되겠네요. 저는 개인 도메인을 사용하므로, onlyoffice.navystack.com으로 적었습니다.
  4. 포트는 443
  5. HSTS 활성화 10. 대상의 프로토콜은 내부 접속이므로 HTTP 11. 호스트이름은 localhost 12. 포트는 8467입니다. 13. 마찬가지로 사용자 지정 머리글을 클릭해서 웹소켓을 설정합니다.

바로 생성 - WebSocket을 선택하고

눈으로 구경 해주시고, 저장 누릅니다.


시놀로지 DDNS를 저의 글 혹은 다른 방법으로 등록하시면서 기본 인증서를 등록하면서 발급하셨다면 아래의 선택은 넘어가셔도 됩니다.

혹시 접속하실 때, 인증서 관련 오류가 난다면 아래를 참고하셔서 발급되었는지 혹은 적용이 제대로 되었는지 확인하셔야 합니다.


(선택)3-(1) 인증서 발급하기

제어판 - 1. 보안 - 2. 인증서 - 3. 추가 - 4. 새 인증서 추가를 클릭하고 다음으로 진행합니다.

  1. 도메인 이름은 인증서를 발급할 대상 도메인입니다. (혹시 여러 개를 입력하셔야 하나요? 그러면 3번의 주체 대체 이름에 입력하시면 됩니다.)
  2. 이메일은 본인의 이메일을 입력합니다.
  3. 주체 대체 이름을 공란으로 두고 넘어가면 1번에서 입력한 도메인만 발급됩니다. 만약 와일드 카드 인증서는 아니지만, 해당하는 서브 도메인들의 인증서를 같이 받고 싶으시다면, 주체 대체 이름에 하나씩 입력하시면서 ;로 도메인을 구분해 주시면 됩니다.

글 도입에서 말씀드린 것과 같이 nextcloud.나의 도메인.comonlyoffice.나의 도메인.com이 세트로 움직이기에 같이 입력하겠습니다. 저는 nextcloud.navystack.com;onlyoffice.nacystack.com 을 입력해서 동시에 발급되게 하였습니다.

4.완료를 누르면, 인증서가 발급됩니다. 인증서 발급에는 시간이 조금 걸립니다. 천천히 기다리시면 됩니다.

기본 인증서로 설정하시면, 혹시 다른데서 다른 서브도메인을 사용하고 있으시다면 보안 오류가 뜹니다.아무 문제 없습니다. 아래 “3-(2)인증서 등록하기”로 가셔서 변경하시면 됩니다.

혹시나 Let’s Encrypt에 인증서 발급을 너무 많이 하셔서 더 이상 발급이 안되신다구요?서브 도메인 하나 설정하셔서 도메인 이름을 만드신 서브 도메인 입력하시고 주체 대체 이름에 ;으로 끼워서 같이 발급하세요

(선택)3-(2) 인증서 등록하기

다른 도메인의 인증서 사진이지만, 크게 다르지 않습니다.

인증서1. 설정을 누르면 위의 화면처럼 뜹니다.

2. 서비스 열에서 “nextcloud”, “onlyoffice”를 찾아서 오른쪽 행에 인증서에서 올바른 인증서를 선택해 주면 됩니다.

마찬가지로 기본 인증서로 설정해 버리셨다면 왼쪽 서비스에 올바른 오른쪽 인증서 이렇게 설정하시면 됩니다.

4. 포테이너 스택 올리기

포테이너 GUI로 접속하여, 로그인하고 왼쪽에 Stack 오른쪽에 Add Stack을 누릅니다.

Name에는 적당한 이름을 입력합니다. 소문자하고 하이픈만 됩니다. 그리고 그 아래에 아래의 스크립트를 붙여 넣습니다.

version: '3.9'
services:
mariadb:
container_name: Nextcloud-DB
image: mariadb:jammy
security_opt:
- no-new-privileges:true
#
user: 1026:100
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-read-only-compressed=OFF
volumes:
- /volume1/docker/nextcloud/db:/var/lib/mysql:rw
environment:
#
- MYSQL_ROOT_PASSWORD=rootpass
- MYSQL_PASSWORD=navystack
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
restart: on-failure:5
redis:
image: redis
container_name: Nextcloud-REDIS
#
user: 1026:100
healthcheck:
test: ['CMD-SHELL', 'redis-cli ping || exit 1']
volumes:
- /volume1/docker/nextcloud/redis:/data:rw
environment:
TZ: Asia/Seoul
restart: on-failure:5
nextcloud:
container_name: Nextcloud
ports:
- 8082:80
depends_on:
mariadb:
condition: service_started
redis:
condition: service_healthy
environment:
- REDIS_HOST=Nextcloud-REDIS
#
- NEXTCLOUD_TRUSTED_DOMAINS=nextcloud.navystack.com 192.168.0.200
- TRUSTED_PROXIES=nextcloud.navystack.com 192.168.0.200
- OVERWRITEHOST=nextcloud.navystack.com
- OVERWRITEPROTOCOL=https
#
- MYSQL_PASSWORD=navystack
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=mariadb
healthcheck:
test: curl -f http://localhost:80/ || exit 1
volumes:
- /volume1/docker/nextcloud/html:/var/www/html:rw
- /volume1/docker/nextcloud/custom_apps:/var/www/html/custom_apps:rw
- /volume1/docker/nextcloud/config:/var/www/html/config:rw
- /volume1/docker/nextcloud/data:/var/www/html/data:rw
- /volume1/docker/nextcloud/themes:/var/www/html/themes:rw
image: nextcloud
restart: on-failure:5
onlyoffice:
container_name: OnlyOffice
image: onlyoffice/documentserver
ports:
- 8467:80
volumes:
- /volume1/docker/nextcloud/onlyoffice/logs:/var/log/onlyoffice:rw
- /volume1/docker/nextcloud/onlyoffice/data:/var/www/onlyoffice/Data:rw
environment:
- JWT_ENABLED=true
#
- JWT_SECRET=NavyStackComNavyStackComSeCreT
restart: on-failure:5

코드 블럭에 변경해야 하는 것을 강조해 두었습니다. 동일한 번호는 같은 값이어야 합니다. 이 부분만 주의하시면 되고 변경 가능이라고 적었지만, 보안을 위해서 변경 필요입니다…

마음의 준비 다 되셨나요…? Deploy the Stack을 눌러 진행합니다. Nextcloud 설치는 원래 시간이 걸립니다. 여유롭게 마음을 가져주세요. 혹시… 오류가 나신다면… Step.1Step.2를 다시 한 번 확인해 주세요. 폴더를 완전히 지우고 이 글과 관련된 컨테이너도 모두 지우고 다시 한번 해보세요.

다 이쁘게 Running 입니다. 이제 거의 다 왔습니다.

5. Nextcloud 초기 설정하기

이제는 긴장을 좀 내려놓으셔도 됩니다. 자신이 설정한 Nextcloud의 주소로 이동합니다. (저는 nextcloud.navystack.com 입니다.) 그러면 위의 사진과 같이 나오는데, 사용자 이름에는 원하는 이름을, 암호도 원하는 암호를 입력하시고, 설치를 누릅니다.

저는 건너뛰기 하겠습니다.

혹시 건너뛰기 했으나, 위의 사진처럼 나오지 않는다면 Nextcloud로 설정한 도메인을 다시 주소창에 입력해 주세요. 구버전에서는 오류가 있었습니다.

화면 우측 상단에 자신의 1.아이콘 누르시고, 2.앱을 누릅니다.

이제 우측 상단에 1.돋보기를 누르시고 검색창이 나오면 2.onlyoffice라고 입력합니다. 그리고 나온결과를 클릭하고

다운로드 및 활성화를 클릭합니다.

6. Onlyoffice 초기 설정하기

설치가 완료되었으면, 다시 한번 프로필 아이콘 - 관리자 설정을 클릭합니다.

왼쪽에 있는 사이드 바에서 스크롤을 내리면 ONLYOFFICE항목이 있습니다. 클릭합니다.

현재페이지에서 오류가 나도 ONLYOFFICE를 사용하고 설치하시는데는 문제가 전혀 없습니다. .htaccess파일을 수정 몇 군데만 해주면 됩니다.

거의 다 왔네요

  1. ONLYOFFICE Docs address는 온리오피스 서버 주소입니다. 저는 onlyoffice.navystack.com 입니다.
  2. Secret Key는 Step. 4에 설정한 값입니다. 혹시 안바꾸셨나요? 그러면 저랑 같으시네요? NavyStackComNavyStackComSeCreT 입니다.
  3. Addvanced server setting을 클릭해서 펼쳐줍니다.
  4. ONLYOFFICE Docs address ... internal은 내부망의 아이피와 포트로 표현되는 Onlyoffice doc서버 주소입니다. http://나스의 내부망 IP:8467입력하시면 됩니다. 저의 내부망 아이피는 192.168.0.200이라 위의 사진처럼 적었습니다.
  5. ONLYOFFICE Docs address ... requestes는 내부망의 아이피와 포트로 표현되는 Nextcloud의 주소입니다. 저는 역시 192.168.0.200:8082입니다.
  6. Save를 클릭합니다.

이렇게 뜨면 설치는 모두 끝났습니다. 이제 잘 되는지 한번 확인해 볼까요?

왼쪽 상단에 1. 폴더아이콘 있습니다. 클릭하시면

위의 사진처럼 나옵니다. 더하기버튼 클릭하시고 원하시는 문서 종류 클릭하시면 됩니다. 저는 스프레드시트(엑셀) 한번 해보겠습니다.

왼쪽 상단에 ONLYOFFICE라고 잘 뜨고, 화면이 Synology Office보다 풍성하네요.

수고 많으셨습니다. 감사합니다.


Askfront.com (에스크프론트)

기존의 댓글 대신, 초보자도 자유롭게 질문할 수 있는 포럼을 만들었습니다.
에스크프론트에서는 가이드뿐만 아니라 모든 종류의 질문을 하실 수 있습니다.
검색해도 오래된 정보나 도움이 되지 않는 정보만 나오는 것 같고, 주화입마에 빠진 것 같은 기분이 들 때가 있습니다.
그럴 때, 부담 없이 질문해 주세요 :) 같이 의논하며 생각해봅시다.
가능하다면, 제가 답변 드리겠습니다. 고맙습니다.