镜像概述
kjwikigdocker是kjwikig wiki系统的Docker镜像。kjwikig是一个基于纯JSP/Servlet(运行于Tomcat8)开发的wiki系统,其核心特点是将wiki数据以原生文本文件形式存储,文件缓存数据和标签缓存数据则以Java序列化对象形式保存。
该镜像运行时使用uid:998、gid:998用户身份,wiki数据默认存储路径为/var/lib/kjwikigdocker/,缓存数据分别存储在/var/lib/kjwikigdocker/fcd/(文件缓存)和/var/lib/kjwikigdocker/wcd/(标签缓存)目录。
核心功能与特性
- 数据存储:wiki数据以文本文件形式持久化存储,支持卷挂载实现数据持久化
- 缓存机制:文件缓存和标签缓存以Java序列化对象形式保存,提升访问性能
- 灵活配置:通过环境变量自定义wiki路径、上传大小、认证模式等核心参数
- 多版本支持:提供多个标签版本,包含功能更新和bug修复
- 部署兼容:支持Docker直接运行和Kubernetes通过Helm Chart部署
使用场景
- 个人知识库搭建
- 团队内部文档协作系统
- 轻量级企业wiki平台
- 需要简单部署和数据持久化的wiki应用
使用方法
Docker 运行
基础运行(数据非持久化)
直接运行容器,访问http://localhost:8080/kjwikigdocker/即可使用:
bash
docker run -d -p 8080:8080 georgesan/kjwikigdocker:stable
数据持久化运行
如需持久化存储wiki数据,需挂载数据卷。注意:挂载前需将卷目录权限设置为uid:998、gid:998:
bash
# 设置卷目录权限
chown -R 998:998 /var/lib/kjwikigdocker
# 运行容器并挂载卷
docker run -d -p 8080:8080 -v /var/lib/kjwikigdocker:/var/lib/kjwikigdocker georgesan/kjwikigdocker:stable
通过 Helm Chart 运行
添加 Helm 仓库
bash
# 添加 kjwikigdocker Helm 仓库
helm repo add kjwikigdockerrepo https://raw.githubusercontent.com/george-pon/kjwikigdocker/master/helm-chart/charts
helm repo update
安装 Helm Chart
bash
# 安装 kjwikigdocker
helm install kjwikigdocker kjwikigdockerrepo/kjwikigdocker --set ingress.hosts="{kjwikigdocker.default.svc.k8s.local}"
# 检查部署状态
kubectl rollout status deploy/kjwikigdocker
标签版本
以下是主要标签版本及更新说明:
- build678, monthly202107, stable, latest:更新至 Vue 3.1.5
- build674:添加WebChat文件上传输入框,使用Vue 2.6最终版
- build672, monthly202106:修复WebChat空指针异常,Vue 2.6.14
- build671, monthly202106, stable, latest:WebChat支持URL字符串自动获取数据
- build668, monthly202105:适配Tomcat10,使用Jakarta Servlet API 5.0
- build664:WebChat添加图片大小计算(基于cookie中image_size的55%),适配Tomcat 9最终版
- build663, monthly202104:设置页面添加240像素图片尺寸选项,WebChat图片大小计算优化
- build662:2ch论坛添加标签搜索缓存
- build661:WebChat系统时间广播固定位置显示
- build660, monthly202103:wiki、论坛、图片论坛、WebChat显示登录用户名
- build659, monthly202102:WebChat使用lodash.debounce优化手机浏览器滚动
- build658:WebChat无限滚动起始位置调整
- build657:WebChat滚动高度和滚动顶部位置修复
- build656:WebChat注释修改
- build655:WebChat大图模态框显示修复,图片URL修正
- build654:WebChat大图模态框显示优化(使用vw和vh设置尺寸)
- build652:WebChat大图模态框尺寸设置修复
- build651:WebChat编辑按钮与图片按钮冲突修复
- build650:WebChat系统消息编号格式修改,大图模态框显示添加,外部链接新窗口打开
- build649, monthly202101:模板添加下个月显示
- build648:WebChat v-for键绑定修复,消息最大显示数量设置为50
- build647:图片论坛标签缓存至文件(/var/lib/kjwikigdocker/wcd/目录)
- build646:旧格式属性文件(xxx.atr)读取兼容处理,默认删除键设置
- build645:用户添加时用户名冲突检查忽略大小写,wiki标签缓存至文件,属性文件格式更新(不兼容旧版本)
- build642, monthly202012:npm环境更新(2020/12/31)
- build641, monthly202012, stable, latest:recent_pictbbs插件修复(WebChat -> Web Chat避免Wiki名称链接)
- build640:hiki/usemodwiki/markdown添加recent_pictbbs插件(支持/l5图片论坛链接)
- build639:图片论坛上传插件DELKEY输入框添加autocomplete=off,hiki/usemodwiki/markdown添加recent_pictbbs插件
- build637:WebChat编辑按钮全局设置(避免消息数组变化时编辑对话框关闭)
- build636:usemodwiki、markdown待办事项支持非列表项编辑
- build635, monthly202011:usemodwiki、markdown待办事项添加checked1d模式(显示今日完成项)
- build634:WebChat、图片论坛添加{{gpslink(@123,456,17z)}}插件
- build633:WebChat添加GPS按钮选项设置
- build632:注册页面添加空格字符验证,WebChat添加GPS按钮(HTTPS下插入位置信息)
- build631:添加注册页面(/signup)及自动注册开关
- build630:基础镜像更新为georgesan/debiantomcat:debian10-adoptopenjdk15-tomcat9
- build629:WebChat图片链接设置为新窗口打开
- build628:持久化组件启动时排除.atr文件读取
- build627, monthly202010:持久化组件启动时一次性读取文件列表(提速),WebChat重复标题行移除,关闭时停止间隔执行器
- build616:WebChat编辑时取消转义(lt, gt, amp, quot)
- build615:WebChat非自己发送的消息隐藏编辑按钮
- build614:WebChat"显示更多/更少"按钮状态保持
- build613, monthly202009:markdown支持图片链接!描述格式
- build612:WebChat编辑模态框移除delkey输入
- build609:WebChat添加编辑按钮
- build607:WebChat编辑功能准备
- build606:WebChat.ts添加消息数组类型定义,webpack.config.js添加.vue文件和CSS加载器,Vue更新至2.6.12
- build605:图片论坛发帖后WebChat消息自动更新逻辑修复(判断是否为自己发送的消息),发帖/上传时自动从会话数据设置用户名
- build603-601:CSS样式优化(h1-h6颜色等调整)
- build600:markdown、usemodwiki、hiki的{{upload}}插件优化(首行输入h1-h6标记时抑制自动插入h4标题)
- build599:WebChat移除h1标题
- build598:jsoup更新至1.13.1
- build596:搜索和最新页面HTML标签闭合修复
- build595:word.jsp添加div闭合标签
- build594:静态模式下搜索链接和摘要链接编码移除
- build593:静态HTML模式下recent_tag跳过URL编码
- build592:digestlink URL编码优化(不含/)
- build591:WebChat添加顶部固定视图标志
- build590:待办事项表单ID修改
环境变量
| 环境变量名称 | 默认值 | 描述 |
|---|
| KJWikiG_WarFileName | kjwikigdocker | wiki WAR文件名 |
| KJWikiG_dataStorePath | /var/lib/kjwikigdocker | wiki数据存储路径 |
| KJWikiG_defaultWord | WelcomeVisitors | 默认wiki页面名称 |
| KJWikiG_maxFileUploadSize | 768000000 | 最大文件上传大小(字节) |
| KJWikiG_uploadFileTemporaryPath | /tmp | 大文件上传临时路径 |
| KJWikiG_authenticationMode | AuthenticationModeMay | 认证模式:AuthenticationModeMust(必须认证)/AuthenticationModeMay(游客可访问,默认) |
| KJWikiG_uploadEnableURLOfOtherSite | uploadDisableURLOfOtherSite | 其他网站URL上传开关:uploadEnableURLOfOtherSite(启用)/uploadDisableURLOfOtherSite(禁用,默认) |
| KJWikiG_defaultImagePixel | 960 | 默认图片像素大小(智能手机建议设为320) |
| KJWikiG_defaultTextWidth | -1 | 文本换行宽度(-1表示不换行) |
| KJWikiG_isAllowAutomaticSignUp | SetDenyAutomaticSignUp | 自动注册开关:SetAllowAutomaticSignUp(允许)/SetDenyAutomaticSignUp(禁止,默认) |
参数覆盖顺序
参数按以下优先级读取:
- WAR文件中的资源包
kjwikig(例如:键dataStorePath)
- 环境变量(例如:键
KJWikiG_dataStorePath)
- Java系统属性(例如:键
KJWikiG_dataStorePath)
优先级:环境变量 > Java系统属性 > 资源包默认值。