维基知识库系统Wiki.js本地Linux环境部署并配置公网地址远程访问

news2024/11/15 5:48:13

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
    • 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

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

前言

本文将介绍如何在 Linux 系统用 Docker 容器技术部署 Wiki.js 应用程序,并且结合 cpolar 内网穿透工具发布至公网实现远程共享知识库。

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

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-alpine
    environment:
      POSTGRES_DB: wiki
      POSTGRES_PASSWORD: wikijsrocks
      POSTGRES_USER: wikijs
    logging:
      driver: "none"
    restart: unless-stopped
    volumes:
      - db-data:/var/lib/postgresql/data

  wiki:
    image: linuxserver/wikijs
    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:
      - "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 知识库分享给其他人了!

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

所生成项目的处理器架构“MSIL”与引用“***”的处理器架构“x86”不匹配。

在c#工程里新建了一个类库,编译的场合出现以下警告:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2401,5): warning MSB3270: 所生成项目的处理器架构“MSIL”与引用“…

单链表leetcode刷题/下(C语言版)

目录 题目1:返回倒数第k个结点 题目2:回文链表 题目3:相交链表 题目1:返回倒数第k个结点 如图,该题使用到了快慢指针的思想。先定义两个指针,同时指向链表的首元结点,然后让fast指针向前先走…

秋招突击——8/15——知识补充——Socket通信

文章目录 引言正文基于TCP协议的Socket通信基于UDP协议的Socket通信服务端如何接收更多项目多进程多线程IO多路复用select轮询IO多路复用epoll事件通知 使用Socket实现同一个机器上的多线程通信服务端创建对应socket监听端口客户端发起对应的连接请求 总结 引言 上次面试腾讯的…

Qt篇——:-1: error: collect2.exe: error: ld returned 1 exit status错误

错误如图所示: 出现这个错误的时候我们点击下面的 [4 编译输出],可以看到具体的编译报错信息,找到对应的错误进行解决即可。 这里举个例子,比如最常见的一种错误原因是:multiple definition of ......。这代表着你重复…

视频号小店升级微信小店,视频号直播电商将迎来新变化!

8月12日,腾讯发布《视频号小店升级为微信小店的公告》-意见征集通知,及其相关规则通知。 ▲ 图片来源:腾讯公告 公告称:腾讯计划自08月25日起,正式支持商家将视频号小店升级成微信小店。 微信小店将进一步简化商家入驻…

C++语言基础|循环结构

C语言基础|循环结构 循环1. for语句2. while循环3. do…while语句 循环 在程序中,常常需要重复地执行某些操作。C提供了3种循环语句:for语句、while语句和do-while语句。在循环语句中,重复执行的操作叫做循环体。循环体可以是单条语句、块语…

一把手在精益生产的实施中扮演着怎样的角色?

在探讨一把手在精益生产实施中的角色时,我们不得不深入剖析精益生产的核心要义及其在现代企业管理中的重要性。精益生产作为一种以提高效率、降低成本、增加价值为目标的生产管理方式,其核心理念包括价值导向、流动制造、消除浪费、持续改进等。在这个过…

ubuntu服务器部署的mysql本地连不上的问题

试过了网上的所有方法,都连不上,可以执行: SELECT user, host, plugin FROM mysql.user WHERE user root; 查一下:plungin这个连接插件是不是auth_socket, auth_socket是只能本地连接的插件,需要修改: ALTER USER root% IDENTIFIED WITH mysql_native_password BY your_pass…

攀登SEO巅峰:代理技术如何成为网站排名提升的秘密武器

在当今这个数字化时代,搜索引擎优化(SEO)已成为企业和电商从业者在网站获取自然流量、提升品牌知名度和促进业务增长的关键策略之一。然而,随着搜索引擎算法的不断升级和市场竞争的日益激烈,传统的SEO手段已难以满足现…

【数据结构】二叉树(二)遍历

上篇已经了解对二叉树有了大概了解,本篇学习二叉树的前序、中序、后序及层序遍历的递归与非递归共7种遍历方法,快收藏吧~ 目录 1、前序遍历 递归方式: 迭代方式: 2、中序遍历 递归方式: 迭代方式: …

数字医学影像系统PACS源码,三甲以下医院都能满足,C#语言开发,C/S架构系统成熟稳定,支持二次开发项目使用。

数字医学影像系统(RIS/PACS)源码,三甲以下的医院都能满足。开发技术:C/S架构,C#开发语言,数据库服务器采用Oracle数据库。 PACS系统模块组成 : 工作站: 分诊工作站、超声工作站、放…

二叉树详解(1)

文章目录 目录1. 树的概念及结构1.1 树的相关概念1.2 树的表示1.3 树在实际中的运用(表示文件系统的目录树结构) 2. 二叉树的概念及结构2.1 概念2.2 特殊的二叉树2.3 二叉树的存储结构 3. 二叉树的顺序结构及实现3.1 二叉树的顺序结构3.2 堆的概念及结构…

监控电脑屏幕被拍照的原理是什么?如此有趣的电脑防偷窥知识,你一学就会!

“防身立志言为本,修业安命行为先”。在数字化时代,保护个人隐私与信息安全已成为我们不可忽视的重要课题。 当我们坐在电脑前工作、学习或娱乐时,是否曾想过,屏幕上的内容也可能成为他人窥探的目标? 今天&#xff0c…

【NI-DAQmx入门】基于TSN的以太网NI CompactDAQ机箱(9185/9189)

软件兼容性: WIN10 64bit: LabVIEW 2019 32bit NI-DAQmx 19.6 NI-Sync 19.5(TSN) WIN11 64bit: LabVIEW 2022Q3 32bit NI-DAQmx 2022Q3 32bit NI-TimeSync 2022 Q4(TSN) 如果要启用TSN&…

力扣 | 递增子序列 | 动态规划 | 最长递增子序列、最长递增子序列的个数、及其变式

文章目录 一、300. 最长递增子序列二、673. 最长递增子序列的个数三、变式1、646. 最长数对链2、1218. 最长定差子序列3、1027. 最长等差数列4、354. 俄罗斯套娃信封问题5、1964. 找出到每个位置为止最长的有效障碍赛跑路线 四、2024复旦计科夏令营机试 最长递增子序列&#xf…

Docker容器逃逸

Docker容器逃逸 Privileged 特权模式容器逃逸 | T Wiki (teamssix.com)https://wiki.teamssix.com/cloudnative/docker/docker-privileged-escape.html 1、云原生-Docker 安全-容器逃逸&特权模式 2、云原生-Docker 安全-容器逃逸&挂载 Procfs 3、云原生-Docker 安…

Linux云计算 |【第二阶段】OPERATION-DAY3

主要内容: Nginx调度器(7层代理服务器Http、Nginx,4层代理服务器SSH)、配置upstream服务器集群池属性,HTTP错误代码,Nginx优化(自定义404错误代码、状态页面显示、ab压力测试、客户端开启缓存、…

在HMI项目中,传感器扮演的角色是啥?一文告诉你。

说到HMI项目,就绕不开物联网,说到物联网就不得不说传感器,本文大千UI工场带你详细了解传感器的价值。 一、传感器的价值 在HMI(Human-Machine Interface)项目中,传感器扮演着收集和监测实时数据的角色。传…

Tire树-存储与查找

#include <iostream>using namespace std;const int N 100010; // 定义常量 N 表示字典树节点的最大数量int son[N][26], cnt[N], idx; // son数组存储字典树&#xff0c;cnt数组记录某个字符串结束时的节点个数&#xff0c;idx表示当前字典树的节点总数 char str[N];…

数据结构之----堆

一、介绍 堆是一棵完全二叉树。堆又分为大堆&#xff0c;小堆两种结构。 大堆&#xff1a;所有的父节点都比它的子节点要大。 小堆&#xff1a;所有的父节点都比它的子节点要小。 二、堆的向上调整算法 比如要建一个小堆 思路&#xff1a;将父节点和子节点比较&#xff0c…