目次
本記事の前提
以下が作成前に準備する前提条件になります。
- 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
参考
これだとパブリック公開はされていないのでリバースプロキシを使用することで外部からアクセスできます。
公開方法は以下になります。