Docker로 NextCloud 설치하기 3

WebDav

  • 목적 : Plex Media Server (Borilikeharry)  파일 통합하여 nextcloud를 통해 집의 모든 파일을 접근가능하도록 webdav를 설치
Nextcloud fully supports the WebDAV protocol, and you can connect and synchronize with your Nextcloud files over WebDAV.
  • 처음에는 Borilikegame에  PlexServer를 이관 후 통합하려고 함. 이관전 desktop client를 설치 테스트 진행
  • 테스트 결과 : 파일이 중복 저장 및 서버 업로드 필요하여 적정한 방법이 아니라고 판단함
  • 테스트 방법 데스크탑 클라이언트 설치후 동기화 폴더 생성 > 영화 파일 복사 > nextcloud web 페이지 재생
  • WebDav 방식으로 통합하기로 함
  • 접근 경로 설정 주의
  • 메뉴얼상 접근 경로는 webdav://example.com/nextcloud/remote.php/dav/files/USERNAME/ 설치된 Nextcloud 가이드의 접근 경로는 https://cld.igotoo.pw/remote.php/webdav/

Plex Media Server (Borilikeharry)

nPlayer

설정 내용

제목 nextcloud
호스트 cld.igotoo.pw
경로 /remote.php/webdav/
HTTPS 사용

설정 후 오류 해결

  • 접속은 되나 로그인이 안되는 에러 발생
  • window 10  놋북에 WebDav 설치 후 처음 테스트에 문제가 없었으나  재설치후 연결 안되는 문제 발생
  • nextcloud 서비 재기동 후 window10 및 WebDav 연결 문제 해결됨 아무래도 nextcloud 내 캐시 문제 인듯 함

정리

성능상 문제가 있는 borilikeharry를 제외하고 iMac/Windows 만 webdav 사용

iMac/Windows 10 별도의 데스크탑 클라이언트 필요 없음

  • 데스크탑 클라이언트는 dropbox 처럼 클라이언트와 서버와 파일를 저장하므로 중복이 되고 서버에 업로드(동기화) 시간 필요
  • 따라서, 파일 서버로 사용하기를 원하기 때문에 굳이 클라이언트 필요 없음

파일 통합은 "외부저장장소 연결(External Storage)" 기능을 활용하기로 함

  • 힌트를 얻음. 로컬디레토리가 서버 업로드 필요없이 연결/공유 되기마 하면 파일은 같은 서버에 있으므로 프로그램을 짜던지 할려 했다가 홈 서버 만들기 14. 클라우드 스토리지: Nextcloud (Nginx, MariaDB) – Varins 힌트를 얻어 "외부저장 장소 연결"을 사용하기로 함
  • 이 사이트에 도움을 많이 받은 도메인, nextcloud, 스토리지 연경 등등 .... 나도 정리해서 올려 놓으면 누군가에는 도움이 될 수 도 있게다 싶네. 정리 해서 올려야 겠음

External Storage : Local Storage 연결하기

  • Nextcloud 서버에 파일 업로드 없이 로컬 파일을 서버에서 접근 가능한 방법(프로그램 등)을 찾다가 아래 사이트를 보고 유레카를 외침

추가 앱 설정: 외부 저장소 연결

우측 상단의 설정 메뉴를 클릭해서 앱 관리 화면으로 들어가면 좌측 패널의 내 앱 메뉴에서 현재 넥스트 클라우드에 설치된 앱들을 확인할 수 있다. 이 중에서 하단에 있는 External storage support사용함을 클릭해서 활성화하면 넥스트 클라우드에 외부 저장소를 연결할 수 있다. 활성화하고 다시 우측 상단의 설정 메뉴를 클릭해서 설정 화면으로 넘어가 보면 좌측 패널의 개인 영역과 관리 영역에 각각 외부 저장소 메뉴가 생성된 것이 보인다. 관리 영역의 외부 저장소 메뉴를 클릭하면 여러 가지 외부 데이터 위치를 연결할 수 있는 설정 화면이 나타난다. 저장소 추가 항목을 클릭하면 Amazon S3, FTP, Nextcloud, OpenStack, SFTP, SMB/CIFS, WebDAV, 로컬 경로를 연결할 수 있다.
출처 :  홈 서버 만들기 14. 클라우드 스토리지: Nextcloud (Nginx, MariaDB) – Varins

생각대로 쉽게 설치 되지않음 왜냐하면 docker image로 설치해서 메뉴얼대로 연결 할 수 없었음

해결 : 역시 구글링

연결 설정을 하면 서 알게 된 것들

  • docker-compose.yml를 변경시 docker-compose up -d를 실행해야 변경 사항이 반영됨
  • docker-compose stop/strt/restart는 변경전 yml 파일로 생성된 컨테이너가 재 가동 될 뿐임
  • 컨터이너 volume은  volume, bind mount, tmpfs mount (이해 필요)
volumes on the Docker host

설정 방법 : Local storage(외장하드)의 공유 대상 디렉토리를 Docker에서 접근 할 수 있도록 docker-compose 파일에 bind/mount >mkdir -p /media/usbhdd1/shares/plex-movie >  docker-compose stop > docker-compoese up -d > nextcloud 웹 에서 외부접속 연결 설정(GUI)

docker-compose. yml 설정 변경 내용 '외부접속' 마운트 설정 추가

app:
    build: ./app
    restart: always
    volumes:
      - /media/usbhdd1/nextcloud/var/www/html:/var/www/html
      - /media/usbhdd1/shares/plex-movie:/media/nextcloud # 외부접속 연결 설정 

웹 인터페이스에서 위치를 로컬스토리지 마운트 포인트로 설정에서 계속 에러나고 해결점을 찾지 못함

stat(): stat failed for /media/usbhdd1/shares/plex-movie/ at /var/www/html/lib/private/Files/Storage/Local.php#142
  • nextcloud 서비스는 docker에서 실행중이므로 docker 외부 환경 즉 host 환경에 대해서는  모름(접근차단)
  • 호스트에 직접 설치 할 경우 공유할 디렉터리를 바로 연결 하면 되지만,
  • docker img. 로 설치 했으므로 nextcloud 서비스(app)가 접근 할 수 있도록 공유대상 디렉터리가 호스트에 위치하므로 host filesystem 이므로 bind mout로 연결
  • nextcloud 웹서비스에서 위치는 nextcloud 서비스에서 참조해 연결 해야 하므로 연결 소스 즉 호스트의 디렉터리가 아니라 nextcloud 서비스의  컨테이너 마운트 포인트(/mount/plex)를 입력해야 함.
 "HostConfig": {
            "Binds": [
                "/media/usbhdd1/shares/plex-movie:/media/plex:rw",
                "/media/usbhdd1/nextcloud/var/www/html:/var/www/html:rw"
            ],


 "Mounts": [
            {
                "Type": "bind",
                "Source": "/media/usbhdd1/shares/plex-movie",
                "Destination": "/media/plex",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/media/usbhdd1/nextcloud/var/www/html",
                "Destination": "/var/www/html",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],

TO DO

  • [x] deluge download  파일 접근 및 재생 가능 여부
  • [x] plex server 서버 설치  ///// 일단 이것은 보류

Install Plex with Docker

  • 자동 업그레이드  - 기동시 업데이트 체크 후 있으면 업데이트 버전 자동 설치 후 기동

Tags

In addition to the standard version and latest tags, two other tags exist: beta and public. These two images behave differently than your typical containers.  These two images do not  have any Plex Media Server binary installed.  Instead, when these  containers are run, they will perform an update check and fetch the  latest version, install it, and then continue execution.  They also run  the update check whenever the container is restarted.  To update the  version in the container, simply stop the container and start container  again when you have a network connection. The startup script will  automatically fetch the appropriate version and install it before  starting the Plex Media Server.
The public restricts this check to public versions only where as beta will fetch beta versions.  If the server is not logged in or you do not have Plex Pass on your account, the beta tagged images will be restricted to publicly available versions only.
To view the Docker images head over to https://hub.docker.com/r/plexinc/pms-docker/tags/
출처 : https://github.com/plexinc/pms-docker#tags

참고 : Official Plex Docker - out of date - please update - Plex Media Server / Computers - Plex Forum

igotoo

igotoo