はじめる

Antimatterを自分のサーバーで動かす

ファイルひとつ、コマンド3つ、所要時間は約10分。Dockerが動くLinuxサーバーなら、どこでもAntimatterをデータベース、ファイルストレージ、GIFサービスと一緒に立ち上げられます。

10分で使い始める

必要なのは、DockerとそのComposeプラグインをインストールしたLinuxサーバーです。CPUは2コア以上、メモリは4 GB以上を用意してください。

1. composeファイルをダウンロードする

$ mkdir antimatter && cd antimatter
$ curl -fsSLO https://antimatter.chat/compose.yaml

2. ランダムなパスワードで設定ファイルを作成する

$ cat > .env <<EOF
SITE_URL=http://localhost:8065
POSTGRES_PASSWORD=$(openssl rand -hex 24)
S3_SECRET_KEY=$(openssl rand -hex 24)
GIFS_API_KEY=$(openssl rand -hex 24)
EOF

SITE_URLには、利用者がアクセスするアドレスを設定します。ローカルネットワークなら、たとえばhttp://192.168.1.20:8065のようになります。

3. 起動する

$ docker compose up -d

初回はデータベースの作成のため、起動に1〜2分かかります。その後、ブラウザーでSITE_URLを開いてアカウントを作成してください。最初のアカウントがシステム管理者になり、セットアップ画面の案内に沿って最初のコミュニティを作成できます。

独自ドメインとHTTPSで運用する

ドメインのDNSレコードをサーバーに向け、ポート80と443を開放してから、ドメインを.envに追加します。

$ cat >> .env <<EOF
DOMAIN=chat.example.com
EOF
$ sed -i 's|^SITE_URL=.*|SITE_URL=https://chat.example.com|' .env
$ docker compose --profile https up -d

CaddyがLet's Encryptから証明書を取得し、自動で更新します。

起動するサービス

  • antimatter:アプリ(メモ、ホワイトボード、音声チャンネル、通話、投票など)を含むサーバー本体。ディスクには何も保存せず、設定はデータベースに、ファイルはストレージサービスに置くため、コンテナはいつでも入れ替えられます。
  • postgres:データベース。
  • files:RustFS。アップロードされたファイル用のS3互換ストレージです。
  • gifs:AntimatterのGIF・スタンプサービス。スターター用のスタンプパックが付属します。
  • https:Caddy。httpsプロファイルを指定したときのみ起動します。

データベース、ストレージ、GIFサービスは、Antimatterからしかアクセスできないプライベートネットワーク上に置かれます。

GIFピッカーに何も表示されない場合は、システムコンソール › プラグイン › GIFを開き、サービスURLにhttp://gifs:8080/v2を、APIキーに.envのGIFS_API_KEYの値を設定してください。

アップグレードとバックアップ

# 最新のイメージにアップグレード
$ docker compose pull && docker compose up -d
# データベースをバックアップ
$ docker compose exec postgres pg_dump -U antimatter antimatter > antimatter.sql

filesボリュームもバックアップするか、S3対応のツールでストレージを複製してください。nginxと独自の証明書を使う構成については、antimatter-dockerの本番環境用ファイルをご覧ください。

リリースアーカイブを使う

  1. PostgreSQLのデータベースとユーザーを用意します。
  2. アーカイブ(antimatter-<os>-<arch>.tar.gz)を/opt/antimatterなどに展開し、config/config.jsonのSqlSettings.DataSource(または環境変数AM_SQLSETTINGS_DATASOURCE)にデータベースを指定します。
  3. 特権を持たないユーザーでbin/antimatterを実行してサーバーを起動し、http://localhost:8065を開きます。最初に作成したアカウントがシステム管理者になります。

稼働中のサーバーは、bin/amctlでコマンドラインから管理できます(サーバー上で直接操作する場合は、ServiceSettings.EnableLocalModeを有効にしてbin/amctl --localを使います)。

次のステップ

  • 通話:音声とビデオがサーバーに届くよう、通話用のポート(デフォルトはUDPとTCPの8443)を開放します。
  • メール:招待や通知のためにSMTPを設定します。
  • AI:Agentsの設定でモデルを追加します。自前で運用するサーバーも含め、OpenAI互換のAPIであれば利用できます。
  • 音声と翻訳:通話の文字起こし、読み上げ、自動翻訳に、自前で運用する音声認識(音声からテキスト)・音声合成(テキストから音声)・翻訳モデルを指定します。