前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简单6步,手把手搭建MinDoc文档库

简单6步,手把手搭建MinDoc文档库

作者头像
后台技术汇
发布2022-05-28 11:28:12
1.8K0
发布2022-05-28 11:28:12
举报
文章被收录于专栏:后台技术汇

程序员的知识库

目前市面提供了林林总总的知识记录工具,作为程序员,下面的软件我们肯定都不陌生了:

1、语雀:阿里开源的云端知识库,貌似只有电脑端支持使用;

2、有道笔记:网易提供的商业笔记软件,支持移动端与电脑端;

3、印象笔记:歪果仁提供的一款笔记系统,同样支持移动端与电脑端;

但是,你使用了第三方的软件,就等于暴露了自己的个人资料与信息给外界,安全与否全看商家的道德素养与市场制度制约了。

开源文件库项目:mindoc

我们先瞅一眼mindoc的官方文档介绍:

MinDoc 是一款针对IT团队开发的简单好用的文档管理系统,前身是 SmartWiki 文档系统。

SmartWiki 是基于 PHP 框架 laravel 开发的一款文档管理系统。因 PHP 的部署对普通用户来说太复杂,所以改用 Golang 开发。

MinDoc可以方便用户部署和实用。开发缘起是公司IT部门需要一款简单实用的项目接口文档管理和分享的系统。其功能和界面源于 kancloud 。

功能可以用来储存日常接口文档,数据库字典,手册说明等文档。内置项目管理,用户管理,权限管理等功能,能够满足大部分中小团队的文档管理需求。

综上所述,MinDoc 是一款基于Golang语言开发的文档管理和存储的开源应用软件,功能能满足开发者对文档管理的基础需求。

简约的文档目录列表

文档章节树形结构

6个步骤,在Windows搭建自己的文档库

步骤1:安装部署go环境

1)go下载地址:

https://studygolang.com/dl

2)解压:

步骤2:设置go的环境变量

1)设置go的安装目录路径:GOROOT=I:\go\

2)设置go的启动路径:PATH=I:\go\bin

3)设置ZONEINFO的存放路径:

ZONEINFO=I:\go\bin\time\zoneInfo.zip

步骤3:下载安装mindoc

1) 下载可执行文件:

从 https://github.com/lifei6671/mindoc/releases 下载最新版的可执行文件,一般文件名为 mindoc_windows_amd.zip

2) 解压压缩包:

请将刚才下载的文件解压,推荐使用好压解压到任意目录。建议不用用中文目录名称。

步骤4:初始化mindoc数据库

1) 修改 I:\mindoc_windows_amd64\conf\app.conf

2) 根据数据库信息修改配置文件app.conf

代码语言:javascript
复制
####################MySQL 数据库配置###########################
#支持MySQL和sqlite3两种数据库
#数据库配置
db_adapter=mysql
#mysql数据库的IP(如果希望别人也能访问,可以设置为你的本地ip)
db_host=localhost
#mysql数据库的端口号一般为3306
db_port=3306
#刚才创建的数据库的名称
db_database=mindoc_db
#访问数据库的账号和密码(这里是你本地mysql安装好并设置的密码)
db_username=root
db_password=qweasd!@#zxc123

3) 进入mindoc根目录,打开cmd,执行下方指令进行数据库初始化(需要根据你的安装路径进行修改)

代码语言:javascript
复制
I:\mindoc_windows_amd64\mindoc_windows_amd64.exe installI:\mindoc_windows_amd64\mindoc_windows_amd64.exe install

控制台输出(完成数据库表结构的创建与数据初始化):

代码语言:javascript
复制
PS I:\mindoc_windows_amd64> I:\mindoc_windows_amd64\mindoc_windows_amd64.exe install
Initializing...
create table `md_members`
    -- --------------------------------------------------
    --  Table Structure for `github.com/lifei6671/mindoc/models.Member`
    -- --------------------------------------------------
    CREATE TABLE IF NOT EXISTS `md_members` (
        `member_id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
        `account` varchar(100) NOT NULL DEFAULT ''  UNIQUE,
        `password` varchar(1000) NOT NULL DEFAULT '' ,
        `auth_method` varchar(50) NOT NULL DEFAULT 'local' ,
        `description` varchar(2000) NOT NULL DEFAULT '' ,
        `email` varchar(100) NOT NULL DEFAULT ''  UNIQUE,
        `phone` varchar(255) DEFAULT 'null' ,
        `avatar` varchar(1000) NOT NULL DEFAULT '' ,
        `role` integer NOT NULL DEFAULT 1 ,
        `status` integer NOT NULL DEFAULT 0 ,
        `create_time` datetime NOT NULL,
        `create_at` integer NOT NULL DEFAULT 0 ,
        `last_login_time` datetime
    ) ENGINE=INNODB;
    CREATE INDEX `md_members_role` ON `md_members` (`role`);

create table `md_books`
    -- --------------------------------------------------
    --  Table Structure for `github.com/lifei6671/mindoc/models.Book`
    -- --------------------------------------------------
    CREATE TABLE IF NOT EXISTS `md_books` (
        `book_id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
        `book_name` varchar(500) NOT NULL DEFAULT '' ,
        `identify` varchar(100) NOT NULL DEFAULT ''  UNIQUE,
        `order_index` integer NOT NULL DEFAULT 0 ,
        `description` varchar(2000) NOT NULL DEFAULT '' ,
        `label` varchar(500) NOT NULL DEFAULT '' ,
        `privately_owned` integer NOT NULL DEFAULT 0 ,
        `private_token` varchar(500),
        `status` integer NOT NULL DEFAULT 0 ,
        `editor` varchar(50) NOT NULL DEFAULT '' ,
        `doc_count` integer NOT NULL DEFAULT 0 ,
        `comment_status` varchar(20) NOT NULL DEFAULT 'open' ,
        `comment_count` integer NOT NULL DEFAULT 0 ,
        `cover` varchar(1000) NOT NULL DEFAULT '' ,
        `theme` varchar(255) NOT NULL DEFAULT 'default' ,
        `create_time` datetime NOT NULL,
        `member_id` integer NOT NULL DEFAULT 0 ,
        `modify_time` datetime,
        `version` bigint NOT NULL DEFAULT 0
    ) ENGINE=INNODB;

create table `md_relationship`
    -- --------------------------------------------------
    --  Table Structure for `github.com/lifei6671/mindoc/models.Relationship`
    -- --------------------------------------------------
    CREATE TABLE IF NOT EXISTS `md_relationship` (
        `relationship_id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
        `member_id` integer NOT NULL DEFAULT 0 ,
        `book_id` integer NOT NULL DEFAULT 0 ,
        `role_id` integer NOT NULL DEFAULT 0 ,
        UNIQUE (`member_id`, `book_id`)
    ) ENGINE=INNODB;

create table `md_options`
    -- --------------------------------------------------
    --  Table Structure for `github.com/lifei6671/mindoc/models.Option`
    -- --------------------------------------------------
    CREATE TABLE IF NOT EXISTS `md_options` (
        `option_id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
        `option_title` varchar(500) NOT NULL DEFAULT '' ,
        `option_name` varchar(80) NOT NULL DEFAULT ''  UNIQUE,
        `option_value` longtext,
        `remark` longtext
    ) ENGINE=INNODB;

create table `md_documents`
    -- --------------------------------------------------
    --  Table Structure for `github.com/lifei6671/mindoc/models.Document`
    -- --------------------------------------------------
    CREATE TABLE IF NOT EXISTS `md_documents` (
        `document_id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
        `document_name` varchar(500) NOT NULL DEFAULT '' ,
        `identify` varchar(100) DEFAULT 'null' ,
        `book_id` integer NOT NULL DEFAULT 0 ,
        `parent_id` integer NOT NULL DEFAULT 0 ,
        `order_sort` integer NOT NULL DEFAULT 0 ,
        `markdown` longtext,
        `release` longtext,
        `content` longtext,
        `create_time` datetime NOT NULL,
        `member_id` integer NOT NULL DEFAULT 0 ,
        `modify_time` datetime NOT NULL,
        `modify_at` integer NOT NULL DEFAULT 0 ,
        `version` bigint NOT NULL DEFAULT 0
    ) ENGINE=INNODB;
    CREATE INDEX `md_documents_identify` ON `md_documents` (`identify`);
    CREATE INDEX `md_documents_book_id` ON `md_documents` (`book_id`);
    CREATE INDEX `md_documents_parent_id` ON `md_documents` (`parent_id`);
    CREATE INDEX `md_documents_order_sort` ON `md_documents` (`order_sort`);

create table `md_attachment`
    -- --------------------------------------------------
    --  Table Structure for `github.com/lifei6671/mindoc/models.Attachment`
    -- --------------------------------------------------
    CREATE TABLE IF NOT EXISTS `md_attachment` (
        `attachment_id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
        `book_id` integer NOT NULL DEFAULT 0 ,
        `document_id` integer,
        `file_name` varchar(255) NOT NULL DEFAULT '' ,
        `file_path` varchar(2000) NOT NULL DEFAULT '' ,
        `file_size` double precision NOT NULL DEFAULT 0 ,
        `http_path` varchar(2000) NOT NULL DEFAULT '' ,
        `file_ext` varchar(50) NOT NULL DEFAULT '' ,
        `create_time` datetime NOT NULL,
        `create_at` integer NOT NULL DEFAULT 0
    ) ENGINE=INNODB;

create table `md_logs`
    -- --------------------------------------------------
    --  Table Structure for `github.com/lifei6671/mindoc/models.Logger`
    -- --------------------------------------------------
    CREATE TABLE IF NOT EXISTS `md_logs` (
        `log_id` bigint AUTO_INCREMENT NOT NULL PRIMARY KEY,
        `member_id` integer NOT NULL DEFAULT 0 ,
        `category` varchar(255) NOT NULL DEFAULT 'operate' ,
        `content` longtext NOT NULL,
        `original_data` longtext NOT NULL,
        `present_data` longtext NOT NULL,
        `create_time` datetime NOT NULL,
        `user_agent` varchar(500) NOT NULL DEFAULT '' ,
        `ip_address` varchar(255) NOT NULL DEFAULT ''
    ) ENGINE=INNODB;

create table `md_member_token`
    -- --------------------------------------------------
    --  Table Structure for `github.com/lifei6671/mindoc/models.MemberToken`
    -- --------------------------------------------------
    CREATE TABLE IF NOT EXISTS `md_member_token` (
        `token_id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
        `member_id` integer NOT NULL DEFAULT 0 ,
        `token` varchar(150) NOT NULL DEFAULT '' ,
        `email` varchar(255) NOT NULL DEFAULT '' ,
        `is_valid` bool NOT NULL DEFAULT FALSE ,
        `valid_time` datetime,
        `send_time` datetime NOT NULL
    ) ENGINE=INNODB;
    CREATE INDEX `md_member_token_token` ON `md_member_token` (`token`);

create table `md_document_history`
    -- --------------------------------------------------
    --  Table Structure for `github.com/lifei6671/mindoc/models.DocumentHistory`
    -- --------------------------------------------------
    CREATE TABLE IF NOT EXISTS `md_document_history` (
        `history_id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
        `action` varchar(255) NOT NULL DEFAULT '' ,
        `action_name` varchar(255) NOT NULL DEFAULT '' ,
        `document_id` integer NOT NULL DEFAULT 0 ,
        `document_name` varchar(500) NOT NULL DEFAULT '' ,
        `parent_id` integer NOT NULL DEFAULT 0 ,
        `markdown` longtext,
        `content` longtext,
        `member_id` integer NOT NULL DEFAULT 0 ,
        `modify_time` datetime NOT NULL,
        `modify_at` integer NOT NULL DEFAULT 0 ,
        `version` bigint NOT NULL DEFAULT 0
    ) ENGINE=INNODB;
    CREATE INDEX `md_document_history_document_id` ON `md_document_history` (`document_id`);
    CREATE INDEX `md_document_history_parent_id` ON `md_document_history` (`parent_id`);

create table `md_migrations`
    -- --------------------------------------------------
    --  Table Structure for `github.com/lifei6671/mindoc/models.Migration`
    -- --------------------------------------------------
    CREATE TABLE IF NOT EXISTS `md_migrations` (
        `migration_id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
        `name` varchar(500) NOT NULL DEFAULT '' ,
        `statements` longtext,
        `status` varchar(255) NOT NULL DEFAULT 'update' ,
        `create_time` datetime NOT NULL,
        `version` bigint NOT NULL DEFAULT 0  UNIQUE
    ) ENGINE=INNODB;

create table `md_label`
    -- --------------------------------------------------
    --  Table Structure for `github.com/lifei6671/mindoc/models.Label`
    -- --------------------------------------------------
    CREATE TABLE IF NOT EXISTS `md_label` (
        `label_id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
        `label_name` varchar(50) NOT NULL DEFAULT ''  UNIQUE,
        `book_number` integer NOT NULL DEFAULT 0
    ) ENGINE=INNODB;

Install Successfully!

步骤5:启动MinDoc本地服务

1) 双击 mindoc_windows_amd64.exe 启动服务

2) 打开浏览器,通过 http://localhost:8181/login 登录

初始化账号:admin/123456

步骤6:登录后可以查看文档

登陆进入文档管理后台后,可以看到意见初始化好的默认文档,然后可以开启你的文档编辑生涯了~~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 后台技术汇 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档