基于 Wiki.js 搭建知识库系统
前言
本文介绍如何使用 Wiki.js 搭建知识库系统。
安装
前提准备
Wiki.js 几乎可以在任何支持 Node.js 的系统上运行。它可以运行在 Linux 、Windows、macOS等操作系统上,也可以运行在 Docker 、Kubernetes 等容器上。
CPU 推荐 2核或者更多
内存 至少 1G
存储 至少 1G
数据库 推荐使用 PostgreSQL,MySQL/MariaDB/MS SQL Server/SQLite 也支持使用
Node 安装
下载
wget https://npmmirror.com/mirrors/node/v16.15.0/node-v16.15.0-linux-x64.tar.xz
解压
tar -xf node-v16.15.0-linux-x64.tar.xz
换名
mv node-v16.15.0-linux-x64/ node
建立软连接
ln -s /data/software/node/bin/node /usr/local/bin/
也可以使用配置环境变量的方式
查看版本
node -v
PostgreSQL 安装
安装
yum install postgresql-server
初始化数据库
cd /usr/bin/
./postgresql-setup initdb
加入 systemctl 服务设置开机自启动
systemctl enable postgresql.service
启动
systemctl start postgresql.service
进入客户端命令
sudo -u postgres plsql
修改密码
ALTER USER postgres WITH PASSWORD 'postgres';
数据存储
PostgreSQL 存储文件、配置文件默认在
/var/lib/pgsql/data/
下开启远程访问权限
编辑配置文件
postgresql.conf
vim postgresql.conf
修改配置文件中的监听地址
listen_addresses = '*'
在配置文件同级目录下有个文件
pg_hba.conf
最后面添加host all postgres 0.0.0.0/0 trust
重启 postgresql 服务
systemctl restart postgresql.service
用 Navicat 成功连接
客户端操作命令
进入客户端
sudo -u postgres plsql
查看数据库
\l
新建数据库
create database wiki;
退出客户端
\q
Wiki.js 安装
下载
wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz
解压缩
mkdir wiki
tar xzf wiki-js.tar.gz -C ./wiki
cd ./wiki修改配置文件
配置文件改名
mv config.sample.yml config.yml
配置数据库信息(注意:数据库要先创建)
db:
type: postgres
# PostgreSQL / MySQL / MariaDB / MS SQL Server only:
host: localhost
port: 5432
user: postgres
pass: 123456
db: wiki
ssl: false启动服务
在 wiki 目录下
node server
加入 systemctl 服务
在
/etc/systemd/system/
下新建wiki.service
文件[Unit]
Description=Wiki.js
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/node server
Restart=always
# Consider creating a dedicated user for Wiki.js here:
User=nobody
Environment=NODE_ENV=production
WorkingDirectory=/data/software/wiki # 这个要指定你 wiki 的安装地址
[Install]
WantedBy=multi-user.target重新加载
systemctl daemon-reload
设置开机自启动
systemctl enable wiki
启动服务
systemctl start wiki
查看服务状态
systemctl status wiki
如果没有启动成功,可通过如下命令查看日志信息
journalctl -u wiki
使用
配置管理员
Wiki.js 服务成功启动后,访问 http://ip:3000,出现如下页面:
配置管理员邮箱地址,密码,网站地址,后进行安装,稍等一会,就会出现如下页面:
配置中文
Wiki.js 默认使用英语,可配置中文,方便操作。
首先选择 后台管理
安装中文简体
切换到中文简体
创建页面
选择 创建主页
Wiki.js 支持多种方式的编辑器,可以自行选择,有的还未开放
效果展示
基于 Wiki.js 搭建知识库系统的更多相关文章
- LIGHTX-CMS —— 基于 Node.js,Express.js 以及 SQLite 3 搭建的个人博客系统
概述 LIGHTX-CMS 是我基于 Node.js,Express.js 以及 SQLite 3 搭建的个人博客发布系统. 项目本身可以拿来部署个人博客网站,同时我认为其也适合用以新手学习 Node ...
- 基于 Node.js 的服务器自动化部署搭建实录
基于 Node.js 的服务器自动化部署搭建实录 在服务器上安装 Node.js 编写拉取仓库.重启服务器脚本 配置 Github 仓库的 Webhook 设置 配置 Node.js 脚本 其他问题 ...
- 基于 React.js + Redux + Bootstrap 的 Ruby China 示例 (转)
一直学 REACT + METEOR 但路由部分有点问题,参考一下:基于 React.js + Redux + Bootstrap 的 Ruby China 示例 http://react-china ...
- 基于 Egg.js 框架的 Node.js 服务构建之用户管理设计
前言 近来公司需要构建一套 EMM(Enterprise Mobility Management)的管理平台,就这种面向企业的应用管理本身需要考虑的需求是十分复杂的,技术层面管理端和服务端构建是架构核 ...
- Pomelo:网易开源基于 Node.js 的游戏服务端框架
Pomelo:网易开源基于 Node.js 的游戏服务端框架 https://github.com/NetEase/pomelo/wiki/Home-in-Chinese
- 基于Node.js + jade + Mongoose 模仿gokk.tv
原文摘自我的前端博客,欢迎大家来访问 http://www.hacke2.cn 关于gokk 大学的娱乐活动基本就是在寝室看电影了→_→,一般都会选择去goxiazai.cc上看,里面的资源多,质量高 ...
- 基于Node.js的强大爬虫 能直接发布抓取的文章哦
基于Node.js的强大爬虫 能直接发布抓取的文章哦 基于Node.js的强大爬虫能直接发布抓取的文章哦!本爬虫源码基于WTFPL协议,感兴趣的小伙伴们可以参考一下 一.环境配置 1)搞一台服务器,什 ...
- node.js搭建Web服务器
Node.js 博客搭建 一. 学习需求 Node 的安装运行 会安装node,搭建node环境 会运行node. 基础模块的使用 Buffer:二进制数据处理模块 Event:事件模块 fs:文件系 ...
- koa : Express出品的下一代基于Node.js的web框架
https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001434501579966a ...
- 使用 Node.js 搭建微服务网关
目录 Node.js 是什么 安装 node.js Node.js 入门 Node.js 应用场景 npm 镜像 使用 Node.js 搭建微服务网关 什么是微服务架构 使用 Node.js 实现反向 ...
随机推荐
- 开源 API 网关-访问策略(二)
在上篇文章API网关:开源 API 网关-访问策略(一) 中,我们简单演示了如何在IP维度中对请求路径设置黑白名单,以此来限制客户端请求的权限和范围. 此外,Apinto网关为客户端提供了一种统一的. ...
- 闺蜜机 StanbyME 产品随想
今天媳妇告诉我,现在小度这边推出一款叫 "闺蜜机"的可用移动的IPAD设备,我点开链接一看,就感觉兴趣不大,不就是一款把屏幕做的更大些的IPAD了吗? 有哪些更多创新呢?为什么会需 ...
- Python web 框架对比:Flask vs Django
哈喽大家好,我是咸鱼 今天我们从几个方面来比较一些现在流行的两个 python web 框架--Flask 和 Django,突出它们的主要特性.优缺点和简单案例 到最后,大家将更好地了解哪个框架更适 ...
- 基于JavaFX的扫雷游戏实现(二)——游戏界面
废话环节:看过上期文章的小伙伴现在可能还是一头雾水,怎么就完成了核心内容,界面呢?哎我说别急让我先急,博主这不夜以继日地肝出了界面部分嘛.还是老规矩,不会把所有地方都照顾到,只挑一些有代表性的内容 ...
- Python Django 模版全解与实战
本文首先介绍了Django模板系统的基础知识,接着探讨了如何安装和配置Django模板系统,然后深入解析了Django模板的基本结构.标签和过滤器的用法,阐述了如何在模板中展示模型数据,最后使用一个实 ...
- RabbitMQ 中 exchange、route、queue 的关系
从 AMQP 协议可以看出,MessageQueue.Exchange 和 Binding 构成了 AMQP 协议的核心,下面我们就围绕这三个主要组件 从应用使用的角度全面的介绍如何利用 Rabbit ...
- linux_mint_21 vim配置:剪贴板支持和输入法自动切换
一.vim的剪贴板支持 有的vim版本不支持系统剪切板,也就是说在vim编辑器外面复制的内容,不能够粘贴到vim中;在vim中通过yy.d.c复制剪切的内容也不能粘贴在vim编辑器外面. 这实在是有点 ...
- EaselJS 源码分析系列--第三篇
这一篇分析另外四个稍显高级的显示类 -- Sprite.Movieclip.DOMElement.BitmapText SpriteSheet SpriteSheet 比较简单 它继承自 EventD ...
- locust与jmeter测试过程及结果对比
JMeter和Locust都是强大的性能测试工具,各自拥有自己的优势和专注领域.JMeter提供了全面的功能和基于GUI的界面,适用于复杂的场景和非技术人员.相比之下,Locust采用了以代码为中心的 ...
- Variable 'xxxx' is accessed from within inner class, needs to be final or effectively final-Lambda 表达式的变量与作用域
问题的原因 问题代码: public static void main(String[] args) { Integer sum = 0; Integer count = 0; List<Int ...