使用 wiki.js 美丽直观的界面,让文档成为写作的乐趣!
几乎适用于任何平台,并与PostgreSQL、MySQL、MariaDB、MS SQL Server 或 SQLite 兼容!
使用广泛而直观的管理区域管理维基的所有方面。
Wiki.js运行在快速的Node.js引擎上,它是基于性能考虑而构建的。
完全自定义您的维基的外观,包括一个浅色和深色的模式。
让你的维基公开,完全私人或两者的混合。
无论是在一个小树莓派或在云中的高性能虚拟机上,Wiki.js 智能地利用可用资源。
并非所有团队都需要相同的功能集。这就是为什么 wiki.js提供了广泛的模块,可以打开/关闭对应功能。
具有自注册和密码恢复功能的内置身份验证。
使用谷歌、Facebook、微软、GitHub、Discord、Slack等第三方身份验证服务。
使用LDAP、SAML、CAS、Auth0、Okta、Azure AD等与贵公司现有认证集成。还包括通用 OAuth2 和 OpenID Connect 模块。
使用支持身份验证模块的双重身份验证添加额外的安全层。
开发人员中最受欢迎的文档格式。包括实时预览和工具栏/键盘快捷方式快速访问。
为非技术人员设计的简单易用的WYSIWYG编辑器。无需编码或特殊语法知识。
直接在HTML中编写内容。非常适合从其他来源导入预制的HTML页面。
所有内容修改都会被跟踪。您可以恢复到以前的状态或随时恢复已删除的页面。轻松跟踪谁改变了什么。
可视化地比较同一页面的两个版本,以查看更改的确切内容。
快速导出页面的特定版本或从旧版本创建新页面。
wiki.js被翻译成40多种语言!如果您的语言尚不可用,请帮助我们使用易于使用的工具进行翻译。无需编码!
完全支持从右到左的语言。
以多种语言提供您的维基。在同一页的语言之间快速切换。
从资产管理器 上传和管理您的媒体资产。轻松地在文件夹中分类您的资产,并查看它们被使用的地方。
插入带有全彩色语法突出显示和行号的代码片段。
轻松生成图,如 UML、流程图、序列等。
使用 TeX 或 MathML 语法渲染复杂的数学表达。
wiki.js附带了一个内置的搜索引擎。它需要零设置,是大多数用户的最佳选择。
使用 Algolia、Azure 搜索等云搜索服务为您的维基搜索功能提供动力。
使用您现有的ES 装置为您的维基搜索功能供电。
同步或备份您的内容到流行的 Git 服务,如 GitHub、GitLab、BitBucket、Azure DevOps 等。
将内容备份到云存储服务,如 AWS S3、Azure Blob 存储、Google 云存储、DigitalOcean空间等。
在磁盘/网络共享或网络上的远程服务器上使用 SSH 的安全副本本地备份您的内容。
从管理区域管理用户。快速创建新用户或编辑现有用户的所有方面。
将用户分成组,以控制其可以做什么或访问的内容。无需浪费时间按每个用户分配权限!
设置组权限,以有效控制用户可以做什么或访问的内容。页面编辑、资产管理和访问管理区域各个部分的颗粒权限。
使用精确的路径、开始/结束和 regex 筛选器向组设置高级和精确的页面规则。
为用户界面选择浅色和暗模式。
您可以从管理区域直接覆盖CSS或注入额外的 JS 脚本。
[[我为什么选择 Wiki.js 记笔记?]]
📚️ 参考文档: Wiki.js 官方文档 - 安装 - Kubernetes Wiki.js 使用 Helm 安装 Wiki.js 官方文档 - 安装 - 侧加载
开始使用 Helm Chart 在 Kubernetes 上安装
有关详细的安装说明,请参阅wiki.js helm repo。
此图表使用Helm包管理器在Kubernetes群集上启动wiki.js部署。
它还可选地将PostgreSQL打包为数据库,但您可以自由携带自己的数据库。
要安装带有my-release
发布名称的 chart,请在此 (helm
) 目录运行以下情况:
📚️ 参考文档: Wiki.js helm chart git 仓库地址 需要先将该 Git 仓库 clone 下来, 并跳转到 (
helm
) 目录, 然后执行下面的命令.
使用 Helm3:
$ helm install my-release .
使用 Helm2:
$ helm install --name my-release .
该命令在Kubernetes群集上的default
租户中部署wiki.js。[[#配置]] 部分列出了安装过程中可以配置的参数。
提示:使用
helm list
列出所有版本
卸载/删除my-release
部署:
$ helm delete my-release
命令会删除与 该 Chart 关联的所有 Kubernetes 组件并删除该 release。
警告:数据库的 PVC 不会自动删除。它们需要手动删除
$ kubectl delete pvc/data-wiki-postgresql-0
下表列出了维基图表的可配置参数.js及其默认值。
参数 | 描述 | 默认 |
---|---|---|
image.repository | wiki.js image | requarks/wiki |
image.tag | wiki.js image tag | latest |
imagePullPolicy | 镜像拉取策略 | IfNotPresent |
replicacount | 要运行的wiki.js服务pod数量 | 1 |
resources.limits | wiki.js服务资源限制 | nil |
resources.requests | wiki.js服务资源请求 | nil |
nodeSelector | wiki.js 的 nodeSelector | {} |
affinity | wiki.js pod分配的亲和力设置 | {} |
schedulerName | wiki.js pod 备用调度器的名称 | nil |
tolerations | wiki.js 吊舱分配的容忍标签 | [] |
ingress.enabled | 启用入口控制器资源 | false |
ingress.annotations | 入口注释 | {} |
ingress.hosts | 入口规则列表 | [{"host": "wiki.local", "paths": ["/"]}] |
ingress.tls | 入口 TLS 配置 | [] |
postgresql.enabled | 是否部署 postgresql(见下文) | true |
postgresql.postgresqlDatabase | postgresql数据库名称 | wiki |
postgresql.postgresqlUser | postgresql 用户名 | postgres |
postgresql.postgresqlHost | postgresql 主机 | nil |
postgresql.postgresqlPassword | postgresql 密码 | nil |
postgresql.postgresqlPort | postgresql 端口 | 5432 |
postgresql.persistence.enabled | 使用 PVC 启用 postgresql 持久性 | true |
postgresql.persistence.existingClaim | 为 postgresql 提供已有PersistentVolumeClaim | nil |
postgresql.persistence.storageClass | postgresql PVC存储类(例如:nfs) | nil |
postgresql.persistence.size | postgresql PVC 存储大小需求 | 8Gi |
使用--set key=value[,key=value]
参数指定每个参数来 helm install
。例如,
$ helm install --name my-release \
--set postgresql.persistence.enabled=false \
.
或者,在安装 chart 时可以提供指定上述参数值的 YAML 文件。例如,
$ helm install --name my-release -f values.yaml .
提示:您可以使用默认values.yaml
默认情况下,作为Chart 的一部分安装PostgreSQL。
要使用外部PostgreSQL服务器,设置postgresql.enabled
为false
然后设置postgresql.postgresqlHost
和postgresql.postgresqlPassword
。其他选项postgresql.postgresqlDatabase
、postgresql.postgresqlUser
(和)postgresql.postgresqlPort
可能也需要从其默认值中更改。
您还需要在部署中添加以下 Helm 模板:
kind: Secret
apiVersion: v1
metadata:
name: {{ template "wiki.postgresql.secret" . }}
data:
{{ template "wiki.postgresql.secretKey" . }}: "{{ .Values.postgresql.postgresqlPassword | b64enc }}"
PVC 用于在整个部署中保留数据。请参阅 [[#配置]] 部分以配置 PVC 或禁用持久化。
此Chart 为Ingress 资源提供支持。如果你有一个可用的 ingress 控制器,如Nginx 或 Traefik,你可能想设置ingress.enabled
为真,并为URL选择一个ingress.hostname
。然后,您应该能够使用该地址访问安装。
📚️ 参考文档: Wiki.js 官方文档 - 安装 - Kubernetes Wiki.js 使用 Helm 安装 Wiki.js 官方文档 - 安装 - 侧加载
根据官方文档和 GitHub issues 的分析. 离线环境下, 那么需要将从internet下载的数据侧载(sideload)。
这是通过手动下载一组文件并将它们放置在wiki安装中的特定目录来实现的。这些文件将在初始化期间导入。
在Wiki.js安装文件夹的path data/sideload
中创建一个新文件夹。
例如,如果您的wiki安装在路径/wiki
(wikijs的docker image 里wiki的安装路径为 /wiki
),那么您需要在路径/wiki/data/sideload
创建一个文件夹.
为了安装locale包,您需要主locale文件+至少一个locale包文件。
ℹ️ 信息: 这些文件可以从https://github.com/Requarks/wiki-localization下载。这些档案每天晚上都是最新的。
主文件locales.json
包含有关所有可用语言的信息,并且必须安装。
将此文件放在先前创建的sideload
文件夹中。
语言环境软件包文件xx.json
或xx-zz.json
包含所选语言的所有翻译。您可以同时加载任意数量的语言环境。
⚠️ 警告: 英语包
en.json
是必须的,因为这是安装期间的默认语言。之后您可以更改语言.
将文件放在先前创建的sideload
文件夹中主文件的旁边。现在,您的文件夹中应该具有locales.json
,en.json
和任何其他语言。
⚠️ 警告: 必须先修改 wiki.js 配置文件:
config.yml
. 增加如下一行:offline: true
运行Wiki.js(如果已经在运行,则重新启动进程),自动加载位于data/sideload
文件夹中的文件。
📝 备注: 由于笔者时间不足, 就不将额外的步骤整合到 helm chart 中去了. 以下步骤假设:
helm
helm/
目录下helm
安装 wiki.js 和 postgresql:
helm install wikijs . -n wiki --set image.tag=2,postgresql.persistence.storageClass=nfs-fast
配置说明如下, 创建好了 helm 会有相关成功的提示, 此时可以使用, 但是加载不到 locale 语言包. 下一步需要 通过 sideload 加载语言包.wiki
租户下进行安装;2
, 保证不会因为选择latest
标签, 导致wiki.js 突然从2 升级到3, 导致服务异常;storageClass
为nfs-fast
, 通过它自动申请存储.config.yml
, 通过如下 ConfigMap 的方式修改. 步骤如下:wiki-config
, 相比默认的只增加了一行:
data/sideload
文件夹, 并将 locales 文件放到该目录. 通过 PVC 实现sideload-data
(步骤略)locales.json
, en.json
和zh.json
放到容器中的指定目录: /wiki/data/sideload
. 如下:
相比在线环境, 多出了如下步骤:
config.yml
, 配置文件多了一句: offline: true
/wiki/data/sideload
, 并将 locales 相关文件放进去.ℹ️ 信息: OpenShift 4.4+ 版本支持 Helm3
OpenShift 中, 对权限要求比较严格, 最简单的适配步骤, 就是将 wiki.js 所用的 ServiceAccount 权限放开.
相比上一节, 多出来的, 或者有调整的具体操作如下:
helm3
安装:
helm install wikijs . -n wiki --set image.tag=2.5,postgresql.serviceAccount.enabled=true,postgresql.serviceAccount.name=wikijs,postgresql.persistence.storageClass=nfs-fast
ℹ️ 说明如下:wikijs
这个 ServiceAccount, 为了简化权限步骤, postgresql 也用这个 ServiceAccountpostgresql.serviceAccount.enabled=true,postgresql.serviceAccount.name=wikijs
wikijs
这个用户赋权SCC: anyuid
: oc adm policy add-scc-to-user anyuid -z wikijs -n wiki
通过这篇文章的介绍, 可以看出 Wiki.js 功能还是很强大的, 值得一用.
在 Kubernetes 中用 helm 部署, 直接使用官方的最简命令即可;
在离线环境下的 Kubernetes 中用 helm 部署, 需要多2个步骤:
config.yml
, 配置文件多了一句: offline: true
/wiki/data/sideload
, 并将 locales 相关文件放进去.在离线环境下的 OpenShift 中用 helm 部署, 由于权限限制严格, 需要调整 ServiceAccount 并授予更高权限.
🎉🎉🎉