본문 바로가기

라즈베리파이

webdav 이용, 네트워크 드라이브 연결 1 - 설치

라즈베리파이에 접속하려는 PC가 로컬 네트워크 즉 집에 존재한다면 SMB로 그냥 연결하면 된다. 하지만 회사PC에서 집에 있는 라즈베리파이에 네트워크 드라이브로 연결하고 싶다면???

 

이럴 경우 webdav가 훌륭한 대안이 될 수 있다. 이번 포스팅에서는 docker를 이용하여 webdav를 설치하고 원격에서 연결하는 방법에 대해 설명하도록 하겠다.

 

1. docker 이미지 선정

docker hub에서 webdav를 검색하면 "bytemark/webdav", "idelsink/webdav", "ugeek/webdav", "mwader/webdav" 등등 여러 종류가 검색되고 그중 "bytemark/webdav"가 가장 다운로드 횟수가 많다. 그러나 대부분의 이미지들이 Intel 계열 CPU에서는 정상 동작하나 ARM CPU인 라즈베리파이에서는 정상 동작하지 않는다.

 

이들 이미지중 "ugeek/webdav"이 ARM CPU를 정식 지원하므로, 이 이미지를 이용하여 webdav 설정을 진행하도록 하겠다. 

 

2. webdav 설치하기

이제 평소처럼 OMV5에 접속후 OMV-Extras 메뉴에서 Portainer로 접속하도록 한다. 그리고 "Containers" 메뉴에서 "Add Container" 버튼을 누르면 아래 화면이 나온다.

이름을 "webdav"로 지정한 후 이미지 이름에 "ugeek/webdav:arm"을 입력하고, 포트 포워딩 설정을 해 주면 된다.

나의 경우는 80포트를 8088로 포워딩 해 주었다.

 

여기서 주의할 점은 linuxserver 계열의 이미지들과는 달리 이 이미지의 경우 반드시 CPU 타입(:arm)을 뒤에 붙여 주어야 한다는 점이다.

 

이제 아래쪽으로 스크롤하여 "Volumes" 탭을 클릭하고 "map additional volume" 버튼을 클릭한다.

이 이미지의 경우 "/media" 폴더가 webdav 루트 폴더이므로 "/media" 폴더를 공유하고 싶은 호스트 머신의 의 절대 경로로 매핑해 준다.

나의 경우 외장HDD 전체를 공유할 생각이므로 OMV5에서 외장HDD가 마운트된 경로인 "/srv/dev-disk-by-label-HDD"를 입력해 주었다. 

 

이제 "Network" 탭을 클릭한다. nginx reverse proxy를 사용하지 않을 분은 설정 변경을 안해도 상관 없으나, 외부에서 https로 접속하기를 원한다면 아래처럼 고정 IP주소를 할당해 주는 것이 좋다.

 

혹시 ServerNetwork이 없으신 분은 아래 포스트의 "3.1 신규 네트워크 설정" 부분을 참고하길 바란다.

https://www.codesarang.com/34

 

NextCloud에서 Internal Server Error 발생시 해결 방법

1. 발생원인 파악 OMV의 docker 환경에서 NextCloud를 설치해 정상적으로 사용하던 중 갑자기 아래와 같은 Internal Server Error가 발생했다. 국내외 블로그 및 여러 사이트를 찾아 보았지만 한동안 해결 방

www.codesarang.com

 

이제 "Env" 탭에서 webdav 접속을 위한 USERNAME과 PASSWORD를 지정한다. 만일 여기서 지정하지 않을경우 webdav 접속 ID/비밀번호는 "webdav"로 설정된다.

 

참고로 이 이미지의 경우 PUID, PGID, TZ에 대한 변수값을 인식하지 못하니 입력할 필요가 없다.

 

이제 마지막으로 "Restart policy" 탭에 접속, 자동시작 정책을 "Always"로 선택하고 "Deploy the container" 버튼을 클릭하면 설치가 완료 된다.

 

3. webdav 접속 시험

webdav 설치가 완료되었으니 접속해 보도록 한다. "http://라즈베리파이IP:8088" 로 접속하면 아래처럼 인증창이 나온다. 여기서 아까 설정한 USERNAME과 PASSWORD를 입력하고 "Sign in" 버튼을 클릭한다.

 

인증이 완료된 후 아래처럼 파일 및 폴더 목록이 보인다면 기본적인 설정은 완료된 것이다.

 

4. nginx reverse proxy 설정으로 https 지원하기

nginx reverse proxy 설정을 위해서는 접속하려는 도메인을 보유하고 있어야 하며, LetsEncrypt docker가 설치되어 있어야 한다.

 

LetsEncrypt 설정의 경우 아래 포스팅에서 설명하였으니 필요하신 분은 참고하시면 된다.

https://www.codesarang.com/33

 

docker에서 letsencrypt SSL 인증서 발급받기

Let's Encrypt SSL 인증서를 발급받기 위해서 라즈베리파이 호스트 머신에 직접 certbot을 설치하고 수작업으로 인증서를 받을 수도 있다. 물론 certbot도 자동화된 도구이며, apt 명령으로 간단히 설치가

www.codesarang.com

https://www.codesarang.com/35

 

docker에 SSL 인증서 적용하기 - nginx Reverse Proxy

1. 개요 OMV5에 docker를 이용하여 NextCloud, WordPress, Transmission, LetsEncrypt 등 다양한 어플리케이션을 설치한 바 있다. 아래 그림은 docker에 설치된 컨테이너 리스트이다. 현재 상태를 그림으로 도식..

www.codesarang.com

우선 webdav용 접속 도메인이 필요하다. 여기서는 drive.codesarang.com를 새로 생성하였다.

 

이제, LetsEncrypt에 Reverse Proxy 설정을 하여야 한다. SMB로 라즈베리파이 IP주소로 접속, "drive.codesarang.com.subdomain.conf" 파일을 하나 생성해 준다.

 

그리고 아래처럼 config 파일을 작성해 주도록 한다.

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name drive.codesarang.com;

    include /config/nginx/ssl.conf;

    client_max_body_size 0;

    location / {
        include /config/nginx/proxy.conf;
        resolver 172.20.0.8 valid=30s;
        set $upstream_app 172.20.0.8;
        set $upstream_port 80;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;
    }
}

 

당연하겠지만, 도메인과 IP 주소는 본인이 설정한 정보로 수정해 주어야 한다.

 

이제 다시 Portainer로 접속, LetsEncrypt 컨테이너를 다시 실행시켜 주기만 하면 된다.

 

다음은 "drive.codesarang.com"으로 접속한 화면이다. 아래처럼 https로 접속되었으며, 추가적으로 포트를 설정할 필요도 없다.