基盤ソフトウェア「FIWARE (ファイウェア)」を用いて、地域の協調的幸福度を可視化するプラットフォーム
docker compose
で提供しておりますdocker compose 2.21.0
,docker 24.0.7
をインストール済みのUbuntu 22.04.3
上で動作確認しております- またインストールの中で
curl
を使用しております - 対応ブラウザ
- Chrome
- Safari
-
git clone
git clone [email protected]:c-3lab/oasismap.git
-
作業ディレクトリに移動
cd oasismap
-
MongoDBとPostgreSQLのユーザー、パスワードおよび地図の初期パラメータ値(緯度、経度、ズーム値)、KeyCloakの設定を.envに設定
~/oasismap$ cp _env .env ~/oasismap$ vi .env
※以下の環境変数は後ほど設定
KC_HOSTNAME_URL
KC_HOSTNAME_ADMIN_URL
KEYCLOAK_CLIENT_ISSUER
GENERAL_USER_KEYCLOAK_CLIENT_SECRET
ADMIN_KEYCLOAK_CLIENT_SECRET
-
ngrokのアカウントを登録する
https://ngrok.com/ -
手順に従いngrokをインストールする
https://ngrok.com/docs/getting-started/ -
ngrok起動
~/oasismap$ ngrok http 8080
Try the new Traffic Inspector dev preview: https://ngrok.com/r/ti Session Status online Account アカウント名 (Plan: Free) Version 3.6.0 Region Japan (jp) Latency 5ms Web Interface http://127.0.0.1:4040 Forwarding https://xxxx-xxx-xxx-x-xx.ngrok-free.app -> http://localhost:8080 Connections ttl opn rt1 rt5 p50 p90 1224 0 0.00 0.01 0.06 6.29 HTTP Requests
-
Forwarding
から https:// で始まるURLを取得する -
環境変数
KC_HOSTNAME_URL
KC_HOSTNAME_ADMIN_URL
KEYCLOAK_CLIENT_ISSUER
に上記のURLを設定するKC_HOSTNAME_URL=https://xxxx-xxx-xxx-x-xx.ngrok-free.app KC_HOSTNAME_ADMIN_URL=https://xxxx-xxx-xxx-x-xx.ngrok-free.app KEYCLOAK_CLIENT_ISSUER=https://xxxx-xxx-xxx-x-xx.ngrok-free.app/realms/oasismap
-
Dockerコンテナを展開
~/oasismap$ docker compose up -d
OASIS Mapでは現在の位置情報を利用します。
但し http
で動作させた場合は実際の位置情報ではなく、仮の位置情報が使われます。
実際の位置情報を利用する場合は、Keycloakの他にOASIS Map本体も https
で動作させる必要があります。
手順は 現在位置情報を利用した動作確認手順 を確認してください。
仮の位置情報で問題ない場合は本手順はスキップしてください。
- Google Cloudに接続
プロジェクトを選択
から新しいプロジェクトを作成認証情報を作成
を選択してOAuth クライアント ID
を作成- アプリケーションの種類に
ウェブアプリケーション
を選択して作成 - クライアントID、シークレットを
keycloak/variables.json
のGoogleClientID
GoogleClientSecret
に転記
-
keycloakディレクトリに移動
cd keycloak
-
formatting-variables.sh
を実行して都道府県名/市区町村名の情報をvariables.json
に設定~/keycloak$ bash formatting-variables.sh cities.json
-
自動設定スクリプトで利用する環境変数を設定
~/keycloak$ export KEYCLOAK_ADMIN={.envで指定した管理者ユーザー名} ~/keycloak$ export KEYCLOAK_ADMIN_PASSWORD={.envで指定した管理者ユーザーのパスワード}
-
keycloakディレクトリのパスを取得
~/keycloak$ pwd
-
以下のコマンドを実行
※ 4で取得したkeycloakディレクトリのパスに書き換えて実行すること~/keycloak$ docker run --network oasismap_backend-network --volume {keycloakディレクトリのパス}:/etc/newman/keycloak \ postman/newman:latest run --bail --environment /etc/newman/keycloak/variables.json \ --env-var "KeycloakAdminUser=$KEYCLOAK_ADMIN" \ --env-var "KeycloakAdminPassword=$KEYCLOAK_ADMIN_PASSWORD" \ /etc/newman/keycloak/postman-collection.json
- ブラウザから
http://Dockerホスト名:8080
でアクセスします。 - 「Administration Console」をクリック
- 環境変数
KEYCLOAK_ADMIN
KEYCLOAK_ADMIN_PASSWORD
に指定した認証情報でログイン
realm
からoasismap
を選択- 左のメニューバーから
Identity providers
を選択 google
をクリックRedirect URI
の値をコピーして控えておく- Google Cloudに接続
- 事前準備にて作成した認証情報を選択
承認済みのリダイレクトURI
に控えておいたRedirect URI
を転記して保存
realm
からoasismap
を選択- 左のメニューバーから
client
をクリック general-user-client
をクリックCredentials
をクリックClient Secret
の値を環境変数GENERAL_USER_KEYCLOAK_CLIENT_SECRET
に転記
realm
にoasismap
を選択- 左のメニューバーから
client
をクリック admin-client
をクリックCredentials
をクリックClient Secret
の値を環境変数ADMIN_KEYCLOAK_CLIENT_SECRET
に転記
~/oasismap$ docker compose up -d frontend
-
バックエンドのコンテナにはいる
docker compose -f docker-compose-dev.yml exec backend bash
-
以下コマンドを実行してorionにサブスクリプションの設定を行う
root@backend:/app/backend$ curl -iX POST \ --url 'http://orion:1026/v2/subscriptions' \ --header 'content-type: application/json' \ --header 'Fiware-Service: Government' \ --header 'Fiware-ServicePath: /Happiness' \ --data '{ "description": "Notice of entities change", "subject": { "entities": [ { "idPattern": ".*", "type": "happiness" } ], "condition": { "attrs": [] } }, "notification": { "http": { "url": "http://cygnus:5055/notify" } } }'
- ブラウザから
http://Dockerホスト名:8080
でアクセスします - 「Administration Console」をクリック
- 環境変数
KEYCLOAK_ADMIN
KEYCLOAK_ADMIN_PASSWORD
に指定した認証情報でログイン realm
からoasismap
を選択- 左のメニューバーから
Users
を選択 Add User
を選択Username
,profile.attribute.nickname
を入力してCreate
を選択
※Username
とprofile.attribute.nickname
は同じ値を入れてくださいCredentials
を選択してSet password
からパスワードを入力してください- パスワード入力後,
Temporary
のチェックを外してSave
Save password
から保存
-
コンテナを停止
~/oasismap$ docker compose down