NAS上使用docker部署wikijs+pg+nginx搭建云知识库

NAS上使用Docker搭建Wiki.js、PostgreSQL和Nginx云知识库

在本文中,我们将探讨如何在网络附加存储(NAS)设备上使用Docker容器技术搭建一个功能强大的云知识库。我们将使用Wiki.js作为知识管理平台,PostgreSQL作为数据库,以及Nginx作为web服务器。

前置条件

  • 一个配置好的NAS设备,具备Docker支持。我这里使用的是极空间的NAS设备
  • 已经配置好的postgres数据库(如果没有也可以不配,默认会使用sqlite)但是如果后期需要做HA的话就只能使用pg
  • 已经配置好的nginx

步骤1:获取wikijs的镜像

镜像仓库中搜索linuxserver/wikijs 或者直接命令行拉取:docker pull linuxserver/wikijs

步骤2:配置容器参数

获取镜像完成后,将镜像添加到容器中,需要设置端口, 挂载,以及部分环境变量

2.1 端口设置

由于我本地的3000端口启的有其他服务,所以将容器中的3000映射到了本地的3001端口

2.2 挂载设置

需要将容器中的/config/data路径映射出来方便后期的备份与配置变更。这里根据需要映射到本地就行。

2.3 环境变量设置(配置数据库)

如果使用sqlite的话可以忽略这一步骤了。

  • 注意先提前在Pg中创建好名称为wikijs的数据库
  • 然后在按照下图中的变量名依次配置pg的host, port,username和pasword

步骤3. 启动界面

接下来在浏览器输入127.0.0.1:3001就能访问了。 进入后进行账号注册,默认第一个注册的账号为管理员账号。注册完成后就可以开始创建页面了。界面支持markdown,富文本和原生html等等多种方式。

3.1 切换语言

需要注意的是,系统默认为英语,登陆后进入管理员界面选择语言包(/a/locale)下载中文语言包

3.2 GIT 配置

wikijs支持将所有发布的内容同步到git上,这里直接使用basic的方式通过用户名密码认证,如果选择ssh的话也支持通过证书进行git的权限认证

3.3 用户和用户组

默认的是有administrator和guests两个组。所有未注册的访客默认都是guests组,只有界面的只读权限。可以通过设置这个组的权限来进行访问控制。

步骤4. Nginx代理

wikijs的反向代理配置还是比较简单的,修改nginx.conf添加代理配置

ini 复制代码
    location / {
        proxy_pass http://127.0.0.1:8301/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
     }

需要注意的是这里最好是通过解析一个子域名,配置根路径来反向代理。不要通过加前缀比如/wikijs这样的配置来进行代理。

搭建效果

这样就完成了基本的配置,剩下就可以根据自己的需求去搭建知识库了。 可以通过访问wiki.programtree.cn 来查看实际搭建的效果

相关推荐
cjy0001111 小时前
springboot的 nacos 配置获取不到导致启动失败及日志不输出问题
java·spring boot·后端
小江的记录本2 小时前
【事务】Spring Framework核心——事务管理:ACID特性、隔离级别、传播行为、@Transactional底层原理、失效场景
java·数据库·分布式·后端·sql·spring·面试
sheji34162 小时前
【开题答辩全过程】以 基于springboot的校园失物招领系统为例,包含答辩的问题和答案
java·spring boot·后端
程序员cxuan2 小时前
人麻了,谁把我 ssh 干没了
人工智能·后端·程序员
wuyikeer3 小时前
Spring Framework 中文官方文档
java·后端·spring
Victor3564 小时前
MongoDB(61)如何避免大文档带来的性能问题?
后端
Victor3564 小时前
MongoDB(62)如何避免锁定问题?
后端
wuyikeer4 小时前
Spring BOOT 启动参数
java·spring boot·后端
子木HAPPY阳VIP5 小时前
Ubuntu 22.04 VMware 设置固定IP配置
人工智能·后端·目标检测·机器学习·目标跟踪
人间打气筒(Ada)5 小时前
如何基于 Go-kit 开发 Web 应用:从接口层到业务层再到数据层
开发语言·后端·golang