在ConoHa VPS上搭建信息共享系统crowi

crowi.png

用Node.js开发的信息共享工具。可以使用熟悉的Markdown格式进行编写,并使用MongoDB作为数据库。还支持ElasticSearch中的搜索。

虚拟专用服务器(VPS)的安装设定

签约ConoHa并建立服务器实例后,首先要进行防火墙的设置。要注意ConoHa面板中的防火墙和操作系统的防火墙是不同的。要从互联网进行访问,两者都需要打开。

https://gyazo.com/491c6dd23a312dc00fdd53e88a1e8535
sudo firewall-cmd --add-service=http
sudo firewall-cmd --add-service=http --permanent

安装node.js。此次使用CentOS7镜像。由于ConoHa提供的镜像已经安装了EPEL,所以不需要进行yum仓库的设置。

sudo yum install nodejs
sudo yum install gcc-c++ #ネイティブのnpmパッケージをビルドするのに必要

crowi的安装设置

只需从GitHub克隆并使用npm命令安装依赖包。

git clone https://github.com/crowi/crowi/
cd crowi
npm install

安装MongoDB

sudo yum install mongodb-server
sudo systemctl enable mongod
sudo systemctl start mongod

安装Redis (选项)

sudo yum install redis
sudo systemctl enable redis
sudo systemctl start redis

引入ElasticSearch选项。

很遗憾,ElasticSearch在标准仓库和EPEL中都不可用,因此需要添加官方提供的仓库。注意,从crowi v1.6开始,需要使用ElasticSearch 5.x而不是2.x (*1)。

[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://packages.elastic.co/elasticsearch/5.x/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

然后,使用sudo yum install elasticsearch来进行安装。

此外,为了使搜索系统兼容日语,需要安装kuromoji插件来使用ElasticSearch进行搜索。可以在/usr/share/elasticsearch/路径下执行以下命令进行安装。

bin/elasticsearch-plugin install analysis-kuromoji

然后启动。默认端口为9200号。

sudi systemctl enable elasticsearch
sudo systemctl start elasticsearch

启动

sudo PORT=80 \
NODE_ENV=production \
MONGO_URI=mongodb://localhost:27017/crowi \
REDIS_URI=redis://localhost:6379 \
ELASTICSEARCH_URI=localhost:9200 \
PASSWORD_SEED=hogehogehoge \
SECRET_TOKEN=hogehogehoge \
node app.js

然而,由于这样做会在终止SSH连接时结束,所以需要将其守护化。可以使用forever来守护化。我也尝试了PM2,但奇怪的是它无法连接到数据库,一旦出现这个问题就会立即崩溃,所以我放弃了这个选项。

sudo npm -g install forever
sudo PORT=80 \
NODE_ENV=production \
MONGO_URI=mongodb://localhost:27017/crowi \
REDIS_URI=redis://localhost:6379 \
ELASTICSEARCH_URI=localhost:9200 \
PASSWORD_SEED=hogehogehoge \
SECRET_TOKEN=hogehogehoge \
forever start app.js

结束

在像圈子一样的小团队中进行信息共享时,使用Qiita:Team或esa.io等系统感觉有些夸张且成本较高。像crowi这样的开源wiki系统在这种情况下完全能够满足使用,而且如果有一些功能不足的话,还可以自己进行实现,非常推荐使用。

我們這次使用了操作系統或開源軟體提供的包裝,但如果使用docker運營,將實現鬆散耦合的架構,當負載增加時,可以將容器移動到其他實例上,這可能是一個不錯的選擇。

请参考

    • crowi github

 

    Elasticsearch を yumでインストール (CentOS)
广告
将在 10 秒后关闭
bannerAds