如何使用Docker本地部署Wiki.js容器并结合内网穿透实现知识库共享

文章目录

    • 1. 安装Docker
    • 2. 获取Wiki.js镜像
    • 3. 本地服务器打开Wiki.js并添加知识库内容
    • 4. 实现公网访问Wiki.js
    • 5. 固定Wiki.js公网地址

不管是在企业中还是在自己的个人知识整理上,我们都需要通过某种方式来有条理的组织相应的知识架构,那么一个好的知识整理工具是非常重要的,今天推荐一款维基知识库系统——Wiki.js。

本文将介绍如何用 Docker 容器技术部署 Wiki.js 应用程序,并且结合cpolar发布至公网实现知识库共享。Wiki.js 是一个高度可定制 Wiki 平台,用 Node.js 编写,支持 Markdown 以及 HTML 文档。Docker 容器技术可帮助我们简化部署过程,提高应用程序的可移植性和可扩展性。

1. 安装Docker

本文演示环境:CentOS 7 使用Xshell7进行SSH操作

如没有安装Docker,需先安装Docker

curl -fsSL https://get.docker.com | bash -s docker

本篇文章使用Docker Compose实现Wiki.js的一键部署,输入下方命令显示版本号即为安装成功。

docker compose version

2. 获取Wiki.js镜像

Docker 中镜像是一个只读模板,可创建 Docker 容器,Wiki.js 官方提供了预构建 Docker 镜像,我们可直接从 Docker Hub 中拉取。

首先创建一个 dockers-compose.yml文件

mkdir compose 

进入目录中

cd compose/

编写 docker-compose.yml 文件内容,复制以下内容(注意容器的用户名密码和数据库的要一致)

version: "3"
services:db:image: postgres:15-alpineenvironment:POSTGRES_DB: wikiPOSTGRES_PASSWORD: wikijsrocksPOSTGRES_USER: wikijslogging:driver: "none"restart: unless-stoppedvolumes:- db-data:/var/lib/postgresql/datawiki:image: linuxserver/wikijsdepends_on:- dbenvironment:DB_TYPE: postgresDB_HOST: dbDB_PORT: 5432DB_USER: wikijsDB_PASS: wikijsrocksDB_NAME: wikirestart: unless-stoppedports:- "3000:3000"volumes:db-data:

保存配置文件后,执行下面的命令即可部署 Wiki.js:

docker compose up -d

3. 本地服务器打开Wiki.js并添加知识库内容

打开一个新的浏览器,输入本机IP:3000,进行初始配置

输入管理员的邮箱、密码,访问地址,设置是否匿名反馈使用情况

44efc85dffffbf33056abb492824a22

创建完成后跳转到登录页面,输入刚才创建的管理员账号密码登录,出现下方界面,点击ADMINISTRATION 进入后台

image-20240117102432578

进入后台界面后,点击 Local 选择语言,下载语言包,选择 Chinese Simplified,最后点击右上角 APPLY

30fefb99d81a9ebb8a829267aa36435

2f56f1c04cd55a81123f165445b9694

切换至首页,创建主页内容。这里可以选择使用何种编辑器来创建,这里我们以 Markdown 为例:

23dab212223a307afc94f5592fdace8

a367c9910c474fb66247f86675f7a32

接下来,我们创作第一篇文章,先设置页面属性,重点设置标题、路径,填写完成后点击右上角的 OK

5e2313e581d1b94baeaefe815a05d45

填写好内容后点击右上方的创建

ef6327d9d4b510aad0ac21e97cbd71b

返回到主页,可以看到刚创建的文章内容

fcc276b8257d2147caa14f3a63b8f20

这样我们就在本地使用Docker搭建了一个wiki的知识库系统,但是目前仅限于本地的访问,如果我们想把创作好的文章内容发给身边的朋友查看,或者需要进行异地访问创作等,接下来我们就可以结合cpolar内网穿透将搭建好的知识库发布至公网进行远程访问。

4. 实现公网访问Wiki.js

上面在本地Docker中成功部署了Wiki.js,并局域网访问成功,下面我们在Linux安装Cpolar内网穿透工具,通过Cpolar 转发本地端口映射的http公网地址,我们可以很容易实现远程访问,而无需自己注册域名购买云服务器.下面是安装cpolar步骤

cpolar官网地址: https://www.cpolar.com

  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口 即:【http://局域网ip:9200】,使用cpolar账号登录(如没有账号,可以点击下面免费注册),登录后即可看到cpolar web 配置界面,接下来在web 管理界面配置即可

70af51474ff7d5e96b7b16320deeb19

接下来配置一下Wiki.js的公网地址,

登录后,点击左侧仪表盘的隧道管理——创建隧道,创建一个Wiki.js的公网http地址隧道!

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:3000 (本地访问的地址)
  • 域名类型:免费选择随机域名
  • 地区:选择China Top

点击创建

42b2169efb30f4a869b501a57d25cf3

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https

3ed1659e08dae3d81f66d607487d050

使用上面的Cpolar https公网地址,在任意设备的浏览器进行访问,即可成功看到Wiki.js界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器,即可发布到公网进行远程访问!

2f23b62ee2561f468f0e84e15fff13b

小结

如果我们需要把创作的WIki知识库长期发布至公网,分享给别人查看,由于刚才创建的是随机的地址,24小时会发生变化。另外它的网址是由随机字符生成,不容易记忆。如果想把域名变成固定的二级子域名,并且不想每次都重新创建隧道,可以选择创建一个固定的http地址来解决这个问题。

5. 固定Wiki.js公网地址

我们接下来为其配置固定的HTTP端口地址,该地址不会变化,方便分享给别人长期查看你的博客,而无需每天重复修改服务器地址。

配置固定http端口地址需要将cpolar升级到专业版套餐或以上。

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

a8729751a28ddf91cfabe4b970d8f99

保留成功后复制保留成功的二级子域名的名称

image-20240117110603218

c6ed8830bb4de5b55bc48ecc1852b5b

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新(注意,点击一次更新即可,不需要重复提交)

2c0719467d10bbf16fdd9bfab36e6ff

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名

d500c93b7e8bc3c1e03fa1d1a098c17

最后,我们使用固定的公网https地址访问,可以看到访问成功

4616fdb120fe8ff1f781e212d6d067e

这样一个固定且永久不变的公网地址就设置好了,成功实现了在异地我们也可以进行远程创作,并且随时随地都可以把Wiki知识库分享给其他人了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/412063.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android studio从空白开始

对我来说,真正的第一步是清理电脑C盘。从剩余8G清理到25G,把原来看不顺眼又不敢删的文件夹和软件全删了,删爽了的后果就是,用两天的时间在把一些环境配置慢慢装回来,node.js,jdk,npm。努力把它们…

开源图床LightPicture搭建本地图片管理系统并实现无公网IP远程访问

文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 现在的手机越来越先进,功能也越来越多,而手机…

【备战蓝桥杯】探索Python内置标准库collections的使用

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-q0zvWxZtAIdSGZ8R {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

如何通过Burp Suite专业版构建CSRF PoC

Burp Suite是一款强大的渗透测试利器,可以利用它来高效的执行渗透攻击,接下来介绍如何通过Burp Suite Pro来构建CSRF PoC。 如果还没安装burp suite,请参阅【Burp Suite专业版本安装配置及使用指导 】 在Bupr中找到拦截的请求,右…

Ubuntu 22.04 Cron使用

需要定时处理的场景还是比较多的,比如信息推送、日志清理等。 这篇文章我们来说说如何使用cron来实现定时处理,以及监控任务的执行。 使用 Ubuntu中使用cron,要用到的命令是crontab。不加sudo时,处理的是个人的定时任务。当加上sudo时,处理的则是系统级别的定时任务。下…

公共用例库计划--个人版(四)功能改造与性能优化

1、任务概述 本次计划的核心任务是开发一个,个人版的公共用例库,旨在将各系统和各类测试场景下的通用、基础以及关键功能的测试用例进行系统性地归纳整理,并以提高用例的复用率为目标,力求最大限度地减少重复劳动,提升…

SpringBoot异常处理

1.SpringBoot异常处理 1.1.自定义错误页面 SpringBoot默认的处理异常的机制:SpringBoot 默认的已经提供了一套处理异常的机制。一旦程序中出现了异常 SpringBoot 会向/error 的 url 发送请求。在 springBoot 中提供了一个叫 BasicErrorController 来处理/error 请…

leedcode刷题笔记day1

题目大意: 暴力解法 两个for循环(也是我一看到题目想到的方法) 枚举在数组中所有的不同的两个下标的组合逐个检查它们所对应的数的和是否等于 target 复杂度分析 时间复杂度:O(n2),这里 n 为数组的长度 空间复杂度:O(1)&#x…

新定义51单片机(RD8G37)实现测距测速仪

本文描述用新定义51单片机(RD8G37)超声波一体测距传感器实现简单的测距测速仪。 测距仪演示效果 新定义RD8G37Q48RJ开发板 超声波测距模块: 8位并口屏 1、main.c unsigned short timeConsuming0; unsigned int oldDistance;void rectClearS…

Javascript,到底要不要写分号?

小白随机在互联网上乱丢一些赛博垃圾,还望拨冗批评斧正。 要不要加分号? 先说结论:“不引起程序出错的前提下,加不加都可以,按自身习惯来。” 为什么JS可以不加分号? 实际上,行尾使用分号的风…

解决方案|镭速赋能影视行业数字化,电影高速分发技术打造一流传输体验!

中国电影产业链主要分为三部分,即上游制片,中游宣发,下游院线影院,互联网产业发展后衍生出线上票务平台作为产业终端。随着4K、3D、高帧率、高动态范围、广色域、沉浸式音频等新兴视听技术的发展与应用,高新技术格式电…

stm32内存分配博客笔记

原文: stm32内存分配 笔记: 1、向量表与代码段;根据Cortex-M3权威指南描述,系统复位后,在向量表异常0处保存的是堆栈起始地址,而后紧跟中断向量表 2、可以从链接脚本.ld文件中看到终端向量表第一个被链接…