589 文字
3 分
Cloudflare TunnelでMatrixサーバーを建てる
1行でわかる
docker composeでポンで建った!
本文
matrixというオープンな分散型リアルタイム通信プロトコルがある。
雑にいえばFediverse版discordとかSlack、Teamsのようなものである。
日本語でのナレッジが少ないように感じるので備忘録がてら書く。
導入環境
- UbuntuServer 24.04 LTS(Budgie desktop導入済み)
- バックエンド: Conduwuit
- フロント: Element
事前に導入を済ませておくやつ
- Docker
- Docker compose
- cloudflared
やり方
0. Docker composeを導入する
Docker公式サイトの手順に従うか、CasaOSを導入すれば勝手にComposeまで入ってくれる。
1. イメージをプルする
公式サイトにある一覧の好きなところからイメージをプルする。こだわりがなければ、Docker HubかGHCRでいいような気がする。
以下にはコピペ用にDocker Hubからプルするコマンドを載せておく。
docker image pull docker.io/girlbossceo/conduwuit:main
2. docker-compose.ymlを編集する
イメージをプルしたら適当なところにディレクトリを作成し、その中にdocker-compose.ymlを作成する。
今回はcomposeでCloudflare Tunnelも動かすので次のように作成する。
Cloudflare Tunnelのトークンはあらかじめ取得しているものとする。
# conduwuit
version: '2.4' # uses '2.4' for cpuset
services:
homeserver:
image: girlbossceo/conduwuit:latest
restart: unless-stopped
ports:
- 6167:6167 # 好きなポート番号
volumes:
- db:/var/lib/conduwuit
#- ./conduwuit.toml:/etc/conduwuit.toml
environment:
CONDUWUIT_SERVER_NAME: your.server.name # EDIT THIS
CONDUWUIT_DATABASE_PATH: /var/lib/conduwuit
CONDUWUIT_DATABASE_BACKEND: rocksdb
CONDUWUIT_PORT: 6167
CONDUWUIT_MAX_REQUEST_SIZE: 20_000_000 # in bytes, ~20 MB
CONDUWUIT_ALLOW_REGISTRATION: 'true'
CONDUWUIT_ALLOW_FEDERATION: 'true'
CONDUWUIT_ALLOW_CHECK_FOR_UPDATES: 'true'
CONDUWUIT_TRUSTED_SERVERS: '["matrix.org"]'
#CONDUWUIT_LOG: warn,state_res=warn
CONDUWUIT_ADDRESS: 0.0.0.0
#CONDUWUIT_CONFIG: './conduwuit.toml' # Uncomment if you mapped config toml above
#cpuset: "0-4" # Uncomment to limit to specific CPU cores
#
### Uncomment if you want to use your own Element-Web App.
### Note: You need to provide a config.json for Element and you also need a second
### Domain or Subdomain for the communication between Element and conduwuit
### Config-Docs: https://github.com/vector-im/element-web/blob/develop/docs/config.md
# element-web:
# image: vectorim/element-web:latest
# restart: unless-stopped
# ports:
# - 8009:80
# volumes:
# - ./element_config.json:/app/config.json
# depends_on:
# - homeserver
tunnel:
container_name: tunnel
image: cloudflare/cloudflared:latest
command:
- tunnel
- --no-autoupdate
- run
environment:
- TUNNEL_TOKEN=YOUR_TOKEN_HERE
volumes:
db:
終わったら一旦保存する。
3. Cloudflareの設定を変更する
ダッシュボードを開き、Zero Trust > Networks > Tunnels > あなたが事前に作成したトンネルを開いて、Public Hostnameを次のように編集する。
| Type: HTTP | URL: homeserver: 6167
4. これで最低限が動く
あとは下のコマンドを叩けば動く。
docker compose up -d
建てた感想
systemdで構築してればそんなに時間かからずに済んだんだけどな…
Cloudflare TunnelでMatrixサーバーを建てる
https://blog.esurio1673.net/posts/20240619/