为什么要搭建个人 Wiki

生命是一场修行,而修行的境界是一点点的积累。

使用 Wiki 可以让我的知识能够不断的沉淀、积累。大量的使用搜索引擎解决问题固然高效,实质上却并没有给我带来更多正向的循环。相较于笔记本类型的软件(Evernote、Notion等),有些知识更适合整理到 Wiki 。

我希望能够通过不断完善个人 Wiki 来提升整体对信息的使用、处理效率,让工作更高效,学到的知识也能系统性的归类、积累,进而实现知识积累从量变到质变的突破。(这当然需要时间,所以今天就要马上开始。)

Wiki.js 是什么

Wiki.js 是用 JavaScript 编写并运行在 Node.js 上的 Wiki 引擎。诞生于 2016 年,免费且开源,是一款轻量并且功能强大的程序。开源意味着我们可以自行托管,打造私人 Wiki 服务。

Wiki 工具有哪些?

市面上的 Wiki 管理工具十分丰富,开源软件和商业软件都有不错的产品。

开源软件

PHP

MediaWiki 最著名的使用案例是维基百科,拥有超多的配置项和扩展

DokuWiki 基于文本存储,所以不需要数据库,我最早创业时用的就是这款

PukiWiki 日语的Wiki网站大多使用这款软件,界面清爽整洁

PmWiki 另一款无需数据库支持的Wiki

HTML

Tiddlywiki 仅由 HTML、CSS、JavaScript 技术实现的 Wiki 程序

Java

XWiki 使用Java编写的开源的Wiki引擎

商业软件

Java

Confluence 老牌企业软件,10人以下免费

SaaS

GitBook 可以免费创建公共 Wiki

语雀 普通用户免费,产品孵化自蚂蚁集团

为什么选 Wiki.js

首先明确需求:我要找的是一款开源、持续更新、颜值较高并且可私有化部署的 Wiki 工具。

满足以上条件的工具有 MediaWikiPukiWikiWiki.js

其实我更喜欢 GitBook 的页面风格,简洁清爽,但是由于 GitBook 后期的运营策略调整自行部署无法用到最新的代码,开源软件虽然一抓大把,但是基本上都无法满足我日益增长的「审美」需求,直到我发现了 Wiki.js。如果你还在纠结用哪个,不妨试试看。

安装 Wiki.js

这次的安装方式依旧是使用 Docker 方式部署,几行代码搞定安装。

version: "3"
services:

  db:
    image: postgres:11-alpine
    environment:
      POSTGRES_DB: wiki
      POSTGRES_PASSWORD: wikijsrocks
      POSTGRES_USER: wikijs
    logging:
      driver: "none"
    restart: unless-stopped
    volumes:
      - db-data:/var/lib/postgresql/data
    networks:
      - staticnet

  wiki:
    image: requarks/wiki:2
    depends_on:
      - db
    environment:
      DB_TYPE: postgres
      DB_HOST: db
      DB_PORT: 5432
      DB_USER: wikijs
      DB_PASS: wikijsrocks
      DB_NAME: wiki
    restart: unless-stopped
    ports:
      - "80:3000"
      - "443:3443"

volumes:
  db-data:

把上面的代码保存成 docker-compose.yml,然后在文件所在目录执行 docker-compose up -d 等待镜像拉取完成容器即可自动启动。

配置账户密码

启动后访问 IP:3000 打开配置界面 配置账户密码

修改界面语言

接下来把语言修改成简体中文 修改界面语言

安全性调整

移除 Guest 访问权限 移除 Guest 访问权限 1 移除 Guest 访问权限 2

开启两步验证

开启两步验证

Tips:每次修改设置记得点击右上角的「应用」

踩坑盘点

使用 Docker Compose 安装十分方便,唯一踩到的坑就是开启两部验证后一直提示 Incorrect TFA Security Code ,查了一圈最后在 Issue 里看到官方回复是因为服务器时间不对导致的问题,于是进入服务器使用 date 命令一看,果然是时间问题。

总结

Wiki 可以很好的把信息组织起来,归类成不同的单独页面,每个页面都有明确的焦点,可以不断慢慢更新。

类似于 SOP 流程类的事项更是适合用 Wiki 来记录整理,比如系统的安装配置流程,家庭网络运维管理流程,某件特定事情的应对方案,都可以用 Wiki 来记录下来。

如果你有这类的需求一定要试试看,尽早构建个人的知识经验宝库。