- 記事一覧 >
- ブログ記事

CentOS8にwekanをインストール(ソースからビルド編)
はじめに
Wekan Open-Source kanban
をソースコードを使ってインストールしてみました。
Wekanは、OSSのかんばん管理ツールです。社内タスクの管理、見える化に役立ちます。
ソースコードは、Node.js、Meteorフレームワークで構成されています。MITライセンスです。
同じ目的の場合、Trelloが有名ですが、閉じた環境で自力運用したくて、Wekanを選びました。
インストール環境:CentOS Linux release 8.3.2011 (VMware上、インターネット接続あり)
別記事「CentOS8にwekanをインストール(snap編)」では、snapを使い、インストールしましたが、今回は、snapを使わず、dockerでもなく、ソースからインストールしていきます。
github.com/wekan から rebuild-wekan.sh というのを見つけて、この内容を行えばできそうと思い、やってみました。
基本的に rebuild-wekan.sh の内容通りでしたが、今回の環境の場合、CentOSのため、rebuild-wekan.sh の序盤 apt-get でいきなりコケますので、dnf, yumで代替して進めています。
インストール準備
root権限で作業していますので、全てsudoは省略しています。
git cloneでソースコードをコピーしたいので、gitをインストールします。
# dnf install git
Is this ok [y/N]: y※以降基本的にyのため、-yを付けます。
-y は、? [y/N]: のようなときに自動的に y とするオプションです。
dnf = Dandified Yum(ダンディファイド ヤム、略してDNF)
は、RPMベースのパッケージ管理システムを採用しているLinuxディストリビューション用のパッケージマネージャであるYum 3.4のフォークであり、Yumの事実上の後継バージョンです。(Wikipediaより)
Dandified = いきにめかしこんだ、しゃれこんだ
という意味になります。
wekanのソースコードを取得します。
# cd /opt
# git clone https://github.com/wekan/wekan.git
# cd wekanWekan依存関係インストール
rebuild-wekan.sh では、sudo apt-get install -y build-essential gcc g++ make git curl wget npm p7zip-full
となっていますので、それに相当することをやっていきます。
開発ツールをまとめてインストールします。
# yum -y groupinstall "Development Tools"UbuntuやDebianのbuild-essential に相当するようです。
autoconf, automake, gcc-c++ ... 等々、開発用のツールが大量にインストールされます。
※今回は最初にdnfでインストールしましたが、ここでgitも入るようです。
p7zip-fullに関して、rebuild-wekan.shでは、
#curl https://releases.wekan.team/fibers-multi.7z -o fibers-multi.7z #7z x fibers-multi.7z #rm fibers-multi.7zとコメントアウトされていますので、インストールしませんでした。
npmをインストールします。
# dnf -y install npmnpmは、Node.jsのパッケージ管理システムです。
nodeをインストールします。
# npm -g install n
# n 12.22.1nは、Node.js(node)のバージョンを管理するツールです。
今回、12.22.1 を指定しています。(rebuild-wekan.shがそうなっているため。)
npmを最新版に更新して、node-gypをインストールします。
# npm -g install npm
# npm -g install node-gypnode-gyp(gyp=Generate Your Projects)は、Node.jsのネイティブアドオンモジュールをコンパイルするために、Node.jsで書かれたクロスプラットフォームのコマンドラインツールです。
ネイティブアドオンモジュールとは、Node.js本体を拡張するプログラム(C/C++)となります。
fibersをインストールします。
# mkdir -p /usr/local/lib/node_modules/fibers/.node-gyp
# npm -g install fibersfibersというのは、Node.jsの非同期処理用のライブラリです。今回は、これがNode.jsのネイティブアドオンモジュールにあたるようです。
Meteorをインストールします。
# curl https://install.meteor.com | bashhttps://install.meteor.comの内容は、シェルスクリプトで、ダイレクトに実行しているのですが、ファイル(meteor-bootstrap-${PLATFORM}.tar.gz)をダウンロードするところが有り、タイミングによるかもしれませんが、ここで、かなり時間がかかりました。(1時間くらい)
Wekanのビルド
meteor buildコマンドでWekanをビルドします。
# rm -rf node_modules .meteor/local .build
# chmod u+w *.json
# npm install
# meteor build .build --directory --allow-superuserrootユーザーの場合、
--allow-superuser
を付けないとエラーになりますので、付けて実行します。
meteor buildは、かなりメモリを消費するようです。メモリ1GBで行ったときは、処理が遅延し、2時間以上かかりました。メモリ4GB程度にすることをお勧めします。
ゴミ掃除します。
# rm -rf .build/bundle/programs/web.browser.legacy
# cd .build/bundle/programs/server
# rm -rf node_modules
# chmod u+w *.json
# npm install
# cd ../../../..
# cd .build/bundle
# find . -type d -name '*-garbage*' | xargs rm -rf
# find . -name '*phantom*' | xargs rm -rf
# find . -name '.*.swp' | xargs rm -f
# find . -name '*.swp' | xargs rm -fここまでで、rebuild-wekan.sh の内容は終了です。
起動してみます。
# cd /opt/wekan
# ./start-wekan.sh
/opt/wekan/.build/bundle/programs/server/node_modules/fibers/future.js:313
throw(ex);
^エラーになりました。それもそのはず、mongodbをインストールしていませんでした。
mongodbインストール
mongodbのyumリポジトリ情報を追加します。
# vi /etc/yum.repos.d/mongodb-org.repo[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.ascmongodb(クライアント、サーバー)4.4をインストールします。
# yum install -y mongodb-org
# mongo -version
MongoDB shell version v4.4.5mongodbを起動します。
# systemctl enable mongod
# systemctl start mongodもう一度、start-wekan.shでWekanを起動してみます。
# ./start-wekan.sh
Presence started serverId=a58yzr6zJwvtv3XDg起動しました!
CTRL + C で停止して、systemdに登録します。
wekan起動設定
wekan起動時の環境変数を記述します。
# vi /opt/wekan/.build/bundle/.envMONGO_URL='mongodb://127.0.0.1:27017/wekan'
ROOT_URL='http://wekan.itccorporation.jp'
MAIL_URL='smtp://user:pass@mailserver.example.com:587'
MAIL_FROM='wekan@itccorporation.jp'
PORT=3001systemdに登録します。
# vi /etc/systemd/system/wekan.serviceMONGO_URL='mongodb://127.0.0.1:27017/wekan'
[Unit]
Description=Wekan Server
After=syslog.target
After=network.target
[Service]
Type=simple
Restart=on-failure
StartLimitInterval=86400
StartLimitBurst=5
RestartSec=10
ExecStart=/usr/local/bin/node /opt/wekan/.build/bundle/main.js
EnvironmentFile=/opt/wekan/.build/bundle/.env
ExecReload=/bin/kill -USR1 $MAINPID
RestartSec=10
WorkingDirectory=/opt/wekan
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=Wekan
[Install]
WantedBy=multi-user.targetroot権限起動のため、
User=wekan Group=wekanのような記述は省略しています。
インターネットへの疎通が無い社内の閉じたLAN限定で運用するため、root起動ですが、通常は、ユーザー権限でセットアップ、起動した方が良いと思います。
# systemctl daemon-reload
# systemctl start wekan
# systemctl enable wekanブラウザアクセス
ファイアウォール有りで、外から見る場合、3001ポートを開ける必要があります。
# firewall-cmd --zone=public --add-port=3001/tcp --permanent
# firewall-cmd --reloadhttp://wekan.itccorporation.jp:3001 へブラウザでアクセス

できました!

その他、宣伝、誹謗中傷等、当方が不適切と判断した書き込みは、理由の如何を問わず、投稿者に断りなく削除します。
書き込み内容について、一切の責任を負いません。
このコメント機能は、予告無く廃止する可能性があります。ご了承ください。
コメントの削除をご依頼の場合はTwitterのDM等でご連絡ください。