Dockerでインストール

これは公式のインストールガイドです。Dockerが動くマシンから、最初のアカウントが作成された稼働中のKolleKインスタンスまでを案内します。全体でおよそ15分程度かかります。

リポジトリのdocker/README.mdには、運用者の視点から同じ手順が記載されており、コードと同期して保たれています。このページとそのファイルの内容が食い違う場合は、docker/README.mdを信頼してください。

始める前に

必要なもの:

  • Docker Engine 24以降Composeプラグイン(docker compose)が動くマシン。
  • クローンまたはダウンロードしたKolleKリポジトリ。
  • 環境ファイルに集中する10分間。重要なミスが起きるのはここです。

それ以外は必要ありません。スタックには独自のMySQLデータベースが含まれており、セッション、キャッシュ、キューはすべてデータベースに保存されるため、Redisをインストールする必要はありません。

インストール

1
環境ファイルを作成する

リポジトリのルートから、Docker用の環境設定テンプレートをコピーします。

cp .env.docker.example .env

このファイルがスタック全体を制御します。次の2つの手順で編集していきます。

2
アプリケーションキーを生成する

キーを生成し、出力された値をコピーします。

docker compose run --rm app php artisan key:generate --show

表示された値を.envAPP_KEYとして貼り付けます。このキーは、保存されているデータを暗号化します。今設定し、後から絶対に変更しないでください。 キーを変更すると、暗号化されたすべてのフィールドとすべてのセッションが恒久的に読み取れなくなります。まだ読んでいない場合は、先に進む前にアプリケーションキーと暗号化を読んでください。

3
パスワードとURLを確認する

.env内のDB_PASSWORDDB_ROOT_PASSWORDをプレースホルダーの値から変更し、APP_URLにユーザーがアクセスするアドレスを設定します。デフォルトはhttp://localhost:8000で、自分のマシンで最初に試す分にはこれで問題ありません。

4
スタックを起動する

すべてをビルドして起動します。

docker compose up -d --build

最初のビルドには数分かかります。完了すると、webコンテナが自動的にデータベースマイグレーションを適用し、インスタンスがAPP_URLで起動します。

5
最初のアカウントを作成する

ブラウザでそのURLを開き、登録ページからサインアップします。これにより、アカウントを作成するで説明されている通り、あなた個人のユーザーと最初のアカウントが作成されます。

::screenshot{label="インストール直後のインスタンスの登録ページ"}

6
自分にインスタンス管理者権限を付与する

サーバー全体の管理パネルを使いたい場合は、自分のユーザーにフラグを付与します。

docker compose exec app php artisan kollek:make-instance-administrator you@example.com

これによって何ができて何ができないかについては、インスタンス管理者権限を付与するを参照してください。

実際に動いているもの

Composeスタックは4つのコンテナを起動します。そのうち3つは同じKolleKイメージを、CONTAINER_ROLE環境変数で選択された異なる役割で実行します。

  • appは、nginxとPHPを通じてWebアプリケーションを提供します。データベースマイグレーションを実行するのはこのコンテナだけで、起動時に実行します。
  • queueは、highdefaultlowの各キューからバックグラウンドジョブ(メール送信、配信、ログ記録)を処理します。
  • schedulerは、夜間メンテナンスジョブで説明されている日次メンテナンスジョブを実行します。

4つ目のコンテナはmysqlで、MySQL 8.4を実行します。

データは、コンテナとは独立した2つの名前付きDockerボリュームに保存されます。データベース用のdb-dataと、アップロードされた写真や書類用のstorage-dataです。コンテナは自由に再ビルド・置き換えできますが、ボリュームは維持されます。

メモ

3つのアプリケーションコンテナはすべて同じ.envを、とりわけ同じAPP_KEYを共有する必要があります。Composeファイルはすでにこれを実現するように構成されています。セットアップをカスタマイズする場合も、この構成は維持してください。

マイグレーションを自分で実行したい場合

デフォルトでは、webコンテナは起動するたびにデータベースをマイグレーションするため、アップグレード時に手を加える必要がありません。手動で制御したい場合は、.envRUN_MIGRATIONS=falseを設定し、必要なときに自分でマイグレーションを実行してください。

docker compose exec app php artisan migrate --force

次に読むべきもの

KolleK のドキュメント このページを GitHub で編集
このページは役に立ちましたか?