概要
HedgeDoc というマークダウンでメモを書けるサービスが便利そうだったので自分用に立ち上げてみた。
サクッと閲覧のみで公開できるのはすごく便利そうに思える。
- フロントエンドの nginx をリバースプロキシとして使っているので、そこからプロキシされるように設定。
- サブディレクトリ /hedgedoc/ で運用。
- 外部とは SSL でやり取りさせる。
HedgeDoc 提供コンテナ群
HedgeDoc を提供するためのコンテナ群はこのようにした。
shared はフロントエンドの nginx から hedgedoc:3000 でアクセスできるようにするために接続している。
version: '3.1'
services:
database:
image: postgres:13.4-alpine
environment:
- POSTGRES_USER=hedgedoc
- POSTGRES_PASSWORD=password
- POSTGRES_DB=hedgedoc
volumes:
- ./database:/var/lib/postgresql/data
restart: always
app:
container_name: hedgedoc
image: quay.io/hedgedoc/hedgedoc:latest
environment:
- CMD_DB_URL=postgres://hedgedoc:password@database:5432/hedgedoc
- CMD_DOMAIN=www8281uo.sakura.ne.jp
- CMD_HOST=hedgedoc
- CMD_PORT=3000
- CMD_URL_PATH=hedgedoc
- CMD_URL_ADDPORT=false
- CMD_ALLOW_ANONYMOUS=false
- CMD_ALLOW_EMAIL_REGISTER=false
- CMD_PROTOCOL_USESSL=true
volumes:
- ./uploads:/hedgedoc/public/uploads
restart: always
depends_on:
- database
networks:
default:
external:
name: shared
リバースプロキシの設定
リバースプロキシにしている nginx の設定はこんな感じ。
socket.io の項目をどうしたらいいか少し難しかったけど以下の内容でうまくいくようだ。
location /hedgedoc/ {
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
#proxy_set_header X-Forwarded-Host \$host;
#proxy_set_header X-Forwarded-Server \$host;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto \$scheme;
proxy_pass http://hedgedoc:3000/;
}
location /hedgedoc/socket.io/ {
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
#proxy_set_header X-Forwarded-Host \$host;
#proxy_set_header X-Forwarded-Server \$host;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto \$scheme;
proxy_set_header Upgrade \$http_upgrade;
proxy_set_header Connection \$connection_upgrade;
proxy_pass http://hedgedoc:3000/socket.io/;
}