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 来查看实际搭建的效果

相关推荐
羊小猪~~38 分钟前
MYSQL学习笔记(九):MYSQL表的“增删改查”
数据库·笔记·后端·sql·学习·mysql·考研
冰 河1 小时前
‌最新版DeepSeek保姆级安装教程:本地部署+避坑指南
人工智能·程序员·openai·deepseek·冰河大模型
豌豆花下猫1 小时前
Python 潮流周刊#90:uv 一周岁了,优缺点分析(摘要)
后端·python·ai
橘猫云计算机设计1 小时前
基于SSM的《计算机网络》题库管理系统(源码+lw+部署文档+讲解),源码可白嫖!
java·数据库·spring boot·后端·python·计算机网络·毕设
熬夜苦读学习2 小时前
Linux文件系统
linux·运维·服务器·开发语言·后端
我是张三2 小时前
代码生成器让你告别重复枯燥的工作(一)
程序员
坚定信念,勇往无前2 小时前
Spring Boot 如何保证接口安全
spring boot·后端·安全
程序员侠客行3 小时前
Spring事务原理详解 三
java·后端·spring·架构
Hello.Reader5 小时前
深入理解 Rust 的 `Rc<T>`:实现多所有权的智能指针
开发语言·后端·rust
yoona10205 小时前
Rust编程语言入门教程(八)所有权 Stack vs Heap
开发语言·后端·rust·区块链·学习方法