超详情的开源知识库管理系统- mm-wiki的安装和使用
背景:最近公司需要一款可以记录公司内部文档信息,一些只是累计等,通过之前的经验积累,立马想到了 mm-wiki,然后就给公司搭建了一套,分享一下安装和使用说明:
当前市场上众多的优秀的文档系统百家争鸣,但是能够完全开源支持私有化部署的却屈指可数。目前个人了解到的体验较好的有MrDoc和mm-wiki。

一、下载安装包地址
一个轻量级的企业知识分享与团队协同软件
先把开源地址分享一下:
GitHub:https://github.com/phachon/mm-wiki
下载地址:https://github.com/phachon/mm-wiki/releases
由于国内访问github比较慢,分享一下gitee地址,因为要下载安装包,所以建议使用gitee:
https://gitee.com/phachon/mm-wiki
下载地址: https://gitee.com/phachon/mm-wiki/tags
下载这个版本 v0.2.1

二、安装
mysql那些自行安装,这里就不说了,自己把数据库装好,后面会用到!
# 创建目录
$ mkdir mm_wiki
$ cd mm_wiki
# 以 linux amd64 为例,下载最新版本压缩包
# https://github.com/phachon/mm-wiki/releases 自行下载 wget http://
# 解压到当前目录
$ tar -zxvf mm-wiki-linux-amd64.tar.gz
# 进入程序安装目录
$ cd install
# 执行安装程序,默认端口为 8090,指定其他端口加参数 --port=8087
$ ./install
# 浏览器访问 http://ip:8090 进入安装界面,完成安装配置
# Ctrl + C 停止 install 程序, 启动 MM-Wiki 系统
$ cd ..
$ ./mm-wiki --conf conf/mm-wiki.conf
# 浏览器访问你监听的 ip 和端口
# 开始 MM-Wiki 的使用之旅吧!
1.配置:
1.1.解压
tar -zxvf mm-wiki-v0.2.1-linux-amd64.tar.gz
1.2.然后进入install目录,执行./install命令,启动安装程序
1.3.最后我们在浏览器访问服务器ip:8090端口即可访问安装页面
接下来就是一步一步跟着来了
1.勾选同意协议,下一步
2.下一步
3.修改服务监听地址和端口,输入文档保存目录,下一步
4.配置数据库的连接信息(密码就是前面重置的)和超级管理员,下一步
5.点击开始安装,下一步
6.耐心等待,安装完成


检查系统信息,通过进行下一步:
配置文件IP 和端口还有文件保存目录

创建个目录

配置数据库链接信息,超级管理员账号和密码

点击安装

安装完成后展示效果

在命令行终端按 Ctrl + C 停止 install 程序,
2.启动
在当前Shell窗口启动 MM-Wiki 系统命令
# ./mm-wiki --conf conf/mm-wiki.conf
如果你想关闭 shell 窗口后台运行 mm-wiki,Linux 执行命令
# nohup ./mm-wiki --conf conf/mm-wiki.conf &
3.访问
浏览器访问你监听的 ip 和端口开始 MM-Wiki 的使用之旅吧!
访问地址:http://127.0.0.1:8080

4.设置MM-Wiki以进程存在开机自启动
vi /etc/systemd/system/mmwiki.service
填写如下参数(目录不一样的请进行修改)
[Unit]
Description=mmwiki
After=network.target
Wants=network.target[Service]
Type=simple
PIDFile=/var/run/mmwiki.pid
##软件路径
WorkingDirectory=/root/mm_wiki
ExecStart=/root/mm_wiki/mm-wiki --conf conf/mm-wiki.conf
RestartPreventExitStatus=23
Restart=always[Install]
WantedBy=multi-user.target
启动并开机自启
# systemctl daemon-reload
# systemctl start mmwiki
# systemctl enable mmwiki
5.Nginx反向代理MM-Wiki
默认安装完MM-Wiki监听的是8080端口,访问时候还得加端口,这个时候我们可以使用Nginx来反向代理MM-Wiki
# vi /etc/nginx/conf.d/mmwiki.conf
编写填写如下信息
server {listen 80;#要绑定的域名server_name wiki.ahaoyw.com;location / {proxy_pass_header Server;proxy_set_header Host $http_host;proxy_redirect off;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Scheme $scheme;#MM-Wiki 监听的ip:portproxy_pass http://127.0.0.1:8080;}
}
填写完后,保存并退出
systemctl restart nginx
配置完成
三、使用教程
进来之后是这样的,你可以自己去配

登录界面:
最近更新文档:展示最近更改的那些文旦的痕迹
快捷链接:可以跳转到指定文档地址
空间:展示创建空间目录
用户:展示当前系统用户人员
系统:创建空间,添加用户等其他功能

用户管理:可以进行添加用户和角色控制
角色管理:可以进行角色权限设置
空间管理:添加空间
使用步骤:创建用户->赋权->赋予角色->创建可用空间->给空间绑定人员及权限,使用编辑就行
这个是我改的首页


https://blog.csdn.net/m0_46453412/article/details/104977098
https://www.ahaoyw.com/article/787.html
相关文章:
超详情的开源知识库管理系统- mm-wiki的安装和使用
背景:最近公司需要一款可以记录公司内部文档信息,一些只是累计等,通过之前的经验积累,立马想到了 mm-wiki,然后就给公司搭建了一套,分享一下安装和使用说明: 当前市场上众多的优秀的文档系统百…...
安卓:UDP通信
目录 一、介绍 网络通信的三要素: (1)、IP地址: IPv4: IPv6: IP地址形式: IP常用命令: IP地址操作类: (2)、端口: (3)、协议: UDP协…...
clickhouse安装
clickhouse安装 在线安装和离线安装 一、环境准备: 1.检查系统是否支持clickhouse安装 (向量化支持) grep -q sse4_2 /proc/cpuinfo && echo “SSE 4.2 supported” || echo “SSE 4.2 not supported.” 2.下载对应的clickhouse包 复制运行之后,就会将对应的包加入…...
Cpp学习——string(2)
目录 编辑 容器string中的一些函数 1.capacity() 2.reserve() 3.resize() 4.push_back()与append() 5.find系列函数 容器string中的一些函数 1.capacity() capacity是string当中表示容量大小的函数。但是string开空间时是如何开的呢?现在就来看一下。先写…...
python进阶编程
lambda匿名函数 python使用lambda表达式来创建匿名函数 语法 // lambda 参数们:对参数的处理 lambda x : 2 * x // x 是参数, 2*x 是返回值 //使用lambda实现求和 sum lambda arg1, arg2 : agr1 arg2 print(sum(10,20)) // 将匿名函数封装在一…...
算法练习--leetcode 链表
文章目录 合并两个有序链表删除排序链表中的重复元素 1删除排序链表中的重复元素 2环形链表1环形链表2相交链表反转链表 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。 新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入&…...
Android性能优化—Apk瘦身优化
随着业务迭代,apk体积逐渐变大。项目中积累的无用资源,未压缩的图片资源等,都为apk带来了不必要的体积 增加。而APK 的大小会影响应用加载速度、使用的内存量以及消耗的电量。在讨论如何缩减应用的大小之前,有必要了解下应用 APK …...
前端主题切换方案——CSS变量
前言 主题切换是前端开发中老生常谈的问题,本文将介绍主流的前端主题切换实现方案——CSS变量 CSS变量 简介 编写CSS样式时,为了避免代码冗余,降低维护成本,一些CSS预编译工具(Sass/Less/Stylus)等都支…...
Java8 list多属性去重
大家好,我是三叔,很高兴这期又和大家见面了,一个奋斗在互联网的打工人。 在 Java 开发中,我们经常会面临对 List 中的对象属性去重的需求。然而,当需要根据多个属性来进行去重时,情况会稍微复杂一些。本篇…...
kafka-保证数据不重复-生产者开启幂等性和事务的作用?
1. 生产者开启幂等性为什么能去重? 1.1 场景 适用于消息在写入到服务器日志后,由于网络故障,生产者没有及时收到服务端的ACK消息,生产者误以为消息没有持久化到服务端,导致生产者重复发送该消息,造成了消…...
[AI in security]-214 网络安全威胁情报的建设
文章目录 1.什么是威胁情报2. 威胁情报3. 智能威胁情报3.1 智能威胁情报的组成3.2 整合威胁情报3.3 最佳实践4. 威胁情报的作用5.威胁情报模型6.反杀链模型7.基于TI的局部优势模型参考文献相关的研究1.什么是威胁情报 威胁情报是循证知识,包括环境、机制、指标、意义和可行性…...
Javaweb学习(2)
Javaweb学习 一、Maven1.1 Maven概述1.2 Maven简介1.3、Maven基本使用1.4、IDEA配置Maven1.6、依赖管理&依赖范围 二、MyBatis2.1 MyBatis简介2.2 Mybatis快速入门2.3、解决SQL映射文件的警告提示2.4、Mapper代理开发 三、MyBaits核心配置文件四、 配置文件的增删改查4.1 M…...
leetcode410. 分割数组的最大值 动态规划
hard:https://leetcode.cn/problems/split-array-largest-sum/ 给定一个非负整数数组 nums 和一个整数 m ,你需要将这个数组分成 m 个非空的连续子数组。 设计一个算法使得这 m 个子数组各自和的最大值最小。 示例 1:输入:nums [7,2,5,1…...
C函数指针与类型定义
#include <stdio.h> #define PI 3.14 typedef int uint32_t; /* pfun is a pointer and its type is void (*)(void) */ void (*pfun)(void); /* afer typedef like this we can use “pfun1” as a data type to a function that has form like: / -------…...
最新2024届【海康威视】内推码【GTK3B6】
最新2024届【海康威视】内推码【GTK3B6】 【内推码使用方法】 1.请学弟学妹们登录校招官网,选择岗位投递简历; 2.投递过程中填写内推码完成内推步骤,即可获得内推特权。 内推码:GTK3B6 内推码:GTK3B6 内推码&…...
边写代码边学习之LSTM
1. 什么是LSTM 长短期记忆网络 LSTM(long short-term memory)是 RNN 的一种变体,其核心概念在于细胞状态以及“门”结构。细胞状态相当于信息传输的路径,让信息能在序列连中传递下去。你可以将其看作网络的“记忆”。理论上讲&a…...
Elasticsearch8.8.0 SpringBoot实战操作各种案例(索引操作、聚合、复杂查询、嵌套等)
Elasticsearch8.8.0 全网最新版教程 从入门到精通 通俗易懂 配置项目 引入依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version></dependency><dependency>&l…...
《MySQL高级篇》十五、其他数据库日志
文章目录 1. MySQL支持的日志1.1 日志类型1.2 日志的弊端 2. 慢查询日志(slow query log)3. 通用查询日志3.1 问题场景3.2 查看当前状态3.3 启动日志3.4 查看日志3.5 停止日志3.6 删除\刷新日志 4. 错误日志(error log)4.1 启动日志4.2 查看日志4.3 删除\刷新日志4.4 MySQL8.0新…...
【Linux】【预】配置虚拟机的桥接网卡+nfs
【Linux】【预】配置虚拟机的桥接网卡 1. 配置VM虚拟机的桥接网络2 配置Win10中的设置3.配置Linux中的IP4. 串口连接开发板,配置nfs5 修改网络文件6 验证nfs 是否成功总结 1. 配置VM虚拟机的桥接网络 右击设置,选择添加网络,按照如下顺序操作…...
【Android】Retrofit2和RxJava2新手快速上手
写这篇博客的目的 网上关于Retrofit2和RxJava2的博客特别多,但是内容特别复杂,一上来就讲解很高级的用法 其实我们没必要像高考做题家一样,把每个API都背的滚瓜烂熟 熟悉基本用法,高阶用法需要的时候再逐个了解就行了 因为博客…...
从官方demo到真实项目:手把手教你定制uniapp uni-card卡片的样式与交互
从官方demo到真实项目:手把手教你定制uniapp uni-card卡片的样式与交互 在移动应用开发中,卡片式设计已经成为展示内容的黄金标准。uni-app的uni-card组件为开发者提供了一个快速构建卡片式界面的基础工具,但实际项目中,我们往往需…...
KaTrain围棋AI:如何用数据可视化与智能分析重塑围棋学习体验
KaTrain围棋AI:如何用数据可视化与智能分析重塑围棋学习体验 【免费下载链接】katrain Improve your Baduk skills by training with KataGo! 项目地址: https://gitcode.com/gh_mirrors/ka/katrain 围棋作为一项拥有数千年历史的智力运动,其学习…...
vue3+python基于Django的校园二手物品交易系统设计与实现49895951
目录同行可拿货,招校园代理 ,本人源头供货商项目背景技术栈核心功能模块关键实现细节扩展性设计参考开源项目项目技术支持源码获取详细视频演示 :同行可合作点击我获取源码->->进我个人主页-->获取博主联系方式同行可拿货,招校园代理 ,本人源头供货商 项目…...
实体门店低获客成本增长案例:3 人转介绍模型 + 消费返还机制落地分析
一、案例背景该门店为 60㎡社区夫妻店,位于成熟居住商圈,周边覆盖 3 个社区共 3000 余户居民。此前门店采用传统公域投放 线下发单的获客模式,获客成本偏高,用户留存与老客转介绍率存在较大提升空间。二、核心运营方案设计本次方…...
开源 AI Agent Harness Engineering 模型与闭源模型的对比
开源 AI Agent Harness Engineering 模型与闭源模型的对比 摘要 如果把AI Agent比作自动驾驶汽车,那么AI Agent Harness就是这辆车的操作系统:它负责管控任务规划、工具调用、记忆管理、容错重试等所有核心逻辑,是Agent落地工程化的核心支撑…...
终极指南:如何用AhabAssistantLimbusCompany彻底解放《Limbus Company》游戏时间
终极指南:如何用AhabAssistantLimbusCompany彻底解放《Limbus Company》游戏时间 【免费下载链接】AhabAssistantLimbusCompany AALC,PC端Limbus Company小助手。AALC,Limbus Company Assistant on PC 项目地址: https://gitcode.com/gh_mi…...
【上篇】SenseNova-U1:基于NEO-unify架构统一多模态理解与生成
📣 更新动态 [2026.05.15] 发布 SenseNova-U1-8B-MoT-信息图表 📊,优化信息图表生成功能。详情请参阅 U1信息图表模型,并查看 ✨ 信息图表展示 获取100个生成示例。 ✨ 点击展开历史动态 [2026.05.10] 发布🔥SenseNo…...
王力宏重仓比亚迪,行业震惊
王力宏最近以腾势汽车全球代言人的身份亮相发布会,现场直言:“后悔10年前没投资比亚迪,这次我要把握机会。” 当被问及是否用代言费买了比亚迪股票,他大方承认“这是真的”。他还补充道:“10年前我做过一档节目&#x…...
2026 在线考试系统哪个好?功能、客户、方案、优势与服务全对比
前言数字化转型浪潮下,在线考试系统已从教育、企业的辅助工具,升级为覆盖教学考核、人才招聘、员工培训、政务考核、资格认证、知识竞赛的核心数字基础设施。据艾瑞咨询 2026 年 2 月发布的《中国线上考试行业发展白皮书》显示,2025 年中国线…...
BedRock缓存一致性协议:无瞬态状态设计与验证优化
1. BedRock缓存一致性协议概述在现代多核处理器架构中,缓存一致性协议是确保多个处理器核心能够正确访问共享内存数据的关键机制。BedRock协议作为一种创新的目录式缓存一致性解决方案,通过独特的架构设计显著降低了传统协议面临的实现复杂度和验证难度。…...
