开源文档管理系统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 首次登录页面
3.2 首次注册账号
【注】部署完成后直接通过WEB访问,第一个注册的账号就是管理员用户。
3.3 页面管理功能
四、其他配置
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云平台推荐
随便看看
- 2021-01-23Linux账户/用户的基本概念
- 2021-02-11Linux 安装Python2与Python3
- 2022-03-22Redis数据备份与恢复以及迁移解决方案
- 2021-02-12MySQL主从同步异常1864
- 2021-01-28Docker安装部署教程