はじめに
WSL(Ubuntu 18.04)にDockerを利用せずにCodiMDを立ててみましたので、メモを( ..)φ
nodejsとnpmのインストール
$ sudo apt install nodejs
$ sudo apt install npm
yarnをインストール
yarnはパッケージマネージャーで、npm同様、こちらもインストールします。
$ cd ~
$ npm install -g yarn
$ yarn install
PostgreSQLにDBを作成
※PostgreSQLのインストールと初期設定は省略します。
PostgreSQLに利用するDBを作成します。「new_role」、「password」、「codimd」は任意で変更します。
$ psql -U postgres
postgres=# CREATE ROLE new_role WITH LOGIN PASSWORD 'password';
postgres=# create database codimd owner new_role encoding 'UTF8';
postgres=# \q
Firewallのポートを開放
「3000」を開放します。自分の環境では、「ufw」で開放しようとしたら以下のようなエラーが出たため、firewalld-cmdを利用しました。
■失敗例
$ sudo ufw allow 3000
ERROR: problem running iptables: iptables v1.6.1: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
$ sudo ufw reload
ERROR: problem running iptables: iptables v1.6.1: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
$ sudo ufw status
ERROR: problem running iptables: iptables v1.6.1: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
■成功例
$ sudo firewall-cmd --zone=public --add-port=3000/tcp --permanent
CodiMDの導入
※本当は「/opt」へ配置するのが正解らしいですが、(勉強不足だったので)自分は「/usr/local」に配置しました。
GitHubからCodiMDを取得します。
$ cd /usr/local
$ git clone https://github.com/hackmdio/codimd.git
セットアップ用のスクリプトを実行します。
$ cd codimd
$ bin/setup
これから編集するので、設定ファイル(config.json)のバックアップを作成します。
$ cp config.json config.json.org
設定ファイル(config.json)の「db」部分を編集します。
※今回は「development」を変更します。
※設定値は「PostgreSQLにDBを作成」で入力した値(ロール、パスワード、DB名)を利用します。また、「host」や「port」は各自の環境に合わせて変更してください。
$ vi config.json
1| "development": {
2| "loglevel": "debug",
3| "hsts": {
4| "enable": false
5| },
6| "db": {
7| "username": "new_role",
8| "password": "password",
9| "database": "codimd",
10| "host": "localhost",
11| "port": "5432",
12| "dialect": "postgres"
13| }
14| },
DB設定ファイル(.sequelizerc)についてもバックアップを取り、「url」部分を変更します。
$ cp .sequelizerc .sequelizerc.org
$ vi .sequelizerc
1| 'url':'postgres://new_role:password@localhost:5432/codimd'
DBのmigrationを実行します。
$ node_modules/.bin/sequelize db:migrate
npmでbuildを実行します。
$ npm run build
実行と確認
「development」の設定しか行っていませんので「development」しか指定できませんが、まずは以下のコマンドを実行します。
$ NODE_ENV='development' node app.js &
アクセスするとログがばんばん出てきたので、以下を実行しました。
$ NODE_ENV='development' node app.js > /dev/null 2>&1 &
Webブラウザで「 http://localhost:3000/ 」にアクセスするとCodiMDのサイトが確認できます。
最後に
HackMDを利用したときにすでに分かっていたことですが、CodiMD便利ですね。
共有しながら皆でつっつけるのが非常に効率的です。