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
서버를 실행하는 건 완료가 됐다. 외부에서 이 서버에 접근하기 위해서는 Apache
를 Reverse Proxy
로 설정해서 특정 도메인의 80
포트로의 접근을 내부의 8080
포트로 릴레이 해주어야 한다.
tiddlywiki
에 바로 80
포트를 쓰지 않는 이유는 이미 Apache
가 80
포트를 사용하고 있고, 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의 본인 도메인으로 접속해서 위키 페이지가 보이는지 확인한다.