ArchlinuxにしてからノートとしてJoplinを使っていたのですが、別のマークダウンツールにしてみようかなと思い、NoteDiscoveryを見つけました。

実行方法を見てみると、Dockerで実行するということだったので、ちょうど良いと思い、Dockhandで管理してみようと思いました。

私の環境はlinuxなので、Windowsでの環境構築手順ではありません

# 前提条件

  • Dockerがインストールされていること
  • Docker Composeが使えること

この記事では、Dockhandの起動手順と、NoteDiscoveryの起動手順を紹介します。

# Dockhandとは

Dockhandは、視覚的にDockerのコンテナなどを管理できるツールです。

最近出たようで、デザインもカッコいいです。

軽量で、メモリ使用量も100MB程度と少ないため、常時起動しても負担が少ないのも魅力です。

# NoteDiscoveryとは

NoteDiscoveryは、自己ホスト型のマークダウンツールです。

こちらも最近出たようで、モダンなデザインです。

# Dockhandを起動するまで

Dockhand自体もDockerで動くので、docker-composeを書いていきます。

mkdir dockhand && cd dockhand
nano docker-compose.yml

docker-compose.ymlの中には、このコードを貼り付けます。

services:
  dockhand:
    image: fnsys/dockhand:latest
    container_name: dockhand
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - dockhand_data:/app/data

volumes:
  dockhand_data:

Ctrl + Oで保存し、Enter。そしてCtrl + Xでnanoを終了します。

では、起動してみましょう。

docker compose up -d

起動後は、http://localhost:3000 に入ります。

dockhandの中.png

起動できました。

# Dockhandの設定

管理ページに入ることができたら、Environmentsを設定します。

Containerページに入ると、真ん中にGo to Settingsというボタンがあります。

クリックすると設定に飛び、Add environmentというボタンがあるので、クリックします。

environmentの追加.png

モーダルウィンドウが出てきたら、Nameをつけて設定が良さそうならAddを押します。

Test connectionというボタンを押せば、正しくつながるかがわかります。

一般的な環境の場合はそのままの設定で良いです。

# NoteDiscoveryを起動する

DockhandはStacksの設定もできるので、NoteDiscoveryをDockhandのStacks Createをしてみます。

stack.png

Stacksページに入ると、今動いているスタックが表示されます。

上の方にCreateというボタンがあるので、クリックします。

モーダルウィンドウが出てくるので、設定していきます。

stackの作成.png

まずStack nameを決めます。

注意事項
大文字などは使えません。 これはDockerの命名規則と同じです。

次に、Compose fileの中にこのコードを貼り付けます。

version: "3.8"

services:
  notediscovery:
    image: ghcr.io/gamosoft/notediscovery:latest
    container_name: notediscovery
    ports:
      - "8000:8000"
    volumes:
      - ./data:/app/data
    restart: unless-stopped
    environment:
      - TZ=Asia/Tokyo
    healthcheck:
      test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
      interval: 60s
      timeout: 3s
      retries: 3
      start_period: 5s
データの保存場所
このdocker-compose.ymlでは、`./data:/app/data`でデータを永続化しています。 マークダウンファイルは`./data`ディレクトリに保存されるため、 コンテナを削除してもデータは残ります。

そして右下のCreate & Startを押して、起動します。

notediscoveryが起動した.png

runningとなっていれば、起動できています。

notediscoveryのlog.png

ログもしっかり見れています。

ポート8000で起動しているので、http://localhost:8000 に入ってみましょう。

notediscoveryも入れた.png

しっかりとページが表示されました。

設定から日本語にできる.png

Themeや言語は、左下の設定ボタンから設定できます。

みやすい.png

2時間ほど使って文書を書いてみたのですが、プレビュー側の文字の色分けがしっかりとしていて、書いていて楽しいです。

# セキュリティについて

この記事で紹介した設定は、ローカル環境での使用を前提としています。

外部で使いたい場合は、Tailscaleなどのvpnを使って接続することをおすすめします。

インターネットに直接公開することは、セキュリティリスクがあるため推奨しません。

個人利用であれば、ローカルホストでの運用で十分です。

# 感想

Joplinが良くないということを言いたいのではありませんが、NoteDiscoveryは書いていて楽しいです。

日本語おかしい.png

少し日本語がおかしいか?と思うところはありますが、理解できるので全く問題ありません。

Dockhandはすごく使いやすいです。

docker-compose.ymlを、そのフォルダに行かなくても編集できるのはとても便利だと感じました。

portainerなどのDocker管理ツールもありますが、Dockhandはシンプルでわかりやすいので、小規模な環境ならおすすめできます。