http://tiddlywiki.com/ 란 재밌는 위키 프로그램이 있다. 웹서버가 없어도, 네트윅 접속이 안돼도, 여기서 제공하는 HTML만 있으면 로컬에서 위키 문서를 작성할 수 있는 독특한 환경을 제공하다.

실행방법은 tiddlywiki.com에서 HTML 파일을 내려받아서 로컬에서 브라우저로 파일을 열면 된다. 이 HTML 자체가 싱글페이지애플리케이션이어서 이 하나의 파일로 모든 기능을 사용할 수 있다.

인터넷 접속이 안 되도 위키 문서를 작성할 수 있고, 따로 별도의 웹서버도 필요 없고, 암호를 걸 수도 있다. 파이어폭스와 tiddlywiki addon을 설치하면 자동 저장 기능도 사용할 수 있다.

위 방법외에 node.js 환경에서 서버로 실행하는 방법도 제공을 하는데, 이 방법을 이용하면 인터넷이 되는 어디에서나 동일한 위키 문서를 작성하고 수정할 수 있다.

이 글에서는 koding.com에 어떻게 tiddlywiki를 설치하고, 노드로 돌리고, 외부에서 접속 가능하게 하는지 살펴보고자 한다.

tiddlywiki 설치

npm을 사용해서 tiddlywiki를 설치한다.

$ mkdir tiddlywiki && cd $_
$ npm init

package.json 파일 수정

$ vi package.json
"dependencies" : {
	"tiddlywiki" : "*"
}

npm 실행

$ npm install

tiddlywiki 초기화

$ node_modules/.bin/tiddlywiki mynewwiki --init server

markdown 플러그인 추가

$ vi mynewwiki/tiddlywiki.info

plugins에 다음 라인 추가

"tiddlywiki/markdown" 

tiddlywiki 서버 실행

$ node_modules/.bin/tiddlywiki mynewwiki --server

이렇게 서버를 실행하면 접속 터미널이 끝기면 서버가 종료가 되기 때문에(SIGHUP) 다른 방법으로 서버를 실행시켜야 한다.

forever 설치 및 데몬화

node.js 프로그램을 데몬 형태로 수행하기 위한 여러 방법들이 있는데, 여기서는 forever를 사용하겠다.

forever 설치

$ sudo npm install -g forever

tiddlywiki 실행 스크립트 생성

$ vi start.sh
forever start -l tiddlywiki.log -o stdout.log -e stderr.log -a node_modules/.bin/tiddlywiki mynewwiki --server

스크립트 실행권한 부여 및 스크립트 실행

$ chmod u+x start.sh
$ ./start.sh

8080 포트로 tiddlywiki 서버를 실행하는 건 완료가 됐다. 외부에서 이 서버에 접근하기 위해서는 ApacheReverse Proxy로 설정해서 특정 도메인의 80 포트로의 접근을 내부의 8080 포트로 릴레이 해주어야 한다.

tiddlywiki에 바로 80 포트를 쓰지 않는 이유는 이미 Apache80포트를 사용하고 있고, Apache를 앞 단에 두고 시스템을 설계하는 게 더 유연하기 때문이다.

Apache Reverse Proxy 설정하기

mod_proxy 설치

$ sudo apt-get install libapache2-mod-proxy-html
$ sudo apt-get install libxml2-dev
$ sudo a2enmod proxy proxy_http

wiki.yhbyun.kd.io virtual hosting 설정

$ cd /etc/apache2/sites-available
$ sudo vi wiki
<VirtualHost *:80>
ServerName wiki.yhbyun.kd.io
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>

참고 : ProxyPass / http://localhost:8080/ retry=0 로 하면 백엔드 서버가 돌고 있는지를 매번 체크해서 개발 시 유용하다.

$ sudo a2ensite wiki
$ sudo service apache2 reload

사이트 접속

설치는 모드 끝났다. koding.com의 본인 도메인으로 접속해서 위키 페이지가 보이는지 확인한다.