複数人での編集に向いているシンプルなメモ「Docmost」

メモ探しは沼になりますね。MemosSimplenoteを試していますが、もう少しだけ高機能なものを探してみたところ、Docmostの名前が出てきたので入れてみました。

ステップ1: ディレクトリを作成してdocker-compose.ymlをダウンロード

以下のコマンドでDocmost用ディレクトリを作成し、Docker Composeファイルをダウンロードします。

mkdir docmost
cd docmost
curl -O https://raw.githubusercontent.com/docmost/docmost/main/docker-compose.yml

ステップ2: 環境変数を設定

ダウンロードした docker-compose.yml を開いて以下を設定するのですが、設定内でセキュアキーを登録する必要があるので、先にセキュアキーを生成してコピーしておきます。

openssl rand -hex 32

続いて、編集します。

nano docker-compose.yml

主要な設定項目:

  • APP_URL : ドメインまたはローカルIPとポート(例:http://localhost:3000
  • APP_SECRET : openssl rand -hex 32 で生成するセキュアキー(空のままだと起動失敗)
  • DATABASE_URL : PostgreSQL接続文字列
  • REDIS_URL : Redis接続文字列

ステップ3: コンテナを起動

コンテナを起動します。

docker compose up -d

起動すると docmostdb(PostgreSQL)、redis の3つのコンテナが立ち上がります。

ステップ4: ブラウザでアクセス

http://localhost:3000 にアクセスすると、ワークスペースのセットアップ画面が表示されます。

ワークスペース名は後から変更出来ないのでよく考えて。

動作は軽快ですね。シンプルな見た目も好みです。複数人での編集に向いていますね。ただ、検索が弱いですね。

アップデート方法

以下のコマンドで最新版に更新できます:

docker pull docmost/docmost:latest
docker compose up --force-recreate --build docmost -d

おまけ 1クリックで実行

mkdir -p docmost && cd docmost && \
APP_SECRET=$(openssl rand -hex 32) && \
DB_PASSWORD=$(openssl rand -hex 16) && \
cat > docker-compose.yml << EOF
services:
  docmost:
    image: docmost/docmost:latest
    depends_on:
      - db
      - redis
    environment:
      APP_URL: "http://localhost:3000"
      APP_SECRET: "${APP_SECRET}"
      DATABASE_URL: "postgresql://docmost:${DB_PASSWORD}@db:5432/docmost?schema=public"
      REDIS_URL: "redis://redis:6379"
    ports:
      - "3000:3000"
    restart: unless-stopped
    volumes:
      - ./docmost:/app/data/storage

  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: docmost
      POSTGRES_USER: docmost
      POSTGRES_PASSWORD: "${DB_PASSWORD}"
    restart: unless-stopped
    volumes:
      - ./db_data:/var/lib/postgresql/data

  redis:
    image: redis:7.2-alpine
    restart: unless-stopped
    volumes:
      - ./redis_data:/data
EOF
docker compose up -d