CodiMDをDockerで作成する手順

目次

本記事の前提

以下が作成前に準備する前提条件になります。

  • docker/docker-composeが事前にインストールされていること
  • gitが利用でき、githubにアクセスできること。

なお、今回の手順はAWSのLightsail上にUbuntuを作成して検証しています。
自作LinuxやVPSサーバでも作成可能です。

CodiMDのソースを取得

CodiMDのソースはGithubからCloneしてきます。

git clone https://github.com/hackmdio/codimd.git

Docker-composeを使用して起動

docker-composeを使用してBuildします。

cd codimd/deployments
docker-compose build 

デフォルトだと画像ファイルはdocker volume上に作成されてしまうためホスト上に保存するように設定します。

version: "3"
services:
  database:
    image: postgres:11.6-alpine
    environment:
      - POSTGRES_USER=codimd
      - POSTGRES_PASSWORD=change_password
      - POSTGRES_DB=codimd
    volumes:
      - "database-data:/var/lib/postgresql/data"
    restart: always
  codimd:
    # you can use image or custom build below,
    # if you need CJK character with exported PDF files,
    # please change the image tag with `cjk` postfix version
    image: nabo.codimd.dev/hackmdio/hackmd:2.1.0
    # image: nabo.codimd.dev/hackmdio/hackmd:2.1.0-cjk
    # build:
    #   context: ..
    #   dockerfile: ./deployments/Dockerfile
    environment:
      - CMD_DB_URL=postgres://codimd:change_password@database/codimd
      - CMD_USECDN=false
    depends_on:
      - database
    ports:
      - "3000:3000"
    volumes:
    # - upload-data:/home/hackmd/app/public/uploads
    # ここを修正
      - ./uploads:/home/hackmd/app/public/uploads 
    restart: always
volumes:
  database-data: {}
  upload-data: {}

ただし作成したuploadsディレクトリの権限の変更が必要です。

chown -R 1500:1500 uploads

これで準備なのでdocker-composeで起動します。

docker-compose up -d

http://localhost:3000 にアクセスするとcodimdが起動しています。

アカウントの作成

アカウントを作成して記事を投稿できるようにします。

docker-compose exec codimd bash

cd bin
./manage_users --add sample@example.com

以下のように作成できます。

$ ./manage_users --add sample@example.com
Password for sample@example.com:********
Created user with email sample@example.com

参考

これだとパブリック公開はされていないのでリバースプロキシを使用することで外部からアクセスできます。
公開方法は以下になります。

CodiMDをNginxのリバースプロキシで公開する方法

目次
閉じる