1. 2019.01.29 Docker를 활용한 AirComix 서버 설치 (2)

Docker를 활용한 AirComix 서버 설치


Synology NAS - Docker를 활용한 AirComix 서버 설치


나스시장의 최강자! 시놀로지!

그동안 저는 DS-215j 모델을 사용해오고 있어서 몰랐는데 새로나온 고사양급 모델들은 요즘 IT인프라에서 가장 핫한 아이템인 Docker를 사용 할 수 있도록 업데이트가 되었더군요! 이번에 신형 NAS로 교체한 기념으로 포스팅 해봅니다.

그 Docker로 무얼 할 수 있는가? 고민하다가 예전 버전에서는 어렵게 아파치 서버를 띄워서 구성했던.. 근데 DSM이 버전업 해버리면서 아파치의 경로가 바뀌어서 서버가 깨져서 내부에서 꼬여버려 사용하지 못했던 슬픈 역사가 있던.. AirComix 서버 설치를 해보려고 합니다. AirComix 서버를 설치하면 막대한 용량의 압축 파일들을 앱에 넣지 않고, 통신망을 사용하여 어디에서든 스트리밍으로 구독이 가능합니다. 그래서 이번엔 아파치가 아닌 Nginx를 가지고 AirComix 서버를 구성해보고자 합니다.


설치과정에 있어서 pagein.net의 글을 많이 참고 했습니다.

설치하면서 제가 답답했던 부분이나 추가적인 부분을 더 포스팅 하려고 합니다.


Nginix PHP 설치


레지스트리를 선택한다음, 검색창에 nginx php 라고 검색을 한 후 나오는 목록에서 richarvey/nginx-php-fpm를 선택합니다.

더블 클릭하면 설치할 버전을 물어봅니다.

이미지에 richarvey/nginx-php-fpm:lastest 라고 생성 되는데, 다운이 완료 되면 304MB 용량 표시가 뜨고, 실행 버튼이 활성화 됩니다.

실행을 누르면 컨테이너 생성을 할 수 있습니다.

컨테이너 이름에 저는 aircomix-server 라고 넣었습니다. 원하는 이름으로 서버를 생성하시면 됩니다.

고급 설정을 누르면

자동 재시작 활성화에 체크 해주시고

볼륨 탭에서 폴더 추가를 해줍니다.

파일/폴더 있는 곳은 실제 NAS에 만화책들의 압축파일이 있는 경로를 지정해주시고, 마운트 경로는 Docker에 올라간 컨테이너 내에서 실제 책이 있는 경로가 마운트 되어 표현되어지는 경로입니다.

이게 무슨 소리냐? 하실 수도 있는데, 쉽게 말하자면,

만약에 실제 NAS의 /volume2/coimx 경로에 책 파일 있습니다. 하지만 docker로 컨테이너가 구성 되면 나스 안에 새로운 OS가 생성된것 같이 보이는데, 그안에는 실제 경로인 /volume2/coimx는 보이지 않고, 그 볼륨 구성안에서 /volume1/books 라는 경로로 실제 NAS의 경로가 연결된다는 뜻입니다. (실제 /volume2/comix => 컨테이너 /volume1/books) 윈도우의 바로가기나 리눅스의 ln 링크처럼 말이죠. 저는 만화책 뿐만 아니라 다른 책들도 같이 넣을것이기 때문에 books라고 지정 했습니다. 마운트에 volume1은 바꾸지 마세요.

포트 설정입니다. 다른 포트 다 지우셔도 상관 없습니다.

자동으로 되어 있는 로컬 포트도 31257로 고정하고, 컨테이너 포트도 31257로 설정해 줍니다. TCP, UDP 다 설정 해줍니다.

그러면 비디오 형식에 다음과 같이 컨테이너가 실행되고 있음을 확인 할 수 있습니다.

세부사항을 누르고, 터미널 탭으로 가서 생성을 누르면 bash 쉘이 뜹니다.

pwd를 치면 컨테이너 안에서 현재 경로가 보이는데, /var/www/html 이 곳이 nginx의 웹을 구동하기 위해 파일을 넣어두는 디렉토리입니다. 이 곳에서 github에 있는 AirComix 파일을 내려받습니다.

bash-4.4# wget https://github.com/song31/comix-server/archive/master.tar.gz

그리고 다운로드가 완료 되면 압축을 풉니다.

bash-4.4# tar -zxvf master.tar.gz

압축을 풀면 /var/www/html/ 아래에 comix-server-master 라는 디렉토리가 생성됩니다.

bash-4.4# cd comix-server-master

comix-server-master 디렉토리에 가서 몇가지 설정파일을 편집 해줍니다.

우선 index.php를 수정해줍니다.

기본 값은 manga 라고 되어 있는데, 아까 위에서 /volume1/books로 지정했던 부분의 books를 넣어줍니다. 만약 /volume1/comics 로 지정 했다면 comics를 넣으면 됩니다.

그 다음에 /etc/nginx/sites-enabled 로 이동을 합니다.

bash-4.4# cd /etc/nginx/sites-enabled

이 곳에다 aircomix-server.conf 파일을 만들어 줄것인데, 아래 명령으로 설정 파일을 받아 압축을 풀어도 되고,

bash-4.4# wget https://pagein.net/wp-content/uploads/2018/01/aircomix-server.tar.gz

아니면 vi 로 직접 생성해줘도 됩니다.

bash-4.4# vi aircomix-server.conf

아래와 같이 설정 해줍니다.

server {
    listen 31257;
    server_name 192.168.xxx.xxx;
    charset UTF-8;
    root /var/www/html/comix-server-master;
    location / {
        autoindex on;
        index index.php;
        #auth_basic "Restricted Access";
        #auth_basic_user_file /var/www/html/comix-server-master/.htpasswd;
    }
    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    location ~ ^/manga(.*)$ {
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME /var/www/html/comix-server-master/handler.php;
    }
}

NAS-IP에는 실제 시놀로지 NAS가 공유기에서 받은 IP를 넣어주는 겁니다.

편집이 끝났으면 저장. (vi 편집기 사용에 관한 부분은 다른 사이트를 참고하셔서 알아두시는 편이 좋습니다.)

그리고 비디오 형식에 작업 버튼에 다시 시작을 누르거나 오른버튼을 클릭해서 다시 시작을 하거나 오른쪽 버튼을 클릭해서 껐다 키거나 해서 컨테이너를 재시작 해주면 실행이 됩니다.


웹 브라우저를 열고 http://NAS IP:31257 쳐서 books 라고 나오면 성공한겁니다.

제어판에 외부엑세스에서 DDNS 서비스를 이용하고 계시다면 http://해당 도메인:31257 으로 외부에서도 접속이 가능한데, 이건 공유기에서 DMZ 설정이나 포트포워딩 설정이 NAS로 연결되어 있어야지만 가능한 겁니다. 구글에서 포트포워딩 혹은 공유기 DMZ설정을 찾아보세요. 공유기 제조사 마다 설정 방법이 모두 다릅니다.


AirComix 암호설정하기


코믹스 서버 디렉토리로 이동합니다.

bash-4.4# cd /var/www/html/comix-server-master

여기에서 .htpasswd 파일을 생성합니다.

bash-4.4# printf "AirComix:$(openssl passwd -crypt 패스워드)\n" >> .htpasswd
bash-4.4# chown nginx:nginx .htpasswd
bash-4.4# chmod 640 .htpasswd

그리고 다시 aircomix-server.conf 파일을 수정합니다.

bash-4.4# vi /etc/nginx/sites-enabled/aircomix-server.conf

주석(#)처리된 부분을 지워주고 저장.

이렇게 하면 앱에서 AirComix 서버로 접속하기 위해서는 반드시 패스워드가 필요합니다.

설정 완료!

'Operating System > Synology NAS' 카테고리의 다른 글

Docker를 활용한 AirComix 서버 설치  (2) 2019.01.29