栏目头部广告

开源文档管理系统Wizard容器化部署教程

一、Wizard介绍

Wizard是一款开源文档管理系统,目前支持三种类型的文档管理:

  • Markdown:也是Wizard最主要的文档类型,研发团队日常工作中交流所采用的最常用文档类型,在 Wizard 中,对 Editor.md 项目进行了功能扩展,增加了文档模板,Json 转表格,图片粘贴上传等功能。
  • Swagger:支持 OpenAPI 3.0 规范,集成了 Swagger 官方的编辑器,支持文档模板,全屏编辑,文档自动同步功能。
  • Table:这种文档类型是类似于 Excel 电子表格,集成了 x-spreadsheet 项目。

开源地址:

Wizard丰富的功能清单:

- Swagger,Markdown,Table 类型的文档管理
- 文档修改历史管理
- 文档修改差异对比
- 用户权限管理
- 项目分组管理
- LDAP 统一身份认证
- 文档搜索,标签搜索
- 阅读模式
- 文档评论
- 消息通知
- 文档分享
- 统计功能
- 流程图,序列图,饼图,Tex LaTex 科学公式支持
- 多主题切换

二、Wizard安装部署

部署教程参考:https://hub.docker.com/r/mylxsw/wizard

2.1 Docker安装部署教程

文章推荐:Docker安装部署教程

2.2 Docker镜像加速配置教程

文章推荐:Docker mirror speed

2.3 Wizard容器化部署

(1)创建Docker自定义网络

[root@10-27-0-224 ~]# docker network create api   # 创建自定义网络api,为了最大量的减少服务器暴露的端口
[root@10-27-0-224 ~]# docker network ls           # 查看创建的自定义网络
NETWORK ID     NAME      DRIVER    SCOPE
9142373027c9   api       bridge    local
f8cf991935c0   bridge    bridge    local
76dee6a99076   host      host      local
d1fece6c2d47   none      null      local

(2)容器部署MySQL5.7

[root@10-27-0-224 ~]# docker pull mysql:5.7
[root@10-27-0-224 ~]# docker images
REPOSITORY      TAG       IMAGE ID       CREATED             SIZE
mysql           5.7       09361feeb475   3 weeks ago         447MB

[root@10-27-0-224 ~]# docker run -d --name=starcto_mysql --net api -e MYSQL_ROOT_PASSWORD=123456  -v /data/mysqldata:/var/lib/mysql mysql:5.7   #注意:将容器数据文件映射到宿主,避免数据丢失
[root@10-27-0-224 ~]# docker inspect starcto_mysql | grep -i ipadd
            "SecondaryIPAddresses": null,
            "IPAddress": "",
                    "IPAddress": "172.18.0.2",
                    
[root@10-27-0-224 ~]# docker exec -it starcto_mysql /bin/bash                      # 进入mysql容器
root@2e370bf74847:/# mysql -uroot -p123456                                         # 连接mysql
mysql> CREATE USER 'wizard'@'%' IDENTIFIED BY 'wizardpassword';                    # 创建wizard用户
mysql> GRANT ALL PRIVILEGES ON *.* TO 'wizard'@'%' IDENTIFIED BY 'wizardpassword'; # 授权
mysql> CREATE DATABASE wizard;                                                     # 创建要用到的库

[root@10-27-0-224 ~]# ll /data/mysqldata/                                          # 查看MySQL容器宿主存储映射
total 188488
-rw-r----- 1 polkitd input       56 Jul 15 10:40 auto.cnf
-rw------- 1 polkitd input     1680 Jul 15 10:40 ca-key.pem
-rw-r--r-- 1 polkitd input     1112 Jul 15 10:40 ca.pem
-rw-r--r-- 1 polkitd input     1112 Jul 15 10:40 client-cert.pem
-rw------- 1 polkitd input     1676 Jul 15 10:40 client-key.pem
-rw-r----- 1 polkitd input      666 Jul 15 10:40 ib_buffer_pool
-rw-r----- 1 polkitd input 79691776 Jul 15 11:10 ibdata1
-rw-r----- 1 polkitd input 50331648 Jul 15 11:10 ib_logfile0
-rw-r----- 1 polkitd input 50331648 Jul 15 10:40 ib_logfile1
-rw-r----- 1 polkitd input 12582912 Jul 15 10:41 ibtmp1
drwxr-x--- 2 polkitd input     4096 Jul 15 10:40 mysql
drwxr-x--- 2 polkitd input     8192 Jul 15 10:40 performance_schema
-rw------- 1 polkitd input     1676 Jul 15 10:40 private_key.pem
-rw-r--r-- 1 polkitd input      452 Jul 15 10:40 public_key.pem
-rw-r--r-- 1 polkitd input     1112 Jul 15 10:40 server-cert.pem
-rw------- 1 polkitd input     1676 Jul 15 10:40 server-key.pem
drwxr-x--- 2 polkitd input     8192 Jul 15 10:40 sys
drwxr-x--- 2 polkitd input     4096 Jul 15 10:54 wizard

(3)使用dockerfile构建wizard镜像

[root@10-27-0-224 ~]# vim Dockerfile
FROM mylxsw/wizard:latest           # 基础镜像,如果本地没有会自动下拉

# 数据库连接配置,根据需要添加其它的Env配置,可用选项参考项目的.env.example文件
ENV DB_CONNECTION=mysql             # 数据库类型
ENV DB_HOST=172.18.0.2              # 刚才的那个mysql容器的ip地址
ENV DB_PORT=3306                    # 数据库端口
ENV DB_DATABASE=wizard              # (2)中所创建的库
ENV DB_USERNAME=wizard              # mysql账户
ENV DB_PASSWORD=wizardpassword      # 密码是(2)中MySQL容器设置的
ENV APP_NAME="UShare"               # 应用名称
ENV APP_ENV=production              # 环境,正式请使用 production
#ENV APP_KEY=base64:pWMnse89AD/SRB042cMGR894FCACcdekgeq91deDQEC091=

# 邮件服务器配置
ENV MAIL_DRIVER=smtp
ENV MAIL_HOST=
ENV MAIL_PORT=
ENV MAIL_USERNAME=
ENV MAIL_PASSWORD=
ENV MAIL_ENCRYPTION=
ENV MAIL_FROM_NAME=

# 表格文档配置
ENV WIZARD_SPREEDSHEET_MAX_ROWS=1000
ENV WIZARD_SPREEDSHEET_MAX_COLS=26

# 用户帐号是否需要邮件激活
ENV WIZARD_NEED_ACTIVATE=false   # 这个false代表不用邮箱激活,true要用邮箱激活,如果要用邮箱激活的话,还得配置相应的邮箱服务

# 加密密钥
#ENV WIZARD_JWT_SECRET=QMCEeWEARHJKPR457fqgASGRHAhr573fh452gd

# 访问地址,只有正确配置后,导出的 markdown 文档图片才能正常展示
ENV APP_URL=http://localhost:80

# 文件上传存储目录
VOLUME /webroot/storage/app/public
RUN php artisan config:cache

[root@10-27-0-224 ~]# docker build -t my-wizard .   # 利用dockerfile构建镜像

[root@10-27-0-224 ~]# docker images                 # 查看当前拥有的镜像列表
REPOSITORY      TAG       IMAGE ID       CREATED        SIZE
my-wizard       latest    980218e856ed   10 hours ago   852MB
mysql           5.7       09361feeb475   3 weeks ago    447MB
mylxsw/wizard   latest    dd2d280377a7   5 months ago   852MB

# 对数据库进行初始化
[root@10-27-0-224 ~]# docker run -it --rm --name my-wizard --net api  my-wizard php artisan migrate:install
[root@10-27-0-224 ~]# docker run -it --rm --name my-wizard  --net api my-wizard php artisan migrate
**************************************
*     Application In Production!     *
**************************************

 Do you really wish to run this command? (yes/no) [no]:
 > yes

(4)创建Wizard容器

[root@10-27-0-224 ~]# docker run -d  --name my-wizard --net api  --mount source=my-wizard,target=/webroot/storage/app/public -p 80:80 my-wizard

[root@10-27-0-224 ~]# docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS          PORTS                 NAMES
a9ce2e0dbae1   my-wizard   "docker-php-entrypoi…"   17 minutes ago   Up 17 minutes   0.0.0.0:80->80/tcp    my-wizard
d03c5984b47a   mysql:5.7   "docker-entrypoint.s…"   29 minutes ago   Up 29 minutes   3306/tcp, 33060/tcp   starcto_mysql

[root@10-27-0-224 ~]# docker volume inspect my-wizard        # 查看wizard存储卷                      
[
    {
        "CreatedAt": "2021-07-15T10:54:24-05:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/my-wizard/_data",
        "Name": "my-wizard",
        "Options": null,
        "Scope": "local"
    }
]

三、WEB页面配置

3.1 首次登录页面

国产开源文档管理系统之Wizard(图1)

3.2 首次注册账号

国产开源文档管理系统之Wizard(图2)

国产开源文档管理系统之Wizard(图3)

【注】部署完成后直接通过WEB访问,第一个注册的账号就是管理员用户。

3.3 页面管理功能

国产开源文档管理系统之Wizard(图4)

四、其他配置

4.1 配置上传附件的大小

[root@10-27-0-224 ~]# docker exec -it my-wizard bash  # 进入容器
root@a9ce2e0dbae1:/webroot# which php
/usr/local/bin/php
root@a9ce2e0dbae1:/webroot# php --ini                 # 查看php的ini文件位置
Configuration File (php.ini) Path: /usr/local/etc/php
Loaded Configuration File:         (none)
Scan for additional .ini files in: /usr/local/etc/php/conf.d
Additional .ini files parsed:      /usr/local/etc/php/conf.d/date_timezone.ini,
/usr/local/etc/php/conf.d/docker-php-ext-exif.ini,
/usr/local/etc/php/conf.d/docker-php-ext-gd.ini,
/usr/local/etc/php/conf.d/docker-php-ext-ldap.ini,
/usr/local/etc/php/conf.d/docker-php-ext-pcntl.ini,
/usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini,
/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini,
/usr/local/etc/php/conf.d/docker-php-ext-zip.ini,
/usr/local/etc/php/conf.d/memory-limit.ini,           # 内存限制
/usr/local/etc/php/conf.d/upload-limit.ini            # 控制上传

root@a9ce2e0dbae1:/webroot# cat /usr/local/etc/php/conf.d/upload-limit.ini  
upload_max_filesize = 100M                            # 这里面的100代表着,上传附件的限制是100M,当然可以根据需要自己调整
post_max_size = 0                                     # 0代表着不限制,如果不为零,一定要比上面的数大

作者:UStarGao
链接:https://www.starcto.com/open-sourcing/186.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处

UCloud云平台推荐


UCloud新用户专属注册连接

UCloud CDN超值特惠专场

UCloud全球云主机(UHost/VPS)大促页面

UCloud快杰云主机大促页面

文章页广告

随便看看

栏目底部广告
`