使用 Growi 进行设计书的管理

首先

个人开发的设计书,原本是用Google表格来管理的,但是后来了解到了一个名为Growi的开源Wiki系统,既然有机会的话,为了享受其中乐趣(同时体验新系统),我决定开始使用Growi来管理设计书。

Growi是一种类似于Qiita的平台,可以使用Markdown进行记录,并具有以下特点:
– 快速搜索:使用了ElasticSearch,搜索非常迅速。
– 文件差异管理:可以管理文件的差异。
– 可以记录UML:通过与plantuml的集成,可以在设计文档中编写UML代码。

请先试用一下,因为它非常容易安装。

接下来,我将介绍安装、安装后的设置以及简单设计文档的创建步骤。

※ 本帖是基于Mac OS的前提条件。
我正在使用macOS Catalina 10.15.3进行操作。

前提条件 tí

使用docker-compose来准备Growi的环境。
由于docker-compose包含在Docker for Mac中,
如果尚未安装Docker for Mac,请先安装Docker for Mac。
※ 参考信息(安装Docker for Mac)

1. 下载Growi

(1) 移动到任意工作目录
请准备一个任意的工作目录,并移动到该目录下。
(2) 执行Git命令
在工作目录中执行以下命令。

$ git clone https://github.com/weseek/growi-docker-compose.git growi

(3) 移动到 growi
在上述操作中,将会创建一个 growi 文件夹,然后进行移动。

$ cd growi

2. 更改设置

即使在前一步骤「#1. Growi的下载」的状态下,执行”docker-compose up -d”命令也可以开始使用Growi,但是在本文中我们需要做一些修改,包括修改docker-compose.yml文件。

2-1. 修改docker-compose.yml文件。

打开docker-compose.yml文件,将以下[修改后]的内容写入并保存。

请用中文进行本地化的改写,仅需提供一种选项:
[修正前]

version: '3'

services:
  app:
    build:
      context: .
      dockerfile: ./Dockerfile
    ports:
      - 127.0.0.1:3000:3000    # localhost only by default
    links:
      - mongo:mongo
      - elasticsearch:elasticsearch
    depends_on:
      - mongo
      - elasticsearch
    environment:
      - MONGO_URI=mongodb://mongo:27017/growi
      - ELASTICSEARCH_URI=http://elasticsearch:9200/growi
      - PASSWORD_SEED=changeme
      # - FILE_UPLOAD=mongodb   # activate this line if you use MongoDB GridFS rather than AWS
      # - FILE_UPLOAD=local     # activate this line if you use local storage of server rather than AWS
      # - MATHJAX=1             # activate this line if you want to use MathJax
      # - PLANTUML_URI=http://  # activate this line and specify if you use your own PlantUML server rather than public plantuml.com
      # - HACKMD_URI=http://    # activate this line and specify HackMD server URI which can be accessed from GROWI client browsers
      # - HACKMD_URI_FOR_SERVER=http://hackmd:3000  # activate this line and specify HackMD server URI which can be accessed from this server container
      # - FORCE_WIKI_MODE='public'    # activate this line to force wiki public mode
      # - FORCE_WIKI_MODE='private'   # activate this line to force wiki private mode

    command: "dockerize
              -wait tcp://mongo:27017
              -wait tcp://elasticsearch:9200
              -timeout 60s
              npm run server:prod"
    restart: unless-stopped
    volumes:
      - growi_data:/data

  mongo:
    image: mongo:3.6
    restart: unless-stopped
    volumes:
      - mongo_configdb:/data/configdb
      - mongo_db:/data/db

  elasticsearch:
    build:
      context: ./elasticsearch
      dockerfile: ./Dockerfile
    environment:
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"  # increase amount if you have enough memory
    ulimits:
      memlock:
        soft: -1
        hard: -1
    restart: unless-stopped
    volumes:
      - es_data:/usr/share/elasticsearch/data
      - ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml

volumes:
  growi_data:
  mongo_configdb:
  mongo_db:
  es_data:

[修改后]

version: '3'

services:
  app:
    build:
      context: .
      dockerfile: ./Dockerfile
    ports:
      - 127.0.0.1:3000:3000    # localhost only by default
    links:
      - mongo:mongo
      - elasticsearch:elasticsearch
    depends_on:
      - mongo
      - elasticsearch
    environment:
      - MONGO_URI=mongodb://mongo:27017/growi
      - ELASTICSEARCH_URI=http://elasticsearch:9200/growi
      - PASSWORD_SEED=changeme
      # - FILE_UPLOAD=mongodb   # activate this line if you use MongoDB GridFS rather than AWS
      - FILE_UPLOAD=local     # activate this line if you use local storage of server rather than AWS
      - MATHJAX=1             # activate this line if you want to use MathJax
      - PLANTUML_URI=http://localhost:8080/  # activate this line and specify if you use your own PlantUML server rather than public plantuml.com
      # - HACKMD_URI=http://    # activate this line and specify HackMD server URI which can be accessed from GROWI client browsers
      # - HACKMD_URI_FOR_SERVER=http://hackmd:3000  # activate this line and specify HackMD server URI which can be accessed from this server container
      # - FORCE_WIKI_MODE='public'    # activate this line to force wiki public mode
      # - FORCE_WIKI_MODE='private'   # activate this line to force wiki private mode

    command: "dockerize
              -wait tcp://mongo:27017
              -wait tcp://elasticsearch:9200
              -timeout 60s
              npm run server:prod"
    restart: unless-stopped
    volumes:
      - growi_data:/data

  mongo:
    image: mongo:3.6
    restart: unless-stopped
    volumes:
      - mongo_configdb:/data/configdb
      - mongo_db:/data/db

  elasticsearch:
    build:
      context: ./elasticsearch
      dockerfile: ./Dockerfile
    environment:
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"  # increase amount if you have enough memory
    ulimits:
      memlock:
        soft: -1
        hard: -1
    restart: unless-stopped
    volumes:
      - es_data:/usr/share/elasticsearch/data
      - ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml

  plantumlserver:
    image: plantuml/plantuml-server:jetty
    restart: unless-stopped
    ports:
      - "8080:8080"

volumes:
  growi_data:
    driver_opts:
      type: none
      device: $PWD/data/growi_data
      o: bind
  mongo_configdb:
    driver_opts:
      type: none
      device: $PWD/data/mongo_configdb
      o: bind
  mongo_db:
    driver_opts:
      type: none
      device: $PWD/data/mongo_db
      o: bind
  es_data:
    driver_opts:
      type: none
      device: $PWD/data/es_data
      o: bind

修正的说明如下:
① 更改文件上传的目标位置
因为”- FILE_UPLOAD=local”已经被注释掉了,所以取消注释。
文件上传的目标位置将为本地(Docker主机的卷内)。
② 启用MATHJAX
因为”- MATHJAX=1″已经被注释掉了,所以取消注释。
③ 启用plantuml
因为”- PLANTUML_URI=http://”已经被注释掉了,所以取消注释,并将PLANTUML_URI设置为http://localhost:8080/。
另外,添加plantumlserver的配置。
④ 更改卷的设置
将growi_data、mongo_configdb、mongo_db、es_data挂载到Docker主机的卷内。

2-2.创建装载点

为指定的volumes中的growi_data、mongo_configdb、mongo_db和es_data创建相应的目录。

$ mkdir data
$ cd data
$ mkdir growi_data mongo_configdb mongo_db es_data

这里的文件结构

$ tree .
.
├── Dockerfile
├── LICENSE
├── README.md
├── data
│   ├── es_data
│   ├── growi_data
│   ├── mongo_configdb
│   └── mongo_db
├── docker-compose.dev.yml
├── docker-compose.yml
├── elasticsearch
│   ├── Dockerfile
│   └── config
│       ├── elasticsearch.yml
│       └── log4j2.properties
├── examples
│   ├── backup-mongodb-data
│   │   ├── README.md
│   │   ├── crontab
│   │   │   └── root
│   │   └── docker-compose.override.yml
│   ├── https-portal
│   │   ├── README.md
│   │   └── docker-compose.override.yml
│   ├── integrate-with-hackmd
│   │   ├── README.md
│   │   └── docker-compose.override.yml
│   └── multi-app
│       ├── README.md
│       └── docker-compose.yml
└── hackmd
    ├── Dockerfile
    ├── apply-growi-agent.sh
    └── config.json

3. 制作Growi。

3-1. 执行docker-compose up -d

执行以下命令。

$ docker-compose up -d

3-2. Docker的检查

(1) 检查Docker进程

$ docker ps -a
CONTAINER ID        IMAGE                            COMMAND                  CREATED              STATUS              PORTS                      NAMES
09ee25e4b028        growi_app                        "/sbin/tini -e 143 -…"   About a minute ago   Up 15 seconds       127.0.0.1:3000->3000/tcp   growi_app_1
157ddbc96f45        growi_elasticsearch              "/usr/local/bin/dock…"   About a minute ago   Up About a minute   9200/tcp, 9300/tcp         growi_elasticsearch_1
a7676ac10a7d        plantuml/plantuml-server:jetty   "/docker-entrypoint.…"   About a minute ago   Up About a minute   0.0.0.0:8080->8080/tcp     growi_plantumlserver_1
646fb8f4ffe0        mongo:3.6                        "docker-entrypoint.s…"   About a minute ago   Up About a minute   27017/tcp                  growi_mongo_1

(2) 检查 Docker 镜像

$ docker images
REPOSITORY                                      TAG                 IMAGE ID            CREATED             SIZE
growi_app                                       latest              ee8c446d8db9        5 minutes ago       264MB
growi_elasticsearch                             latest              e45b339dbf2a        7 minutes ago       860MB
plantuml/plantuml-server                        jetty               4fba4aa0dc27        9 hours ago         404MB
mongo                                           3.6                 c95b2c69031b        2 days ago          439MB
weseek/growi                                    3                   a9079d4edf10        2 weeks ago         255MB
docker.elastic.co/elasticsearch/elasticsearch   6.6.1               c6ffcb0ee97e        14 months ago       842MB

(3) 确认Docker卷

$ docker volume ls
DRIVER              VOLUME NAME
local               growi_es_data
local               growi_growi_data
local               growi_mongo_configdb
local               growi_mongo_db

3-3. 验证操作

FireShot Capture 015 - セットアップ - GROWI - localhost.png
FireShot Capture 017 - App settings - GROWI - localhost.png
FireShot Capture 020 - App settings - GROWI - localhost.png

这是到达 Growi 环境搭建的步骤。接下来,我们将创建设计文档。

4. 编写设计书

FireShot Capture 017 - App settings - GROWI - localhost2.png
FireShot Capture 026 - App settings - GROWI - localhost.png
FireShot Capture 027 - _user_ryota_test_2020_05_03_firstpage - GROWI - localhost.png
FireShot Capture 028 - _user_ryota_test_2020_05_03_firstpage - GROWI - localhost.png

以上是以上的意思。

由于篇幅限制,我们没有介绍Elasticsearch的搜索功能,但是它还有很多其他丰富的功能,建议您多多尝试。

参考资料(Docker for Mac的安装)

下载Docker for Mac时,需要登录Docker官方网站。
请创建用于登录Docker官方网站的用户。

1. Mac 上的 Docker

我們首先要安裝Docker for Mac。
Docker Compose已經包含在Docker for Mac中。

1-1. 下载

我将从以下网站下载:
https://docs.docker.com/docker-for-mac/install/

FireShot Capture 192 - Install Docker Desktop on _ - https___docs.docker.com_docker-for-mac_install_.png
FireShot Capture 193 - Docker Hub - https___hub.docker.com__overlay=onboarding.png

1-2. 安装

请执行下载的 Docker.dmg 文件。

スクリーンショット 2020-02-09 18.57.37.png

请从应用程序中运行Docker。

1-3. 确认

打开终端,运行”docker –version”命令。
确认安装的Docker版本。

$ docker --version
Docker version 19.03.5, build 633a0ea

接下来,执行命令 “docker-compose –version” 来确认 Docker Compose 的版本。

$ docker-compose --version
docker-compose version 1.25.4, build 8d51620a

参考来源

使用docker-compose来运行基于Markdown语法的Wiki平台Growi
使用Docker设置Growi
Growi:用户指南

广告
将在 10 秒后关闭
bannerAds