搭建自己的Wiki知识库——Ubuntu与Wiki.js
前言
前段时间,笔者因工作需要,尝试搭建了一个Wiki.js,将笔者的学习经历以及踩坑过程通过这篇文章分享给各位读者。
Wiki是一种允许多人共同编辑和管理内容的平台,可以让被授权过的用户在上面创建,修改和更新页面,实现协作和信息共享,广泛应用于教育,公司文档管理,项目合作等多个领域。
笔者选择采用Wiki.js,一个开源且美观的Wiki程序,在网上照猫画虎地用了docker技术下载安装在Ubuntu22.04系统中,如果你采用的配置和我一样,那么可能会遇到我遇到的这些坑。
参考文档:
Wiki.js
【实用的开源项目】使用服务器部署Wiki.js,一个美观且强大的开源Wiki程序-腾讯云开发者社区-腾讯云
华为开源镜像站_软件开发服务_华为云
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8))-CSDN博客
docker pull 报错Get “https://registry-1.docker.io/v2/“: net/http: request canceled while waiting for c-CSDN博客
首先,笔者在本地虚拟机以及阿里云服务器(免费试用的)都尝试过部署Wiki.js。本地部署于云服务器部署都相同
请注意,接下来的内容中,如果是笔者强调注意的地方(笔者踩过坑的地方),都会以下方式呈现,注意:
这里是笔者踩过的坑:…
安装Docker
如果你需要在云服务器上部署,那么第一步是选择并购买服务器,现在在市面上的服务器有很多,笔者不做推荐。笔者使用的是阿里云的服务器,2核4G,Ubuntu22.04系统,预装LNMP应用。但是笔者看的看的笔记是腾讯云的,【实用的开源项目】使用服务器部署Wiki.js,一个美观且强大的开源Wiki程序-腾讯云开发者社区-腾讯云,但感觉大部分内容大差不差,在阿里云上业跑起来了,只不过没有做反向代理的那一步,因为自己使用,直接用IP:端口
访问。
1.更新apt-get
因为笔者采用的是阿里云的云服务器,系统没有预装docker,所以我们要自己下载并安装docker。
首先更新一下包管理器,并安装必要的软件包curl
apt-get -y update
apt-get -y install curl
2.下载安装Docker-ce
接下来注意了:
笔者曾在这里踩过坑:根据上面腾讯云的内容,笔者是无法直接安装并docker的,笔者怀疑是镜像源的问题,现在许多国内镜像源在pull的时候都会出现报错,因此,笔者做了以下修改:华为开源镜像站_软件开发服务_华为云
笔者按照这篇文章下载的docker-ce
但是!!!!!!!!!!!
注意,笔者在服务器上下载完了几天后,开始写文章时重复操作,发现无法下载了!
发现没有,在华为云的文章中,使用了
apt-key
命令来添加GPG密钥,但现在,apt-key
命令被弃用了!!无法通过该命令来添加GPG密钥,因此笔者又上网冲浪了许久,在茫茫多的文章中终于找到了可以解决困境的办法
Docker:如何解决安装 docker 时 ubuntu 中的公钥错误 - Stack Overflow
【docker安装】由于没有公钥,无法验证下列签名: NO_PUBKEY 7EA0A9C3F273FCD8-CSDN博客
以上文章笔者实测,是可以解决添加GPG密钥时出现的
apt-key is deprecated
的问题。具体命令是:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg sudo chmod a+r /usr/share/keyrings/docker-archive-keyring.gpg apt-get update apt-get install docker-ce
3.启动Docker
执行以下命令启动docker
systemctl start docker
检查docker的运行状态
systemctl status docker
设置为开机自启动docker
systemctl enable docker
新版的docker自带了compose命令,即,你无需下载docker-compose,即可使用docker compose
命令(注意中间是空格)
部署Wiki.js
1.新建目录
新建Wiki.js的存放目录,且移动到目录下
mkdir -p /opt/docker/wikijs && cd /opt/docker/wikijs && mkdir -p /opt/docker/docker_data/postgresql/data
这里新建了两个目录,一个是docker目录下的wikijs,一个是数据库的目录,数据库采用postgresql,具体数据库的差异笔者也需要去学习一下。
2.新建docker-compose.yaml文件
docker-compose.yaml文件是用来等会自动化下载的,按照这个文件中的配置下载Wiki.js并配好数据库。我们这使用nano
命令来配置,因为在新安装的系统中,没有vim
命令,如果想使用vim
命令需要apt-get install vim
先下载。
创建并编辑docker-compose.yaml文件
nano docker-compose.yaml
输入以下配置内容
---
version: "3"
services:
db:
image: postgres:11-alpine
environment:
POSTGRES_DB: YourDatabaseName
#设置一个自定义的数据库名以替换 smalljunwikijs 需与下方的 DB_NAME 一致!
POSTGRES_PASSWORD: YourDatabasePassword
#设置一个自定义的数据库密码以替换 wikijssmalljunpw 需与下方的 DB_PASS 一致!
POSTGRES_USER: YourDatabaseUserName
#设置一个自定义的数据库用户名以替换 smalljunwiki 需与下方的 DB_USER 一致!
logging:
driver: none
restart: unless-stopped
volumes:
- /opt/docker/docker_data/postgresql/data:/var/lib/postgresql/data
wiki:
image: ghcr.io/requarks/wiki:2
depends_on:
- db
environment:
DB_TYPE: postgres
DB_HOST: db
DB_PORT: 5432
DB_USER: YourDatabaseUserName
DB_PASS: YourDatabasePassword
DB_NAME: YourDatabaseName
restart: unless-stopped
ports:
- 2078:3000
可以看到,这里我们需要下载两个东西,一个是db即database,一个是wiki即Wiki.js,端口开放为2078,即如果你想访问Wiki.js,则需要通过IP地址:端口号(2078)
的形式访问,如果不做方向代理的话
编写完成后,按Ctrl + x
退出,按y
确认保存,按enter
回车键退出
3.更改镜像源
原本到这里,按照文章的内容应该是开始运行命令下载
docker compose up -d
但是,因为没有使用国内镜像源,因此在下载的时候会:
笔者踩过的坑:
如果没有镜像源下载,那么将会出现:
Get “https://registry-1.docker.io/v2/“: net/http: request canceled while waiting for c
网上大多数的镜像源都无法解决这个问题,以下两篇文章是笔者实践过可以的
彻底解决docker:docker: Get https://registry-1.docker.io/v2/: net/http: request canceled 报错-CSDN博客
docker pull 报错Get “https://registry-1.docker.io/v2/“: net/http: request canceled while waiting for c-CSDN博客
笔者综合了一下他们的镜像源,以下是笔者采用的镜像源,实践可以下载:
{
"registry-mirrors": [
"https://docker.1panel.live",
"https://0dj0t5fb.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"https://6kx4zyno.mirror.aliyuncs.com",
"https://registry.docker-cn.com"
]
}
https://docker.1panel.live
是第二篇文章博主提供的,这个镜像源可以让我成功地下载yaml配置中的db
,即下载数据库,后面的镜像源采用的是第一篇博主的。它无法正常下载db
,会报出上面的错误,但是可以下载wiki
。
下载时间较长,根据笔者多次失败经历以及更换镜像源的经历,在下载过程中60s内没有爆出上述错误,且db
于wiki
的下载项都出现,即开始正常下载
什么叫“db
于wiki
的下载项都出现呢”,当你运行docker compose up -d
命令后,会先出现 db
与wiki
两项在转圈圈,但是这两项下有许多文件需要下载,需要全部文件都展示出并显示等待下载,才算是开始正常下载。
访问Wiki.js
通过浏览器访问IP地址:2078
即可访问你自己的Wiki.js。
在访问过程中,笔者也遇到了一些坑,首先介绍一下笔者的环境:
一台台式机
,开着虚拟机
运行Ubuntu环境下载了Wiki.js,想通过另一台计算机(笔记本)
访问这个Wiki.js
笔者在网上查阅了大量文章,发现很多文章都是用的是NAT模式,然后通过与虚拟机与宿主机协同暴露指定端口供外接访问,因为虚拟机与宿主机是同一IP地址,因此必须要两者配合,但是宿主机又是Windows系统,因此协调起来比较麻烦,所以笔者采用了桥接模式,虚拟机拥有自己的IP地址,虚拟机可以直接访问外部网络。
获取IP地址
首先使用以下命令查看虚拟机的IP地址
ip addr show
或者使用
ifconfig
查看防火墙状态
使用以下命令查看防火墙状态,确保防火墙关闭
如果使用的是ufw
查看防火墙状态:
ufw status
关闭防火墙
ufw disable
小结
值得注意的是:
笔者踩过的坑:
通过这样的方式访问,需要虚拟机与访问虚拟机的机器在同一局域网下,否则的话是无法访问的,因为虚拟机并没有暴露在公网中
总结
在本次搭建的过程中,笔者也学到了很多东西:
- 安装Docker时出现大大小小各种错误,包括镜像源不行,下载过慢,GPG无法使用,
apt-key
命令被弃用等 - 在部署Wiki.js时,遇到的最重要的问题就是镜像源问题,虽然在最后笔者采用的镜像源帮助了笔者完整下载,但是在这之前,笔者浏览了许多文章(大多数都相似,使用阿里云的镜像源),都无法正常下载,真的很崩溃。
- 在最后写这篇文章时,笔者打算重新找回那些资料,发现自己浏览记录过多,许多资料和网站已经找不到了!这也是缺失之一,以后在解决某项问题的时候,希望保持良好习惯,点赞收藏,并及时开始写博客。