おうちにCodiMD(HackMD)をたてて危ないメモ書きをする

今となっては適当に怪文書を置くところを探すのに苦労して、自分専用+αぐらいならいっそおうち鯖でよくない?みたいな感じで立てて遊んでます。

Docker Deployment – HackMD

11系のPostgresと合わせてどうぞ

めんどかったのでOfficialのdocker-compose.ymlとかDockerfileを眺めつつもcomposeだけちょっと書き換えて

version: "3"
services:
  database:
    image: postgres:11-bullseye
    environment:
      - POSTGRES_USER=codimd
      - POSTGRES_PASSWORD=change_password
      - POSTGRES_DB=codimd
    volumes:
      - "database-data:/var/lib/postgresql/data"
    restart: always
  codimd:
    image: hackmdio/hackmd:2.4.2-cjk
    environment:
      - CMD_DB_URL=postgres://codimd:change_password@database/codimd
      - CMD_USECDN=false
      - CMD_DOMAIN=[ここにドメイン名を入力]
      - CMD_PROTOCOL_USESSL=true
      - CMD_AUTO_VERSION_CHECK=false
      - CMD_DEFAULT_PERMISSION=limited
      - CMD_IMAGE_UPLOAD_TYPE=filesystem
      #- CMD_EMAIL=false
      - CMD_ALLOW_EMAIL_REGISTER=false
      - CMD_OAUTH2_CLIENT_ID=[謎の文字列]
      - CMD_OAUTH2_CLIENT_SECRET=[謎の文字列2]
      - CMD_OAUTH2_AUTHORIZATION_URL=https://[今回はNextcloudのドメイン]/apps/oauth2/authorize
      - CMD_OAUTH2_TOKEN_URL=https://[今回はNextcloudのドメイン]/apps/oauth2/api/v1/token
      - CMD_OAUTH2_USER_PROFILE_URL=https://[今回はNextcloudのドメイン]/ocs/v2.php/cloud/user?format=json
      - CMD_OAUTH2_USER_PROFILE_USERNAME_ATTR=ocs.data.id
      - CMD_OAUTH2_USER_PROFILE_DISPLAY_NAME_ATTR=ocs.data.display-name
      - CMD_OAUTH2_USER_PROFILE_EMAIL_ATTR=ocs.data.email
    depends_on:
      - database
    ports:
      - "127.0.0.23:3000:3000"
    volumes:
      - upload-data:/home/hackmd/app/public/uploads
    restart: always
volumes:
  database-data: {}
  upload-data: {}

あ、dbのPasswordは適当に変えてくださいね?

Postgresはとりあえずdebian系にしてますが、このぐらいだったら別にAlpineでもよかったよーな気がします(正直どっちでもいい)

Config周りはSSL有効環境(これ入れないとSSL混在のやつになる)+画像うpはローカル(Filesystem)+メアド登録無効+Nextcloud(OAuth2関係)を適当に

oauthをNextcloudに依存しているのは怖いのでなんかよしなにしたい気がしなくもないですが、それいうと他にそういう類の物が動いてない現状では従来通りログインするのがマシなのかなぁとか思ってしまった。これ以上増やすなら話変わってくるともいますが。

後はいい感じにフロントのnginxにリバプロ書けばいいです。127.0.0.23とか雑に切ってるのは適当に干渉したらいやだなーみたいな適当なやつです。深い意味は無いです。

Using nginx – HackMD

(こっちは本当にほぼ一緒+今までのSSL周りを流用してるので省略)

今のところいい感じです。

オチとしては、ちらほらこーいう物を家で転がすようになってるので録画機のDockerにやらせずに独立したマシンでやらせたい物ですが都合が良いマシンって安価に転がっているわけではないので難しいですね。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください