개인 설치형 웹하드 Seafile 꾸며보기

블로그 서버의 남는 용량을 뭐 어떻게 써볼 방법이 없을까 고민하다가 웹하드에 다시 도전해봤다.
이전에 Pydio를 가지고 삽질하다가 대용량 파일 문제로 포기했었는데 (Pydio 부스터 설치 실패기)
다른 설치형 웹하드로 시도해봤습니다.

Seafile 이라는 설치형 웹하드인데요.
거두절미 하고 장점을 말하자면 별 다른 세팅 없이 그냥 대용량 파일이 올라갑니다.
(5기가 파일도 그냥 한번에 업로드 되고 다운로드가 되는군요)

그래서 설치법을 간단하게 정리합니다.

 

1. 파일 다운로드
https://www.seafile.com/en/download/ 에 가면 많은 다운로드가 있는데 희안하게 가장 중요한 서버 다운로드는 밑에 있습니다.
저는 6.0.9 64bit 으로 받아서 설치 했습니다.

 

2. 설치
한가지 팁을 드리자면 폴더를 하나 만들고 그 안에서 압축을 풉니다.
그러면 seafile-server-버전 이런식으로 폴더가 생기는데  그 상태에서 작업을 하십시요.

저는 webhard 라는 폴더를 만들고 그 아래에 seafile-server-버전  이렇게 구성됬는데
이렇경우 설치하면 각종 설정파일이 “seafile-server-버전”에 생성되는게 아니라 그 상위 폴더에 생성됩니다.
처음에 웹서버 폴더에 통합해서 만들었더니 폴더에 파일 섞이는 문제 생기더군요.

linsoo@ubuntu:~/webhard/seafile-server$ ./setup-seafile.sh
-----------------------------------------------------------------
This script will guide you to config and setup your seafile server.

Make sure you have read seafile server manual at

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

Note: This script will guide your to setup seafile server using sqlite3,
which may have problems if your disk is on a NFS/CIFS/USB.
In these cases, we sugguest you setup seafile server using MySQL.

Press [ENTER] to continue
-----------------------------------------------------------------


Checking packages needed by seafile ...

Checking python on this machine ...
Find python: python2.7

  Checking python module: setuptools ... Done.
  Checking python module: python-imaging ... Done.
  Checking python module: python-sqlite3 ... Done.

Checking for sqlite3 ...Done.

Checking Done.


What would you like to use as the name of this seafile server?
Your seafile users will be able to see the name in their seafile client.
You can use a-z, A-Z, 0-9, _ and -, and the length should be 3 ~ 15
[server name]: Linsoo_Webhard


What is the ip or domain of this server?
For example, www.mycompany.com, or, 192.168.1.101

[This server's ip or domain]: webhard.linsoo.co.kr

Where would you like to store your seafile data?
Note: Please use a volume with enough free space.
[default: /home/linsoo/webhard/seafile-data ]

What tcp port do you want to use for seafile fileserver?
8082 is the recommended port.
[default: 8082 ]


This is your config information:

server name:        Linsoo_Webhard
server ip/domain:   webhard.linsoo.co.kr
seafile data dir:   /home/linsoo/webhard/seafile-data
fileserver port:    8082

If you are OK with the configuration, press [ENTER] to continue.

Generating ccnet configuration in /home/linsoo/webhard/ccnet...

done
Successly create configuration dir /home/linsoo/webhard/ccnet.

Generating seafile configuration in /home/linsoo/webhard/seafile-data ...

Done.

-----------------------------------------------------------------
Seahub is the web interface for seafile server.
Now let's setup seahub configuration. Press [ENTER] to continue
-----------------------------------------------------------------


Creating seahub database now, it may take one minute, please wait...


Done.

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


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

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

-----------------------------------------------------------------
If the server is behind a firewall, remember to open these tcp ports:
-----------------------------------------------------------------

port of seafile fileserver:   8082
port of seahub:               8000

When problems occur, refer to

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

for more information.

linsoo@ubuntu:~/webhard/seafile-server$

솔직히 설치는 별거 없습니다.
압축 풀고 ./setup-seafile.sh 실행하고 서버 이름이나 주소 그리고 포트만 지정해주면
끝입니다.
설치 다하고 seafile이랑 seahub 두개 실행해주면 되고요.

seafile은 실제 파일 전송 하는 c로 만들어진 부분이고 seahub는 파이선으로 만들어진 간단한 웹서버입니다.
서버를 실행해봅니다.

linsoo@ubuntu:~/webhard/seafile-server$ ./seafile.sh start
.
[06/06/17 09:58:20] ../common/session.c(132): using config file /home/linsoo/webhard/conf/ccnet.conf
Starting seafile server, please wait ...
Seafile server started

Done.
linsoo@ubuntu:~/webhard/seafile-server$ ./seahub.sh start-fastcgi

LC_ALL is not set in ENV, set to en_US.UTF-8
Starting seahub (fastcgi) at 127.0.0.1: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.

linsoo@ubuntu:~/webhard/seafile-server$

처음 실행시 관리자 비번 설정하는게 나옵니다.
접속을 해봅니다.

아마 별 문제 없이 잘 될겁니다 이제 해야 하는게 있습니다.

바로 nginx연동과 https 적용이지요.

이걸 해야 하는 이유는 단 하나입니다.
이거 적용하니 포트 포워딩이 필요 없습니다. 방화벽 포트도 추가 할 필요 없더군요.
80, 443포트로 다 해결됩니다.

https://manual.seafile.com/deploy/deploy_with_nginx.html
https://manual.seafile.com/deploy/https_with_nginx.html

솔직히 뭔가 딱히 추가 할거 없이 딱 저 링크 따라 하면 그냥 적용되긴합니다.
인증서 경로랑 포트, 도메인 주소만 본인의 것에 맞게 정리하면 끝납니다.

 

3. 삽질
제가 작업하면서 생겼던 문제라면 저는 처음에는 그냥 오리지날 세팅으로 꾸며서 실행해보고 정상 작동하는걸 확인 후
https+nginx 작업을 했더니

이런식으로 화면이 깨져서 나옵니다. 크롬 개발자 모드로 가면 css 파일 로드가 안되는데 이거 원인을 몰라서 웹브라우져 캐시 클리어도 해보고 재부팅도 해보고 서버도 재부팅 하는등 이런저런 삽질을 했는데

linsoo@ubuntu:~/webhard/seafile-server-latest$ ./seafile.sh stop

Stopping seafile server ...
Done.
linsoo@ubuntu:~/webhard/seafile-server-latest$ ls /tmp
seahub_cache
linsoo@ubuntu:~/webhard/seafile-server-latest$ rm -r /tmp/seahub_cache/
linsoo@ubuntu:~/webhard/seafile-server-latest$ ./seafile.sh start

/tmp/seahub_cache 폴더를 날려주고 서버 재시작 하니 정상 작동하더군요.

 

4. 추가 할것들
이건 NGINX와 달리 서비스로 시스템에 등록이 되지 않습니다.
서버가 재부팅 하면 매번 실행해야 한다는 단점이 있죠.

그래서 크론탭에 재부팅 할때 마다 실행되도록 스크립트를 만들었습니다.

#!/bin/bash

/home/linsoo/webhard/seafile-server-latest/seafile.sh start
/home/linsoo/webhard/seafile-server-latest/seahub.sh start-fastcgi

이런 내용으로 run_seafile.sh 라는 스크립트를 하나 만들고 700 권한을 줍니다.
주의 점은 저 seafile.sh나 seahub.sh 파일이 절대경로로 들어가야 한다는 겁니다.

이 스크립트를 크론탭에 등록할거라 실행 되는 경로가 상대 경로로 하면 제대로 실행이 안됩니다.

sudo vi /etc/crontab

입력해서 맨 아래에

@reboot 실행 계정명 /home/linsoo/webhard/run_seafile.sh

이렇게 등록해주면 재부팅 할때 마다 저 스크립트를 실행 해줍니다.
사실 크론탭에 직접 seafile.sh 를 등록해줘도 되긴합니다 어쩌다 보니 저렇게 됬네요.

 

5. 후기
딱히 쓸말은 없는데 괜찮습니다.
요즘 구글 드라이브 성능이 좋아서 굳이 이런 삽질 해서 꾸밀 필요는 없습니다. (그냥 결재 하십쇼)

저는 그냥 심심해서 해본것중 하납니다 ㅋㅋㅋ

그래도 은근히 쓸만하네요.


크리에이티브 커먼즈 라이선스Linsoo의 저작물인 이 저작물은(는)크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.

“개인 설치형 웹하드 Seafile 꾸며보기”에 대한 한개의 댓글

댓글 남기기

이메일은 공개되지 않습니다.

This site uses Akismet to reduce spam. Learn how your comment data is processed.