1. 程式人生 > >用wiki.js搭建自己的wiki知識庫

用wiki.js搭建自己的wiki知識庫

不管是在企業中還是在自己的個人知識整理上,我們都需要通過某種方式來有條理的組織相應的知識架構,那麼一個好的知識整理工具是非常重要的,常用的線上筆記比如說印象筆記,有道雲筆記,當然企業中文件管理或者知識管理的專業版的軟體也是有很多,比如說jira等。再到開源的,比如laverna、Boostnote等等,這兩個開源的都是非常優秀的,都是支援markdown的這種文字方式。GitHub地址如下:

並且這兩個都支援windows mac linux三個平臺的,Boostnote還支援IOS和Android,laverna,Laverna的Android版本也即將推出。

還有一個產品是leanote,這個產品也非常優秀,也是開源的,大家可以瞭解看看。

今天我們來看一個新興的專案,wiki.js,GitHub地址如下:

之所以選擇這個,是看中了它的易部署性,該專案是在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進行安裝的,但是這個安裝的版本比較舊,我們需要更新版本,這裡我們選擇安裝官網的方式進行安裝,這樣得到的一定是最新版本的,官網的安裝步驟是比較麻煩的,具體的安裝流程請參考官網的說明:

這裡最好是選擇14.04或者是16.04或者是最新的LTS版本,以防因為系統的原因導致什麼異常。一開始安裝的出現了各種異常,包括Docker官方的SSL證書安裝失敗,無法連線之類的,這個是最好是重啟下系統在進行重試。

然後需要安裝下Docker Compose,這個也只需要參考官方的文件進行安裝就可以了,官網寫的很清楚。

這兩部分大家就直接參考官網的直接進行安裝就可以了,安裝wiki.js的前提條件就是需要安裝好docker和docker compose兩個內容。

然後我們就可以進入安裝wiki.js了,這個其實也比較簡單,主要是說明下配置檔案的使用。

首先我們在安裝wiki.js時,我們需要確保,我們目錄下有這幾個檔案
- config.yml : wiki的配置檔案
- docker-compose.yml :docker-compose檔案

這裡說明下這兩個檔案的內容好了,這裡可以選擇直接參考官方的config.yml檔案

這裡僅說明幾個需要注意的點:
1、host引數需要填寫成你的伺服器IP,如果不是預設埠,需要加上埠號
2、db引數需要修改成db: mongodb://localhost:27017/wiki –>> db: mongodb://wikidb:27017/wiki,因為如果localhost的話,docker-compose找不到這個服務,它是根據服務名來確定的訪問的服務的

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搭建自己wiki知識庫

不管是在企業中還是在自己的個人知識整理上,我們都需要通過某種方式來有條理的組織相應的知識架構,那麼一個好的知識整理工具是非常重要的,常用的線上筆記比如說印象筆記,有道雲筆記,當然企業中文件管理或者知識管理的專業版的軟體也是有很多,比如說jira等。再到開源的,比

wiki.js搭建自己wiki

wiki.js搭建 官網[wiki.js:](https://docs.requarks.io/wiki/) 目前這個wiki.js還存在一些bug,期待2.x版本正式釋出! 軟體依賴 wiki.js需要以下軟體包: - git 2.7.4 or later is re

node.js搭建服務器

host post local create div console reat node 集成 //先在集成終端輸出(啟動);在輸入網址(127.0.0.1:3000)或locallhost:3000 //搭建服務器 const http = require(

node.js搭建一個靜態資源站 html,js,css正確加載 跳轉也完美實現!

都在 加載 簡單 pipe tps color exec create 包含 昨天剛買了一個服務器想著用來測試一些自己的項目,由於是第一次建站,在tomcat,linux,node.js間想了好久最終因為node搭建比較方便沒那麽麻煩就決定用node.js來搭建網站項目。

Vue.js搭建一個小說閱讀網站

1.簡介 這是一個使用vue.js + mint-ui + .net core api的小說網站。 最近在學習vue.js,而拋開實踐的學習都是在裝逼,所以結合實際,準備做一個小說網站,這樣麻麻再也不用擔心我在看小說時被不良資訊侵擾了哈哈。 首先說明一下,小說資料來源於網路搜尋,並不直接儲存於自己的伺服

node js 搭建 webrtc 信令服務

0、webrtc開源專案,基本只有流媒體部分,而沒有信令部分, 裡面的example是有信令,不過是google的,不太合用,還要裝一個google的伺服器,貌似很是龐大,如果功能簡單,只是打電話,考慮自行開發一個 小型信令伺服器。 1、下載 node linux 64

DIY:開源軟體搭建自己的物聯網

圖片來源:open-stand.org 物聯網(Internet of Things, IoT)是最近被頻頻提及,也湧現出許多的想法。 這個社群持續地在發展,所以需要有一個對大眾開放的物聯網平臺,讓每個人都能來實現自己的想法,讓大家的生活或多或少變得更便捷!!

node.js搭建本地伺服器

node.js官網<------------點選這裡去官網下載node安裝包 下一步下一步傻瓜式安裝就可以,輸入node -V來檢查一下node版本, 建一個資料夾 nodeServer,在此資料夾下npm init 會生成一個package.json檔案,然後執行npm install --save

【模擬開發環境】JavaWeb專案搭建自己的網站

背景 我們寫好JavaWeb專案(不管你用的SSM還是SSH),真實開發環境中需要打包成war包發給我們的客戶,然而客戶不可能像我們在本機測試那樣,在位址列輸入http://localhost:8080/JavaWebProject/index.jsp…..這

node.js 搭建的部落格程式心得(node.js實戰讀書筆記1)

學習node已經有一段時間了,之前把了不起的node.js看完了,基本算了解了一些node的基本的用法還有一些概念了,然後就開始看第二本node.js實戰,第一章就是搭建一個部落格程式。但是不得不吐槽一下node,發展得太塊了,很多庫已經和之前的用法不一樣了,就

Github pages搭建自己製作的網頁

  本文固定連結http://blog.csdn.net/pspgbhu/article/details/51205264 本人自學前端一個多月,寫個幾個網頁想要用來應聘,網上搜各種搭建網站的方法,

Hexo + github搭建自己的部落格 --- 再也不用羨慕別人了!

每次Google自己不會的問題時,總會發現有很多的人都有自己的部落格,不由自主的羨慕起來,於是按捺不住自己的躁動的心,說幹就幹。 前言 每次寫部落格之前都喜歡做一些科普啊巴拉巴拉的,寫之前還想分析一波Hexo和jekyll,掰

搭建自己Wiki ,用於釋出進度和自己的工作心得

sudo apt-get install php5 sudo apt-get install libapache2-mod-php5 sudo /etc/init.d/apache2 restart 測試是否成功: vi /var/www/test.php 新增以下內容 <?phpinfo()?>

如何搭建自己wiki

8,CooCooWakka v0.09 rc3 - 國人開放的PHP WiKi程式 語言環境:PHP+MySQL 官方主頁:http://coo.hsfz.net/wiki/ 演示:http://coo.hsfz.net/wiki/[/ 下載:http://down2.codepub.com/codepubc

CSS3/JS繪制自己想要的按鈕

width 我認 ive html標簽 ima 選擇 20px word event 我認為按鈕的繪制分以下三個步驟 第一步,繪制按鈕的輪廓 選擇合適的html標簽,設置輪廓的CSS /* html代碼 */ <a href="#" class="butto

Node.JS+MongoDB搭建個人博客(model目錄)(三)

數據庫 技術分享 操作 釋放 災難 存儲 需要 http 三個參數 model目錄主要是封裝一些經常使用的方法,便於使用。 setting.js文件: 很簡單,就單單封裝了一個url作為公用,以後改就方便改了。 md5.js(不推薦用): db.js文

js 工具 】如何在Github Pages搭建自己寫的頁面?

ges 1-1 some 彈出框 create 托管 git 修改 test 最近發現 github 改版了,已沒有像原來的 Launch automatic page generator 這樣的按鈕等,所以我對我的文章也進行了修正,對於新版來說,步驟更加簡單了。歡迎享用。

以太坊 DApp 開發入門實戰! Node.js和truffle框架搭建——區塊鏈投票系統!

以太坊 區塊鏈 Node.js truffle DApp 第一節 概述 面向初學者,內容涵蓋以太坊開發相關的基本概念,並將手把手地教大家如何構建一個 基於以太坊的完整去中心化應用 —— 區塊鏈投票系統。 通過學習,你將掌握: 以太坊區塊鏈的基本知識 開發和部署以太坊合約所需的軟件

Node.js搭建簡易戶登錄

soft abs users 輸入密碼 block esp min ace microsoft 根據學習筆記一的知識點搭建的簡易用戶註冊登錄模塊,用戶數據暫用json保存。 HTML: <!DOCTYPE html> <html lang="en"

搭建自己的博客(二):創建表,創建超級

HERE clas content span self. alt 更新 記得 運行 接上一篇搭建完成之後,開始構建一些表了。 一篇博客首先需要一個表來存放博客,然後一篇博客應該需要不同的標簽來分類,還應該有作者。下面動手創建表。作者表暫時準備使用django自帶的user表