달력

52024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'전체 보기'에 해당되는 글 215건

  1. 2018.02.02 오드로이드 XU4 를 개인 클라우드 서버로 - 9. 무료 도메인
  2. 2018.02.02 오드로이드 XU4 를 개인 클라우드 서버로 - 8. Wordpress
  3. 2018.02.02 오드로이드 XU4 를 개인 클라우드 서버로 - 7. h5ai
  4. 2018.02.02 오드로이드 XU4 를 개인 클라우드 서버로 - 6. Nginx, PHP, MariaDB
  5. 2018.02.02 오드로이드 XU4 를 개인 클라우드 서버로 - 5. Plex(펌)
  6. 2018.02.02 오드로이드 XU4 를 개인 클라우드 서버로 - 4. Samba(펌)
  7. 2018.02.02 오드로이드 XU4 를 개인 클라우드 서버로 - 3. 외장하드 마운트(펌)
  8. 2018.02.02 오드로이드 XU4 를 개인 클라우드 서버로 - 2. Webmin 설치(펌)
  9. 2018.02.02 오드로이드 XU4 를 개인 클라우드 서버로 - 1. 우분투 설치(펌)
  10. 2018.02.02 오드로이드 XU4 기본 설정(펌)
  11. 2018.02.02 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 9. 포트포워딩 적용하기(펌)
  12. 2018.02.02 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 8. Transmission(펌)
  13. 2018.02.02 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 7. Plex Media Server(펌)
  14. 2018.02.02 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 6. Seafile(펌)
  15. 2018.02.02 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 5. MySQL(펌)
  16. 2018.02.02 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 4. Nginx(펌)
  17. 2018.02.02 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 3. FTP(펌)
  18. 2018.02.02 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 2. Samba(펌) 2
  19. 2018.02.02 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 1. OMV 설치 / 설정(펌)
  20. 2018.02.02 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 0. 개요(펌)
  21. 2018.02.02 라즈베리파이3 SSH root 접근 제한 해제
  22. 2018.01.24 아파치 *.80 포트로 다중 도메인 포트 분기
  23. 2018.01.17 오드로이드-XU4 구매함
  24. 2018.01.09 멀티 톰캣 인스턴스로 실행하기(Multiple Tomcat Instances)(펌)
  25. 2018.01.05 OMV 에 TVHeadend 설치[펌]
  26. 2017.12.28 tvheadend OMVS 대체 IP TV 스캔(Scanner & playlist creator) 45
  27. 2017.12.28 VirtualBox 라즈베리파이 설치
  28. 2017.12.27 VirtualBox 라즈베리파이3 해상도 변경
  29. 2017.12.27 라즈베리파이3 transmission (토렌트 비서 사용하기)
  30. 2017.12.27 라즈베리파이3 transmission (텔레그램 API 연동) 2

 외부에서 접속할 때, 매번 자신의 아이피와 포트로 접속하는 건 굉장히 불편한 일입니다. 도메인을 얻어 사용합시다.

 전 내도메인.한국 으로부터 무료 도메인으로 kro.kr 을 받아 사용 중입니다. 




1. 가입 및 도메인 얻기

 먼저 내도메인.한국 에 접속해 가입합시다. 그리고, 도메인 등록 메뉴를 통해 간편하게 등록합시다.

 도메인이 등록되셨으면, 새로 등록한 도메인에 대한 관리 페이지로 가세요.

 그리고 DNS 부분에 밑의 스크린샷처럼 원하는 이름과 외부 IP를 넣어 설정해 A 도메인을 얻어줍시다. 도메인 체계에 관해선 구글 검색을..


2. Nginx 설정

 Nginx에서 서버 이름, 즉 도메인을 통해 각기 다른 페이지를 보여주려 합니다. 가상 호스트 방법도 있지만, h5ai는 지원하지 않아요. 전문 분야가 아니라 자세히는 모르지만, 지금의 용도에선 이 방법이 제일 낫다고 생각합니다.

 Nginx에서 설정한 파일들을 수정해야 합니다. 여기선 워드프레스에 대해서만 sub.awesometic.kro.kr로 접속하도록 하겠습니다.

sudo vi /etc/nginx/sites-available/wordpress

 다시 listen을 기본 포트인 80으로 돌려주고, server_name 부분을 수정하면 됩니다. 아래를 참고해 수정해주세요.

server {
    listen       80;
    server_name  sub.awesometic.kro.kr; # {서브도메인}.{도메인}.kro.kr
    root   /var/www/html/wordpress;

    location / {
        index  index.php index.html;
    }

    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }

        fastcgi_pass unix:/run/php/php7.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}
nginx


 워드프레스 블로그의 경우, 설치할 때 수정하셨던 워드프레스 주소와 사이트 주소를 해당 도메인에 맞게 다시 변경해 줘야만 합니다. Nginx 설정 파일의 server_name 에 해당하는 주소로 입력해주세요.

 임시로 제가 만든 워드프레스 블로그를 sub.awesometic.kro.kr 로 접속한 화면입니다.




참고사이트:
본문 내 링크




출처 : http://awesometic.tistory.com/19?category=964086

Posted by 타카스 류지
|

 Wordpress 는 무료 웹 사이트, 블로그를 만드는데 좋은 프로그램입니다. 전세계 수많은 사용자들로 이루어진 커뮤니티는 물론이고, 다양한 플러그인을 통해 간단한 동작 만으로도 알찬 웹 사이트/블로그를 만들 수 있어요.

 여기선 워드프레스를 올리는 것, 웹에서 다루기에 무리가 없는 수준까지만 하겠습니다.

 Apache나 Nginx 등 웹 서버와 PHP, MySQL(MariaDB)가 필요합니다. 이 포스트 시리즈의 처음부터 따라오신 분은 그대로 진행하시면 돼요



 

0. MariaDB에 워드프레스에서 사용할 DB 추가

 워드프레스의 각종 데이터는 데이터베이스를 이용합니다. 따라서 서버에 워드프레스를 위한 데이터베이스를 마련해 줘야 합니다.

sudo mysql -u root

 MariaDB 커맨드로 넘어오면 DB를 추가해 줍니다.

create database wordpress;

 이후 워드프레스 설정 시 root 계정 정보를 넣으면 됩니다만..


(옵션, 추천) 사용자 추가

 새로운 사용자를 추가하는 게 여러가지 이유로 더 낫습니다.

 추가한 뒤 wordpress 데이터베이스에 대한 모든 권한을 부여하겠습니다.

 참고: http://link2me.tistory.com/431

 계정을 생성한 후 localhost(오드로이드 내)에선 {비밀번호} 로 로그인 가능하게끔 하겠습니다.

create user {계정이름};
create user {계정이름}@localhost identified by '{비밀번호}';

 앞서 만든 wordpress DB에 관해 모든 권한을 부여하겠습니다.

grant all privileges on wordpress.* to {계정이름}@localhost identified by '{비밀번호}';
flush privileges;

 완료 스크린샷입니다. 기본 문자열 인코딩 설정(UTF8MB4)도 중요한데, 이건 MariaDB 설치할 때 기본값을 설정해줬으니 신경 안 쓰셔도 됩니다.

워드프레스 설정 시 새로 만든 계정 정보를 사용하겠습니다.



1. 워드프레스 설치

1.1 최신 버전 다운로드 및 압축 풀기

wget https://ko.wordpress.org/wordpress-4.7.4-ko_KR.zip

 그리고 원하는 장소에 압축을 풀어줍니다. 전 nas 옆인 /var/www/html 에 압축을 풀겠습니다. wordpress 디렉토리가 생길 겁니다.

sudo unzip -d /var/www/html wordpress-4.7.4-ko_KR.zip

 다운로드한 파일은 지워줍시다.

rm wordpress-4.7.4-ko_KR.zip


1.2 wp-config-sample.php 파일 수정

 워드프레스에서 사용할 DB 정보와 계정 정보를 입력해줘야 합니다.

sudo vi /var/www/html/wordpress/wp-config-sample.php

 열고 아래 DB_NAME, DB_USER, DB_PASSWORD에 해당하는 부분에 좀 전에 만든 새로운 DB, 계정 정보를 입력해줍니다.

 그리고 바로 아래 워드프레스 내 다양한 키를 입력할 수 있는데, 이를 입력해주면 저장되는 다양한 쿠키값에 대해 보안성을 높여줍니다. 워드프레스는 로그인 정보 관리에 PHP 세션을 이용하지 않고 사용자의 쿠키로 저장하기 때문에 필요한 작업이라네요.

 참고: https://blogvault.net/everything-about-wordpress-security-keys/

 아무튼, 

https://api.wordpress.org/secret-key/1.1/salt/

 로 접속하면 이상한 define 값들이 많이 뜨는데, 그대로 복사해

여기에 있던 define들을 지우고 붙여넣으시면 됩니다.

 그리고 wp-config.php 란 이름으로 복사해줍시다.

cd /var/www/html/wordpress
sudo cp wp-config-sample.php wp-config.php

 설치는 이것으로 완료입니다. 이제 Nginx에서 접근할 수 있도록 해줘야 합니다. 


1.3 웹 서버에서 접근할 수 있도록 권한 변경

 워드프레스는 웹 관리자 페이지에서 플러그인을 추가, 삭제합니다. 게시글을 올릴 때 첨부 파일도 저장하겠죠. 이런 다양한 행동들은 웹 서버를 통해 이루어지니 필요한 디렉토리에 대해 웹 서버에서 접근할 수 있도록 소유권을 바꿔줘야 하고, 권한도 새로 부여해야 합니다.

 매우 중요한 과정입니다. 꼭 해주세요.

 참고: https://gist.github.com/Adirael/3383404

 /* Github Gist */

#!/bin/bash
#
# This script configures WordPress file permissions based on recommendations
# from http://codex.wordpress.org/Hardening_WordPress#File_permissions
#
# Author: Michael Conigliaro <mike [at] conigliaro [dot] org>
#
WP_OWNER=www-data # <-- wordpress owner
WP_GROUP=www-data # <-- wordpress group
WP_ROOT=$1 # <-- wordpress root directory
WS_GROUP=www-data # <-- webserver group
# reset to safe defaults
find ${WP_ROOT} -exec chown ${WP_OWNER}:${WP_GROUP} {} \;
find ${WP_ROOT} -type d -exec chmod 755 {} \;
find ${WP_ROOT} -type f -exec chmod 644 {} \;
# allow wordpress to manage wp-config.php (but prevent world access)
chgrp ${WS_GROUP} ${WP_ROOT}/wp-config.php
chmod 660 ${WP_ROOT}/wp-config.php
# allow wordpress to manage wp-content
find ${WP_ROOT}/wp-content -exec chgrp ${WS_GROUP} {} \;
find ${WP_ROOT}/wp-content -type d -exec chmod 775 {} \;
find ${WP_ROOT}/wp-content -type f -exec chmod 664 {} \;

 /* Github Gist */

 다운받아 실행합시다.

wget https://gist.github.com/Adirael/3383404/archive/2ce9e58cb48a3a85f4c8b667ebd3a42cdcda848b.zip

 압축을 풀면,

unzip 2ce2ce9e58cb48a3a85f4c8b667ebd3a42cdcda848b.zip

 이상한 디렉토리 3383~ 이 생기는데, 그 곳에 저 코드가 담긴 파일이 있습니다.

 실행 권한을 줘서 실행해줍시다.

chmod +x 3383404-2ce9e58cb48a3a85f4c8b667ebd3a42cdcda848b/fix-wordpress-permissions.sh
sudo ./3383404-2ce9e58cb48a3a85f4c8b667ebd3a42cdcda848b/fix-wordpress-permissions.sh /var/www/html/wordpress

 뒤의 /var/www/html/wordpress 는 워드프레스 설치 경로입니다.

 아래와 같이 바뀌면 됩니다.

제대로 되었으면 남은 파일들은 삭제해줍시다.

rm -rf 2ce9e58cb48a3a85f4c8b667ebd3a42cdcda848b.zip 3383404-2ce9e58cb48a3a85f4c8b667ebd3a42cdcda848b/


2. Nginx 설정 변경

 NAS에 접속하기 위해 3000번 포트를 준 것 처럼, 워드프레스로 접속하기 위해 새로운 포트를 할당해 줘야 합니다. NAS 설정 시 진행한 것과 동일하게 진행합니다.

 먼저 nginx/sites-available/default 설정 파일을 복사합니다. wordpress 란 이름으로 복사하겠습니다.

cd /etc/nginx
sudo cp sites-available/default sites-available/wordpress

 파일을 열어 listen 부분에 새로운 포트를 할당해줍니다. 전 4000으로 하겠습니다.

sudo vi sites-available/wordpress

 아래와 같이 변경하겠습니다.

server {
    listen       4000;
    server_name  localhost;
    root   /var/www/html/wordpress;

    location / {
        index  index.php index.html;
    }

    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }

        fastcgi_pass unix:/run/php/php7.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}
nginx

 생성한 파일을 적용해 사용하기 위해 nginx/sites-enabled에 소프트 링크를 생성합니다.

sudo ln -s /etc/nginx/sites-available/wordpress sites-enabled/wordpress

 Nginx를 다시 로드합니다.

sudo service nginx reload


3. 접속 및 초기 설정

 먼저 아래 주소로 접근해줍니다.

 외부에서 접속하시려면 4000번 포트에 대한 포트포워딩/방화벽설정을 해주시는 걸 잊지 마세요.

http://{오드로이드IP}:4000/wp-admin/index.php

 간단히 정보를 입력한 후 설치하기를 누르면, (비밀번호는 꼭 새로 설정해 주세요. 기존에 쓰시던 게 자동으로 입력되는 것이 아닙니다)

 즐거운 시간을!

 로그인하면 아래와 같은 화면이 뜰 겁니다.

 마지막으로 설정-일반에 들어가 워드프레스 주소와 사이트 주소를 외부 아이피로 제대로 바꿔줍시다. 

 두 곳 다 http://{외부IP}:{포트} 로 바꿔주시면 됩니다.


4. 테마 추가를 위한 FTP 계정 정보 입력

4.1 vsftpd 설치

 워드프레스에서 테마를 새로 설치하려면 서버에 대한 FTP 계정이 필요하다, 계정 정보를 달라는 알림이 뜹니다. 

 하지만 저흰 FTP 프로그램이 설치되어 있지 않으니 새로 설치해줍시다.

sudo apt-get install vsftpd

 서비스가 켜져있는지 확인해줍니다.

sudo service vsftpd start

 그리고 FTP 기본 포트인 21번 포트에 대해 방화벽/포트포워딩 설정을 해주세요.

 마지막으로 테마 설치 시 입력하는 FTP 계정 정보에 기존 오드로이드 내의 내 사용자 정보를 입력하시면 됩니다.

 이렇게요, 외부IP는 공유기를 통해 받은 사설 아이피(192.168.~) 이 아닌 실제로 외부에서 보여지는 IP를 말합니다.

 예시로 하나 설치해봤는데 잘 되네요


170505

 젯팩 플러그인 연결 시 이런 에러가 뜨는데, 간단히 터미널에서

sudo apt-get install php-xml

 하시면 됩니다.




 워드프레스 설치가 다 되었습니다. 나머지 추가적인 부분에 관해선 워드프레스 커뮤니티 등등을 통해 꾸며가세요.

 이제 도메인, SSL 관련 작업만 남았네요!


참고사이트:
본문 내 링크



마지막 업데이트: 2017. 07. 10




출처 : http://awesometic.tistory.com/19?category=964086


Posted by 타카스 류지
|

 h5ai 는 modern HTTP web server index 입니다. 그렇게 써있는데, 감이 안 오시는 분들은 간단하게 파일을 웹에서 내컴퓨터에서 보듯 볼 수 있다고 생각하시면 됩니다. 사실 서버 차원에서 기본적인 웹 디렉토리 리스팅 서비스가 지원되지만, 보기도 나쁘고 보안도 취약해 웹 디렉토리 리스팅을 위해선 h5ai 를 사용하는 것이 더 좋다고 봅니다. h5ai의 보안이 뛰어난 것은 아니지만요.. :)

 또한 h5ai는 간단한 문서, pdf, 이미지, 동영상, 소스 코드 뷰어를 지원합니다. 아주 괜찮은 친구에요.

데모 사이트: https://larsjung.de/h5ai/demo/

 h5ai 를 위해선 Nginx, Apache 등 웹 서버와 PHP가 설치되어 있어야 합니다. Apache 권장이지만, 전 Nginx를 사용하겠습니다.




1. h5ai 설치

1.1 h5ai 다운로드 및 압축 해제

 h5ai 는 업데이트를 위한 저장소가 제공되지 않습니다. 사이트에서 받아 설치해야 합니다.

wget https://release.larsjung.de/h5ai/h5ai-0.29.0.zip

 그리고 전 압축을 편의상 /var/www/html/nas 에 풀겠습니다.

sudo mkdir /var/www/html/nas
sudo unzip -d /var/www/html/nas h5ai-0.29.0.zip

 압축을 풀었으니 지우겠습니다.

rm h5ai-0.29.0.zip


1.2 Nginx 설정

 Nginx에서 h5ai를 제대로 작동시키기 위한 작업이 필요합니다. _h5ai/public/index.php 를 index 페이지로 사용하게끔 설정해야 해요. 여기선 새로운 포트를 둬 해당 NAS 페이지로 접근하게끔 하겠습니다.

 먼저 기존 sites-available 설정 파일을 복사합니다. nas란 이름으로 복사하겠습니다

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/nas

 그리고 복사한 파일의 내용에서 listen과 root 부분을 바꿔줍시다. 전 h5ai 페이지에 접속하기 위해 3000번 포트를 사용하며 default_server 키워드를 지우겠습니다. default_server 키워드는 포트 하나만 갖고 있어야 합니다. root와 index 파일의 경로까지 수정해줍니다.

 다음과 같이 하겠습니다.

server {
    listen       3000;
    server_name  localhost;
    root   /var/www/html/nas;

    location / {
        index  index.html /_h5ai/public/index.php;
    }

    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }

        fastcgi_pass unix:/run/php/php7.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}
nginx

 해당 파일에 대한 소프트 링크 파일을 /etc/nginx/sites-enabled/nas 파일로 만들어줍시다.

sudo ln -s /etc/nginx/sties-available/nas /etc/nginx/sites-enabled/nas

 마지막으로 Nginx를 reload 해줍시다.

sudo service nginx reload

 접속해봅시다.

http://{오드로이드IP}:3000/

 외부에서도 접속하려면 방화벽 및 공유기의 포트 포워딩 설정을 꼭 확인해주세요. 1편부터 따라오신 분들이라면 방화벽이 설치되어 있지 않으니 공유기의 포트 포워딩 설정만 알아보시면 됩니다. 


1.3 설치 확인

 잘 뜨지만, 여러 기능이 잘 작동하는가 상태를 확인하려면 _h5ai/public/index.php 에 직접 접근해보면 됩니다.

http://{오드로이드IP}:3000/_h5ai/public/index.php

 로그인하라는데, 간단히 엔터치면 됩니다. 비밀번호 및 기능 설정은 조금 이따 하겠습니다.

 빨갛게 no 라고 뜨는 게 별로 맘에 들지 않네요. PHP arch 는 파일 크기 측정, PHP를 이용한 압축 및 다운로드 시 지원하는 단일 파일 크기에 영향을 끼칩니다. 오드로이드 XU4의 AP가 32bit라 어쩔 수 없이 2기가 미만의 파일만 파일 크기가 표시되고, 총 용량이 2기가 미만이어야 압축되어 다운로드 할 수 있습니다. 나머지 캐시 및 썸네일 관련해선 하나씩 잡아가겠습니다. 사용하기에 꼭 필요한 작업은 아닙니다.


2. no 잡기

2.1 Public Cache dirextory, Private Cache directory

 간단합니다. 캐싱을 위한 디렉토리에 대한 권한이 없다는 뜻입니다. sudo 로 압축을 풀었으니 소유권이 root 겠죠. Nginx의 소유권과 같은 www-data로 바꿔줍시다.

sudo chown -R www-data:nogroup /var/www/html/nas/_h5ai


2.2 Image thumbs

여러 그래픽을 다루는 GD 라이브러리를 PHP와 연동시키기 위한 PHP-GD 라이브러리가 없어서 그렇습니다. apt-get 으로 설치해줍니다.

sudo apt-get install php-gd


2.3 Movie thumbs

 ffmpeg 등 오디오/비디오 코덱 라이브러리가 없어서 그렇습니다. apt-get 으로 설치해줍니다. 

sudo apt-get install ffmpeg


2.4 PDF thumbs

 여러 형식의 이미지 파일을 다루거나 변환하기 위한 ImageMagick 프로그램/라이브러리가 없어서 그렇습니다. PHP와 연동하기 위해 PHP-imagick과 함께 apt-get 으로 설치해줍니다. 

sudo apt-get install imagemagick php-imagick


2.5 상태 확인


3. 소프트 링크를 이용한 파일 보이기

 직접 h5ai 경로(/var/www/html/nas)에 파일을 넣지 않고도 소프트 링크를 활용해 파일을 보이게 할 수 있습니다.

 전 외장하드의 파일들을 전부 보이게 하겠습니다.

 제 외장하드 마운트 지점은 /media/externalHdd/ext1, ../ext2 입니다. 제 경우는 다음과 같습니다.

sudo ln -s /media/externalHdd/ext1/ /var/www/html/nas/3.0TB
sudo ln -s /media/externalHdd/ext2/ /var/www/html/nas/1.5TB

 그러면 아래 화면과 같이 뜰 것입니다.


4. 마무리 설정

4.1 옵션 변경

 _h5ai/private/conf/options.json 을 통해 여러 h5ai의 옵션을 변경할 수 있습니다.

sudo vi /var/www/html/nas/_h5ai/private/conf/options.json

 상태 페이지 접근 패스워드, 다운로드 기능 활성화, 미리보기 할 확장자 등 여러 가지 옵션이 제공되니 사용하시면서 입맛대로 바꾸세요


4.2 PHP-JSON 설치

4번째에.. 우분투 서버에선 PHP JSON 지원을 위해 추가 패키지를 설치해야 할 것이라 합니다. 당장 눈에 띄게 안 되는 기능은 없지만, 제작자가 설치하라 하니까 설치합시다.

sudo apt-get install php-json


(옵션) 접속 시 로그인 설정하기

 주소만 안다고 아무나 접근해서 파일을 가져가면 안 되겠죠? .htpasswd를 이용해 접근 제어를 해봅시다.

 먼저 암호화된 패스워드를 얻기 위해 apache2-utils 를 설치하겠습니다.

sudo apt-get install apache2-utils

 그리고 아래 명령어를 통해 /etc/nginx/.htpasswd 파일을 생성합니다.

sudo htpasswd -c /etc/nginx/.htpasswd {사용자이름}

 잘 생성됐나 확인합니다.

cat /etc/nginx/.htpasswd

 됐을 겁니다. 그리고 이제 해당 파일을 적용시킬 페이지 설정 파일을 수정해야 합니다. NAS 접근 페이지니, nginx/sites-available/nas 를 수정합니다.

sudo vi /etc/nginx/sites-available/nas

 root 밑에 블록 안에 아래 두 문장을 추가합니다.

auth_basic "{로그인 프롬프트에 나올 말}";
auth_basic_user_file /etc/nginx/.htpasswd;
nginx

 마지막으로 Nginx를 다시 로드해줍니다.

sudo service nginx reload

 확인해봅니다. 접속 시 아래 프롬프트와 유사하게 나오면 정상입니다.

 로그인 해 접속해봅니다.

 안전하지 않은 연결을 통해 전송된다고 하는데, 이 부분에 관해선 추후 도메인 + SSL 적용으로 해결하겠습니다. 다른 일들에 치여 서버 구축의 진도가 느리네요.. 




 h5ai 설치를 마쳤습니다. 다 좋지만, txt 등 문서 프리뷰에선 한글이 항상 깨져 나오네요. 코드를 분석해 고쳐보려 했지만 코드에선 UTF-8만 사용하니 깨질 이유가 없는데.. CSS의 설정이나 뭐 다른 문제가 있는 것 같습니다. 해결법을 아시는 분이나 짐작이 가는 게 있으시다면 댓글로 알려주세요 :)

 

참고 사이트:
a. 본문 내 링크
b. https://www.digitalocean.com/community/tutorials/how-to-set-up-basic-http-authentication-with-nginx-on-ubuntu-14-04




출처 : http://awesometic.tistory.com/19?category=964086

Posted by 타카스 류지
|

 PHP로 동적 페이지 구현과, Nginx로 웹 서버를 열 준비를 해봅시다. 그리고 DBMS로는 무료인 MariaDB를 사용합니다. 이 조합은 APM(Apache-PHP-MySQL) 조합과 같이 웹 서비스를 위한 기반으로 많이 사용됩니다.

 해당 작업은 HTTP 웹 서버 인덱스를 모던하게 해주는 h5ai와 개인 블로그, 사이트를 구축하기 위한 Wordpress 등을 사용하기 위해 꼭 필요합니다.

 아래 설정은 https://blog.lael.be/post/2600 블로그 포스트를 참고했습니다. 해당 포스트는 설명이 너무 잘 나와 있네요.




1. PHP 설치

1.1 저장소 추가 및 설치

 PHP 7 버전에 대한 업데이트를 제공하는 저장소를 추가해줍시다.

sudo add-apt-repository ppa:ondrej/php

 그리고 fetch 후 php7.1-fpm 을 설치해줍니다.

sudo apt-get update && sudo apt-get install php7.1-fpm


1.2 설정

 기본 시간대를 설정해줘야 합니다. 

sudo vi /etc/php/7.1/fpm/php.ini

 두 파일에서 timezone 부분을 찾아

date.timezone = Asia/Seoul
Bash

 로 바꿔 저장합니다.


2. Nginx 설치

 웹 서버로 Nginx를 사용할 것입니다. Apache가 더 좋으신 분들은 그걸 사용하세요. 여기선 Nginx를 기준으로 진행하겠습니다.

2.1 저장소 추가 및 설치

 오드로이드 우분투 기본 저장소에서도 받으실 수 있지만, 최신 Nginx를 항상 유지하기 위해 저장소를 추가해 줍시다.

sudo add-apt-repository ppa:nginx/stable

 그리고 fetch 후 설치합니다.

sudo apt-get update && sudo apt-get install nginx


2.2 PHP-FPM과 연결 설정

 기본 페이지에서 PHP 확장자에 대한 요청을 PHP-FPM(FastCGI Process Manager)으로 전달하기 위한 설정입니다.

sudo mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.backup
sudo vi /etc/nginx/sites-available/default

 아래 내용으로 바꿔줍시다.

server {
    listen       80 default_server;
    server_name  localhost;
    root   /var/www/html;
 
    location / {
        index  index.php index.html;
    }
 
    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
            return 404;
        }
 
        fastcgi_pass unix:/run/php/php7.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}
nginx

 fastcgi_params 설정파일을 백업한 후 열어 다음과 같이 변경해줍니다.

sudo mv /etc/nginx/fastcgi_params /etc/nginx/fastcgi_params.backup
sudo vi /etc/nginx/fastcgi_params

fastcgi_param   QUERY_STRING            $query_string;
fastcgi_param   REQUEST_METHOD          $request_method;
fastcgi_param   CONTENT_TYPE            $content_type;
fastcgi_param   CONTENT_LENGTH          $content_length;
 
fastcgi_param   SCRIPT_FILENAME         $document_root$fastcgi_script_name;
fastcgi_param   SCRIPT_NAME             $fastcgi_script_name;
fastcgi_param   PATH_INFO               $fastcgi_path_info;
fastcgi_param   PATH_TRANSLATED         $document_root$fastcgi_path_info;
fastcgi_param   REQUEST_URI             $request_uri;
fastcgi_param   DOCUMENT_URI            $document_uri;
fastcgi_param   DOCUMENT_ROOT           $document_root;
fastcgi_param   SERVER_PROTOCOL         $server_protocol;
 
fastcgi_param   GATEWAY_INTERFACE       CGI/1.1;
fastcgi_param   SERVER_SOFTWARE         nginx/$nginx_version;
 
fastcgi_param   REMOTE_ADDR             $remote_addr;
fastcgi_param   REMOTE_PORT             $remote_port;
fastcgi_param   SERVER_ADDR             $server_addr;
fastcgi_param   SERVER_PORT             $server_port;
fastcgi_param   SERVER_NAME             $server_name;
 
fastcgi_param   HTTPS                   $https;
 
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param   REDIRECT_STATUS         200;
Bash

 그리고 nginx 서비스를 재시작해줍니다.

sudo service nginx restart

 마지막으로 확인을 위해, 다음 파일을 하나 생성해줍니다.

sudo vi /var/www/html/index.php

 내용은

<?php phpinfo();
PHP

 그리고

http://{오드로이드IP}/index.php

 로 확인해봅시다. 아래와 같은 화면이 나오면 정상입니다.



3. MariaDB 설치

3.1 설치

 MariaDB는 ARM 기반 프로세서를 위한 패키지를 제공하지 않습니다. 따라서 오드로이드 기본 우분투 저장소로부터 받아옵시다.

sudo apt-get install mariadb-server mariadb-client

 그리고 PHP와 연동하기 위해 다음 패키지를 추가 설치 해줍니다.

sudo apt-get install php-mysql


3.2 설정

 기본 언어셋을 범용(UTF-8)으로 설정해줘야 합니다.

 다음 설정파일을 연 후, 

sudo vi /etc/mysql/conf.d/mysql.cnf

 있던 [mysql]을 지우고 아래와 같이 변경합니다.

# MariaDB-specific config file.
# Read by /etc/mysql/my.cnf
 
[client]
# Default is Latin1, if you need UTF-8 set this (also in server section)
default-character-set = utf8mb4
 
[mysqld]
#
# * Character sets
#
# Default is Latin1, if you need UTF-8 set all this (also in client section)
#
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
character_set_server = utf8mb4
collation_server = utf8mb4_unicode_ci
Bash

 그리고 서비스를 재시작합니다.

sudo service mysql restart 




참고사이트:
본문 내 링크





출처 : http://awesometic.tistory.com/19?category=964086

Posted by 타카스 류지
|

 Plex Media Server는 개인 모바일 기기 등 외부에서 자신의 동영상과 음악을 쉽고 빠르고 간편하게 관리, 스트리밍할 수 있게 해줍니다. 게다가 트랜스코딩을 지원해 원본이 고화질이라도 화질을 낮춰 스트리밍할 수 있어 데이터 또한 아낄 수 있어요.

 돈을 내면 여러 사용자가 내 서버에 접속해 스트리밍이 가능하다던가 하지만, 무료로도 여러 기기에서 볼 수 있습니다. 전 제 스마트폰, 태블릿, 노트북에서 접속해서 봅니다. 하지만.. 1분단위로 끊기므로, 노트북이 아닌 모바일 OS에서 제대로 활용하시려면 활성화 코드를 구매해야 합니다. 6천원 정도 합니다.

 설치하러 갑시다.




1. Plex Media Server 설치

1.1 저장소 추가 및 설치

 Plex Media Server는 armhf(ARM 프로세서)에 대한 패키지를 제공하지 않습니다. 따라서 비공식적인 루트로 받아야 하는데, 나름 굉장히 잘 업데이트 해주는 곳이 있습니다. dev2day 저장소 입니다.

참고: https://www.dev2day.de/typo3/projects/plex-media-server/

 이 곳의 저장소를 가져옵시다.

wget -O - https://dev2day.de/pms/dev2day-pms.gpg.key | sudo apt-key add -
sudo echo "deb https://dev2day.de/pms/ jessie main" >> /etc/apt/sources.list.d/pms.list

 그리고 fetch 후 설치합니다.

sudo apt-get update && sudo apt-get install plexmediaserver-installer


1.2 국내 메타 데이터 설정

 Plex Media Server는 해외 서비스입니다. 국내 예능이나 영화, 음악에 대해 데이터가 아주 없는 건 아니지만, 기본적으로 해외 서비스니 국내 방송, 음악 정보에 대해선 약합니다. 그리고 나중에 보시면 설명이 영어로 떠요. 이걸 방지하기 위해 hojel 님이 만드신 설정 파일로 국내 메타 데이터를 설정해 줍시다. 영화, 드라마는 다음 무비에서 받고, 음악은 네이버 뮤직에서 받습니다.

참고: https://forums.plex.tv/discussion/75675

 먼저 메타 데이터 설정을 위한 파일을 받습니다.

wget https://github.com/hojel/DaumMovie.bundle/archive/master.zip
wget https://github.com/hojel/NaverMusic.bundle/archive/master.zip

 압축을 /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins 에 풀어 줍니다.

 전 두 개를 한 번에 다운로드 했기 때문에, DaumMovie.bundle은 master.zip, NaverMusic.bundle은 master.zip.1 파일로 저장됐습니다. 정확히 따라오신다면 저와 같을 겁니다.

sudo unzip master.zip -d /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/
sudo unzip master.zip.1 -d /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/

 그리고 확인해보시면

ll /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/

 DaumMovie.bundle-master, NaverMusic.bundle-master 처럼 뒤에 "-master"가 붙어 있습니다. PMS에서 인식을 못할테니, 뒤의 -master를 지워줍시다.

 이름 변경의 용이성을 위해 먼저 이동합니다.

cd /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/

 그리고 각각의 이름을 변경해줍니다.

sudo mv DaumMovie.bundle-master DaumMovie.bundle
sudo mv NaverMusic.bundle-master NaverMusic.bundle

 마지막으로 소유권을 적절히 설정해줍니다.

sudo chown -R plex:nogroup DaumMovie.bundle
sudo chown -R plex:nogroup NaverMusic.bundle


2. Plex Media Server 설정

2.1 접속

 정상적으로 설치가 되었다면, 32400 포트를 통해 접속할 수 있습니다. 뒤에 manage 를 꼭 붙여주세요.

http://{오드로이드IP}:32400/manage

 회원제인데, 회원 가입을 해야 사용하실 수 있습니다. 한글이며 간단하니 회원가입 진행해 주시구요,

 로그인을 하시면 서버를 찾았다고 합니다.


2.2 설정

 설정 페이지로 오시면 다음과 같은 페이지가 뜹니다. 서버의 이름을 적절히 설정해줍니다.

 그리고 미디어 라이브러리를 설정합니다. 찾아보기를 누르셨을 때 일전에 autofs로 자동 마운팅한 외장하드가 뜨면 정상입니다. 적절히 설정 후 완료하세요. 그러면 자동으로 미디어 목록을 PMS로 가져올 겁니다.

 중요한 건 이 부분입니다.

 "외부에서 완전히 접근 가능" 이라는 말이 떠야 합니다. 안 뜬다면, 오드로이드 우분투의 방화벽 규칙과 공유기 사용 시 공유기의 포트포워딩 설정을 확인해주세요. 내부 오드로이드 IP에 대한 32400 포트가 외부에서 접근이 가능해야 합니다.

 그리고, TV 드라마나 예능, 영화를 미디어로 설정하셨다면 다음 무비 에이전트로 바꿉시다.

 대시보드의 왼쪽, 라이브러리에서 자신이 추가한 TV 드라마, 예능, 영화 등등에 마우스를 올리면, 옵션 아이콘이 있습니다.

 여기서 편집을 누릅니다. 그리고 고급을 눌러, 에이전트를 바꿔줍니다.

 아래와 같이 하시면 됩니다.

 다른 새로 추가할 라이브러리에 대해서도 동일하게 적용하시면 됩니다.

 음악에 대한 라이브러리라면 Naver Music을 선택하시면 됩니다.


(옵션) 안드로이드 기기에서 접속

 마켓에서 Plex for Android 를 받아 설치하시면 됩니다. 그리고 만들어둔 ID로 로그인만 하시면 자동으로 연결됩니다. 모바일에서 데이터를 아끼고 싶으시다면 설정을 통해 데이터 사용 시 화질을 조절하셔야 합니다. 그럼 자동으로 트랜스코딩해 스트리밍되므로 데이터를 아끼실 수 있습니다.

 활성화 코드를 구매하시지 않으시면 1분단위로 끊깁니다. 필요에 따라 구매하셔서 사용하실 수 있고, 만약 태블릿에도 보고 싶거나 스마트폰이 바뀌는 경우 새로운 기기에서 Plex에 로그인할 때 "이미 활성화 코드를 구매했다, 활성해달라 요청" 뭐 이런 거 누르면 간단하게 해결해주더라구요. 정확한 말은 기억이 나지 않네요 ㅎㅎ




참고 사이트:
본문 내 링크




출처 : http://awesometic.tistory.com/19?category=964086


Posted by 타카스 류지
|

연결한 외장하드는 Samba로 관리하는 게 가장 편하더군요




1. Samba 설정

(옵션) Samba 패키지 설치

sudo apt-get install samba

이미 설치되어 있다고 하네요. 하지만 혹시 모르니 한 번 타이핑 해줍시다.


1.1. Samba 계정 추가

Samba 로 공유하는 디렉토리에 접근하기 위해선, 따로 계정을 추가해 줘야 합니다. 편의상 기존 오드로이드 접속 계정(root가 아닌)과 같은 이름으로 추가해줍니다.

sudo smbpasswd -a {계정이름}


1.2 Samba 설정

sudo vi /etc/samba/smb.conf

 파일을 열고, 마지막에 다음 형식으로 추가해줍니다. 제 경우엔,

[ODROID NAS - 3.0TB]
comment = Awesometic's NAS
path = /media/externalHdd/ext1
valid users = awesometic
writable = yes
create mask = 0755
directory mask = 0755

[ODROID NAS - 1.5TB]
comment = Awesometic's NAS
path = /media/externalHdd/ext2
valid users = awesometic
writable = yes
create mask = 0755
directory mask = 0755
Xxx

 와 같이 추가해줬습니다. 참고하시고 자신의 시스템에 맞게 적절히 수정해서 적용하세요.


1.3 Samba 재시작

sudo service smbd restart


1.4 내 컴퓨터에 등록

 네트워크 위치에 ODROID(hostname)가 뜰테니 그리로 찾아가거나, 경로에 \\{오드로이드IP주소}\ 를 입력해 찾아갈 수도 있지만,

 역시 내 컴퓨터에 연결해 마치 자신의 하드 디스크인냥 사용하는 게 제일 편합니다.

 완료 스크린샷입니다.


(옵션) 삼바 설정을 통한 성능 최적화

매월 해외에서 출간되는 오드로이드 매거진 4월호를 보시면, 성능 최적화를 위한 삼바 설정이 포함되어 있습니다.

캐시 등 기능 활성화를 위해 적용하시려면 smb.conf에 아래 설정을 추가해주세요.

write cache size 부터가 추가되는 설정입니다.

[ODROID NAS - 3.0TB]
comment = Awesometic's NAS
path = /media/externalHdd/ext1
valid users = awesometic
writable = yes
create mask = 0755
directory mask = 0755
write cache size = 524288
getwd cache = yes
use sendfile = yes
min receivefile size = 16384
socket options = TCP_NODELAY IPTOS_LOWDELAY
Xxx




마지막 업데이트: 170626



출처 : http://awesometic.tistory.com/19?category=964086


Posted by 타카스 류지
|

NAS 용도인데, 외장하드는 꼭 달아야죠.

 하지만 주의하실 점은, 유전원 USB 3.0 허브가 아닌 무전원 USB 허브거나 USB 허브 없이 바로 오드로이드에 외장 하드를 꼽으실 경우.. 파워가 부족해 작동하지 않습니다.

 하드커널에선 기존 오드로이드용 5V 4A 전원 어댑터가 아닌 NAS 용도를 위한 5V 6A 어댑터를 팔기도 하지만, 전 유전원 허브를 추천드립니다.

 그리고 외장하드의 부팅 시 자동 마운트를 위해 /etc/fstab를 수정하지만, 이런 수정은 외장하드를 뺀 후 모르고 fstab 파일을 수정하지 않은 채 재부팅하면 모니터와 키보드를 들고와야 하기 때문에 autofs라는 패키지를 사용하겠습니다.


 참고로 전 USB 3.0 유전원 허브에 외장하드 두 개를 달았습니다.




0. USB 외장하드를 오드로이드에 꼽기


1. 외장하드 마운트

1.1 autofs 패키지 설치

sudo apt-get install autofs


1.2 autofs 설정

 제 설정은 다음과 같습니다.

a. sudo vi /etc/auto.master

...
#/misc  /etc/auto.misc 이 부분을 주석화하시고, 밑에 다음 줄을 추가해주세요.
/media/externalHdd /etc/auto.ext --timeout 20
...

 /media/externalHdd 란 디렉토리를 미리 만들고, 이 곳을 /etc/auto.master 파일에서 /etc/auto.ext 를 위한 마운트 포인트로 설정합니다.


b. sudo vi /etc/auto.ext

먼저 각 파티션별 UUID는 다음과 같이 확인하실 수 있습니다.

:~$ ls -al /dev/disk/by-uuid/
합계 0
drwxr-xr-x 2 root root 140  6월 24 22:24 .
drwxr-xr-x 7 root root 140  6월 24 22:09 ..
lrwxrwxrwx 1 root root  15  6월 24 22:09 52AA-6867 -> ../../mmcblk1p1
lrwxrwxrwx 1 root root  10  6월 24 22:21 68045157-025c-49c3-9fb7-11ac24960aaa -> ../../sda1
lrwxrwxrwx 1 root root  10  6월 24 22:21 9278f893-5104-4efa-9579-efc23bf51df4 -> ../../sdb1
lrwxrwxrwx 1 root root  10  6월 24 22:24 ba4fbfe1-0423-456a-b7dc-9eca0a6d3219 -> ../../sdc1
lrwxrwxrwx 1 root root  15  6월 24 22:09 e139ce78-9841-40fe-8823-96a304a09859 -> ../../mmcblk1p2
:~$ 
Bash


ext1 -fstype=ext4,rw,noatime,data=journal,commit=1 :/dev/disk/by-uuid/68045157-025c-49c3-9fb7-11ac24960aaa
ext2 -fstype=ext4,rw,noatime,data=journal,commit=1 :/dev/disk/by-uuid/9278f893-5104-4efa-9579-efc23bf51df4

 /media/externalHdd/ext1 이란 디렉토리에 UUID가 68045157~ 인 외장 하드가 마운트됩니다. 파일 시스템이 ext4 형식일 경우 옵션이고, NTFS 등 다른 거라면 구글에 검색해주세요 :)

 ext1, ext2 동일한 방법으로 적용합니다.


1.3 autofs 데몬 재시작

sudo service autofs restart

 바로 ls -al 명령어로 마운트 지점을 확인하려 하면 아무 것도 안 뜰 겁니다. 제 경우로 예를 들면,

ls -al /media/externalHdd

 를 해도 아무 디렉토리가 없다고 뜹니다. 하지만

ls -al /media/externalHdd/ext1

 을 하면 ext1 이 생기고, 이건 ext2도 마찬가지입니다. 이렇듯, 한 번 접근을 해줘야 디렉토리가 보여집니다.


1.4 권한 바꾸기

 root 권한일 경우 Samba로 접근할 때 문제가 될 수 있습니다.

 autofs로 마운팅된 디렉토리들의 권한을 바꿔줍시다.

 제 경우,

sudo chown -R awesometic:awesometic /media/externalHdd




참고 사이트

a. http://tgharold.blogspot.com/2013/08/auto-mounted-external-usb-drives-with.html
b. https://forum.odroid.com/viewtopic.php?t=25424

마지막 업데이트: 170624



출처 : http://awesometic.tistory.com/19?category=964086


Posted by 타카스 류지
|

 Webmin 은 웹 기반 유닉스 시스템 관리자 인터페이스입니다. OpenMediaVault 등 NAS를 위한 운영체제에는 기본적으로 딸려 있는데, 우린 그런 걸 사용하지 않을 것이기 때문에 사용자 관리, 패키지 업데이트 같은 웹 기반 관리는 불가능하죠. 하지만 Webmin을 통해서는 할 수 있습니다.

 설치하러 갑시다.




1. 패키지 설치

1.1 PPA 등록

 apt 명령어로 설치, 업데이트하기 위해서 PPA를 등록해줍니다.

echo "deb http://download.webmin.com/download/repository sarge contrib" | sudo tee /etc/apt/sources.list.d/webmin.list

 그리고 저장소 인증을 위해 GPG 키를 설치합니다.

wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc
rm jcameron-key.asc


1.2 설치

 새로운 저장소를 등록했으니 fetch를 위해 update합니다.

sudo apt-get update

 그리고 설치

sudo apt-get install apt-transport-https
sudo apt-get install webmin

 설치한 Webmin을 실행시켜줍니다.

sudo systemctl enable webmin
sudo systemctl start webmin


1.3 설치 확인

 설치가 정상적으로 완료되었으면, 

https://{오드로이드IP}:10000/

 으로 접속이 가능합니다.

 사이트가 안전하지 않다, 뭐라뭐라 할텐데 일단 그냥 사이트로 이동하시면 됩니다. 어차피 우리 서버니까요.


 원랜 크롬 유저지만... 북마크나 확장프로그램등 없이 깔끔함을 위해 엣지로 스크린샷 찍어봤습니다.




참고 사이트

a. https://forum.odroid.com/viewtopic.php?t=25424



출처 : http://awesometic.tistory.com/19?category=964086


Posted by 타카스 류지
|

오드로이드 XU4에서 리눅스 커널 4.9 버전을 공식 지원받기 시작했습니다.

 4.9는 LTS 버전으로, 하드커널 블로그에 따르면 2019년 초까지 지원받는다 하네요.

 기존 3.10도 LTS지만, 이젠 legacy니까 mainline 커널로 이사해 봅시다.


 커널만 따로 컴파일하여 올리는 방법도 있지만, 어차피 이것 저것 해보느라 더러워진 제 오드로이드 XU4에 새로이 하나씩 설정하려고 해요.

 설정하면서, 제가 제 오드로이드 XU4를 NAS 및 개인 클라우드 서버로서 설정하는 방법을 포스팅해보려 합니다.

 독자가 어느 정도 오드로이드와 리눅스 시스템에 지식이 있다고 생각하며 작성하겠습니다.


 주의할 점은! 안정화된 버전이 아니고 한창 디버깅중이라 모든 기능이 정상 작동하진 않을 것입니다. 자주 커널 업데이트를 확인하시길 권장드립니다.


 170521

 새로운 우분투 이미지가 나왔습니다.

https://forum.odroid.com/viewtopic.php?f=146&t=26007&sid=eea1bad8d0fad3f89626f12f5e66a39b

http://odroid.com/dokuwiki/doku.php?id=en:xu3_release_linux_ubuntu_k49

 제가 포스트에서 다룬 건 아주 초기 버전의 커널이었는데, 어느 정도 디버깅이 진행 된 커널로 새로운 이미지가 공개됐네요. GUI가 제외됐을 것으로 추정되는 미니멀 버전도 있으니 필요에 따라 선택하시면 될 것 같습니다 :)




0. 들어가기 앞서..

 먼저, 제 오드로이드 XU4의 목적은 크게 다음과 같습니다.


 NAS

 오드로이드 XU4는 USB 3.0을 지원하기 때문에 USB 3.0 외장 하드만 연결하면 쓸 만한 NAS가 됩니다. 그래서 전 0.5TB, 1.5TB, 3.0TB 외장 하드 총 세 개를 유전원 USB 허브를 통해 사용하고 있어요. 굉장히 좋습니다.
 SAMBA로 제 윈도우 컴퓨터로부터 파일을 업로드 및 다운로드 하고, 외부에선 h5ai를 이용해 간단한 파일 확인, 미디어 스트리밍 및 다운로드를 지원하고 있습니다.


 Plex Media Server - 동영상 스트리밍 서버

 스마트폰이나 태블릿으로 동영상을 따로 넣지 않아도 볼 수 있으면서, 외부에선 저화질로 트랜스코딩해 볼 수 있도록.. 모든 걸 다 해주는 애가 plex media server 입니다.


 Wordpress - 개인 웹 사이트

 아직 제대로 꾸미진 못하고 있지만, 개인 wordpress 웹 사이트를 하나 운영하는 것도 재밌을 것 같아 구축은 해두고 있습니다. 굳이 남들을 위한 포스팅이 아니더라도 개인 사이트를 활용할 방법은 많으니까요!


 개인 공부용 클라우드 서버

 서버와 연동하는 서비스 개발에 흥미가 많습니다. 안드로이드 앱과 웹을 주로 개발하는데, 이런 서버 하나 있으면 도움이 많이 되더라구요. DBMS와도 연동할 수 있구요. 대체로 Node.js 나 CodeIgniter로 소켓, 웹 서버를 열어 포트포워딩 해 사용합니다.


 그리고 웹 사이트나 NAS는 외부에서 접속하기 쉽도록 내도메인.한국 에서 kro.kr 도메인을 얻어 사용하고 있습니다. 또한, LetsEncrypt로 SSL 인증서를 발급받아 SSL로 웹 사이트를 엽니다.

 크롬에서 "안전함" 을 띄워 놓으면 뭔가 마음의 안정이 되기도 하고, 보안의 이유도 있는데, 특히나 NAS같은 경우 제 개인 서버인데 외부에서 사용하다 ID, PW가 쉽게 노출되면.. 어휴

 마지막으로 전 오드로이드는 클라우드 서버로만 사용하기 때문에, GUI, 데스크탑 환경은 최대한 배제합니다.

 따라서 이번 포스팅은 위에서 나열한 모든 걸 간단히 정리합니다.

 처음부터요.




1. 우분투 16.04(리눅스 커널 4.9 버전 포함) 설치

1.1 다운받기

 http://dn.odroid.com/5422/ODROID-XU3/Ubuntu/trial_4.9/ubuntu-16.04.2-mate-odroid-xu4-20170222.img.xz

 하드커널에서 오드로이드 XU3, XU4를 위한 커널 4.9버전이 포함된 우분투 16.04.2 Mate를 배포해주기 시작했습니다. 받아서 압축을 풀어주세요.


1.2 Win32DiskImager 다운받아 설치

 https://sourceforge.net/projects/win32diskimager/

 Win32DiskImager를 이용해 부팅 디스크(SD카드나 eMMC)에 위에서 다운 받은 운영체제 이미지를 올리기 위함입니다. 받아서 설치해주세요.


1.3 Win32DiskImager를 이용해 부팅 디스크에 이미지 쓰기

 Win32DiskImager를 실행해, Image File 에서 폴더 아이콘 클릭 후 받아 둔 우분투 이미지를 선택합니다. 그리고 오른쪽 Device에서 부팅 디스크에 맞는 알파뱃을 고르세요. 이상한 거 고르면 다 날아가니까 주의하세요.

 모두 맞게 설정하셨다면 하단에 Write를 누릅시다.


1.4 오드로이드 XU4에 부팅 디스크로 부팅하기

 SD카드면 옆면의 SD카드 슬롯에, eMMC면 아랫면에 eMMC 슬롯에 꼽고, 부트 모드 스위치를 알맞게 똑딱 하신 후 전원을 넣습니다. 물론 인터넷 랜선도 연결돼 있어야 합니다.



2. SSH 접속하기

(추천) Xshell 설치

 http://www.netsarang.co.kr/xshell_download.html

 개인적으론 SSH 접속 프로그램으로 Xshell을 좋아합니다. PuTTY나 심지어 이젠 윈도우 10의 배쉬에서도 SSH 접속이 가능하지만, Xshell이 로그인 정보 저장, 화면 분할, 폰트 변경 등 편하더라구요.


2.1 오드로이드 XU4에 접속

 오드로이드에 할당된 IP 주소를 이용해 SSH 접속합니다. 기본 로그인 정보는 root / odroid 또는 odroid / odroid 입니다.


2.2 데스크탑 환경(GUI) 비활성화 및 삭제

 https://askubuntu.com/questions/823479/how-to-remove-gui-on-ubuntu-server-16-04

 서버로만 사용하기 때문에, GUI 환경이 필요 없습니다. 따라서 아래 명령어로 제거해줍니다.

sudo systemctl disable lightdm.service

 GUI와 관련된 x11 또는 qt 관련 파일들과 그들의 의존성 패키지들을 전부 제거해줍니다.

sudo apt-get purge libx11.* libqt.* && apt-get autoremove


2.3 cups 삭제

 2.2 를 진행하시면 다음부터 apt 명령어 작업을 하실 때 뭔가 의존성 문제를 계속 뿜습니다. cups 관련 패키지들이 없다는 말인데, 프린터 관련 패키지인 cups 자체를 지워줍니다.

sudo apt-get purge cups* && apt-get autoremove


2.4 Chromium, Firefox, Kodi 삭제

 이번에 하드커널에서 배포한 우분투 이미지엔 Chromium과 Kodi, GStreamer 가 기본 설치되어 있습니다. Firefox는 우분투의 원래 기본 설치 패키지이구요.

 Kodi는 개인적으로 안 쓰니 삭제하고, Chromium과 Firefox 또한 GUI가 아니기 때문에 필요 없습니다.

 GStreamer는 설명에 보면 비디오 인코딩/디코딩을 위해 존재한다고 합니다. 간단히 찾아보니 Plex Media Server 사용 시 트랜스코딩할 때 ffmpeg 대신 사용할 수 있다는 것 같네요. 아직은 사용할 줄 모르지만 훗날을 위해 남겨둬 보겠습니다.

sudo apt-get purge chromium* firefox* kodi* && sudo apt-get autoremove


2.5 재부팅

 많이 제거해줬으니 한 번 재부팅 해줍니다.

sudo reboot


2.6 패키지 업그레이드

 이제 살아남은 기본 패키지들을 업그레이드 해줍니다.

sudo apt-get update && sudo apt-get dist-upgrade -y

 커널 업데이트가 포함되어 있으니 재부팅 해줍니다.

sudo reboot

 재부팅 후 기존 커널 관련 파일들을 autoremove로 지워줍니다.

sudo apt-get autoremove


2.7 vim 설치

 앞으로 vi를 이용한 설정 파일 수정이 많기 때문에, vim를 설치하겠습니다.

sudo apt-get install vim


2.8 한글 설정

 터미널에서 정상적으로 한글을 출력하기 위해 기본 문자셋을 한글로 바꿔주는 작업입니다.

 한글 패키지를 다운 받습니다.

sudo apt-get install language-pack-ko-base

 로케일을 한글로 업데이트 시켜줍니다.

sudo update-locale LANG=ko_KR.UTF-8

 환경변수도 설정해줍니다.

sudo vi /etc/environment

 마지막에 다음 두 줄 추가

LANG="ko_KR.UTF-8"
LANGUAGE="ko_KR:ko:en_US:en"

 마지막으로 시간대를 서울로 바꿔주기 위해 ~/.profile 마지막에 추가합니다.

vi ~/.profile
TZ='Asia/Seoul'; export TZ

 새로운 사용자에게도 적용하기 위해, /etc/skel/.profile 에도 추가합니다

sudo vi /etc/skel/.profile
TZ='Asia/Seoul'; export TZ

 추가로 기본 시간대를 바꿔줍니다.

dpkg-reconfigure tzdata

 Asia/Seoul 로 설정해주시면 됩니다.

 재부팅 해줍니다.

sudo reboot


3. 사용자 추가

3.1 기존 계정 삭제

 기본 계정 중 odroid란 계정이 있습니다. 과감히 지워줍시다.

sudo deluser -remove-all-files odroid

 원래 이러면 홈디렉토리를 포함하여 삭제해주는데 이상하게 남아있네요. 제거해줍니다.

sudo rm -rf /home/odroid

 170502 과감히 지우려 했는데, 커널 업데이트할 때 사용자 odroid가 없다고 뭐라 하네요. 남겨놔야 하는 것 같습니다. 


3.2 사용자 계정 추가

 자신만의 계정을 추가해줍니다.

sudo adduser {계정이름}

 실행 시 묻는 질문들에 적절히 대답해 줍니다.


3.3 추가한 계정에 sudo 권한 부여

 이젠 SSH로 root 접속을 불가능하게 할 것입니다. 따라서, 추가한 계정에 sudo 권한을 부여해줍니다.

sudo usermod -G sudo awesometic


4. root 로그인 설정

4.1 root 패스워드 변경

 root 계정의 패스워드가 아직도 odroid입니다. 어렵게 바꿔줍시다.

sudo passwd


4.2 SSH로 root 로그인 방지

 SSH에 root로 로그인할 수 없도록 해주는 과정입니다.

sudo vi /etc/ssh/sshd_config

 내용 중 

 PermitRootLogin yes 를 찾아 yes를 no 로 바꿔 저장합니다.

 그리고 sshd 서비스를 재시작해줍니다.

sudo service sshd restart




 우분투 설치 및 기본 설정을 마쳤습니다.

 이제 개인 클라우드 서버를 위한 작업들을 진행하겠습니다.



출처 : http://awesometic.tistory.com/19?category=964086


Posted by 타카스 류지
|

160626 조만간 ODROID XU4 용 Ubuntu 16.04 LTS Server 가 지원될 예정이라고 함!

160720

 - Ubuntu 16.04 LTS 로 업데이트

 - 커널도 이미 3.10.96이고, root 파티션도 확장되어 있어 내 용도에는 odroid-utility 가 굳이 필요 없었음

170122

 - 최초 패키지 업데이트시 프롬프트 관련 추가

 - tzselect 관련 업데이트





1. OS 설치 (여기선 Ubuntu 16.04 LTS Minimal)

http://odroid.in/?directory=.%2Fubuntu_16.04lts%2F


// 여기부턴 오드로이드에 SSH 접속 후 진행

2. root 패스워드 변경

# passwd


// # reboot

 

4. 패키지 업데이트 

# apt-get update; apt-get upgrade -y

# apt-get autoremove

패키지 업데이트 시 묻는 프롬프트들은 전부 그냥 엔터 쳐서 default로 설정


5. 한글 설정 (해당 설정을 하지 않으면 한글이 전부 깨져서 표기됨)

# apt-get install -y language-pack-ko-base

# apt-get install ttf-unfonts-core

# update-locale LANG=ko_KR.UTF-8

5-1. 환경변수 추가 작업

# vi /etc/environment

끝에 다음 내용 추가

LANG="ko_KR.UTF-8"

LANGUAGE="ko_KR:ko:en_US:en"


6. 시간대 설정 (Asia, South Korea 를 선택해 최종적으로 Asia/Seoul 로 설정)

# tzselect


// # reboot


7. root 외 계정 추가

# adduser {계정이름}



출처 : http://awesometic.tistory.com/19?category=964086


Posted by 타카스 류지
|

포트포워딩을 해주셔야만 카페 등 외부에서 오드로이드 NAS 로 접근하실 수 있습니다.

포트포워딩이 뭔지 잘 모르시는 분들은 아래 포스팅을 봐주세요.

2017/07/21 - [오드로이드 XU4] - 포트포워딩 이란?

적용해 봅시다.


* 오드로이드 NAS가 공유기를 거치지 않고 공인 IP를 바로 사용한다면 포트포워딩을 해주시지 않아도 좋습니다. 공인 IP로 바로 접근하실 수 있어요. 또는 공유기에서 공인 IP에 들어오는 정보들을 오드로이드 MAC 주소에 바로 쏴줄 수도 있습니다. Twin IP나, DMZ 기능도 있구요. 이럴 경우에도 포트포워딩이 필요하지 않습니다. 하지만 이럴 경우 포트포워딩은 이미 하실 줄 안다고 생각할 수 있기 때문에 오드로이드 NAS를 위한 포트포워딩 과정을 설명하도록 하겠습니다.




1. 공인(외부) IP 알아내기

포트포워딩 설명 포스팅에서 말씀드렸듯, 공인 IP를 알아내야 다른 장소에서도 집의 오드로이드 NAS에 접근할 수 있습니다. 공인 IP를 알아내는 사이트는 굉장히 많은데, 저희는

https://www.whatismyip.com/

여기로 들어가서 알아봅시다. 링크를 눌러 들어가시게 되면

이런 화면이 나와요. "Your IP Address Is: " 아래 모자이크 친 부분에 IP가 쓰여 있을 겁니다.



2. 공유기 설정 페이지 접속

공유기의 설정 페이지는 보통 게이트웨이 주소로 접근하실 수 있습니다.

게이트웨이는 어떤 공간이나 지역에 들어가기 위해 거쳐야만 하는 어떤 관문 같은 것이라 생각하시면 됩니다. 위키피디아의 예시에도 나와있듯, 비행기를 타고 해외 여행을 갈 때 꼭 들려야 하는 공항을 게이트웨이라 할 수 있다고 합니다.

보통 ipTIME 공유기라면 웹 브라우저 주소창에 192.168.0.1 라고 입력하시면 됩니다.

만약 안 된다면 아래 표를 참고해주시고,

출처: http://brand-me.tistory.com/195

그래도 모르시겠다면 출처에서 cmd 를 통해 게이트웨이 주소를 알아내는 것을 따라해보시길 바랍니다.

공유기 설정 페이지에 접속하시면, ipTIME의 경우

이런 삭막한 화면이 뜹니다. 암호와 보안문자 입력 후 "관리도구" 아이콘 클릭, 마지막으로 "고급 설정"에서 포트포워딩 관련 메뉴로 찾아갑시다.

여기서 규칙을 추가해주시면 됩니다.



3. 포트포워딩 적용

이전에 설명 드렸듯, 포트포워딩은 규칙입니다. 이런 포트로 누가 접근하면, 여기로 넘겨줘라. 이게 끝입니다.

이런 식으로 적어줍시다. 내부 IP주소는 목적지 IP 주소라고 보시면 됩니다. 제 오드로이드는 192.168.50.10 이니까 이렇게 적었습니다. 그리고 웹 접근을 위한 약속된 외부 포트가 80번이니 그대로 내부 포트 80으로 보내줍시다.

지금까지 설정한 NAS 기능들을 나열해보면, 

서비스 (포트번호)

FTP (21)
SSH (22)
Web (80)
Seafile (8000, 8021)
Plex (32400)
Transmission (9091)

등등이 있겠네요. Samba는 내부 네트워크 전용 기능이라 외부에서 사용하실 수 없습니다. VPN을 사용하면 가능하긴 하지만 여기선 다루지 않겠습니다. 

위의 6개 서비스가 있다면,

이런 식으로 될 수 있겠습니다. Seafile이 포트 2개를 사용하기 때문에 나열된 6개보다 한 개가 더 많습니다.

참고로 SSH의 경우 22번 그대로 쓰시게 되면 보안상 위험할 수 있습니다. 외부 포트로 특별히 다른 포트(1024 이상의)를 지정해주신 뒤 내부 포트 22로 돌리시면 됩니다.

마지막으로,

오른쪽 위의 "저장" 버튼을 눌러줍시다.



4. 적용 및 테스트

이제 외부 IP를 통해서 오드로이드 NAS에 접근하실 수 있습니다. 지금까지 사용하던 오드로이드 NAS의 가짜 아이피(192.168.x.x) 대신 외부 IP를 넣어주시면 됩니다. Plex도 가능해졌어요. 하나씩 설정해봅시다. Web(OMV 관리자 페이지)과 SSH는 제외했습니다.

1) FTP (안드로이드)

ES 파일 탐색기 앱에서 네트워크 - FTP 메뉴로 들어갑니다.

이전에 설정해 둔 FTP 폴더가 있습니다. 길게 누르고 있으면,

이렇게 "스캔" 버튼 아래에 메뉴가 생깁니다. "서버 편집" 메뉴를 누릅니다.

그리고 이렇게 서버 란을 외부 IP(예시, 100.100.100.100)로 바꿔주심 됩니다.


2) Seafile (안드로이드)

Seafile은 웹 클라이언트와 안드로이드 클라이언트 모두 바꿔주셔야 합니다.

먼저 웹부터 바꿔봅시다. Seafile 에 웹으로 접속해봅니다. 

그리고 위의 스크린샷처럼 사용자 프로필을 누르면 "시스템 관리자" 메뉴가 있습니다. 들어가 "설정" 메뉴로 갑니다.

여기서 "SERVICE_URL" 과 "FILE_SERVER_ROOT"의 IP 주소를 외부 IP로 바꿔주시면 됩니다.

수정하실 때 오른쪽에 생기는 V 표시를 꼭 눌러주세요. 그리고 꼭 실수 없이 적어주셔야 합니다.

// 웹을 통한 주소 변경 테스트 필요

이제 안드로이드 앱에서 설정해봅시다. 앱을 열으신 후 오른쪽 위의 메뉴 버튼을 누르면,

이렇게 "설정" 메뉴가 있습니다. 들어가신 다음 "로그아웃" 옵션을 눌러 로그아웃해줍니다. 그러면,

처음 Seafile 앱을 켰을 때처럼 서버와 계정을 설정해주실 수 있습니다. "계정 추가"를 누르신 뒤,

이렇게 외부 IP 주소와 포트 번호를 적어주시고 로그인하시면 됩니다.


3) Plex

Plex는 웹 클라이언트에서 외부 연결 설정만 해주시면 됩니다. 아주 간단합니다.

Plex 웹 클라이언트로 접속해 서버 설정에서 "원격 접속" 메뉴로 가봅시다.

스크린샷처럼 아래에 "공개 포트 수동 설정"을 체크해주시고, 32400 을 넣으신 뒤 "재시도" 버튼을 눌러보세요. 전 이미 사용하는 오드로이드 NAS가 따로 돌고 있기 때문에 스크린샷에선 이용 불가라고 뜨지만,

잘 설정될 경우 "외부에서 완전히 접근 가능" 메시지가 나타납니다. 이렇게 되면, 드디어 안드로이드 앱에 로그인해 외부에서 원격으로 보실 수 있습니다.


4) Transmission (안드로이드)

Transmission 앱에서 왼쪽 벽을 오른쪽으로 밀어 Navigation Drawer를 열면,

아래에 "설정" 메뉴가 있습니다. 눌러봅시다.

"서버" 메뉴가 있네요. 얘로 들어가면,

이렇게 설정해둔 Transmission 웹 클라이언트 서버 목록들이 뜹니다. 눌러서 들어가게 되면,

서버 주소를 바꿀 수 있게 됩니다. 외부 IP를 넣으시면 됩니다.



* 포트포워딩을 한다는 것 자체가 공유기 나름의 방화벽 기능입니다. 포트포워딩을 하지 않으면 내부 네트워크의 어떤 호스트(장치)에도 접근할 수가 없습니다. 그리고 SSH 외부 포트를 다르게 지정하는 것도, SSH 접근을 어렵게 하기 위한 기능이 됩니다.

* 인터넷 TV 등의 이유로 공인 IP를 받은 공유기와 오드로이드가 연결된 공유기가 서로 다르다면, 두(또는 그 이상) 공유기 모두 포트포워딩 설정을 하셔서 오드로이드 NAS로 길을 뚫으셔야 합니다. 이 경우 공유기 설정 페이지 주소(게이트웨이 주소)가 다를 수 있으니 직접 알아보셔야 합니다. 

* 만약 도메인을 사용하시게 되면, 도메인과 서브 도메인을 통해 각 서비스에 접근하실 수 있습니다. 예를 들어, example.com 이란 도메인을 얻으셨을 때, OMV 관리자 페이지는 omv.example.com, Transmission은 transmission.example.com 등으로 접근이 가능합니다. 따라서 포트포워딩도 80번 하나로 줄여질 수 있습니다. 이 작업에 대해선 추후 도메인 관련 포스팅에서 다루도록 하겠습니다.

출처 : http://awesometic.tistory.com/58?category=964085

Posted by 타카스 류지
|

오드로이드 NAS 서버에서도 토렌트를 받으실 수 있습니다. 서버는 365일 24시간 돌아갑니다. 토렌트도 365일 24시간 받게 할 수 있으며, 저희는 NAS 용도이기 때문에 받는 족족 모바일이나 다른 기기에서 스트리밍할 수 있어 굉장히 편합니다.

OMV 플러그인으로 지원하는 토렌트 클라이언트인 Transmission 을 설치해 사용해봅시다.




1. Transmission 설치

OMV 플러그인 메뉴로 가 transmission을 검색하신 후 설치하시면 됩니다.



2. 공유 폴더 생성

토렌트 파일을 받을 위치에 대한 공유 폴더를 먼저 만들어주셔야 합니다.

OMV 공유 폴더 메뉴로 가 Torrent 라는 이름의 공유 폴더를 생성하겠습니다.

그리고 새로 생성한 공유 폴더의 접근 제어 목록(ACL)을 설정해줍니다.

"공유 폴더 ACL 수정" 대화 상자가 떴다면, 사용자/그룹 권한에서 debian-transmission 사용자와 그룹에 대해 읽기/쓰기 권한을 부여해줍니다. 그리고 "재귀적으로" 스위치를 활성화해줍니다.

위 스크린샷과 같이 되면 됩니다. "적용"을 누르신 후, "닫기" 버튼을 통해 빠져나옵시다.

이것으로 Transmission 사용을 위한 디렉토리가 준비되었습니다.



3. 활성화

OMV BitTorrent 메뉴로 갑시다.

이것 저것 많아 보이지만, 잘 따라오시면 편리하게 사용하실 수 있습니다.

먼저 "Files and Locations" 메뉴로 갑니다.

위 스크린샷의 화면처럼 나올 겁니다. "내려받기", "미완료", "감시"가 있습니다. 하나씩 설정해줘야 합니다.

먼저 "내려받기"의 공유 폴더를 좀 전에 만든 Torrent 공유 폴더로 지정해줍니다.

그리고 디렉터리에 complete 등을 써놓습니다. 토렌트 다운로드가 완료될 때 파일이 옮겨질 디렉토리입니다.

적용 예시 스크린샷입니다.

"미완료"에는 먼저 활성화 하신 후, 공유 폴더는 "내려받기"와 같은 Torrent 공유 폴더, 디렉터리는 미리 입력된 incomplete를 씁시다.

적용 예시 스크린샷입니다.

"감시"도 동일하게 적용해줍니다. 디렉터리는 미리 입력된 watch 로 하겠습니다.

적용 예시 스크린샷입니다.

설정이 완료되었으면 저장 및 적용합니다.

위의 "설정" 탭으로 이동해 활성화, 저장 및 적용합니다.

웹이나 모바일에서 토렌트를 관리하기 위해 위의 "RPC" 탭으로 이동합시다.

사용자 이름과 암호를 적절히 바꿔준 후, 활성화해 저장 / 적용합니다. 위는 적용 예시입니다. 필요하다면 포트 번호도 바꿔주실 수 있습니다.

* RPC 관련한 설정은 OMV에서 저장/적용 해도 실제로는 상당히 오랜 시간 동안 웹 페이지에 접속이 불가능할 수 있습니다. 적용 5분 정도 후 트랜스미션 웹 페이지에 접속해 보세요.

그리고 "보이기" 버튼을 클릭해봅시다.

정해둔 계정 정보로 로그인하게 되면,

이런 화면이 뜹니다. 여기서 토렌트를 관리하시면 됩니다.



4. 안드로이드 스마트폰에서 토렌트 업/다운로드 관리하기

* 지금은 같은 네트워크(공유기) 안에 있을 때만 가능합니다.

* 테스트에 사용된 스마트폰은 USIM이 없는 갤럭시 노트4 입니다.

컴퓨터를 키지 않고도 안드로이드 스마트폰에서 편하게 관리하실 수 있습니다.

먼저 Transmission 컨트롤 앱을 다운로드 받습니다. Transmission 공식 앱은 없고, 다른 개발자들이 웹에서처럼 Transmission을 컨트롤하기 위해 개발한 앱들입니다. 

https://play.google.com/store/apps/details?id=net.yupol.transmissionremote.app&hl=ko

그리고 실행해보면,

환영해줍니다. 서버를 추가해줍시다.

위 스크린샷처럼 적어주시면 되겠습니다. 이름과 안드로이드 IP 주소, 그리고 인증 정보입니다. 그리고 "확인" 버튼을 누르시면

이렇게 스마트폰에서 관리할 수 있게 됩니다.



5. 사용 테스트

간단하게 토렌트 파일 몇 개를 업로드해서 테스트해보겠습니다.

웹과 안드로이드 모두 잘 되네요 :)

다 받으면,

이렇게 알림도 줍니다 :)



* 웹 클라이언트에 도메인/SSL 적용

9091 포트로 접근할 수 있지만, 보안을 위해 도메인과 SSL을 적용할 수 있습니다. 이는 다른 포스팅에서 진행됩니다.


* RSS

RSS를 통해 드라마나 예능을 매주 자동으로 받을 수 있습니다. 파일 이름으로 걸러내 받기 때문에 매번 정확하고 신뢰높은 자료를 받는다는 보장은 없지만, 대부분의 경우 잘 받아지는 것 같습니다.

하지만 RSS 로 토렌트를 제공하는 믿을 만한 토렌트 사이트를 먼저 알아내셔야 하고, 무엇보다 제가 아직 RSS 로 자동으로 토렌트를 받아보진 않았기 때문에 추후 업데이트 하도록 하겠습니다.


출처 : http://awesometic.tistory.com/57?category=964085

Posted by 타카스 류지
|

FTP로 동영상을 스트리밍하실 수 있습니다. 하지만 원본 동영상이기 때문에 영상에 따라 데이터가 굉장히 많이 들 수 있어요. 2GB 가량의 예능이나 드라마 한 편을 봐도 파일을 그대로 가져오기 때문에 보통 와이파이 없이는 할 수 없습니다. 

Plex는 데이터 걱정을 덜어줍니다. 트랜스코딩을 지원하기 때문에, 원하는 동영상 해상도를 지정해서 스트리밍을 쏴줍니다. 예를 들어, 720p 예능 한 편이 2GB여서 부담이 됐다면, 480p 정도로 트랜스코딩하여 부담을 줄일 수 있어요. 트랜스코딩 후 실제 데이터 사용량은 1GB 밑이 됩니다.

또한 Plex는 스트리밍하고자 하는 장치에서 지원하지 않는 코덱이라도 트랜스코딩을 통해 지원하게끔 해줍니다. 트랜스코딩이 결국 실시간 인코딩이기 때문에 가능한 일이죠.

하지만 역시 서버의 성능이 좋아야 합니다. 인코딩, 디코딩에 높은 성능이 필요한 영상 코덱이라면 서버에 부담이 많이 가중됩니다. 그래도 XU4는 720p~1080p정도 x264 드라마, 예능 정도라면 혼자 볼 땐 충분히 받쳐주는 것 같더라구요. 압축률이 높고 비트레이트가 아주 높은 (10000kbps 이상)의 영상이 아닌 이상 볼 만합니다.

게다가 Plex는 TV 영상이나 드라마, 음악 등 공공 미디어에 대한 메타 데이터를 외부 서버로부터 가져와 붙여줍니다. 만약 태양의 후예라면, 단순한 파일 리스팅이 아닌 각 화별 썸네일, 줄거리, 매 화 이름 등등을 보여줍니다. 외국 드라마의 경우 테마 곡까지 들려주고, 영화는 예고편도 가져와주더라구요. 파일 이름을 통해 외부 서버로부터 가져오는 것이기 때문에 별도의 파일 네이밍 작업이 조금 필요하고, 국내 TV나 음악의 지원을 위해 별도의 작업 또한 필요하지만 모아놓고 보면 굉장히 뿌듯해지는 기능입니다.




1. Plex 설치

OMV Extras 메뉴로 갑시다.

Plexmediaserver 항목이 있습니다. 클릭해서 편집을 누르시면 활성화 스위치가 있는데, 활성화하신 다음 저장 후 적용하시면 됩니다.

그리고 OMV 플러그인 메뉴로 가 plex 라고 검색해 설치합시다.



2. Plex 활성화

OMV Plex Media Server 메뉴로 갑시다.

데이터베이스 볼륨으로 장착한 HDD 선택한 다음 활성화해준 후 저장, 적용합니다.

그러면,

이렇게 바뀝니다. Plexpy addon 항목이 생겼는데 얘는 무시해주셔도 됩니다. 위에 "플렉스 웹 클라이언트"라는 버튼을 누릅시다.

이런 창이 뜹니다. 간단히 회원가입 후 넘어가줍시다.

넘어가시다 보면 이런 화면이 뜹니다. 친근한 이름을 정해주시고, 집 밖에서도 미디어에 접근 가능하도록 허용하신 후 다음을 눌러줍니다.

라이브러리를 추가해줍니다.

이름을 적당히 넣어주시고, 언어는 한국어로 해줍니다. 그리고 왼쪽의 "폴더 추가" 메뉴를 누르시면, "미디어 폴더 찾아보기" 버튼이 있습니다. 얘를 누르면,

이런 창이 뜹니다. OMV에선 저장장치가 보통 "/srv/dev-disk-by-id-..." 형식의 디렉토리에 마운트되는 것으로 보입니다. 해당 폴더를 선택하시면 자신의 저장 장치 내용이 뜰 겁니다. 적절한 폴더를 선택한 후 추가해줍니다.

그리고 마지막으로 "고급" 메뉴를 눌러줍니다.

여러 가지 상세한 설정을 하실 수 있습니다. 보통 아무 것도 안 만져도 되지만, 필요하신 분은 잘 읽어보신 다음 설정해주시면 될 것 같습니다. 참고로 영화의 경우 "Localized title" 옵션이 있는 것 같습니다. 이걸 체크해주시면 한글을 1순위로 줄거리와 제목이 뜰 겁니다.

"라이브러리 추가" 버튼을 누르시면 추가된 라이브러리를 보실 수 있습니다. 필요에 따라 전부 다 추가됐다 싶으면 "다음" 버튼을 눌러 넘어가줍시다. 앱을 받아라, 사용 정보를 전송해달라 하는데 읽어보신 후 넘어가시면,

이렇게 뜹니다. 지정한 폴더에 미디어를 넣으시면 해당 미디어의 포스터와 정보가 보여질 겁니다. 만약 안 뜬다면, Plex 미디어 준비 페이지를 참고해 파일 네이밍을 다시 해주시거나, 아래의 국내 TV 메타 데이터를 위한 추가 작업을 하시면 됩니다.



3. 기본 설정

Plex 설정을 위해 설정화면으로 가야 합니다. 메인 화면에서 오른쪽 위의 스페어, 드라이버가 X 자로 놓여진 아이콘을 누릅니다. 왼쪽에서 두번째 아이콘입니다.

1) 트랜스코딩

트랜스코딩 관련 설정을 통해 XU4에 부하를 줄여줍시다.

"서버" - "트랜스코더" 메뉴로 갑시다.

품질과 동시 트랜스코딩 수를 정해줄 수 있습니다. 이것도 중요하지만, 먼저 오른쪽 위의 "고급설정 보이기" 버튼을 클릭합시다.

뭔가 항목이 많아졌습니다. 저희가 건들 건 품질과 임시 디렉토리, 프리셋입니다.

품질은 "속도 위주 인코딩"으로 맞춰주시고, 마지막에 x264 프리셋을 "최고로 빠르게"로 맞춰줍니다. 마지막 항목은, 모바일 기기에서 감상하기 전 Plex에서 미리 트랜스코딩을 해놓는 최적화 작업을 따로 설정해줄 수 있는데 그 작업에 해당하는 것으로 보입니다. 추가된 영상을 바로 보시지 않고 오랜 시간 후 보시게 된다면, 기본값인 "매우 빠르게"로 보시면 될 것 같습니다. 최적화를 사용하시지 않는 분들은 무시하셔도 됩니다.

그리고 트랜스코더 임시 디렉토리를 설정해줄 수 있습니다. 트랜스코딩할 땐 인코딩된 조각 파일들이 서버 어딘가에 저장되어야만 합니다. 기본값으로 데이터베이스 볼륨 아래에 저장됩니다. 여기서, 외장하드에 데이터베이스 볼륨을 설정하면 접근 속도와 전송 속도가 OS가 설치된 저장장치에 비해 느리다는 단점이 있습니다만, SBC를 쓰는 저희는 OS가 설치된 SD카드가 외장하드보다 더 느리기 때문에 그대로 두겠습니다. 만약 PC나 노트북 등에 OMV를 설치하신 후 이 글을 보시는 분들이 계시다면 경로를 /tmp 아래로 바꿔주시길 바랍니다.


2) 라이브러리 자동 갱신

Plex 라이브러리로 묶인 폴더에 새로운 동영상 파일을 추가할 때 매번 갱신을 해주지 않으면 Plex에 나타나질 않습니다. 동영상을 추가할 때마다 갱신을 해주는 건 굉장히 귀찮기 때문에 자동으로 갱신하게끔 설정해줍시다.

"서버" - "라이브러리" 메뉴로 갑시다.

"내 라이브러리 자동갱신" 과 "변경사항이 발견될 때 부분적인 스캔 실행" 을 체크해준 후 스크롤을 내려 "변경 저장" 버튼을 눌러줍니다. 부분 스캔 관련 옵션은 "고급설정 보이기" 버튼을 클릭했을 때만 나타납니다.

이 설정들 외에 다른 설정들도 읽어보시고, 필요하신 걸 해주시면 되곘습니다.



* Plex 플러그인 설치를 통해 국내 TV, 음악 호환성 높이기

참고: https://forums.plex.tv/discussion/75675/korean-movie-tv-music-metadata-agents

Plex 는 기본적으로 외국(특히 미국?) 서비스라, 모든 나라의 모든 영상 매체를 호환하진 않는 것 같습니다. 나와도 영어 설명으로 나올 확률이 크구요.

우린 한국인이기 때문에 OMV 플러그인을 통해 국내 Agent를 추가해줘야 좋습니다. 꼭 하셔야만 하는 과정은 아닙니다.

여기서 조금 전문스러워집니다. 먼저 UAS 해제 포스팅을 참고하여 SSH 접속해줍시다.

플러그인을 다운받아야 합니다.

한 줄씩 복사해서 붙여넣어 주세요. /srv/dev-.. 로 시작하는 경로만 각자 다를 수 있습니다.

아래 명령어를 통해 받아줍니다.

wget https://github.com/hojel/DaumMovie.bundle/archive/master.zip
wget https://github.com/hojel/NaverMusic.bundle/archive/master.zip
Bash

아마 master.zip, master.zip.1 로 받아졌을 겁니다. 얘네 압축을 플러그인 폴더에 해제해야 합니다. Plex 플러그인 폴더는 그 Plex를 처음 활성화할 때 지정한 데이터베이스 볼륨에 존재합니다. 따라서 사람마다 다르기 때문에 각자 경로를 찾아 지정해줘야 해요.

다음 명령어를 통해 경로를 찾고,

df | grep /dev/sda1 | awk '{print$6}'
/srv/dev-disk-by-id-usb-JMicron_USB_to_SATA_bridge_DB00000000013B-0-0-part1
Bash

결과로 나온 경로를 참고해 압축을 풀어줍니다.

unzip master.zip -d /srv/dev-disk-by-id-usb-JMicron_USB_to_SATA_bridge_DB00000000013B-0-0-part1/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/
unzip master.zip.1 -d /srv/dev-disk-by-id-usb-JMicron_USB_to_SATA_bridge_DB00000000013B-0-0-part1/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/
Bash

그리고 해당 경로로 가 Plex 프로그램이 플러그인인 것을 알아챌 수 있도록 이름을 바꿔줍시다.

cd /srv/dev-disk-by-id-usb-JMicron_USB_to_SATA_bridge_DB00000000013B-0-0-part1/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/
mv DaumMovie.bundle-master DaumMovie.bundle
mv NaverMusic.bundle-master NaverMusic.bundle
Bash

마지막으로 소유권을 Plex로 바꿔줍시다.

chown -R plex:nogroup DaumMovie.bundle
chown -R plex:nogroup NaverMusic.bundle
Bash

이젠 Putty를 종료하셔도 됩니다.

exit
Bash

설정을 잘 하셨다면, 라이브러리 편집을 통해 이번에 추가한 국내 Agent로 바꿔줄 수 있습니다.

추가한 라이브러리에서 "편집" 메뉴로 갑시다. 대시보드(메인 화면)를 통해 아래 그림처럼 가시면 됩니다.

"고급" 메뉴를 누르시면,

에이전트 부분이 있습니다. 이걸 Daum Movie로 바꾸시면 됩니다.



* Plex 수동 업데이트

OMV 플러그인은 해당 프로그램을 OMV화해서 제공하는 게 아니라, OMV 웹에서 쉽게 다룰 수 있도록 프로그램과 OMV 사이에 다리만 놔주는 느낌입니다. 모든 게 그런 건 아닙니다만 Plex 플러그인은 그 성질이 좀 더 강해서, 다른 앱들과 다르게 OMV 업데이트할 때 Plex의 버전까진 올라가질 않습니다.

그래서 Plex를 수동으로 업데이트해줘야 합니다. 여기서 또 오드로이드 서버에 SSH 접속을 해야만 합니다.

먼저 OMV Plex Media Server 메뉴에서 활성화를 해제해준 후 플러그인을 설치할 때처럼 SSH에 접속합니다. 활성화 해제하실 때 저장 및 적용 잊지 마시구요.

그리고 아래 명령어를 통해 현재 작동 중인 Plex 프로그램을 확실히 중지합니다.

service plexmediaserver stop
Bash

ARM 용 Plex 최신 버전을 제공해주는 저장소에서 최신 버전 Plex 설치 파일 링크 주소를 복사합니다.

2017년 7월 24일 현재 1.7.5.4035입니다. 해당 저장소엔 항상 최신 파일만 유지되는 것으로 보이니, 있는 파일을 우클릭하여 링크를 복사하시면 됩니다.

그리고 wget으로 설치 파일을 받아줍니다. 파일 이름이 다를 수 있으니 꼭 확인하시고, 맞는 주소를 입력해주세요.

wget https://dev2day.de/pms/pool/main/p/plexmediaserver-installer/plexmediaserver-installer_1.7.5.4035-313f93718-1_armhf.deb
Bash

dpkg 명령어를 통해 설치합니다.

dpkg -i plexmediaserver-installer_1.7.5.4035-313f93718-1_armhf.deb
Bash

OMV Plex Media Server 메뉴에서 다시 활성화해줍니다. 이미 활성화가 되어 있는 경우 해제 후 다시 활성화해줍니다. 각 단계마다 저장 및 적용을 하셔야만 하구요.



* 안드로이드 스마트폰 연동과 포트포워딩

https://play.google.com/store/apps/details?id=com.plexapp.android&hl=ko

Plex 에서 공식적으로 안드로이드 앱을 제공해줍니다. 설치하고 키면 로그인을 할텐데, 로그인까지 하시면 바로 오드로이드 XU4의 Plex 서버가 뜹니다.

하지만 아직 사용하실 수 없습니다. Plex는 계정에 서버 IP와 포트를 저장해놓습니다. 그 계정은 Plex 본사에서 관리하구요. 안드로이드 앱으로 접근하려면 앱 로그인 -> 본사에서 서버 IP, 포트 확인 -> 연결 순서를 거치는데, 지금은 포트포워딩이 되어있지 않기 때문에 사용하실 수 없습니다. 사용하시려면 같은 네트워크(같은 공유기) 사이에서 http://{오드로이드IP}:32400/ 주소를 통해서만 사용하실 수 있어요. 포트포워딩 적용은 다른 포스팅에서 다룹니다.

출처 : http://awesometic.tistory.com/56?category=964085

Posted by 타카스 류지
|

많은 분들이 Dropbox, Google Drive 등 클라우드 스토리지 서비스를 사용하고 계십니다. 스마트폰의 사진이나 동영상을 백업하기 위해서요. 스마트폰의 용량은 한정되어 있는데, 요새는 사진 한 장 한 장이 워낙 고화질이라 너무 크죠. 그런 고화질의 사진을 찍고 저장할 때마다 백업을 함으로써 스마트폰이 분실되어도 찍었던 소중한 사진, 동영상을 볼 수 있다는 장점이 있습니다.

하지만 Dropbox, Google Drive, Microsoft OneDrive는 유료 서비스입니다. 무료로는 찔끔밖에 안 줘요. 그 유명한 Dropbox는 2GB입니다. 땅바닥에 굴러다니는 USB 메모리도 이거보단 커요.

매년 10만원이 넘는 돈을 지불하면서 이런 서비스를 사용해야 할까요? 남의 서버에? 심지어 유명 서비스들은 전부 해외에 있습니다. 그래서 전송 속도가 느려요. 국내 서비스인 네이버 클라우드랑 다음 클라우드는... 다음 클라우드는 문을 닫았지만 네이버 클라우드는 무료 30GB로 서비스 중이네요. 100GB도 안 됩니다.

오드로이드 XU4 + OMV로 NAS를 구축하고 있으니, 직접 클라우드 스토리지 서비스도 구축해 사용해 봅시다. 설치비만 빼면 외장하드 크기 만큼 매년 무료로 사용하실 수 있어요.


* 물론 Dropbox 가 무료로 2GB밖에 안 주면서 아직까지 유명한 이유 중 하나로 굉장히 강력한 동기화 성능과 안정성에 있습니다. 실시간 동기화가 중요하신 분들은 Seafile 로 완전히 이사하진 마시고 먼저 조금씩 사용해보세요.

* 유료 클라우드 스토리지 서비스의 장점은 데이터 분실 위험이 거의 없다는 점입니다. 여러 하드디스크에 같은 데이터를 씀으로서 하드디스크 고장으로 인한 데이터 손실을 최소화해요. 메이저급 회사들은 저런 단순 RAID가 아니라 굉장히 복잡한 방식으로 데이터를 보존한다고 하니, 운명적으로 수백 개의 하드디스크가 동시에 망가지지 않는 이상 데이터를 보존하실 수 있습니다. 하지만 직접 구축할 경우 2차 백업을 하시지 않으면 바로 데이터 손실로 이어질 수 있으니 주의해 주세요.

* Seafile 매뉴얼: https://manual.seafile.com/

* easy_install --upgrade pip 를 알려주신 박현성님 감사드립니다.




* 왜 Seafile?

NAS 좀 아시는 분들은 ownCloud Pydio를 생각하실 겁니다. 또는 유료로 FileCloud도 생각하실 수 있어요. 하지만 Seafile을 사용하는 여러 가지 이유 중 가장 큰 이유는 Seafile이 C와 Python으로 이루어져 있다는 점입니다.

Seafile은 ownCloud, Pydio처럼 PHP로 이루어지지 않았습니다. 이것이 무엇을 의미하냐면, 복잡하고 민감한 PHP 설정을 제쳐둘 수 있다는 것, 나아가 설치 및 설정이 쉽고 속도가 빠르다는 것을 의미합니다. 또한 32비트 기반 플랫폼에서 2GB 이상의 파일을 별도의 설정 없이 곧바로 업/다운로드 할 수 있습니다.

그리고 ownCloud, Pydio보다 더 나은 클라이언트 프로그램을 제공합니다. 윈도우 클라이언트 프로그램은 몰라도 ownCloud, Pydio의 안드로이드 앱은 최악이었어요.

그렇기 때문에 32비트 ARM 기반 SBC NAS에서 Seafile이 최선은 될 순 없지만, 현재 선택할 수 있는 가장 나은 선택이라고 생각하여 포스팅합니다.



0. Seafile 설치 준비

Seafile 설치는 조금 어려울 수 있습니다. 하지만 모든 과정을 하나씩 따라해 오시면 충분히 하실 수 있습니다.

이전에 Nginx와 MySQL이 설치되어 있어야 합니다.

먼저 사용하고 계신 NAS의 IP를 알고 있어야 합니다. 하나씩 따라오셨다면 이미 알고 계십니다. 모르시는 분들은 아래 링크를 참고해 확인하실 수 있습니다.

2017/07/19 - [오드로이드 XU4] - 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - OMV 설치 / 설정

그리고 터미널로 접속하기 위해 SSH 클라이언트를 설치해야 합니다. 역시 하나씩 따라하시면서 UAS도 해제하신 분들이라면 이미 SSH로 접속이 가능합니다. 혹시나 모르시는 분들은 아래 링크를 참고해 주세요.

2017/07/19 - [오드로이드 XU4] - 오드로이드 XU4 UAS 해제하기

Putty를 통해 로그인 한 상태에서 시작하겠습니다.

* 앞으로 많이 복사 후 붙여넣으실텐데, Putty에서 붙여넣기 방법은 마우스 오른쪽 클릭입니다.

* 뭔가 복사할 일은 없으시겠지만 혹시나 복사한다고 컨트롤 + C 는 절대 누르시지 마세요.

* OMV_3_0_88_Odroidxu4_4.9.46 버전 이상을 설치하셨다면 OMV 웹 - SSH 메뉴에서 "루트 로그인 허용" 을 활성화해주셔야 SSH 접속이 가능합니다. OMV 의 초기 접속 계정 정보는 root / openmediavault 입니다.
참고: 2018/01/25 - [오드로이드 XU4/XU4 + OMV 자작 NAS 만들기] - OMV 에서 SSH 접속하는 방법



1. Seafile 다운로드 및 설치

Seafile 은 OMV에서 제공하지 않습니다. 따라서 저희가 터미널을 통해 오드로이드 안으로 들어가 직접 설치해야만 합니다.

먼저 Putty를 통해 성공적으로 접속하셨다면 아래와 같은 화면이 뜰 겁니다.

여기서 다음 명령어를 통해 라즈베리파이용 Seafile 서버를 다운 받습니다. 라즈베리파이나 오드로이드나 플랫폼 종류(32비트 ARM)가 같기 때문에 그대로 사용하셔도 됩니다.

wget https://github.com/haiwen/seafile-rpi/releases/download/v6.1.1/seafile-server_6.1.1_stable_pi.tar.gz
Bash

그러면,

wget https://github.com/haiwen/seafile-rpi/releases/download/v6.1.1/seafile-server_6.1.1_stable_pi.tar.gz
--2017-07-20 10:25:28--  https://github.com/haiwen/seafile-rpi/releases/download/v6.1.1/seafile-server_6.1.1_stable_pi.tar.gz
Resolving github.com (github.com)... 192.30.253.113, 192.30.253.112
Connecting to github.com (github.com)|192.30.253.113|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/34115988/3cf96010-573c-11e7-9f81-48708f2c7743?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20170720%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170720T082528Z&X-Amz-Expires=300&X-Amz-Signature=8b4763beb8db8b12cebe4fec8053272bbce6e6e751f94f4600acf01e52536c69&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dseafile-server_6.1.1_stable_pi.tar.gz&response-content-type=application%2Foctet-stream [following]
--2017-07-20 10:25:29--  https://github-production-release-asset-2e65be.s3.amazonaws.com/34115988/3cf96010-573c-11e7-9f81-48708f2c7743?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20170720%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170720T082528Z&X-Amz-Expires=300&X-Amz-Signature=8b4763beb8db8b12cebe4fec8053272bbce6e6e751f94f4600acf01e52536c69&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dseafile-server_6.1.1_stable_pi.tar.gz&response-content-type=application%2Foctet-stream
Resolving github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 54.231.81.226
Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|54.231.81.226|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 30186571 (29M) [application/octet-stream]
Saving to: ‘seafile-server_6.1.1_stable_pi.tar.gz’

seafile-server_6.1.1_stable_pi.tar.gz                100%[======================================================================================================================>]  28.79M   407KB/s   in 25s    

2017-07-20 10:25:54 (1.15 MB/s) - ‘seafile-server_6.1.1_stable_pi.tar.gz’ saved [30186571/30186571]

Bash

이런 식으로 결과가 나옵니다.

이후 다음 명령어를 쳤을 때 다음과 결과와 같이 파일이 잘 있으면 됩니다.

ls -l
total 29480
-rw-r--r-- 1 root root 30186571 Jun 22 11:16 seafile-server_6.1.1_stable_pi.tar.gz
Bash

설치 파일 준비가 완료되었습니다.

이제 Seafile이 들어갈 디렉토리를 구성해줘야 합니다. 저희는 훗날 Nginx에 연동해서 쓸 테니 /var/www 에 seafile이란 디렉토리를 만들어 진행하겠습니다.

* 사실 Nginx에 연동한다고 굳이 /var/www 일 필요는 없습니다만, 터미널에 root로 로그인했기 때문에 /root 디렉토리 아래에 설치하기 보단 권한이나 이것저것 생각해 /var/www 아래에 설치하는 게 맞다고 생각했습니다. /root 디렉토리가 아닌 편한 곳에 설치해 주세요.

mkdir -p /var/www/seafile
Bash

그리고 아래 명령어들을 입력해 디렉토리를 구성해줍시다.

mv seafile-server_* /var/www/seafile
cd /var/www/seafile
tar -xzf seafile-server_*
mkdir installed
mv seafile-server_* installed
Bash

설치 전 Seafile 설치에 필요한 필수 패키지들을 다음 명령어를 통해 설치해줍니다. 복사, 붙여넣기 해주세요.

apt-get install python python2.7 libpython2.7 python-setuptools python-imaging python-ldap python-mysqldb python-memcache python-urllib3 python-pip python-dev libmemcached-dev memcached
Bash

하드디스크의 절대경로(정확한 위치)가 어디인지 알아야 합니다.

아래 명령어를 통해 알아냅시다.

df | grep /dev/sda1 | awk '{print$6}'
/srv/dev-disk-by-id-usb-JMicron_USB_to_SATA_bridge_DB00000000013B-0-0-part1
Bash

결과로 나온 /srv/dev-disk-by-id-... 경로는 복사해둡시다. 복사는 마우스로 끌어서 블록으로 만든 후 마우스 오른쪽 클릭입니다. 한번 Putty에 입력될텐데 걱정 않으셔도 됩니다.

마지막으로 설치하기 위해 다음 명령어들을 입력해줍니다.

cd seafile-server-6.1.1
./setup-seafile-mysql.sh
Bash

이제 설치 과정이 시작됩니다.

엔터를 눌러 진행해줍니다.

아래는 전체 과정을 복사, 붙여넣기 한 것입니다.

서버 도메인을 두 번째 질문에서 물어보는데, 일단 오드로이드 IP를 적어 주세요.

seafile data 경로로 방금 전 알아둔 /srv/dev-... 경로를 붙여넣으신 뒤에 /seafile-data 라고 덧붙이신 뒤 입력해주세요.

밑에 빈 칸은 default 값을 그대로 이용(그냥 엔터)하거나 패스워드 입력 입니다.

제가 진행한 전체 과정을 참고하시면서 진행하시면 되겠습니다.

./setup-seafile-mysql.sh 
Checking python on this machine ...
  Checking python module: setuptools ... Done.
  Checking python module: python-imaging ... Done.
  Checking python module: python-mysqldb ... Done.

-----------------------------------------------------------------
This script will guide you to setup your seafile server using MySQL.
Make sure you have read seafile server manual at

        https://github.com/haiwen/seafile/wiki

Press ENTER to continue
-----------------------------------------------------------------


What is the name of the server? It will be displayed on the client.
3 - 15 letters or digits
[ server name ] AwesometicNAS

What is the ip or domain of the server?
For example: www.mycompany.com, 192.168.1.101
[ This server's ip or domain ] 192.168.50.10

Where do you want to put your seafile data?
Please use a volume with enough free space
[ default "/var/www/seafile/seafile-data" ] /srv/dev-disk-by-id-usb-JMicron_USB_to_SATA_bridge_DB00000000013B-0-0-part1/seafile-data

Which port do you want to use for the seafile fileserver?
[ default "8082" ] 

-------------------------------------------------------
Please choose a way to initialize seafile databases:
-------------------------------------------------------

[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases

[ 1 or 2 ] 1

What is the host of mysql server?
[ default "localhost" ] 

What is the port of mysql server?
[ default "3306" ] 

What is the password of the mysql root user?
[ root password ] 

verifying password of user root ...  done

Enter the name for mysql user of seafile. It would be created if not exists.
[ default "seafile" ] 

Enter the password for mysql user "seafile":
[ password for seafile ] 

Enter the database name for ccnet-server:
[ default "ccnet-db" ] 

Enter the database name for seafile-server:
[ default "seafile-db" ] 

Enter the database name for seahub:
[ default "seahub-db" ] 

---------------------------------
This is your configuration
---------------------------------

    server name:            AwesometicNAS
    server ip/domain:       192.168.50.10

    seafile data dir:       /srv/dev-disk-by-id-usb-JMicron_USB_to_SATA_bridge_DB00000000013B-0-0-part1/seafile-data
    fileserver port:        8082

    database:               create new
    ccnet database:         ccnet-db
    seafile database:       seafile-db
    seahub database:        seahub-db
    database user:          seafile



---------------------------------
Press ENTER to continue, or Ctrl-C to abort
---------------------------------

Generating ccnet configuration ...

done
Successly create configuration dir /var/www/seafile/ccnet.
Generating seafile configuration ...

Done.
done
Generating seahub configuration ...

----------------------------------------
Now creating seahub database tables ...

----------------------------------------

creating seafile-server-latest symbolic link ...  done




-----------------------------------------------------------------
Your seafile server configuration has been finished successfully.
-----------------------------------------------------------------

run seafile server:     ./seafile.sh { start | stop | restart }
run seahub  server:     ./seahub.sh  { start  | stop | restart  }

-----------------------------------------------------------------
If you are behind a firewall, remember to allow input/output of these tcp ports:
-----------------------------------------------------------------

port of seafile fileserver:   8082
port of seahub:               8000

When problems occur, Refer to

        https://github.com/haiwen/seafile/wiki

for information.
Bash

설치가 완료되었습니다.



2. Seafile 기본 설정

1) 시간대 변경

Seafile의 시간대를 바꿔야 정상적으로 파일 관련 시간을 보실 수 있습니다. 생성/수정/삭제 시간 등등요.

시간대를 바꿔주기 위해 conf/seahub_settings.py 파일을 수정해줄 겁니다.

다음의 명령어를 입력해주세요. Asia/Seoul 시간대로 바꾸도록 파일을 수정해줍니다.

간단히 한 줄만 추가해주기 때문에 나중에 다른 시간대로 변경하시려면 해당 명령어를 입력하시지 말고 직접 수정하셔야 합니다.

echo "TIME_ZONE = 'Asia/Seoul'" >> /var/www/seafile/conf/seahub_settings.py && cat /var/www/seafile/conf/seahub_settings.py
Bash

복사해서 넣으시면(마우스 우클릭) 결과로,

echo "TIME_ZONE = 'Asia/Seoul'" >> /var/www/seafile/conf/seahub_settings.py && cat /var/www/seafile/conf/seahub_settings.py
# -*- coding: utf-8 -*-
SECRET_KEY = "-!tn(wqs==1)bs13ar_5b1zk*3tafv3e$w)a9sfvyjockd$-2r"

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'seahub-db',
        'USER': 'seafile',
        'PASSWORD': 'admin',
        'HOST': '127.0.0.1',
        'PORT': '3306'
    }
}

TIME_ZONE = 'Asia/Seoul'
Bash

마지막에 TIME_ZONE = Asia/Seoul 이라고 한 줄만 떠야 정상입니다. SECRET_KEY가 고유 키이기 때문에 위의 내용을 그대로 복사/붙여넣기 하시면 안 됩니다.


2) 부팅 시 자동 시작 설정

Seafile 은 PHP와 다르게 웹서버에 물려있지 않는 자체 서비스이기 때문에 쉘 스트립트 파일로 실행을 스스로 해줘야 합니다.

하지만 매번 재부팅 할 때마다 이런 작업을 하는 건 매우 불편하니, 서비스를 등록함으로써 리눅스가 시작할 때 알아서 실행되도록 해줍시다.

먼저 /etc/system/system 에 service 파일을 생성하겠습니다. Seafile 서비스의 핵심 모듈인 seafile과 웹 서비스 제공 모듈인 seahub가 각각 따로 실행되기 때문에 service 파일을 각각 만들어 진행해야 합니다.

하나씩 잘 따라가 주세요.

nano /etc/systemd/system/seafile.service
Bash

화면이 바뀌면, 아래 내용을 복사한 후 화면이 바뀐 Putty에 마우스 우클릭을 통해 붙여 넣어 줍니다.

[Unit]
Description=Seafile
# add mysql.service or postgresql.service depending on your database to the line below
After=network.target mysql.service

[Service]
Type=oneshot
ExecStart=/var/www/seafile/seafile-server-latest/seafile.sh start
ExecStop=/var/www/seafile/seafile-server-latest/seafile.sh stop
RemainAfterExit=yes
User=root
Group=root

[Install]
WantedBy=multi-user.target
Bash

붙여 넣으셨으면 "컨트롤+x" , "y 키", "엔터"를 순서대로 눌러 줍니다. 저장해서 빠져나오는 과정입니다.

그리고 seahub.service도 만들어줍니다.

nano /etc/systemd/system/seahub.service
Bash

역시 아래 내용을 복사 후 붙여넣어 줍니다.

[Unit]
Description=Seafile hub
After=network.target seafile.service

[Service]
# change start to start-fastcgi if you want to run fastcgi
ExecStart=/var/www/seafile/seafile-server-latest/seahub.sh start
ExecStop=/var/www/seafile/seafile-server-latest/seahub.sh stop
User=root
Group=root
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
Bash

방금 전과 같이 "컨트롤+x" , "y 키", "엔터"를 순서대로 눌러 저장 후 빠져나옵니다.

마지막으로 다음 명령어를 복사/붙여넣기 후 엔터를 입력합니다.

systemctl enable seafile.service && systemctl enable seahub.service
Bash


3) Memcache 추가로 성능 최적화

Memcache를 추가해 Seafile의 반응 속도를 올려봅시다. Memcache는 사용 가능한 메모리에 데이터를 미리 저장시켜 놓는다고 생각하시면 됩니다. 이걸 하지 않으면 매번 새로 데이터를 만들고 가공해서 보여줘야 하는데, 메모리에 저장시켜 놓음으로써 같은 내용을 다시 볼 때 새로 작업하지 않고 바로 볼 수 있어 빠릅니다.

Seafile에서 정식으로 지원하기 때문에 설치가 굉장히 간단합니다. 잘 따라해 주세요.

먼저 pip 라는 Python 패키지 관리자를 통해 필요한 패키지들을 설치합니다.

sudo easy_install --upgrade pip
sudo -H pip install pylibmc
sudo -H pip install django-pylibmc
Bash

그리고 conf/seahub_settings.py 파일을 열어 마지막에 아래 내용을 붙여 넣습니다. 방법은 조금 다릅니다. 먼저 아래 명령어를 입력해주세요.

echo -e '\n' >> /var/www/seafile/conf/seahub_settings.py
Bash

입력하신 후 nano로 열어 줍니다.

nano /var/www/seafile/conf/seahub_settings.py
Bash

그리고 아래 방향키를 쭉 내리셔서 초록색 prompt를 파일 내용 가장 아래로 보낸 후, 아래 내용을 복사/붙여넣기 합니다.

CACHES = {
    'default': {
        'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
        'LOCATION': '127.0.0.1:11211',
    }
}
Bash

"컨트롤+x" , "y 키", "엔터"를 순서대로 눌러 빠져나옵니다.



3. Seafile 실행

이제 Seafile을 실행해봅시다.

서비스로 실행 파일을 등록했기 때문에 "service seafile start" 등의 명령어로 실행이 가능합니다.

하지만 seahub의 경우 처음 실행하기 때문에 실행 시 관리자 이메일을 어떤 걸로 쓸 건지 묻습니다. 물음에 대답하기 위해 seahub는 직접 실행해줘야 합니다. 한 줄씩 따라서 입력해 주세요.

cd /var/www/seafile/seafile-server-latest
./seafile.sh start
./seahub.sh start
Bash

seahub 실행 시 결과는 다음과 같습니다. 제 경우를 든 예시입니다. 이메일과 비밀번호를 적절히 입력해 주세요.

./seahub.sh start

LC_ALL is not set in ENV, set to en_US.UTF-8
Starting seahub at port 8000 ...

----------------------------------------
It's the first time you start the seafile server. Now let's create the admin account
----------------------------------------

What is the email for the admin account?
[ admin email ] 

What is the password for the admin account?
[ admin password ] 

Enter the password again:
[ admin password again ] 



----------------------------------------
Successfully created seafile admin
----------------------------------------




Seahub is started

Done.
Bash

다음부터는 service seafile start, service seahub start 를 입력하시면 됩니다. 하지만 자동으로 시작하기 때문에 직접 입력하실 일은 없을 거에요.

그리고 인터넷 주소창에 http://{오드로이드IP}:8000/ 을 입력해 들어가 봅시다.

seahub를 처음 실행했을 때 계정 정보로 로그인해 들어가면,

이렇게 환영해합니다.



4. 클라이언트 설치

1) 윈도우

Seafile 클라이언트를 컴퓨터에 설치해서 편리하게 접근하실 수 있습니다.

클라이언트를 설치함으로써 내 컴퓨터의 폴더 하나를 만들어 그것을 NAS와 동기화시키는 겁니다. 그 폴더에 어떤 파일을 넣으면 자동으로 서버에 올라가는 거에요.

https://www.seafile.com/en/download/

여기서 Client for Windows 를 다운받습니다.

그리고 설치하면,

알아서 이렇게 실행됩니다.

서버와 동기화할 폴더를 지정하라는 거에요. 제 컴퓨터에는 자료 저장용으로 D드라이브가 하나 더 있기 때문에 저기에 만들겠다고 하는 것 같네요. 일단 기본값으로 그냥 다음 버튼을 눌러줍니다.

계정 추가 화면입니다. 여기선 서버에 자신의 오드로이드 서버 와 8000번 포트로 지정해줍니다. 아래 예시가 나와있어요.

그리고 전자메일과 암호는 seahub를 처음 실행시킬 때 만든 계정으로 입력합니다.

로그인하면 이런 화면이 떠요. 기본 라이브러리를 만들자는 건데, 이걸 만들면 내 컴퓨터에 하드디스크가 뜨듯 Seafile 아이콘이 생깁니다. 예 버튼을 눌러 만듭시다.

다 됐다고 하네요. 열기를 해봅시다. 그러면 동기화되고 있는 폴더가 뜰 거에요.

그리고 무엇보다 내 컴퓨터에 Seafile 아이콘으로 된 내 라이브러리라는 항목이 생겼을 겁니다.


이렇게요. 저 라이브러리에 파일을 넣거나 수정, 삭제하면 바로 Seafile 서버의 해당 라이브러리에도 적용됩니다.


2) 안드로이드

안드로이드를 통해서 간편하게 하실 수 있습니다. 무엇보다 이 앱을 설치하면 스마트폰 사진 백업이 자동으로 이루어져요.

https://play.google.com/store/apps/details?id=com.seafile.seadroid2

안드로이드 스마트폰 마켓을 통해 Seafile 앱을 설치합니다.

환영해줍니다. 계정 추가를 누른 후 다른 Seafile 서버 를 클릭합시다.

계정을 추가할 수 있는 화면으로 넘어왔습니다. 서버 주소에 오드로이드 IP를, 192.168.50.10:8000 형식으로 적어줍니다. 계정 이름과 암호는 역시 seahub 처음 만들 때 계정 정보로 합시다.

그리고 로그인하게 되면,

이렇게 내가 사용하고 있는 라이브러리가 나타납니다. 스마트폰을 통해서도 파일을 추가, 수정, 삭제하실 수 있고, 설정에서 사진 백업 옵션을 통해 자동으로 저장되는 사진을 백업하실 수 있습니다.

그런데 ES 파일 탐색기와 함께 쓰면 권한 허가 문제가 있는데, ES 파일 탐색기가 "다른 앱 위에 그리기" 권한을 갖고 있기 때문인지 Seafile 앱에서 파일 읽기/쓰기 권한을 얻을 수 없습니다. "다른 앱 위에 그리기" 권한을 이 앱만 갖고 있는 게 아닌데 이상하게 안 되네요. ES 파일 탐색기에서 ES Swipe 옵션을 비활성화 해주면 잘 됩니다.

ES 파일 탐색기를 키신 후,


ES Swipe 메뉴로 들어갑니다.



그리고, 비활성화 해주면 됩니다.

사실 ES 파일 탐색기가 파일 관리 뿐 아니라 이것 저것 다 하려고 해서 앱의 덩치가 많이 큽니다. 메모리도 많이 먹구요. 하지만 FTP 서버를 사용하기 위해선 아직 이만한 대안이 없으니 사용하고 있습니다. 더 가볍고 좋은 앱이 있으면 알려주세요 :)


* 해당 가이드는 오드로이드 XU4 + OMV에서 Seafile의 사용 준비만을 다룹니다. 자세한 사용법은 올리지 않겠습니다.

* Seafile의 포트포워딩에 대해선 아직 다루지 않았습니다. 다른 서비스들의 설치까지 모두 다룬 후 한 번에 포트포워딩 하려고 합니다. 이미 하실 줄 아시는 분들은 8000번을 포트포워딩 하시면 될 것으로 보입니다. 윈도우나 모바일 클라이언트로 접속 시 8000번으로 시도해보세요.

* Seafile도 도메인을 얻고 SSL도 적용해 보안도 강화시키면 더욱 좋습니다. 해당 사항에 대해선 차후에 포스팅하겠습니다.


출처 : http://awesometic.tistory.com/52?category=964085

Posted by 타카스 류지
|

MySQL은 무료 Database Management System입니다. 그냥 수백, 수천 개 이상의 데이터를 무료로 관리할 수 있도록 해줍니다.

데이터베이스의 기본 개념과 사용법은 생략하겠습니다. 그냥 앞으로 설치할 서비스들을 사용하기 위해 필요한 프로그램이라 생각하시면 됩니다.




* MySQL 설치

OMV 플러그인 메뉴에서 설치하실 수 있습니다. Nginx 설치하듯 플러그인을 설치하시면 됩니다. 그리고 OMV MySQL 메뉴로 갑시다.

여러 버튼이 있습니다. 활성화하기 전 추가옵션으로 다음 내용을 적어줍니다.

character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
character_set_server = utf8mb4
collation_server = utf8mb4_unicode_ci

그리고 활성화, 저장 / 적용해줍니다.

마지막으로 암호 재설정 버튼을 눌러 암호를 하나 지정해 두고, 기억해 둡시다.

역시 왕초보 코스이기 때문에 MySQL을 직접 어떻게 다룰 수 있느냐는 다루지 않겠습니다.

출처 : http://awesometic.tistory.com/54?category=964085

Posted by 타카스 류지
|

Nginx 는 간단하고 빠릿한 웹서버 프로그램입니다. Apache IIS 와 같은 역할을 수행합니다만 요근래 좋은 성능을 이유로 점유율이 점점 높아지고 있는 프로그램입니다. 해당 웹서버 프로그램이 있어야 워드프레스 등 개인 블로그를 호스팅하거나 도메인을 얻어 여러 가지 서비스를 도메인만으로 접속하실 수 있습니다. 예를 들어, blog.example.com 으로 제 개인 블로그에 접속할 수 있게 해줘요.

원래 OMV에는 OMV 관리자 페이지를 제공하기 위해 PHP와 함께 Nginx가 설치되어 있지만, 플러그인을 통해 사용자가 웹 서버를 추가로 설정할 수 있도록 해줘야 합니다.




* Nginx 설치

OMV 플러그인 메뉴로 갑시다.

뭔가 많습니다. OMV에서 제공하는 다양한 플러그인들입니다. 우선 저희는 여기서 Nginx를 검색할 겁니다.

그럼 이 항목 하나만 결과로 나타납니다. 체크 후 설치합니다.

이렇게 설치하고 완료하면, 페이지를 새로 고친다고 알립니다.

페이지를 새로고침하면, 왼쪽 OMV 메뉴 중 서비스 - Nginx (websites) 가 나타난 것을 보실 수 있습니다.

OMV에서 플러그인은 이런 식으로 설치가 됩니다. 꼭 서비스 메뉴의 하위 메뉴로 나타나진 않지만, 이렇듯 새로운 메뉴가 추가되는 것으로 플러그인 설치 완료를 알 수 있습니다.

Nginx 메뉴를 클릭해 들어가면,

이런 화면이 나타나는데요, 일단 여기서 서버 이름 해시 버킷 크기를 128로 설정하신 후 활성화, 저장 / 적용 해줍시다.

적용이 완료되었으면 Nginx의 사용 준비가 완료된 겁니다.

저희는 왕초보 코스를 타고 있으니, 이렇게 활성화만 시켜둔 다음 OMV Nginx의 활용법은 앞으로 있을 다음 게시글에서 확인해보겠습니다.


출처 : http://awesometic.tistory.com/53?category=964085



Posted by 타카스 류지
|

오드로이드 XU4 + OMV 로 FTP 설정하는 방법과 접속 방법을 알려 드리려 합니다.

FTP만 설정해도 어지간히 활용하실 수 있어요.


* 해당 가이드를 따라하셔도 카페나 지하철 등 외부 네트워크를 통한 접속은 불가능합니다. 포트포워딩을 설정해 줘야 하는데, 이에 관해선 다른 게시글로 포스팅하겠습니다.

* 해당 가이드는 OMV에서 어떻게 FTP 서버를 열고, 어떤 FTP 클라이언트로 FTP 서버에 접속하는지를 간략히 소개하기 위해 쓰였습니다. 때문에 각 프로그램의 사용법에 대해선 필요 이상으론 자세히 다루지 않았습니다.




0. FTP와 보안

진행하기 앞서 FTP에 대해서 간단히 알아야 합니다. 

FTP는 File Transfer Protocol의 약자입니다. 말 그대로 파일 전송 프로토콜인데요, 프로토콜이라 하면 어떤 행위를 하기 위한 상호간 약속이라고 보시면 됩니다. FTP는 파일을 주고받을 때 서로 사용하는 약속같은 거죠. 서버가 FTP 서버를 열면, 그 약속에 따라 FTP 클라이언트에서 접속해 파일을 주고 받는 겁니다. 

문제는 FTP가 보안에 굉장히 취약하단 점입니다. 모든 데이터가 평문으로 전송돼요. 서버에 FTP 접속할 때 로그인하는 그 사용자 계정 정보부터 패킷에 평문으로 담겨 보내집니다. 어느 IP에 어떤 포트로 접속하는 지, 현재 위치에서 어떤 파일들과 디렉토리들이 있는지도 뜨구요. Spoofing 등으로 전송 경로를 가로채 파일의 내용까지도 알 수 있겠죠. 리눅스에서 계정 관리가 제대로 안 됐다면 SSH에 해당 계정으로 접속도 가능하겠네요.

그래서 보통 SFTP를 사용합니다. SFTP(SSH File Transfer Protocol)는 SSH에서 제공하는 간단한 FTP 서비스를 사용하는 것입니다. SSH(Secure Shell) 는 기본적으로 암호화 통신으로만 이루어집니다. 패킷을 뜯어봐도 암호화된 문자만 뜨므로 제대로 해석할 수 없어요. 때문에 SFTP라면 암호화된 통신으로 파일을 주고 받을 수 있어 더 안전합니다. SSH가 정확히 무엇인지는 생략하겠습니다. 참고로 OMV에선 SSH가 기본적으로 활성화되어 있습니다.

FTP 서버를 이용해야만 한다면 FTPS를 사용합니다. FTPS(File Transfer Protocol Secure)는 FTP에 SSL(Secure Sockets Layer 또는 TLS, Transport Layer Security)을 입힌 거에요. 간단하게 보안을 위한 계층을 하나 더 씌워 모든 통신을 암호화시킵니다. 하지만 이건 도메인도 필요하고, 인증 기관으로부터 SSL 인증서도 발급받고, 갱신하고, FTP에 설정도 이것 저것 바꿔야만 하므로 귀찮죠. 그래서 SFTP를 많이 사용합니다.

여기까지 보면 FTP는 굳이 사용할 필요가 없다고 느껴지실 겁니다. SSH만 사용해도 돼 보여요. 하지만 또 각각의 장단점은 있을 수 있어요. 그래서 결국 사용자의 선택일텐데, 전 개인적으로 SFTP 사용을 추천드립니다. SFTP가 보편화되면서 대부분의 FTP 클라이언트 프로그램에서도 SFTP를 당연히 지원하게 됐거든요.

지금은 OMV에서 사용자 계정을 만들고, 또한 그 계정은 Shell이 부여되지 않아 터미널에 접속할 수 없는 상태입니다. 또한 OMV NAS에서 그렇게 중요하지 않은 자료들을 다룰 수도 있고, 활용할 수도 있으니 FTP 서버에 대한 포스팅을 시작하겠습니다. 무엇보다 OMV에서 SFTP를 파일 공유 목적으로 사용하려면 현재 OMV 사용자 계정에 홈 디렉토리를 생성하고, Shell도 부여해야 하며, 터미널에서 직접 공유 폴더를 지정해줘야 합니다. 필요하다 생각되면 진행하겠습니다.

아무쪼록, 보안이 취약하다는 건 알고 진행해 주세요.

해당 사항은 FTP 자체 특성이므로 어떤 기성 NAS나 자작 NAS를 사용하더라도 똑같이 적용됩니다.



1. FTP 설정 및 활성화

OMV FTP 메뉴로 갑시다.


여기서도 간단히 활성화 켜주시고, 아래 고급 설정 부분으로 갑니다.

Passive FTP 부분을 활성화합니다. 그리고 나중에 포트포워딩도 49152~65534까지 하셔야합니다. 한글로는 수동 FTP 라고 나와있을 겁니다. 

왜냐하면, FTP가 Active(능동) 모드와 Passive(수동) 모드가 있는데, 능동 모드일 경우 데이터를 보낼 때 서버가 클라이언트에 접속해 보냅니다. 때문에 클라이언트가 서버로부터 들어올 포트를 열어둬야 해요. 방화벽을 사용하는 서버 사이 전송일 경우에도 그렇고 이런 게 잘 될 리가 없습니다.

반면에 수동 모드는 전부 클라이언트에서 서버로 접속하는 형태입니다. 처음에 21번 포트로 서버에 들어왔다가, 서버가 정해진 포트 범위 내에서 하나를 골라 이걸 쓰라고 응답합니다. 그러면 그 포트를 통해 서버로 데이터 수신을 위한 접속을 합니다. 이건 서버만 방화벽 설정하면 되죠. 

참고: https://extrememanual.net/3504

그리고 조금 더 밑으로 내려가 전송 기록 활성화도 체크하신 뒤 저장/적용합시다.


마지막으로 공유 탭으로 가 공유 폴더를 추가해줍니다.


2. FTP 접속

FTP 서버를 열었으니, FTP 클라이언트를 통해 접속할 수 있습니다. Chrome 등 사용하시던 웹브라우저나 FileZilla, 알FTP, XFtp, Cyberduck 등 FTP 클라이언트 프로그램 또는 안드로이드나 iOS 앱을 통해서도 접속이 가능합니다.

여기선 웹브라우저와 프로그램, 안드로이드 접속 방법을 하나씩 알려드리겠습니다.

1) Chrome 으로 접속하기

대부분 많이들 쓰시는 Chrome 웹브라우저로 접속하는 방법이 있습니다. 파일 업로드는 불가능하지만, 가장 간편하게 접속해 파일을 다운로드 하실 수 있습니다.

방법은 주소창에 ftp://{오드로이드IP}/ 를 적으시면 됩니다. 접속하시게 되면,

이런 로그인 프롬프트가 뜨는데요, OMV NAS 사용자 계정으로 로그인하시면,

이렇게 OMV FTP 설정에서 추가된 공유 폴더가 나타납니다. 기가 막히네요.

해당 공유 폴더에 권한이 있는 OMV 사용자 계정으로 로그인하셨다면 바로 다운로드 하실 수 있지만, 권한이 없다면 해당 공유 폴더에 접근하실 수 없거나 다운로드하실 수 없습니다.


2) FileZilla 로 접속하기

FileZilla는 대단히 유명한 오래된 오픈 소스 FTP 클라이언트 프로그램입니다. 윈도우, 리눅스, 맥을 모두 지원하며, FTP 전용 클라이언트 프로그램이기 때문에 FTP, SFTP, FTPS 등을 모두 지원하고 업/다운로드가 간단합니다.

FileZilla 다운로드 링크로 가셔서 클라이언트 프로그램을 다운로드 받고 설치합니다.

설치한 프로그램을 실행하시면,

이런 화면이 뜨는데요. 여기서 호스트에 자신의 오드로이드 IP, 사용자명과 비밀번호에 OMV NAS 사용자 계정을 입력해주시면 됩니다. 포트는 21번이구요. 참고로 FTP 서비스의 기본 포트는 21번입니다. 약속 같은 건데, 입맛대로 바꿔줄 순 있어요.

OMV NAS 사용자 계정으로 로그인하면 이렇게 됩니다. 로그인이 잘 됐다는 메시지와 함께 오른쪽 아래에 5TB 공유 폴더가 보이네요.

파일을 업/다운로드가 제대로 되는 지 테스트 겸 속도도 보겠습니다. 목적지 경로에 파일을 끌어다가 놓으시면 됩니다.

업로드


다운로드

보시면 업로드 93MB/s, 다운로드 113.2 MB/s 로 굉장히 준수하네요. XU4가 UAS를 껐는데도 이런 속도가 나와서 놀랍습니다.


3) 안드로이드에서 접속하기

안드로이드에서 FTP 서버에 접근할 때, 전 ES 파일 탐색기를 추천합니다. 무료버전이라 광고가 덕지덕지 많은 것 빼곤 기능도 많고, 무엇보다 이걸 대체할 앱이 없어요.

플레이스토어에서 ES 파일 탐색기를 검색해 설치하고, 실행해 봅시다. 참고로 테스트 기기는 갤럭시 노트 4 입니다. 처음에 안내 화면이 나오는데, 하나씩 넘겨 완료하면,

이런 화면이 뜹니다. 여기서 왼쪽 위의 Navigation Drawer Open 버튼을 클릭해준 후 네트워크-FTP 메뉴로 들어가면,

이 화면이 떠요. 밑의 스캔 버튼이 있어 해당 네트워크 내의 FTP 서버를 자동으로 스캔을 해 주기도 하지만, 저희는 명시적으로 딱 잘라 이용하기 위해 오른쪽 위의 새로 만들기 버튼을 눌러 줍시다. 누르면 FTP냐, SFTP냐, 이런 걸 묻는데 FTP를 선택해주면,

이렇게 새로운 FTP 서버를 추가하기 위한 Dialog가 떠요. 제 스크린샷을 참고하여 각 항목별로 알맞게 적어줍시다. Mode는 수동 모드이고, 인코딩은 Auto로 되어있을텐데 안전하게 UTF-8로 바꿔줍시다.

그리고 확인을 누르면,

이래이래 방금 설정한 FTP 서버가 떠요. 이 곳을 들어가면 귀신같이 자신이 설정한 공유 폴더가 뜹니다. 이제 사용할 수 있어요.

공유 폴더에서 파일을 다운로드 하는 방법은, 파일을 지긋이 잠깐 누르고 있으면 여러 개를 선택할 수 있는데, 이 상태에서 필요한 파일을 선택한 뒤

아래의 기타를 누르면 위와 같은 메뉴들이 뜨는데, 여기서 이동이나 복사를 클릭하시면 됩니다. 그러면,

이렇게 다운로드 받을 위치를 선택하라 합니다. 전 Download에 들어가 확인을 눌렀어요.

이런 전송 중이란 Dialog가 뜹니다. 숨기기를 누르면 알림으로 남아있어 얼마나 진행됐는지 알 수 있구요. 속도는 지금 공유기가 802.11ac를 지원하지 않는 공유기라 느리네요. 5GHz 802.11ac를 지원하는 공유기라면 20 MB/s 이상 속도가 나올 겁니다.

반대로 업로드는, 안드로이드의 공유 기능을 이용하시면 됩니다.

기본적으로 제공되는 내 파일 등의 파일 탐색기 앱을 쓰셔도 되지만, 여기선 갤러리를 예로 들게요. 갤러리에서 업로드하고 싶은 사진들을 선택하신 뒤 공유 버튼을 누르면,

이렇게 공유가 가능한 어플리케이션 목록이 뜹니다. ES 에 저장을 눌러 줍시다. 느낌상 Send by LAN 같은데 지금은 아니에요.

그럼 또 이렇게 경로를 선택하라는 Dialog가 뜹니다. 이번엔 반대로 올라가죠. 왼쪽 위의 "<-" 버튼을 누르시면,

아까 생성한 OMV NAS의 FTP 설정 폴더가 보입니다. 저 곳으로 들어가 적절한 경로에서 선택하시면 아까 다운로드 할 때 뜬 Dialog가 뜨면서 진행됩니다.

FTP의 또 다른 대표적인 활용 방법으로 동영상 스트리밍이 있는데, 이건 다른 게시글에서 다루도록 하겠습니다.
=> nPlayer 를 이용해 FTP, WebDAV, Samba, DNLA 동영상 스트리밍하기



* 한글 깨짐 방지

FTP 클라이언트가 UTF8을 제대로 지원해야 한글이 문제없이 들어가는 것 같네요

윈도우 PC에선 파일질라나 XFtp를 추천드립니다 :)

출처 : http://awesometic.tistory.com/51?category=964085

Posted by 타카스 류지
|

OMV 에서 Samba 를 아주 간단하게 설정해봅시다.

Samba를 설정하면, 윈도우가 깔린 내 컴퓨터에서 NAS의 하드디스크를 내 컴퓨터 하드디스크인냥 들락날락 하실 수 있습니다. 물론 자료도 주고 받을 수 있어요.




1. Samba 설정 및 활성화

OMV SMB/CIFS 메뉴로 갑시다.


간단합니다. 여기서 활성화해주시면 돼요. 저장 및 적용 하시구요.

* 사실 작업 그룹이 중요합니다. 윈도우 기본값이 WROKGROUP이라 대부분의 시스템에선 바로 작동할 겁니다. 하지만 다른 작업 그룹명을 사용하는 윈도우에선 그 그룹명을 Samba 서버에 설정해주지 않으면 사용하실 수 없습니다.

공유 탭으로 가시면, 추가 버튼이 있습니다. 이 버튼을 누르면,


이런 창이 뜨는데, Samba로 공유하고 싶은 폴더를 지정해주는 겁니다. 공유 폴더는 이전에 생성해놓은 걸로 하죠. 전 5TB였구요.

공유 폴더만 설정하신 뒤 저장을 누르시면 아래와 같이 새로운 아이템이 뜹니다.

적용 알림이 뜨면 적용하시면 됩니다.


2. 네트워크 드라이브 등록

내 컴퓨터에서 내 컴퓨터의 C드라이브 들락날락하듯 NAS에 연결된 하드디스크를 들락날락 하게 해줍시다.

내 컴퓨터를 열어줍시다.

그리고 사진의 네트워크 드라이브 연결을 누르세요. 한번 더 뜨는데 또 누르시면 됩니다.

이런 창이 뜨죠. 여기서 찾아보기를 누릅시다.

찾아보기 창에 ODROIDXU4가 있습니다. OMV Samba 설정 기본값으로 이렇게 뜨게 해놨어요. ODROIDXU4가 아니라 다른 이름으로 간단히 바꾸실 수 있습니다. 저것을 더블클릭하면,

이런 게 뜹니다. 여기서 저번에 새로 만든 NAS 사용자 이름와 암호를 넣으시면 됩니다. 매번 로그인하기 귀찮으실테니 내 자격 증명 기억을 체크해주시구요.

완료하면,

이렇게 아까 OMV에서 추가한 공유 폴더가 뜹니다. 기가 막힙니다. 나타난 공유 폴더를 클릭하신 뒤 확인을 누르시고, 마침 버튼을 누르시면 됩니다.

이제 내 컴퓨터에 이런 드라이브가 생성됐을 겁니다. 들락날락 하시면 됩니다.

테스트 겸 속도를 보겠습니다.

업로드


다운로드

XU4에서 UAS를 꺼도 굉장히 빠릿하네요.


출처 : http://awesometic.tistory.com/49?category=964085

Posted by 타카스 류지
|

오드로이드 XU4의 OMV 설치 및 설정 방법입니다.




1. OMV 설치

컴퓨터를 이용해 마이크로 SD카드에 OMV를 올리고, 그걸 오드로이드 XU4에 꼽으면 설치가 완료됩니다.

1) OMV 이미지 다운받기

https://sourceforge.net/projects/openmediavault/files/Odroid-XU3_XU4/

위의 링크로 가서 OMV_3_0_85_Odroidxu4_4.9.37.7z 를 다운받으시면 됩니다. (2017. 07. 19 현재)

받고, 어디든 압축을 푸시면

Armbian_5.33_Odroidxu4_Debian_jessie_next_4.9.37.img

란 1.9GB 가량의 파일이 나올겁니다. 이걸 Etcher를 통해 SD카드에 올릴 거에요.

* Win32DiskImager와 달리 Etcher는 윈도우, 리눅스, 맥을 모두 지원하는 프로그램입니다. 이미지 파일이 포함된 zip 압축파일을 압축을 해제하지 않고도 사용 가능하며, 이미지 Writing 후 자동으로 파일 검증까지 수행해줍니다. 여기선 OMV에서 7z 파일로 제공하므로 아직 지원하지 않아 압축을 해제하고 사용하는 과정을 잘 따라와주시면 됩니다.


2) Etcher 다운받아 OMV 올리기

https://etcher.io/

가셔서, 자신의 컴퓨터에 맞게 다운로드하시고 설치하시면 됩니다.

프로그램을 키시면

이런 화면이 나오는데, Select image 버튼을 눌러 방금 압축 해제한 Armbian_5.27_Odroidxu4_Debian_jessie_next_4.9.28.img 파일을 불러와줍시다. Select drive에선 사용할 MicroSD 카드를 선택해주시고 (하나밖에 없을 시 자동 선택) Flash를 누르시면 검증까지 알아서 모든 게 진행됩니다.

마지막으로 오드로이드에 해당 SD카드를 꼽아주시면 됩니다.


3) OMV 접속

SD카드와 랜선, 외장하드를 꼽고 전원을 넣으세요. 랜선의 반대쪽은 사용하고 계신 공유기에 꼽으시면 되구요.

그리고 OS를 설치하는 과정 때문에 5분정도 기다리셔야 하는데, 기다리는 동안 오드로이드 XU4의 IP 주소를 알아내 봅시다. 그 주소를 알아야 설치된 OMV에 들어갈 수가 있거든요. 이미 아시는 분들은 바로 들어가셔도 한 번 자동으로 재부팅되니 5분을 기다리시는 게 좋습니다.

오드로이드의 IP를 알아내는 방법은 간단합니다. 

http://angryip.org/

위의 링크를 들어가셔서 프로그램을 다운받아 실행해 주세요.

Angry IP Scanner가 자동으로 게이트웨이와 서브넷 마스크를 감지하여 IP Range를 잡아주는 것으로 보이네요.

여기서 바로 Start 버튼을 누르면,

이렇게 검색을 해줍니다. Hostname에 ODROIDXU4 라고 되어 있는 곳의 IP가 192.168.50.10 이네요. 이걸 기억하시면 됩니다.


또는 공유기 설정 페이지를 통해서도 아실 수 있습니다. ipTIME 공유기를 사용한다고 생각하겠습니다.

ipTIME 공유기 관리자 페이지 주소는 http://192.168.0.1/ 입니다. 링크를 눌러도 들어가지지 않는 분들은 직접 주소창에 치시면 됩니다. 만약 그래도 안 된다면 게이트웨이를 알아내야 하니 댓글로 문의해주세요.

접속하게 되면 이런 게 보일텐데, 대부분 초기암호가 이미 쓰여있듯 admin 입니다.

로그인하고 관리 도구에 들어가셔서,


이런 경로로 오시면 같은 화면이 뜰 건데요,

사용 중인 IP 주소 정보에서 odroidxu4 를 찾으시면 됩니다. 전 192.168.50.10 이네요.


오드로이드의 IP도 알아냈고, 총 5분정도 지났다 싶으시면 http://{오드로이드IP}/ 로 접속해보세요.


이런 화면이 뜹니다. admin / openmediavault 로 로그인하시면 아래처럼 대시 보드 화면이 뜹니다.




2. OMV 설정

바로 사용할 수 있으면 좋겠지만, S/W 업데이트나 시간대 변경 등의 작업이 필요합니다.

1) 기본 설정

먼저 일반 설정으로 갑시다.

여기서 세션 만료를 0으로 바꿔주세요. 자동 로그인을 비활성화하시는 게 편합니다. 물론 밖에서 접속해 사용하실 땐 보안상의 이유로 주의하셔야 하구요. 0으로 바꾸고 저장을 누르시면


위와 같은 노란 알림이 뜹니다. 앞으로 OMV에서 하실 대부분의 설정은 저장을 누를 때 저런 알림이 떠요. 바뀐 설정을 적용하시기 위해선 저기서적용을 누르시면 됩니다. 

옆의 웹 관리자 암호 탭에도 들어가 openmediavault가 아닌 새로운 암호로 변경해 줍시다. 얘는 설정 적용하라고 물어보진 않아요.

그리고 OMV 날짜 및 시간 메뉴에서 시간대를 설정해줍시다. Europe/Berlin에 거주하시지 않으시다면 자신의 거주지로 바꿔주세요. 전 Asia/Seoul입니다. NTP 서버 사용 체크하신 뒤 저장 / 적용


2) 패키지 업데이트

Update Management로 가줍시다.


처음이라 위 스크린샷처럼 업데이트가 많이 있을 거에요. 만약 아무 것도 없다면 왼쪽 위의 검사를 누른 후 기다려주세요.

패키지 정보 글자 왼쪽의 체크 박스를 눌러 전체 선택을 하신 후, 활성화된 업그레이드 버튼을 누릅시다.


이런 식으로 업데이트가 진행될 거에요. OS설치한 후 수행하는 첫 업데이트라 시간이 많이 걸립니다. 차라도 드시던가 밀린 집안일 하나 하시고 오시면 돼요.

업데이트가 완료되면 페이지 한번 새로고침하겠다 합니다. 확인 버튼을 눌러 새로고침하시고, 이번 업데이트엔 커널 업데이트가 포함되어 있으니 아래 그림과 같이 버튼을 눌러 재부팅 해줍시다.


참고로 재부팅을 하실 때 오류 발생, Bad Gateway 뭐 이러는데 재부팅 자체가 서버가 완전히 종료된 후 다시 켜지는 것이기 때문에 발생하는 당연한 오류입니다. 다른 때 나오면 조금 당황스럽지만요.

재부팅 후 다시 로그인해 줍시다.


3) HDD 마운트

# 2017. 7. 31 해당 과정 진행 중 이상이 생기면 UAS를 해제하고 다시 시도해보세요.
2017/07/19 - [오드로이드 XU4] - 오드로이드 XU4 UAS 해제하기

OMV 물리 디스크 메뉴로 가시면 현재 연결된 물리 디스크가 어떤 게 있는지 확인하실 수 있습니다.

/dev/sda 에 장착하신 외장하드가 저렇게 뜰 거에요.

인식이 확인되셨으면 OMV 파일 시스템 메뉴로 갑시다.

OMV 를 올렸던 SD카드는 인식하지만, 아직 새로운 HDD를 사용하지 않고 있어요. 하지만 제대로 인식은 하고 있다는 걸 방금 전 확인했기 때문에, 왼쪽 위의 생성 버튼을 눌러 줍시다.

장치에 새로 인식된 장치인 /dev/sda 를 선택하셔서 확인을 누르시면, 알아서 포맷해줍니다.

시간이 조금 걸릴 수 있는데, 이 과정이 지나면

위 스크린샷처럼 /dev/sda1 이 새로 생긴 걸 보실 수 있어요. 새로 생긴 애를 누르셔서 마운트하신 뒤 저장 / 적용 하시면,

이렇게 바뀝니다. 이제 이 하드디스크는 사용하실 수 있게 됐어요.


4) 사용자 추가

지금은 관리자 계정밖에 없습니다. 여기서 관리자란 시스템 관리자를 의미해요. NAS 사용자가 아닙니다. 그래서 NAS 사용자를 추가해줘야 합니다.

OMV 사용자 메뉴로 들어가세요. 아무 것도 안 뜰텐데, 추가를 누르시면


이런 창이 뜹니다. 이름과 암호 정도만 입력하신 뒤 저장 / 적용 하시면 됩니다.


5) 공유 폴더 추가

OMV에서 공유 폴더란 말 그대로 공유할 때 쓰일 경로를 말합니다. 경로의 시작지점을 저장해줄 수 있어요. 그리고 그 지점을 각 서비스에서 골라 사용합니다.

외장하드에 영화, 드라마, 사진 폴더가 있다고 칩시다.

/ 을 외장하드 제일 바깥쪽 경로라고 한다면, "/영화", "/드라마", "/사진" 형식의 폴더가 있는 거에요.

OMV에서 각 폴더를 공유폴더로 설정했을 때, 동영상 스트리밍 서비스에선 "/영화"와 "/드라마"만 사용하고, 파일 공유 서비스에선 세 개 다 사용하겠다, 이렇게 설정할 수가 있습니다.

공유폴더로 지정해놓은 곳이 없으면 OMV 내에서 어떤 서비스도 사용하실 수 없습니다. 가장 바깥쪽 경로라도 설정해 놔야 해요.

OMV 공유 폴더 메뉴로 갑시다. 역시 추가 버튼이 있는데, 이 버튼을 누르시면


이런 창이 뜹니다. 장치로 방금 전 마운트한 파일시스템을 선택하고, 5TB 외장하드이므로 이름을 간단히 5TB로 지정했으며 경로는 가장 바깥쪽인 / 로 설정했습니다.

저장을 누르시면 아무것도 없던 목록에 5TB라는 아이템이 하나 추가됩니다.

여기서 권한을 눌러, 다음 스크린샷처럼 방금 만든 사용자에 대해 읽기/쓰기 권한을 줍시다. 해당 권한을 주지 않으면 아무것도 할 수 없습니다.

그리고 접근 제어 목록을 눌러줍니다. 방금 만든 사용자에 대해 읽기/쓰기 권한 체크 여부를 확인해주시고, 체크를 하신 뒤 저장합니다.


이것으로 가장 기본적인 설정이 완료되었습니다.


출처 : http://awesometic.tistory.com/48?category=964085

Posted by 타카스 류지
|

지난 번 오드로이드 XU4가 4.9 커널을 공식 지원하면서, 정리할 겸 포맷하고 새로 NAS를 구축했습니다. 그리고 그 과정을 하나씩 블로그에 포스팅했어요.

성능 개선(지금은 이미 커널에 적용되어 쓰이지 않는)까지 총 12편이었습니다. 이 글들을 하나씩 따라하면서 많은 분들이 자신만의 홈 NAS를 구축하신 걸로 알아요. 한 20명쯤 될까 예상합니다만.. :)

그 방법도 좋습니다. 리눅스와 서버에 어느 정도 지식이 있는 분들은 그렇게 NAS를 구축하시는 걸 더 좋아하실 수 있어요.

그런데 지금부터 쓸 과정은 조금 다릅니다. 리눅스와 서버가 낯설으신 분들, 하지만 Dropbox, Google Drive 등을 유료로 사용하긴 싫고 밖에서 인터넷으로 내 자료, 내가 저장한 동영상을 보고 싶으신 분들을 위해 OMV를 적용해서 새로 써보려고 합니다.

이전 가이드는 맨 앞에 "독자가 어느 정도 오드로이드와 리눅스 시스템에 지식이 있다고 생각하며 작성하겠다"고 써 놨지만, 이번엔 "독자가 오드로이드와 리눅스 시스템을 세상 들어본 적도 없다"고 생각하며 최대한 작성하겠습니다.


사실 이 글의 진정한 목적은 SBC(Single Board Computer)로 NAS 구축하기 입니다. 오드로이드 XU4, 오드로이드 XU4Q뿐 아니라 오드로이드 C2, 라즈베리파이2, 라즈베리파이3, 바나나파이, 파이64 등 OMV가 제공되는ARM 기반 SBC라면 전부 따라하실 수 있을 거라 생각합니다.

천천히 가봅시다.




시작하기 앞서 많은 분들이 NAS를 잘 모르실 거라 생각됩니다. 인터넷만 있으면 내 자료를 관리할 수 있고, 내가 저장한 동영상도 스트리밍하거나 다운받아 볼 수 있고, 토렌트도 대신 받아주고 하는 기계 정도로만 생각하실 것 같은데요. 그걸 저렴하게 만들려고 이 게시글을 보시는 거고 그쵸.

전 그게 맞다고 봅니다. 그런 걸 하는 게 NAS입니다. 하지만 살짝 개념은 잡고 가셔야 해요.

NAS(Network Attached Storage) 는 서버의 한 종류 입니다. 서버는 다들 대충 들으셨다시피 24시간 365일 내내 돌고 있어야 해요. 네이버도 어디 서버가 돌고 있기 때문에 뜨는 거잖아요? 네이버가 10시~6시에 접속이 안 되고 그러진 않죠.

그래서 저희가 만들 NAS도 하루 종일 돌아야 합니다. 

집안에서 컴퓨터를 하루 종일 돌리려면 드는 돈이 벌써 어마어마합니다. 데스크탑을 NAS로 활용할 순 있겠지만, 그러기엔 전력 소모가 너무 많습니다.


그래서 전 SBC를 선택했습니다. 요새 나오는 건 NAS 용도로는 충분해요. 심지어 시중에 파는 가정용 NAS보다도 성능은 더 좋은데 더 저렴하구요.

가정 내 빠른 인터넷 속도를 위해 기가비트 이더넷이 필요하고, USB 외장하드와 연결 속도도 빨라야 하니 USB 3.0도 필요합니다. USB에 외장하드처럼 보조저장장치를 달 때 속도를 최적화시켜주는 UASP를 지원하면 더 좋구요.

그러다보니 오드로이드 XU4 를 선택했습니다. 라즈베리파이나 바나나파이는 기가비트 이더넷이 안 되던가 USB 3.0이 안 되던가 다양하게 안 돼요.

관련 정보는 아래 포스팅을 참고해주세요.

2017/08/09 - [오드로이드 XU4/Misc] - SBC를 이용한 자작 NAS 장비 선택


외장하드는 UASP가 지원되는가를 보시고 오시면 돼요. 지금도 오드로이드 XU4에선 모든 컨트롤러에 대해 호환이 잘 되는 건 아니지만, JMicron 컨트롤러를 사용한다면 UASP 지원 보장이 되는 것 같습니다.

아니면.. 오드로이드라면 오드로이드 XU4Q와 CloudShell2, 3.5인치 HDD를 사셔도 되구요.

그리고 대부분의 SBC는 마이크로 SD카드가 필요합니다.


따라서 준비물

오드로이드 XU4
 - NAS 서버 컴퓨터

오드로이드 XU4 전원 어댑터 및 케이블

MicroSD 카드
 - 운영체제를 올릴 부팅 디스크 용

외장하드 1개 이상
 - 음악, 사진, 동영상 등 미디어 저장 용

기가비트 공유기
 - NAS에 데이터를 빠르게 넣거나 NAS로부터 빠르게 가져오기 위해 필요

CAT5e 이상의 LAN 케이블
 - 기가비트를 지원하기 위해선 CAT5e 이상 규격이 필요
 - 랜선 케이블의 글씨를 잘 보시면 카테고리(CAT) 몇인지 나와 있으니 확인 필요

NAS 구축을 위한 인터넷이 연결된 컴퓨터
 - 오드로이드에 운영체제를 올리거나 오드로이드에 OMV, SSH 접속해 작업을 하기 위함

유전원 USB 3.0 허브
 - 외장하드가 2개 이상일 경우 안정적인 전원을 공급하기 위함
 - 외장하드가 1개일 경우에도 안정적인 전원 공급을 위해 유전원 허브를 구매 추천. 실제로 플래터가 많고 대용량이거나 3.5인치 HDD가 들어간 외장하드라면 전원 공급이 안 되어 제대로 작동하지 않을 수 있습니다.


이번 가이드를 잘 따라가신다면,

- 스마트폰 자료 자동 백업하기

- 인터넷으로 내 자료 관리, 공유하기

- 밖에서 내가 저장한 동영상 스트리밍하기

- 토렌트를 스마트폰으로 다운로드받고 관리하기

- 개인 블로그 호스팅하기

- 보안을 위해 SSL 적용

등등을 하실 수 있으실 겁니다.

OMV를 기반으로 할 거구요, 리눅스가 어색한 분들을 위해 최대한 쉬운 방향으로 가이드를 작성하려고 합니다.

출처 : http://awesometic.tistory.com/47?category=964085


Posted by 타카스 류지
|

sudo nano /etc/ssh/sshd_config


sshd_config 파일에서 PermitRootLogin 을 찾습니다


----------------------------------------

# Authentication:

LoginGraceTime 120

PermitRootLogin without-password   

StrictModes yes

----------------------------------------


PermitRootLogin yes



without-password 라고 되있는데 yes 로 변경합니다


이제 저장 합니다.


Ctrl+O 엔터, Ctrl+X 


service sshd restart


Posted by 타카스 류지
|

하나의 서버에 기본적으로 포트가 여러개 있지만

서브 도메인으로 포트마다 분기를 시키고 싶을때 프록시를 이용해서

분기가 가능


기본 

<VirtualHost *:*>

  ProxyPreserveHost On


  # Servers to proxy the connection, or;

  # List of application servers:

  # Usage:

  # ProxyPass / http://[IP Addr.]:[port]/

  # ProxyPassReverse / http://[IP Addr.]:[port]/

  # Example:

  ProxyPass / http://0.0.0.0:8080/

  ProxyPassReverse / http://0.0.0.0:8080/


  ServerName localhost

</VirtualHost>



활용법

conf/httpd.conf 를 열어서 내용 하단에 밑에 1줄 추가


<httpd.conf>주석제거

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_http_module modules/mod_proxy_http.so

※ 없으면 conf.modules.d/00-proxy.conf  에 선언되어있는지 확인


include conf/vhost.conf 하단에 추가


그리고 나서 


conf/vhost.conf 열기(없으면 생성)


---------------------------------------------------------------------

#NameVirtualHost *:80   <-- 최신버전에서는 안넣어도되지만 안될시 주석 해제


<VirtualHost *:80> <---- IP : 80 >

    ProxyPreserveHost On

    ProxyRequests Off

    ServerName cjbox.tistory.com

    ServerAlias cjbox.tistory.com

    ProxyPass / http://127.0.0.1:포트/ retry=1 acquire=3000 timeout=600 Keepalive=On

    ProxyPassReverse / http://127.0.0.1:포트/

</VirtualHost>

---------------------------------------------------------------------

저장후 리스타트~ 끝



Posted by 타카스 류지
|

라즈베리파이 하고 오드로이드 두개를 가지고 고민하다가


라즈베리파이를 먼저 구매해서 사용해봤는데 이것저것 활용해본결과 코어가 중요했음...


그래서 오드로이드를 구매했는데 물건 반입이 3주나 걸린다고함 ㅠ.ㅠ


구매한지 일주일 다되가는데 2주를 더기다리고 


그때부터 순차 발송..... 1주더 기다림 ;;;;물건사고 한달기다리게 되네요..흑흑 ㅠ.ㅠ


http://www.hardkernel.com/main/products/prdt_info.php?g_code=G143452239825


위 링크에 라즈베리파이3, 오드로이드 랑 비교한 성능비교 자료 있네요 0-0


ODROID-XU4 - 제가 구매한 장난감...


* Samsung Exynos5422 Cortex-A15 2Ghz and Cortex-A7 Octa core CPUs

* 2Gbyte LPDDR3 RAM PoP stacked

* SATA-3 port for 2.5inch HDD/SSD storage up to 15mm thickness

* Gigabit Ethernet port

* USB 2.0 Host

* UHS-1 capable micro-SD card slot for boot media

* Size : 147 x 85 x 29 mm approx.(including Aluminium cooling frame)

* Linux server OS images based on modern Kernel 4.14 LTS


ODROID-HC1 - 2.5 하드를 장착 시킬수 있음 HC2 보다 먼저나왔음


* Samsung Exynos5422 Cortex-A15 2Ghz and Cortex-A7 Octa core CPUs

* 2Gbyte LPDDR3 RAM PoP stacked

* SATA-3 port for 2.5inch HDD/SSD storage up to 15mm thickness

* Gigabit Ethernet port

* USB 2.0 Host

* UHS-1 capable micro-SD card slot for boot media

* Size : 147 x 85 x 29 mm approx.(including Aluminium cooling frame)

* Linux server OS images based on modern Kernel 4.14 LTS


ODROID-HC2 - 3.5 하드를 장착 시킬수있어서 대용량 NAS 로 아주 용이하게 보입니다.  출시


* Samsung Exynos5422 Cortex-A15 2Ghz and Cortex-A7 Octa core CPUs

* 2Gbyte LPDDR3 RAM PoP stacked

* SATA-3 port for 3.5inch or 2.5inch HDD/SSD  storage up to 27mm thickness

* Gigabit Ethernet port

* USB 2.0 Host

* UHS-1 capable micro-SD card slot for boot media

* Size : 197 x 115 x 42 mm approx.(Aluminium cooling frame size)

* Linux server OS images based on modern Kernel 4.14 LTS


ODROID-MC1  <-- 이게 좀 혹하기는 했음 ;;; 비싸서 패스..


* 4 units are fully assembled with a cooling fan.
* Each unit has Samsung Exynos5422 big-LITTLE octa-core CPUS with 2GB RAM
* Each unit has Gigabit Ethernet port for clustering.
* USB 2.0 Host
* UHS-1 capable micro-SD card slot for boot media
* 92x92x25mm 5Volt/2000RPM low noise cooling fan with USB power cable.
* Screws : M3 x 8mm self tapping screw
* Size : 112 x 93 x 72 mm approx.
* Linux OS images based on modern Kernel 4.9 LTS and Kernel 4.14 LTS


Posted by 타카스 류지
|

멀티 톰캣 인스턴스로 실행하기 (Multiple Tomcat Instances)

Facebook Server Side Architecture Group #SSAG
https://www.facebook.com/groups/serverside/
1. 필요성

.실무 프로젝트의 deploy 환경은  3가지(“개발“, “스테이징“, “상용“)로 구분 됩니다.
물론 프로젝트의 상황과 환경에 따라서 다소 차이는 있지만 대부분 위에 언급한
단계로 개발을 진행 합니다.

개발 단계“는 말그대로 “개발을 할수 있는 최소 환경” 입니다. 대부분 이단계에서
개발자들은 많은 시간을 보내고, 테스트도 제일 많이 합니다.

스테이징 단계“는 “기능 및 성능을 테스트 하기 위한 환경” 입니다. 실제로 서비스만
하지 않을뿐 “상용 단계“와 거의 동일 환경으로 구성되어 있습니다.
외부 연동 서버, 성능 테스트를 진행하며 “상용단계“를 위한 최종 검증의 환경이라고 할수 있습니다.

상용 단계” 는 실제로 서비스하고,  고객이 접속하는 환경을 말합니다.

이렇게 개발 환경이 다르기 때문에 당연히 서버 구축 요구 사항도 틀립니다.
예를 들면 “개발 환경” 같은 경우에는  “One Server, One Instance, Multiple Context“를
주로 사용합니다.

하지만 “스테이징 단계” 이상 부터는 아래의 요구 사항을 수용해야 합니다.

  • 하나의 서버에서 2개이상 WAS 버전이 구동 될수 있다.
  • 상위 버전 업그레이드가 용이해야 하며, 기존 서비스 변경은 최소화 해야 한다.
  • 서비스별 튜닝 설정 (WAS, JNDI, Http Connection)이 별도로 구성되어야 한다.
  • 하나의 인스턴스를 Shutdown 해도 다른 서비스에 영향이 없어야 한다.
  • 운영 관리 및 장애 대응에 신속하게 처리 해야 한다.

2. Big Picture

dfdTomcat 디렉토리는 아래의 그림과 같습니다.

  • lib : Tomcat Engine이 사용하는 외부 라이브러리 (.jar) 디렉토리
  • bin : Tomcat를 런하는 명령 스크립트 디렉토리
  • conf : Tomcat Web 서비스를 위한 설정 파일 디렉토리
  • logs : 로그 파일 디렉토리
  • temp : Tomcat Engine에서 사용하는 임시 파일 디렉토리
  • webapps : 웹 어플리케이션 deploy 디렉토리
  • work : JSP 파일이 서블릿으로 컴파일(.class)된 디렉토리

여기서 재미난 유추를 할수 있습니다. “자바 서버군 오픈소스” (특히 Apache Project)의
디렉토리 구조는 Tomcat과 매우 유사한 structure로 되어 있습니다.
대표적인 것이 “하둡” 입니다.
그외에 “Cassandra“, “Flume“, “ActiveMQ“등도 매우 유사 합니다.

Anyway, 사실 Tomcat Engine은  “lib“, “bin” 디렉토리만 사용 합니다.
반면, 실제 서비스를 담당하는 인스턴스들은
conf“, “logs“, “temp“, “webapps“, “work” 디렉토리를 사용 합니다.
여기서 잠시 용어를 정리 하자면 인스턴스라 함은 하나의
jvm“을 말합니다.

그렇기 때문에 아래와 같이 물리적으로 디렉토리를 분리함으로써 “멀티 인스턴스
환경을 구성을 할수 있습니다.

$CATALINA_HOME/bin/startup.sh” 실행하면 실제로 “catalina.sh“이 실행 됩니다.
catalina.sh“은 “CATALINA_HOME” 환경 변수를 통해서 “Tomcat Engine” 디렉토리를
찾고 기동을 위한 준비 합니다. 그리고  “CATALINA_BASE” 환경변수에 있는 디렉토리를
찾아서 해당 인스턴스를 기동 합니다.

그렇기 때문에 2개의 환경변수 설정, 톰캣 디렉토리의 분리,
인스턴스별 기동/중지 스크립트 작성 및
 server.xml 수정을 하면,
어렵지 않게 구현 하실수 있습니다.

여기서 잠시 Tomcat이 사용하는 “환경 변수“에 대해서 간략하게 설명 하겠습니다.

  • CATALINA_HOME : Tomcat Engine 디렉토리
  • CATALINA_BASE : 인스턴스 홈 디렉토리
  • CATALINA_TMPDIR : 인스턴스가 사용하는 임시 디렉토리
  • JAVA_HOME : 자바 홈 디렉토리
  • CLASSPATH : 클래스 패스 설정 정보

3. 설치 환경

.OS : CentOS 5.8 ※OS는 크게 차이가 없습니다.
JDK : 1.6.23
Tomcat : 7.x
Tomcat Home Directory : /home/beyondj2ee/was/tomcat7
Instance1 Directory : /home/beyondj2ee/was/apps/instance1
Instance2 Directory : /home/beyondj2ee/was/apps/instance2
JDK 설치 경로 : /home/beyondj2ee/java
사용자 계정 : beyondj2ee

4. 설치 하기

.(1) Tomcat 및 Java 홈 디렉토리 설정

※ 참고로 Tomcat 과 Java 설치는 생략 했습니다. 이와 관련된 부분은 다른 자료를 참고 하시기 
바랍니다.

OS 홈 디렉토리에 있는 “.bash_profile“를 열어서 아래와 같이 환경 변수를 설정 합니다.

1
2
export JAVA_HOME=~/java
export CATALINA_HOME=~/was/tomcat7

(2) 인스턴스별 루트 디렉토리 생성

각 인스턴스별 디렉토리를 생성 합니다. 여기서는 2개만 생성하도록 하겠습니다.

1
2
# mkdir -p /home/beyondj2ee/was/apps/instance1
# mkdir -p /home/beyondj2ee/was/apps/instance2

(3) 인스턴스별 필수 디렉토리 복사

Tomcat Home” 디렉토리로 이동해서 각 인스턴스에게 필요한 디렉토리들을 복사 합니다.

1
2
3
# cd $CATALINA_HOME
# cp -R * /home/beyondj2ee/was/apps/instance1
# cp -R * /home/beyondj2ee/was/apps/instance2

필요 없는 디렉토리들을 삭제 합니다.

1
2
3
4
# cd /home/beyondj2ee/was/apps/instance1
# rm -rf LICENSE;rm -rf NOTICE;rm -rf RELEASE-NOTES;rm -rf RUNNING.txt;rm -rf ./bin;rm -rf ./lib
# cd /home/beyondj2ee/was/apps/instance2
# rm -rf LICENSE;rm -rf NOTICE;rm -rf RELEASE-NOTES;rm -rf RUNNING.txt;rm -rf ./bin;rm -rf ./lib

(4) 인스턴스별 server.xml 수정하기

각 인스턴스별로 server.xml를 수정합니다. 여기서 중요한 것은 “하나의 머신”에서
멀티로 인스턴스를 기동하기 때문에 Port가 충돌이 날수 있습니다.

그렇기 때문에 Port설정에 제일 유념해야 합니다.
실무에서는 반드시 각 인스턴스별 Port를 정책적으로 관리 해야 합니다.


Instance1의 sever.xml

1
2
3
4
5
6
7
8
9
10
# vi /home/beyondj2ee/was/apps/instance1/conf/server.xml
--- server.xml -----------------------------------------------
<server port="8005" shutdown="SHUTDOWN">
    .....
    <connector
        connectiontimeout="20000"port="8080"
        protocol="org.apache.coyote.http11.Http11NioProtocol"
        redirectport="8443" />
    <connector port="8009" protocol="AJP/1.3" redirectport="8443" />
</server>

Instance2의 sever.xml

1
2
3
4
5
6
7
8
9
10
# vi /home/beyondj2ee/was/apps/instance1/conf/server.xml
--- server.xml -----------------------------------------------
<server port="8105" shutdown="SHUTDOWN">
    .....
    <connector
        connectiontimeout="20000" port="8181"
        protocol="org.apache.coyote.http11.Http11NioProtocol"
        redirectport="81443" />
    <connector port="8109" protocol="AJP/1.3" redirectport="81443" />
</server>
  •  반드시 server 엘리먼트에 shutdown=”SHUTDOWN”이라고 선언 해야 합니다. 실제로 “shutdown”
    명령을 실행하면 위에 선언된 속성의 인스턴스를 찾아서 중지를 하기 때문입니다.
  • server port, http port, ajp port, redirectport 이렇게 4개의 포트를 충돌 없이 선언이 되어야 합니다.

(5) 인스턴스별 기동/중지 쉘 만들기

Instance1의 startup-instance1.sh

1
2
3
4
5
6
7
8
# vi /home/beyondj2ee/was/apps/instance1/startup-instance1.sh
--- startup-instance1.sh -----------------------------------------------
#!/usr/bin/env bash
export CATALINA_BASE=/home/beyondj2ee/was/apps/instance1
export JAVA_OPTS="-Djava.awt.headless=true -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+DisableExplicitGC"
export CATALINA_OPTS="-Denv=product -Denv.servername=instance1"
cd $CATALINA_HOME/bin
./startup.sh
  • “CATALINA_BASE”  환경 변수에 인스턴스1의 홈 디렉토리 경로를 설정 합니다.
  • “JAVA_OPS”, “CATALINA_OPTS” 환경 변수를 서비스 요건에 맞게 설정을 합니다.
  • “Tomat Home” 디렉토리의 “bin” 디렉토리로 이동후 “startup.sh”를 실행 합니다.

Instance1의 shutdown-instance1.sh

1
2
3
4
5
6
# vi /home/beyondj2ee/was/apps/instance1/shutdown-instance1.sh
--- shutdown-instance1.sh -----------------------------------------------
#!/usr/bin/env bash
export CATALINA_BASE=/home/beyondj2ee/was/apps/instance1
cd $CATALINA_HOME/bin
./shutdown.sh
  • “CATALINA_BASE”  환경 변수에 인스턴스1의 홈 디렉토리 경로를 설정 합니다.
  • “Tomat Home” 디렉토리의 “bin” 디렉토리로 이동후 “shutdown.sh”를 실행 합니다.

Instance2의 startup-instance2.sh

1
2
3
4
5
6
7
8
# vi /home/beyondj2ee/was/apps/instance2/startup-instance2.sh
--- startup-instance2.sh -----------------------------------------------
#!/usr/bin/env bash
export CATALINA_BASE=/home/beyondj2ee/was/apps/instance2
export JAVA_OPTS="-Djava.awt.headless=true -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+DisableExplicitGC"
export CATALINA_OPTS="-Denv=product -Denv.servername=instance2"
cd $CATALINA_HOME/bin
./startup.sh

Instance2의 shutdown-instance2.sh

1
2
3
4
5
6
# vi /home/beyondj2ee/was/apps/instance2/shutdown-instance2.sh
--- shutdown-instance2.sh -----------------------------------------------
#!/usr/bin/env bash
export CATALINA_BASE=/home/beyondj2ee/was/apps/instance2
cd $CATALINA_HOME/bin
./shutdown.sh

5. 서버 기동 및 확인

설치 및 설정이 끝났습니다.  확인을 위해서 각 인스턴스별 서버를 “startup“해 보겠습니다.
아래와 같이 각 인스턴스별 “” 스크립트를 실행 합니다.

두개의 브라우져를 열고, 각 인스턴스가 서비스 하는 “port”로 접속 합니다.

5. Conclusion

Tomcat Server는 오늘 날  세계적으로 Java WAS로서 제일 많은 사용하고 있습니다. 특히,
Tomcat7“이 출시 되면서 성능, 안정성, 다양한 기능들에 대해서 많은 변화가 있었습니다.

Multiple Tomcat 기동 방법“은 실제로 real 환경에서 종종 사용하는 팁입니다.
하지만 위에서 언급했듯이 “관리 정책“이 없으면, 오히려 더욱 시스템이 복잡해 질수 있습니다.
이점 유념하시면서 유용하게 사용 하셨으면 합니다.

※참고 자료

.
Multiple Instances of Tomcat with Apache
Multiple Tomcat Instances on Single Machine
Setting up multiple instances of Tomcat


출처 : https://beyondj2ee.wordpress.com/2012/07/03/%EB%A9%80%ED%8B%B0-%ED%86%B0%EC%BA%A3-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EB%A1%9C-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0-multiple-tomcat-instances/


Posted by 타카스 류지
|
OMV 를 VirtualBox  에 올려놓고 테스트를 해봤는데 Tvheadend 가 잘 설치되고 화면도 잘 나옵니다.





라즈베리파이3 에 라즈비안을 올려서 하기도 했는데 Webmin 을 설치해 관리하는것도 있지만




좀더 설치도 간소화 하고 사용하게 편한걸 찾다보니 OMV 를 사용해보았습니다.





여러 테스트를 해보았는데 Tvheadend 가 쉽게 설치가 되지 않아서 자료를 찾아보고 테스트를 해보았습니다.



잘되네요...ㅋ






Backport Kernel installieren


Im Linux Kernel ab Version 3.19 ist der Treiber für unsere Karte bereits integriert, daher installieren wir als erstes den neuesten Backport Kernel (zur Zeit Version 4.6).


echo "deb http://ftp.de.debian.org/debian/ jessie-backports main" | sudo tee -a /etc/apt/sources.list

apt-get update

apt-get install linux-base -t jessie-backports

Nach Eingabe des nächsten Befehls wird eine Liste der aktuellen Kernel angezeigt, sollte es, wenn ihr diese Anleitung durchspielt, bereits einen neueren Kernel geben, ersetzt ihr den Namen des linux-image und des linux-headers aus den nachfolgenden Befehlszeilen einfach durch die aktuelle Version.

apt-cache search linux-image

이미지 검색후 밑 이름에 버전 종류만 바꿔서 설치 진행

apt-get install linux-image-4.6.0-0.bpo.1-amd64

apt-get install linux-headers-4.6.0-0.bpo.1-amd64

apt-get upgrade

reboot



Firmware der DVB-S Karte DVBSKy S952 Rev. 3 installieren


Nach dem Reboot müssen wir uns via Putty neu mit dem Server verbinden und uns wieder als root anmelden. Hier installieren wir nun die zur Zeit aktuelle Firmware der von uns genutzten DVB-S Karte DVBSKy S952 Rev. 3.


cd /lib/firmware/

wget https://github.com/LibreELEC/dvb-firmware/raw/master/firmware/dvb-demod-m88rs6000.fw

reboot



TVHeadend Installieren


Erneut via Putty auf dem Server als Root anmelden.

In diesem letzten Schritt installieren wir nun die Server Software TVHeadend.


apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61

Bevor ihr den folgenden Befehl eingebt und bestätigt, lest euch bitte unten die Erklärung dazu durch.*

echo "deb https://dl.bintray.com/tvheadend/deb jessie stable" | sudo tee -a /etc/apt/sources.list

아래 껄로 하니 설치가 잘됨

deb https://dl.bintray.com/tvheadend/deb jessie stable

deb https://dl.bintray.com/tvheadend/deb jessie unstable



apt-get install apt-transport-https

apt-get update

apt-get install tvheadend

Nach dem Bestätigen des letzten Befehls, öffnet sich automatisch das Konfigurationsfenster von TVHeadend. Hier vergebt ihr einen Namen mit dem ihr euch als Administrator nachher bei TVHeadend anmeldet, ein Passwort und bestätigt dies mit "OK".

  • Anleitung - TVHeadend Server unter Openmediavault 3 installieren
  • Anleitung - TVHeadend Server unter Openmediavault 3 installieren
  • Anleitung - TVHeadend Server unter Openmediavault 3 installieren
  • Anleitung - TVHeadend Server unter Openmediavault 3 installieren Thumbnail
  • Anleitung - TVHeadend Server unter Openmediavault 3 installieren Thumbnail
  • Anleitung - TVHeadend Server unter Openmediavault 3 installieren Thumbnail


reboot


*Hier eine kurze Erklärung wie sich diese Befehlszeile zusammensetzt:

echo "deb https://dl.bintray.com/tvheadend/deb DISTRO BUILDTYPE" | sudo tee -a /etc/apt/sources.list

DISTRO ersetzen durch:

  • wheezy – Debian 7 / OMV 2
  • jessie – Debian 8 / OMV 3


BUILDTYPE ersetzen durch:

  • release – Installiert die letzte offizielle stabile Version.
  • stable – Dieser Version ist noch in der Entwicklung, läuft aber schon recht stabil.
  • unstable – Diese Version ist für Probierfreudige die zugriff auf die neuesten Funktionen haben wollen. Diese Version kann instabil laufen.
  • obsolete – This contains a build of the last release from the 3.4 branch, it will receive no further updates.

Quelle: https://tvheadend.org/projects/tvheadend/wiki/AptRepository



Anmelden auf der Weboberfläche und Check ob alles geklappt hat


Innerhalb eures Netzwerkes gebt ihr in einem Browser eurer Wahl jetzt EureIP:9981 in die Adresszeile ein (z.B. 192.168.178.99:9981) und meldet euch dann mit dem von euch festgelegten Administratornamen und dem dazugehörigen Passwort an.

Dort Navigiert ihr den Reiter Configuration – DVB Inputs – TV adapters an und wenn es in etwa so aussieht...

Anleitung - TVHeadend Server unter Openmediavault 3 installieren



...hat alles geklappt.



Abschließende Worte


Mit dieser Anleitung sollte es eigentlich jedem möglich sein den TVHeadend Server in Verbindung mit der DVB-S Karte DVBSKy S952 Rev. 3 unter Openmediavault 3 zu installieren.

Die Einrichtung des Servers und des Clients bleibe ich euch erstmal schuldig, das folgt dann in der nächsten Anleitung.

Viel Spaß beim Nachmachen. ;)




출처 : https://www.technikaffe.de/anleitung-379-anleitung__tvheadend_server_unter_openmediavault_3_installieren

Posted by 타카스 류지
|

안녕하세요.

 

이전에 tvheadend 설치를 설명해 드린적 있습니다.

 

 

2017/12/26 - [라즈베리파이3] - 라즈베리파이3 tvheadend 설치

 

 

설치를 하셨으니 이제 활용을 하셔야 되잔아요?

 

여기에 필요한것은 IP TV 가 보고 있는 IP:PORT 정보 입니다.

 

보통 IP TV 주소를 스캔할때 OMVS 를 많이들 사용합니다.

 

하지만 OMVS 는 DOS 를 활용하기 때문에 잘 작동이 되는건지 오류를 뿜는다던가 하는 여러가지 문제가 발생되어

 

쉽게 주소를 스캔할수 있는 프로그램을 소개해 드립니다.

 

전 SKB 를 사용 하고 있으므로 SKB 기준으로 설명해 드리겠습니다.

 

각 통신사마다 다르니까 기본 적인 대역은 아래 주소에서 확인 하시면 됩니다.

 

https://www.netmanias.com/ko/?m=view&id=oneshot&no=7536

 

 

제가 스캔했던 전체 내용을 정리해보면 SKB 주소 대역이

 

239.192.38.* ~ 239.192.150.*   까지 입니다. 포트번호는 49220 입니다.

 

이제 이정보 가지고 스캔을 할건데요.

 

먼저 준비 사항이 통신사 셋톱박스가 연결되어있는 공유기에 유선으로 물려 있어야 합니다.

 

무선으로 SKB 에서 지급된 기가 와이파이에서 유선으로 물릴경우에만 스캔이 되고 무선은 스캔이 안됩니다.

 

이걸 해소하실려면 기가 와이파이대신 IPTIME 으로 바꾼 다음 IPTIME 공유기에 IPTV 설정을 해주시면 유무선 다됩니다.

 

이제 준비는 됬고 아래 파일을 받으시거나

 

MctvPlaylistCreator_1_3_6.zip

 

사이트에 가서 다운받으시면 됩니다.

 

http://uross-digital-tools.appspot.com/?subpage=mctv_scanner

 

 

이제 실행을 해보시면 아래 이미지 처럼 나옵니다. 이제 스캔 정보 아래 이미지 처럼 맞춰 주시면됩니다.

 

 

 

 

 

항목 설명

 

Port : 포트를 직접 입력. 각 IP 마다 포트가 다른 통신사를 사용하실 경우 사용이 힘듭니다. SKB는 49220 으로 모두 동일합니다.

 

NIC : 현재 인터넷에 연결되어있는 어뎁터를 선택해주시면 됩니다.

 

Start, Stop : 포트 범위 입니다. 239.192.38.* ~ 239.192.150.* 까지 스캔을 해야되므로 위처럼 셋팅합니다.

 

Wait timeout : IP스캔시 스트리밍 데이터를 기다리는 시간입니다. 최소 4~5초는 잡아주셔야 그나마 잡히고 적을 수록 누락되는 IP 가 늘어납니다.

 

Number of threads : 동시 스캔입니다. 2를 입력하시면 2개씩 IP 동시 검색합니다. 최대 25개 까지 가능합니다.

 

어차피 대기시간을 10초로 잡고 해도 누락 될 애들은 누락이 됩니다. 그러므로 25개로 설정하여 여러번 스캔해주시는게 좋습니다.

 

제가 스캔을 했을때 총 255개가 나왔으며 그중에 불량 채널 8개, 멀티 채널 7개, UHD 채널 3개, 중복 채널도 꽤 있습니다.

 

중복 채널같은 경우 트래픽이 몰릴경우를 대비해서 만든건지 잘모르겠네요 0-0

 

두개를 틀었을때 화질은 거의 비슷한데 사이즈가 쪼끔 다른거 빼고는 없었네요

 

이제 스캔을 합니다. 그냥 내비두고 한동안 다른거 하시면됩니다.

 

물론 스캔중인 PC 로 다른걸 할경우 누락될 경우는 더 늘어날수 있습니다.

 

스캔이 완료된후

 

 

 

csv 로 추출 합니다.

 

이제 이걸 m3u 로 만드셔야 되는데

 

간단하게 정리할수 있게

 

엑셀 파일 하나 공유 합니다.

 

 

ip_list 정리.xlsx


 

기본적인  SBS, KBS2, KBS1, MBC 채널 정보만 넣어두었습니다.

 

엑셀 내용 보시면

 

m3u 작업 시트에 A 라인을 전체 복사후 notepad++ 나 editplus 같은 에디터에 붙여넣고

 

\N 부분만 검색 바꾸기로 엔터(줄바꿈) 처리 하시면 됩니다.

다음에는 tvheadend 에 m3u 적용을 해보도록 하겠습니다.


----------------------------------------------------------------------------------


문의가 종종 와서 줄바꿈 작업 올려드립니다.


EditPlus.exe


위 포터블용 에디터 플러스를 받으세요

그리고 밑 첫번째 그림처럼 복사를 하신후 Ctrl+H 를 누르고

빨간색 부분을 누르시면 밑에 창이 더 열립니다.

Find what : 부분에  \n 를 입력해주시고

Replace with : 부분에 엔터를 쳐주세요

이미지 보시면 커서가 한줄 내려가 있습니다.

그뒤에 오른쪽 변에 변경인 Replace All 버튼을 눌러주세요




변환을 하면은 하단 이미지 처럼 줄바꿈이 되고 확장자 m3u 로 저장하시면 되겠습니다.











Posted by 타카스 류지
|

안녕하세요.

이전에 VirtualBox 라즈베리파이 해상도 변경에 대해서 했습니다.

이번 시간은 VirtualBox 에 라즈비안을 설치하는 설명을 해드릴껀데요

 

먼저 VirtualBox 설치부터 해야겠죠??

 

https://www.virtualbox.org/wiki/Downloads

http://download.virtualbox.org/virtualbox/5.2.4/VirtualBox-5.2.4-119785-Win.exe

 

현재 버전은 5.2 입니다.

그리고 RASPBERRY PI DESKTOP 버전을 받을껀데요

 

https://www.raspberrypi.org/downloads/raspberry-pi-desktop/

 

위 사이트 가셔서 받으셔도 되고 아래 URL 적어드렸으니 마음에 드는 버전을 다운받으시면 되겠습니다.

 

DEBIAN JESSIE WITH RASPBERRY PI DESKTOP

http://downloads.raspberrypi.org/rpd_x86/images/rpd_x86-2017-06-23/2017-06-22-rpd-x86-jessie.iso

http://downloads.raspberrypi.org/rpd_x86/images/rpd_x86-2017-06-23/2017-06-22-rpd-x86-jessie.iso.torrent

 

DEBIAN STRETCH WITH RASPBERRY PI DESKTOP

http://downloads.raspberrypi.org/rpd_x86/images/rpd_x86-2017-12-01/2017-11-16-rpd-x86-stretch.iso

http://downloads.raspberrypi.org/rpd_x86/images/rpd_x86-2017-12-01/2017-11-16-rpd-x86-stretch.iso.torrent

 

 

다운을 다 받으시고 VirtualBox 도 설치가 끝났으면 이제 설치를 시작해 봅시다.

 

하단에 슬라이드 이미지를 보시면서 천천히 하시기 바랍니다.

 

1. 새로만들기

2. 이름 : raspi-jessie - 원하는 이름

   종류 : Lunux

   버전 : Ubuntu (32-bit)  <- 라즈베리파이가 x86 이므로 이걸 사용합니다.

3. 메모리는 1024 로 합니다. 라즈베리파이3 를 가지고 계신분이면

    테스트로 설치하실경우 같은 자원으로 설치해주시는게 좋으며

    PC 에 설치해서 운영하실분은 크게 잡아주셔도 됩니다.

4. 지금 새 가상 하드 디스크 만들기 - 만들기

5. VDI (VirtualBox 디스크 이미지) - 다음

6. 동적 할당 - 다음

7. 원하시는 경로 지정해주시고 용량은 넉넉하게 32GB 로 잡아주시면 됩니다. 최소는 8기가입니다. - 만들기

8. raspi-jessie 가 만들어 졌습니다. 바로 위에 보이는 설정 버튼 클릭

9. 시스템 - 프로세서 - 저는 2개롤 지정해 줬습니다. 최소 1개 부터이고 코어가 남아도시면 4개이상 하셔도 됩니다.

10. 저장소

     컨트롤러 : IDE - 비어있음 - 클릭

     광학드라이버에 맨 오른쪽 CD 모양 버튼을 클릭

11. 원하시는 버전 ISO 파일 선택 - 그리고 확인

12. 기본 VirtualBox 설정은 끝났고 raspi-jessie 항목을 더블클릭해 실행 합니다.

13. 파란창에 여러 메뉴가 보입니다.

    Graphical install 로 방향키를 이용해 이동하고 엔터

14. keyboard 설정 korean 을 선택하고 - Continue

15. Guided - use entire disk 선택 - Continue

16. SCSI (0,0,0)(sda) - 34.4 GB ATA VBOX HARDDISK 하나가 나옵니다. 선택 - Continue

17. All files in one partition (recommended for new users) 선택 - Continue

18. Finish partitioning and Write changes to disk 선택 - Continue

19. Partition disks - 라디오 버튼 Yes 선택 - Continue - 설치가 진행되는중 기다립니다.

20. Install the GRUB boot loader on a hard disk - 라디오 버튼 yes 선택 - Continue

21. 두번째 메뉴 선택 - Continue

22. Finish the installation - Continue

23. 설치가 다 완료 되었으며 자동으로 재부팅 되고 기다리면 GRUB 화면이 출력되며

     몇초뒤에 방가운 산딸기 화면이 뜨고 라즈베리파이 화면이 출력 됩니다.

 

0123456789101112131415161718192021

 

이상 VirtualBox 에 라즈베리파이를 설치하는 방법 이였습니다.

 

하단 링크는 설치 이후에 하셔야할 사항 입니다.

 

 

2017/12/22 - [라즈베리파이3] - 라즈베리파이3 초기 한글 설정

2017/12/27 - [라즈베리파이3] - VirtualBox 라즈베리파이3 해상도 변경

 

 

Posted by 타카스 류지
|

PC 에서 VirtualBox 에 라즈베리파이3 버전을 올리고 보면은
해상도 조정이 불가한 부분이 있습니다.
이부분을 해소 하려면 VirtualBox Guest Additions를 설치해야 합니다.

 

VirutalBox 메뉴에서 장치 -> 게스트 확장 설치

 

게스트 확장 창이 열리면 cdrom 에있는 내용을 [복사]

 

 

 

/home/pi/Downloads 폴더안에 복사 합니다.

 

 

 

복사 완료후 콘솔로 들어가서

 

-$ cd /home/pi/Downloads

-$ sudo ./VBoxLinuxAdditions.run

위 명령어로 플러그인을 설치 합니다. 설치가 완료 되면

 

파일을 하나 생성 합니다.

 

-$ sudo nano /etc/X11/xorg.conf  (파일이 없으면 새로 생성)

 

----------------------------------------------
Section "Device"
    Identifier  "Configured Video Device"
    Driver      "vboxvideo"
EndSection
 
Section "Monitor"
    Identifier  "Configured Monitor"
EndSection
 
Section "Screen"
    Identifier  "Default Screen"
    Monitor     "Configured Monitor"
    Device      "Configured Video Device"
EndSection
----------------------------------------------

 

위 내용을 그대로 넣으신 후 재부팅 시킨후 VirtualBox 창을 변화시키는 대로 해상도가 자동으로 바뀌게 됩니다.

 

다음엔 VirtualBox 에 라즈베리파이3 를 설치하는 방법을 알려드리겠습니다. 순서가 좀 바뀌었지만 0-0ㅎ;;

 

Posted by 타카스 류지
|

이번에 사용할 것은 핸드폰으로 텔레그램 어플을 이용하여

토렌트 파일을 검색하고 다운로드 하는 부분을 해보겠습니다.

시작 하기 전에 이전에 올린 글을 참고 하시고 하시기 바랍니다.

 

2017/12/27 - [라즈베리파이3] - 라즈베리파이3 transmission(토렌트)

2017/12/26 - [라즈베리파이3] - API 텔레그램 토큰 생성

2017/12/27 - [라즈베리파이3] - 라즈베리파이3 transmission (텔레그램 API 연동)

 

 

-$ cd /home/pi

 

받기
-$ git clone https://github.com/seungjuchoi/telegram-control-torrent

이름변경(사용하기 쉽게)
-$ mv telegram-control-torrent telegram

-$ cd ./telegram


이름 변경
-$ mv setting_templete.json setting.json


수정
-$ nano setting.json

 

--------------------------------------------------------
{
  "common": {
    "token": "110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw",
    "valid_users": [
      123456789,
      123456789
    ],
    "agent_type": "transmission",
    "download_path": "~/Downloads"
  },
  "transmission": {
    "id_pw": "transmission:transmission",
    "port": ""
  }
}

--------------------------------------------------------

위 내용이 보입니다. 아래는 설명

--------------------------------------------------------

{
  "common": {
    "token": "텔레그램 API 토큰",
    "valid_users": [
      사용할 아이디
   123456789,987654321  <---- 이렇게 하면 두명이 사용 가능합니다.     
    ],
    "agent_type": "transmission",
    "download_path": "~/Downloads"  <-- 기본 다운로드 경로
  },
  "transmission": {
    "id_pw": "아이디:패스워드",
    "port": "포트번호 기본 9091 입니다."
  }
}
--------------------------------------------------------

 

폴더안에 보시면 pip-requirements.txt 파일이 있습니다. 이파일은 여러개 패키지가 적혀있는데 한번에 불러와 설치합니다.

-$ sudo pip3 install -r pip-requirements.txt

 

실행방법
-$ python3 telegram_torrent.py

실행후

 Listening ...

라고 떠있으면 성공 한겁니다.

 

이제 핸드폰으로 봇창을 열어서 아무 말을 걸어 메세지 창이 뜨면 잘연동된것 입니다.

 

이제 이걸 자동으로 실행 되게 설정 하겠습니다.

먼저 아래 테스트내용을 해보고난 다음 스크립트를 작성해보겠습니다.

 

백그라운드 실행(테스트)
- $ nohup python3 -u /home/osmc/telegram/telegram_torrent.py &

 

텔레그램 백그라운드 검색 종료(테스트)
- $ kill $(ps -e | grep python3)
- $ kill $(ps aux |awk '/telegram_torrent.py/ {print $2}')

 

 

★ 실행정지 데몬 만들기

 

-$ sudo nano /etc/init.d/telegram

 

--------------------- telegram -----------------------
#!/bin/sh
### BEGIN INIT INFO
# Provides:          telegram
# Required-Start:    $network
# Required-Stop:     $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop telegram
### END INIT INFO
 
case "$1" in
  start)
    nohup python3 -u /home/pi/telegram/telegram_torrent.py &
    echo "텔레그램 봇 시작"
    ;;
  stop)
    sudo kill $(ps -e | grep python3)
    echo "텔레그램 봇 정지"
    ;;
  *)
    echo "Usage: /etc/init.d/telegram {start|stop}"
    exit 1
    ;;
esac
exit 0

---------------------------------------------------------

소유권 이동

-$ sudo chown pi:pi /etc/init.d/telegram

권한 수정
-$ sudo chmod 755 /etc/init.d/telegram

 

 

#Tip. update-rc.d 서비스 수동실행 명령어
-$ sudo /etc/init.d/telegram start
-$ sudo /etc/init.d/telegram stop

 

-$ sudo service telegram start
-$ sudo service telegram stop

 

위 명령어가 이상 없이 잘되면은

아래 서비스를 등록하면 끝입니다.

 

 

시작 서비스 등록
-$ sudo update-rc.d telegram defaults

 

시작 서비스 삭제
-$ sudo update-rc.d -f telegram remove

 

아래 파일은 영문을 한글로 바꿔논 파일입니다.

기본 파일을 사용시에 시드가 죽거나, 받다가 시드가 없어지거나, 정지하거나 할 경우

해당 다운로드 시드를 지워버리는 부분이 보여서 수정하였습니다.

그리고 필요시에 transmission 을 종료 시키고 시작 시키는 버튼도 넣었으니 알아서 고쳐서 사용하시면 되겠습니다.

 

telegram_torrent.py

 

위 파일에서 transmission  종료는 이전 강좌에서 설명해 드렸던 내용중

 

2017/12/27 - [라즈베리파이3] - 라즈베리파이3 transmission(토렌트)

 

crontab 예약 작업을 제거하고 사용하시면 되겠습니다.

 

 

구동하고나서 텔레그램  비서로 확인한 스샷입니다.

 

 

   

 

 

 

Posted by 타카스 류지
|

이전에 transmission 을 설치하는 방법을 알려드렸습니다.

이번 시간엔 transmission 이 다운이 완료 되었을때 텔레그램 푸쉬로 알림이 오는 설정을 하겠습니다.

 

이 글을 읽기 전에 하단 링크에 작업이 완료후에 진행하시면 되겠습니다.

 

2017/12/27 - [라즈베리파이3] - 라즈베리파이3 transmission(토렌트)

2017/12/26 - [라즈베리파이3] - API 텔레그램 토큰 생성

 

 

폴더 생성
-$ sudo mkdir /usr/script


권한부여
-$ sudo chmod -R 777 /usr/script

 

작성

-$ sudo nano /usr/script/torrent_push.sh

 

-------------------- torrent_push.sh ---------------

#!/bin/sh

# telegram configuration
SERVER="9091 --auth 아이디:패스워드"
TOKEN='111222333:aaaabbbbccccddddeeeeffffgggghhhhiii'
URL='https://api.telegram.org/bot'$TOKEN
MSG_URL=$URL'/sendMessage?chat_id='
CHAT_ID="123456789"

sleep 1s

# torrent remove
TORRENTLIST=`transmission-remote $SERVER --list | sed -e '1d;$d;s/^ *//' | cut --only-delimited --delimiter=" " --fields=1`
for TORRENTID in $TORRENTLIST
do
    DL_COMPLETED=`transmission-remote $SERVER --torrent $TORRENTID --info | grep "Percent Done: 100%"`
    STATE_STOPPED=`transmission-remote $SERVER --torrent $TORRENTID --info | grep "State: Seeding\|Stopped\|Finished\|Idle"`
    if [ "$DL_COMPLETED" ] && [ "$STATE_STOPPED" ]; then
        transmission-remote $SERVER --torrent $TORRENTID --remove
    fi
done

# telegram notify go
res=$(/usr/bin/curl --data-urlencode "text=$TR_TORRENT_NAME 다운로드가 완료되었습니다." "$MSG_URL"$CHAT_ID"&")
---------------------------------------------------

 

실행가능 하게 변경
-$ sudo chmod a+x /usr/script/torrent_push.sh


권한 부여
-$ sudo chmod 777 /usr/script/torrent_push.sh

 

토렌트 정지
-$ sudo /etc/init.d/transmission-daemon stop


설정파일 열기

-$ sudo nano /etc/transmission-daemon/settings.json

 


    "script-torrent-done-enabled": false,
    "script-torrent-done-filename": "",

위 내용을 아래 처럼 변경 

 

    "script-torrent-done-enabled": true,
    "script-torrent-done-filename": "/usr/script/torrent_push.sh",

 

 

transmission-daemon 시작

 

-$ sudo /etc/init.d/transmission-daemon start
OR
-$ sudo service transmission-daemon start
OR
-$ sudo transmission-daemon -g /etc/transmission-daemon

 

Posted by 타카스 류지
|