前言:有朋友问我上次你推荐的那个语雀文档,好用是好用但是它现在流量,一点都不良心。有木有可以自建的方案,我当时回复的是,暂时还没有,现在我在最大的交流平台GitHub上面看到了一个比较好的方案,我已经推荐给他了。现在我也和大家分享。

介绍: MM-Wiki 一个轻量级的企业知识分享与团队协同软件,可用于快速构建企业 Wiki 和团队知识分享平台。部署方便,使用简单,帮助团队构建一个信息共享、文档管理的协作环境。

特点

  • 部署方便,基于 golang 编写,只需要下载对于平台下二进制文件执行即可。
  • 快速安装程序, 提供方便的安装界面程序,无需任何手动操作。
  • 独立的空间,空间是一组文档的集合,一般为公司部门或者团队,空间下的文档相互独立。空间可根据需求设置空间访问级别。
  • 支持 markdown 语法写作,支持附件上传。
  • 完善的系统权限管理,系统可以自定义角色,并为不同角色授予不同的权限。
  • 集成统一登录,本系统支持通过外部系统认证用户, 比如与公司的 LDAP 登录融合。具体请看登录认证功能。
  • 邮件通知功能,当开启邮件通知,文档更改会通知所有关注该文档的用户。
  • 文档具有分享和下载功能,目前只支持下载 MarkDown 源文件。
  • 支持文档全文搜索

在线快速了解

注意

自建服务需要有服务器,个人推荐使用腾讯云的轻量应用服务器

来自腾讯云官网:轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、小程序/小游戏、电商、云盘/图床以及各类开发测试和学习环境,相比普通云服务器更加简单易用,提供高带宽流量包并以套餐形式整体售卖基础云资源,将热门开源软件融合打包实现一键构建应用,是您使用腾讯云的最佳入门途径。

【腾讯云】轻量应用服务器Lighthouse,上云「轻」而易举,1核1G3M低至128元/年,高带宽首选 (连接有博主的AFF)

安装

1、安装Mysql

宝塔的,直接在宝塔上安装Mysql,安装过的可以跳过,直接进行下一步,没有安装的可以手动安装下。

#CentOS 6系统
rpm -ivh http://repo.mysql.com/mysql57-community-release-el6.rpm
yum install mysql-community-server -y
service mysqld start
chkconfig mysqld on

#CentOS 7系统
rpm -ivh http://repo.mysql.com/mysql57-community-release-el7.rpm
yum install mysql-community-server -y
systemctl start mysqld
systemctl enable mysqld

#Debian/Ubuntu系统
apt update
apt install mysql-server -y

如果Debian或Ubuntu在安装期间有弹出窗口要你输入密码就设置一个,没有的话密码就是空格。

对于CentOS安装MySQL 5.7的时候会生成一个随机密码,使用命令查看:

grep "password" /var/log/mysqld.log
[Note] A temporary password is generated for root@localhost: ******

然后接下来CentOS和安装期间没要求输入密码的Debian或Ubuntu,就需要修改数据库密码:

#CentOS系统,第一行passwd为你上面看到的密码,第四行moerats为要修改的密码,均自行修改
mysql -u root -ppasswd
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=4;
mysql> set password=password("moerats");
mysql> exit;

#Debian、Ubuntu系统,第一行登录数据库的时候直接Enter跳过,第二行moerats为要修改的密码,自行修改
mysql -u root -p
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('moerats'), PLUGIN='mysql_native_password' WHERE USER='root';
mysql> exit;

最后修改过密码的还需要重启数据库:

#CentOS 6
service mysqld restart
#CentOS 7
systemctl restart mysqld
#Debian和Ubuntu
systemctl restart mysql

此时Mysql算是安装完成了。

2. 安装mm-wiki

Github地址:https://github.com/phachon/mm-wiki

打开 https://github.com/phachon/mm-wiki/releases 找到对应平台的版本下载编译好的压缩包

  • Linux 平台

    # 创建目录
    $ 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
    $ ./install--port=8087 #修改的范例
    # 浏览器访问 http://ip:8090 进入安装界面,完成安装配置
    # Ctrl + C 停止 install 程序, 启动 MM-Wiki 系统
    $ cd ..
    $ ./mm-wiki --conf conf/mm-wiki.conf
    # 浏览器访问你监听的 ip 和端口
    # 开始 MM-Wiki 的使用之旅吧!
  • Windows 平台

    # 以 windows amd64 为例,下载最新版本压缩包
    # https://github.com/phachon/mm-wiki/releases 自行下载
    # 手动解压到当前目录
    # 进入 install 目录
    # 双击点开 install.exe 文件
    # 浏览器访问 http://ip:8090 进入安装界面,完成安装配置
    # 关闭刚刚点开的 install 窗口
    # 使用 windows 命令行工具(cmd.exe)进入程序根目录
    $ 执行 mm-wiki.exe --conf conf/mm-wiki.conf
    # 浏览器访问你监听的 ip 和端口
    # 开始 MM-Wiki 的使用之旅吧!
  • Docker 部署

    # 数据库准备
    # 导入docs/databases/data.sql和docs/databases/table.sql(注:需取消注释data.sql中第一条管理用户插入语句)
    
    # 两种部署方式可用
    # DockerHub(推荐)
    # 从DockerHub下载v0.1.7版本
    # 新增配置文件,数据存放目录以及Mysql数据库配置在mm-wiki.conf配置文件中设置
    # 挂载配置文件及数据存放目录,启动端口为8080
    # docker run -d -p 8080:8081 -v /data/mm-wiki/conf/:/opt/mm-wiki/conf/ -v /data/mm-wiki/data:/data/mm-wiki/data/ --name mm-wiki eahom/mm-wiki:v0.1.7
    
    # 本地构建最新代码
    # 构建项目镜像
    # docker build -t mm-wiki-image .
    # 新增配置文件,数据存放目录以及Mysql数据库配置在mm-wiki.conf配置文件中设置
    # 挂载配置文件及数据存放目录,启动端口为8080
    # docker run -d -p 8080:8081 -v /data/mm-wiki/conf/:/opt/mm-wiki/conf/ -v /data/mm-wiki/data/:/data/mm-wiki/data/ --name mm-wiki mm-wiki-image

2.系统防火墙放开

如果是和博主一样使用的腾讯云轻量应用服务器需要在控制台放开。

CentOS系统,访问不了安装界面的话,还需要开启8090端口,开启如下:

#CentOS 6
iptables -I INPUT -p tcp --dport 8090 -j ACCEPT
service iptables save
service iptables restart

#CentOS 7
firewall-cmd --zone=public --add-port=8090/tcp --permanent
firewall-cmd --reload

3. 域名访问

  • 可用 nginx 配置反向代理
upstream frontends {
    server 127.0.0.1:8088; # MM-Wiki 监听的ip:port
}
server {
    listen      80;
    server_name wiki.intra.xxxxx.com www.wiki.intra.xxxxx.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;
        proxy_pass http://frontends;
    }
    # 静态资源交由nginx管理
    location /static {
        root        /www/mm-wiki; # MM-Wiki 的根目录
        expires     1d;
        add_header  Cache-Control public;
        access_log  off;
    }
}
  • 使用宝塔面板的伙伴。

点击左侧网站,添加站点,然后再点击添加好了的域名名称,这时候就进入了站点配置,点击反向代理,目标URL填入http://127.0.0.1:8090,再启用反向代理,然后点击SSL,申请免费的Let's Encrypt证书,并强制HTTPS。

系统预览

1.安装

2.登录

3.系统

4.空间文档

5.编辑文档

6.文档分享

至此所有教程部分到此结束,mm-wiki还有其他更多的玩法,朋友可以到我博客和我交流

博主站点

博主的个人博客地址是:https://www.hipyt.cn/

最后

安利一下,腾讯云限时秒的活动,优惠力度非常大,当前买到就是赚到了,1核2G的配置最低99元一年。

为了保证博主的写作兴趣,请大家有需要的一定要多多支持。以下连接内含(AFF)

【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元
腾讯云限时秒杀

【腾讯云】轻量应用服务器Lighthouse,上云「轻」而易举,1核1G3M低至128元/年,高带宽首选

image.png

期待下一次给大家带来更好的教程,我们下次再见。

最后修改:2021 年 08 月 10 日
如果觉得我的文章对你有用,请随意赞赏