-
自分の Mastodon インスタンス(マストドン・サーバー)にログインする。
-
歯車アイコンから設定を開き「開発」を選ぶ。
-
「新規アプリ」ボタンを押下し、以下の設定で QiiTime 用のアプリ登録を行います。
- アプリの名前: QiiTime
- アプリのウェブサイト: 任意(
https://github.com/Qithub-BOT/QiiTimeなど) - リダイレクト URI: 特に変更なし
- アクセス権:
write以外のチェックを外す - 「送信」ボタン押下でアプリ登録する
-
「アプリ」一覧から作成した「QiiTime」の登録を開く。
-
「アクセストークン」の欄からアクセス・トークンをコピーする。
時報アプリに必要な各種設定(アクセス・トークンなど)はコンテナ内の環境変数で制御しています。イメージのビルド時やコンテナ起動時に以下の環境変数を変更することでアプリの挙動を変えることができます。
MSTDN_ACCESSTOKEN- インスタンスで発行したアクセス・トークンです。
- デフォルトは空に設定されています。
IS_MODE_DEBUG=truefalse- デバッグ用の詳細な出力をします。
false以外に設定された場合、ログはコンテナ内の/data/log.txtに出力されます。 - デフォルトは
false。
- デバッグ用の詳細な出力をします。
MSTDN_VISIBILITY=publicunlisteddirect- トゥートの公開範囲を指定します。
- デフォルトは
direct(ダイレクト)です。
MSTDN_SCHEMA= 任意の文字列- Qiitadon 以外のインスタンスを指定する場合に
https以外のスキーマを指定します。 - デフォルトは
https。
- Qiitadon 以外のインスタンスを指定する場合に
MSTDN_HOST= 任意の文字列- Qiitadon 以外のインスタンスを指定する場合に
qiitadon.com以外のホストを指定します。 - デフォルトは
qiitadon.com。
- Qiitadon 以外のインスタンスを指定する場合に
MSTDN_TOOT_MAIN= 任意の文字列- トゥート時の本文に記載する文を指定できます。"
%%DATE_TIME%%"などの置き換え文字を含めるとテンプレートとして動作します。 - デフォルトは QiiTime の紹介文です。
- テンプレートとして使える置き換え文字一覧
- トゥート時の本文に記載する文を指定できます。"
MSTDN_TOOT_SPOILER- トゥート時の警告文として表示する文を指定できます。指定されるとトゥートの本文は「もっと見る」として隠し表示になり、逆にこの警告文が表示されるようになります。"
%%DATE_TIME%%"などの置き換え文字を含めるとテンプレートとして動作します。 - デフォルトは時報情報。
- 警告文を表示させない(本文のみを表示させたい)場合は
no_spoilerを指定します。 - テンプレートとして使える置き換え文字一覧
- トゥート時の警告文として表示する文を指定できます。指定されるとトゥートの本文は「もっと見る」として隠し表示になり、逆にこの警告文が表示されるようになります。"
アクセストークンなど、イメージ作成時に設定した環境変数を埋め込みたくない場合は、以下の Qiita 記事を参照にしてください。
コンテナ内の環境変数 MSTDN_HOST を変えることで、Qiitadon 以外のインスタンス(マストドン・サーバー)でも使えます。
$ docker run --rm -d \
-e MSTDN_SCHEMA=https \
-e MSTDN_HOST=[YOUR HOST NAME] \
-e MSTDN_ACCESSTOKEN=[YOUR HOSTs ACCESS TOKEN] \
qithubbot/qiitimeコンテナ内の環境変数 MSTDN_VISIBILITY を変えることで、デフォルトの direct(ダイレクト)以外のトゥートが指定できます。
$ docker run --rm -d \
-e MSTDN_VISIBILITY=public \
-e MSTDN_ACCESSTOKEN=[YOUR HOSTs ACCESS TOKEN] \
qithubbot/qiitimeDocker Hub にあるビルド済みのイメージを使うのではなく、ローカルで Docker イメージを作成(ビルド)して使いたい場合は、以下の方法があります。
リポジトリをクローンして作成します。
$ # QiiTime のリポジトリをクローンして、ディレクトリ移動
$ git clone https://github.com/Qithub-BOT/QiiTime.git -o QiiTime && cd $_
$ # イメージをビルドする(イメージ名:`my_qiitime`)
$ docker build -n my_qiitime . && docker image prune -f
...
$ # QiiTime をローカル・イメージで起動
$ docker run --rm -d -e MSTDN_ACCESSTOKEN='[YOUR Qiitadon ACCESS TOKEN]' my_qiitime
...
$ # コンテナの常駐確認
$ docker container ls | grep my_qiitime
...
$ # QiiTime コンテナの終了
$ docker kill my_qiitime
...
$ # 不要になったものを削除
$ docker container prune -f && docker image prune -f && docker volume prune -f
...docker-compose でローカルにイメージをビルドしたい場合、git リポジトリを docker-compose.yml に指定します。
version: "3.7"
services:
qiitime:
container_name: qiitime
build:
context: https://github.com/Qithub-BOT/QiiTime.git
image: qiitime
volumes:
- ./data/:/data/
env_file: mastodon.env
ローカルでビルドしたイメージの動作テストは、clone したディレクトリ内で行います。アクセス・トークン以外の環境変数の設定は、docker-compose.test.yml で行なっています。
$ # Clone 先に移動
$ cd /path/to/local/cloned/QiiTime
$ export MSTDN_ACCESSTOKEN=[YOUR ACCESS TOKEN] \
&& docker-compose -f docker-compose.test.yml up --build
$ # $? が 0 なら成功
$ echo $?
0同一 Docker/Docker-Compose ネットワーク内のコンテナから HTTP で http://qiitime/ にアクセスするとトゥート済みの情報を JSON 形式で取得できます。
curl http://qiitime/