用wiki.js搭建自己的wiki知识库

不管是在企业中还是在自己的个人知识整理上,我们都需要通过某种方式来有条理的组织相应的知识架构,那么一个好的知识整理工具是非常重要的,常用的在线笔记比如说印象笔记,有道云笔记,当然企业中文档管理或者知识管理的专业版的软件也是有很多,比如说jira等。再到开源的,比如laverna、Boostnote等等,这两个开源的都是非常优秀的,都是支持markdown的这种文本方式。GitHub地址如下:

https://github.com/BoostIO
https://github.com/Laverna/laverna

并且这两个都支持windows mac linux三个平台的,Boostnote还支持IOS和Android,laverna,Laverna的Android版本也即将推出。

还有一个产品是leanote,这个产品也非常优秀,也是开源的,大家可以了解看看。

今天我们来看一个新兴的项目,wiki.js,GitHub地址如下:

https://github.com/Requarks/wiki

之所以选择这个,是看中了它的易部署性,该项目是在2016年12月推出了第一个版本,算是比较新的项目了,现在也正在积极地更新,那么之所以选择这个项目作为小组的知识库管理,有这几点考虑:
- 可以直接部署在自己本地的服务器
- 有用户管理
- web的方式,方便使用
- 当然,markdown的写作方式也是我看中的

但是由于是新项目,里程碑可以直接在GitHub的项目ReadMe看到,现在有些功能还不够完善,也在后续的规划中,有兴趣的话,大家可以加入成为contributor哈!

好了废话不多说,我们来看下如何安装wiki.js吧!

首先,你需要docker的环境,有docker的话,就不管你是什么平台啦,windows、linux、mac通通不在话下,当然windows10可以直接安装docker,win7以及以前的只能使用toolbox进行安装,原因是docker是基于linux的,所以需要在linux环境下才可以,windows10是支持ubuntu core的所以可以直接安装。

这里我选择的是在ubuntu 14.04上进行安装,之前我写过一篇文章,关于如何在ubuntu上安装Docker,是直接通过apt-get install进行安装的,但是这个安装的版本比较旧,我们需要更新版本,这里我们选择安装官网的方式进行安装,这样得到的一定是最新版本的,官网的安装步骤是比较麻烦的,具体的安装流程请参考官网的说明:

https://docs.docker.com/install/linux/docker-ce/ubuntu/

这里最好是选择14.04或者是16.04或者是最新的LTS版本,以防因为系统的原因导致什么异常。一开始安装的出现了各种异常,包括Docker官方的SSL证书安装失败,无法连接之类的,这个是最好是重启下系统在进行重试。

然后需要安装下Docker Compose,这个也只需要参考官方的文档进行安装就可以了,官网写的很清楚。

https://docs.docker.com/compose/install/

这两部分大家就直接参考官网的直接进行安装就可以了,安装wiki.js的前提条件就是需要安装好docker和docker compose两个内容。

然后我们就可以进入安装wiki.js了,这个其实也比较简单,主要是说明下配置文件的使用。

首先我们在安装wiki.js时,我们需要确保,我们目录下有这几个文件
- config.yml : wiki的配置文件
- docker-compose.yml :docker-compose文件

这里说明下这两个文件的内容好了,这里可以选择直接参考官方的config.yml文件

https://github.com/Requarks/wiki/blob/master/config.sample.yml

这里仅说明几个需要注意的点:
1、host参数需要填写成你的服务器IP,如果不是默认端口,需要加上端口号
2、db参数需要修改成db: mongodb://localhost:27017/wiki –>> db: mongodb://wikidb:27017/wiki,因为如果localhost的话,docker-compose找不到这个服务,它是根据服务名来确定的访问的服务的

docker-compose.yml文件也可以直接参考官方的文件:

https://github.com/Requarks/wiki/blob/master/tools/docker-compose.yml

这里需要注意的是:
1、需要将端口号变更为你在docker-compose服务对应的端口和你实际想要的访问的端口

这里给出我在本地搭建的参考文件:
config.yml:

#######################################################################
# Wiki.js - CONFIGURATION                                             #
#######################################################################
# Full explanation + examples in the documentation:
# https://docs.requarks.io/wiki/install
# You can use an ENV variable by using $(ENV_VAR_NAME) as the value

# ---------------------------------------------------------------------
# Title of this site
# ---------------------------------------------------------------------

title: Wiki

# ---------------------------------------------------------------------
# Full public path to the site, without the trailing slash
# ---------------------------------------------------------------------
# INCLUDE CLIENT PORT IF NOT 80/443!

host: http://192.168.1.6

# ---------------------------------------------------------------------
# Port the main server should listen to (80 by default)
# ---------------------------------------------------------------------
# To use process.env.PORT, comment the line below:

port: 80

# ---------------------------------------------------------------------
# Data Directories
# ---------------------------------------------------------------------

paths:
  repo: ./repo
  data: ./data

# ---------------------------------------------------------------------
# Upload Limits
# ---------------------------------------------------------------------
# In megabytes (MB)

uploads:
  maxImageFileSize: 3
  maxOtherFileSize: 100

# ---------------------------------------------------------------------
# Site Language
# ---------------------------------------------------------------------
# Possible values: en, de, es, fa, fr, ja, ko, nl, pt, ru, sr, sv, tr or zh

lang: en

# Enable for right to left languages (e.g. arabic):
langRtl: false

# ---------------------------------------------------------------------
# Site Authentication
# ---------------------------------------------------------------------

public: false

auth:
  defaultReadAccess: true
  local:
    enabled: true 
  google:
    enabled: false
    clientId: GOOGLE_CLIENT_ID
    clientSecret: GOOGLE_CLIENT_SECRET
  microsoft:
    enabled: false
    clientId: MS_APP_ID
    clientSecret: MS_APP_SECRET
  facebook:
    enabled: false
    clientId: FACEBOOK_APP_ID
    clientSecret: FACEBOOK_APP_SECRET
  github:
    enabled: false
    clientId: GITHUB_CLIENT_ID
    clientSecret: GITHUB_CLIENT_SECRET
  slack:
    enabled: false
    clientId: 'SLACK_CLIENT_ID'
    clientSecret: 'SLACK_CLIENT_SECRET'
  ldap:
    enabled: false
    url: ldap://serverhost:389
    bindDn: cn='root'
    bindCredentials: BIND_PASSWORD
    searchBase: o=users,o=example.com
    searchFilter: (uid={{username}})
    tlsEnabled: false
    tlsCertPath: C:\example\root_ca_cert.crt
  azure:
    enabled: false
    clientId: APP_ID
    clientSecret: APP_SECRET_KEY
    resource: '00000002-0000-0000-c000-000000000000'
    tenant: 'YOUR_TENANT.onmicrosoft.com'
  oauth2:
    enabled: false
    clientId: OAUTH2_CLIENT_ID
    clientSecret: OAUTH2_CLIENT_SECRET
    authorizationURL: OAUTH2_AUTH_URL
    tokenURL: OAUTH2_TOKEN_URL

# ---------------------------------------------------------------------
# Secret key to use when encrypting sessions
# ---------------------------------------------------------------------
# Use a long and unique random string (256-bit keys are perfect!)

sessionSecret: 1234567890abcdefghijklmnopqrstuvxyz

# ---------------------------------------------------------------------
# Database Connection String
# ---------------------------------------------------------------------

db: mongodb://wikidb:27017/wiki

# ---------------------------------------------------------------------
# Git Connection Info
# ---------------------------------------------------------------------


# ---------------------------------------------------------------------
# Features
# ---------------------------------------------------------------------
# You can enable / disable specific features below

features:
  linebreaks: true
  mathjax: false

# ---------------------------------------------------------------------
# External Logging
# ---------------------------------------------------------------------

externalLogging:
  bugsnag: false
  loggly: false
  papertrail: false
  rollbar: false
  sentry: false

# ---------------------------------------------------------------------
# Color Theme
# ---------------------------------------------------------------------

theme:
  primary: indigo
  alt: blue-grey
  viewSource: all # all | write | false
  footer: blue-grey
  code:
    dark: true
    colorize: true

docker-compose.yml

version: '3'

services:
    wikidb:
        image: 'mongo'
        expose:
            - '27017' 
        command: '--smallfiles --bind_ip wikidb'
        environment:
            - 'MONGO_LOG_DIR=/dev/null'
        volumes:
            - ./data/mongo:/data/db
    wikijs:
        image: 'requarks/wiki:latest'
        links:
            - wikidb
        depends_on:
            - wikidb
        ports:
            - 80:80
        environment:
            WIKI_ADMIN_EMAIL: [email protected]
        volumes:
            - ./config.yml:/var/wiki/config.yml

然后执行 sudo docker-compose up,等到相关依赖安装完成,就可以运行啦!
默认账号是:[email protected],密码是:admin123
赶快试试吧!

你可能感兴趣的:(wiki.js)