LoginSignup
6
3

More than 1 year has passed since last update.

共同編集WikiであるHedgeDocの最新版をdocker-composeでサクっと立ち上げる

Last updated at Posted at 2022-09-30

HedgeDoc?

HackMDのオープンソース版という位置付けのプロジェクトのようです。
元々はCodiMDと呼ばれるプロジェクトでしたが、名前が変わったようです

このHedgeDocですが現在2.x系の開発が活発に進んでいます。

が、まだリリースはされておらず、利用方法のドキュメントなどは1.x系のものが充実しています。

新しいもの好きの自分は、ちょっと最新版のHedgeDocも試してみたいということで、簡単に試す方法を調べてみました

安定版を使いたい

HedgeDocの安定版であるv1.9.4を同じようにdocker-composeで試す方法は公式ドキュメントによくまとまっています

docker-composeを使ったデプロイ

最新版である2.x系も安定版と同じようにdocker-composeで動かせると楽なのに・・ということでその方法を調べました。
HedgeDocの2.x系はフロントエンドとバックエンドが分離されており、それぞれを連携させて動作させる必要があります。

こういう時に便利なのがdocker-composeです。

ということでdocker-compose.ymlを用意します

docker-compose.yml
services:
  proxy:
    image: caddy
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
    ports:
      - "8080:8080"
    links:
      - frontend
      - backend
  frontend:
    image: ghcr.io/hedgedoc/react-client:main
    environment:
      - HD_EDITOR_BASE_URL=http://localhost:8080/
  backend:
    image: ghcr.io/hedgedoc/hedgedoc:develop
    environment:
      - HD_AUTH_LOCAL_ENABLE_LOGIN=true
      - HD_AUTH_LOCAL_ENABLE_REGISTER=true
      - HD_DOMAIN=http://localhost:8080
      - HD_MEDIA_BACKEND=filesystem
      - HD_MEDIA_BACKEND_FILESYSTEM_UPLOAD_PATH=uploads/
      - HD_DATABASE_TYPE=sqlite
      - HD_DATABASE_NAME=./hedgedoc.sqlite
      - HD_SESSION_SECRET=hogehoge

フロントエンドとバックエンドはURLのパスによって呼び分ける必要があります。

ここでCaddyというリバースプロキシを使ってこれを実現しています。

Caddyの設定ファイルは以下です。

:8080

log {
	output stdout
}

reverse_proxy /realtime http://backend:3000
reverse_proxy /api/* http://backend:3000
reverse_proxy /public/* http://backend:3000
reverse_proxy /* http://frontend:3001

これら2つのファイルを用意してdocker-compose upを実行すると  http://localhost:8080/でHedgeDocの最新版を試すことができます。

image.png

まとめ

リアルタイム共同編集でMarkDownを扱うことができるWebアプリケーションとしてHackMDや、そのオープンソース版であるHedgeDocは非常に良いものです。

docker-composeで簡単に試せるので気になる方は是非動かしてみてください。

参考

https://github.com/hedgedoc/react-client/tree/main/dev-reverse-proxy にDockerを使わずローカル環境でHedgeDocの最新版を動かす方法が書かれていたので、この記事ではこれをdocker-composeを使う方法に変換しただけです。

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3