UI ログイン
- ブラウザで
http://localhost:4173もしくはhttps://localhost:4174へアクセスします。 - 初期ユーザー
admin / adminでサインインします。 - ユーザー設定メニューからパスワードをすぐに変更します。
INIT_ADMIN=false の場合は scripts/create_admin.py などで手動作成してください。
setup & config
Git clone と .env 編集、Docker Compose の起動、初期ログイン、REST トークン取得までを手順化しています。不要な手順やヒントは含めず、実施すべき操作だけを掲載しています。
git clone https://github.com/taqq505/mmam-docker.git
cd mmam-docker
cp .env.example .env
# POSTGRES_PASSWORD, SECRET_KEY, MQTT, ポート番号などを任意値へ更新
docker compose up --build -d
# mmam / ui / db / mqtt の4サービスが起動する
docker compose ps
# STATUS 列が "Up" であることを確認
docker compose logs -f mmam
TLS 証明書が存在しない場合は scripts/entrypoint-mmam.sh が CERT_* で指定した情報を用いて自己署名証明書を生成します。
以下では .env の主要項目を説明します。値を変更した場合は再起動が必要です。
| キー | 既定値 | 内容 |
|---|---|---|
| POSTGRES_USER / PASSWORD / DB | mmam / secret / mmam | DB の認証情報です。db コンテナと API が共有します。 |
| DB_HOST / DB_PORT | db / 5432 | FastAPI から PostgreSQL へ接続するホストとポートです。 |
| SECRET_KEY | supersecret | JWT 署名キーです。login エンドポイントで発行されるトークンが利用します。 |
| INIT_ADMIN | true | 最初の起動時に admin / admin を自動作成します。 |
| DISABLE_AUTH | false | true にすると REST API の JWT 認証を無効化します。 |
| LOG_DIR / LOG_LEVEL | /log / INFO | API ログの保存先とレベルを指定します。ディレクトリが無い場合は自動生成します。 |
| キー | 既定値 | 内容 |
|---|---|---|
| HTTPS_ENABLED | true | API と UI の HTTPS を有効化します。false でも HTTP 8080/4173 は起動します。 |
| HTTP_PORT / HTTPS_PORT | 8080 / 8443 | FastAPI の待ち受けポートです。両ポートが同時に開くため、未使用のポートは OS ファイアウォールで閉塞してください。 |
| UI_HTTP_PORT / UI_HTTPS_PORT | 4173 / 4174 | Vue UI (nginx) の待ち受けポートです。 |
| CERT_FILE / KEY_FILE / CA_FILE | /certs/server.crt など | API/UI が読み込む証明書です。存在しない場合は自己署名を生成します。 |
| CERT_CN / CERT_SANS / CERT_DAYS | localhost / DNS:localhost... / 3650 | 自己署名証明書を生成するときの情報です。 |
| キー | 既定値 | 内容 |
|---|---|---|
| MQTT_ENABLED | true | Flow 更新を mmam/flows/events に publish します。 |
| MQTT_HOST / MQTT_PORT | mqtt / 1883 | API からブローカーに接続する宛先です。 |
| MQTT_WS_URL | ws://localhost:9001 | UI が WebSocket で購読する URL です。 |
| MQTT_CLIENT_ID / MQTT_WS_CLIENT_ID | mmam-api / mmam-ui | API と UI 用のクライアント ID です。 |
http://localhost:4173 もしくは https://localhost:4174 へアクセスします。admin / admin でサインインします。INIT_ADMIN=false の場合は scripts/create_admin.py などで手動作成してください。
curl -k -X POST https://localhost:8443/api/login \
-H "Content-Type: application/x-www-form-urlencoded" \
-d 'username=admin&password=admin'
{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"token_type": "bearer"
}
curl -k https://localhost:8443/api/health \
-H "Authorization: Bearer <access_token>"
`{"status":"ok"}` が返れば API への認証付きアクセスが確認済み。