これは公式のインストールガイドです。Dockerが動くマシンから、最初のアカウントが作成された稼働中のKolleKインスタンスまでを案内します。全体でおよそ15分程度かかります。
リポジトリのdocker/README.mdには、運用者の視点から同じ手順が記載されており、コードと同期して保たれています。このページとそのファイルの内容が食い違う場合は、docker/README.mdを信頼してください。
docker/README.md
必要なもの:
docker compose
それ以外は必要ありません。スタックには独自のMySQLデータベースが含まれており、セッション、キャッシュ、キューはすべてデータベースに保存されるため、Redisをインストールする必要はありません。
リポジトリのルートから、Docker用の環境設定テンプレートをコピーします。
cp .env.docker.example .env
このファイルがスタック全体を制御します。次の2つの手順で編集していきます。
キーを生成し、出力された値をコピーします。
docker compose run --rm app php artisan key:generate --show
表示された値を.envのAPP_KEYとして貼り付けます。このキーは、保存されているデータを暗号化します。今設定し、後から絶対に変更しないでください。 キーを変更すると、暗号化されたすべてのフィールドとすべてのセッションが恒久的に読み取れなくなります。まだ読んでいない場合は、先に進む前にアプリケーションキーと暗号化を読んでください。
.env
APP_KEY
.env内のDB_PASSWORDとDB_ROOT_PASSWORDをプレースホルダーの値から変更し、APP_URLにユーザーがアクセスするアドレスを設定します。デフォルトはhttp://localhost:8000で、自分のマシンで最初に試す分にはこれで問題ありません。
DB_PASSWORD
DB_ROOT_PASSWORD
APP_URL
http://localhost:8000
すべてをビルドして起動します。
docker compose up -d --build
最初のビルドには数分かかります。完了すると、webコンテナが自動的にデータベースマイグレーションを適用し、インスタンスがAPP_URLで起動します。
ブラウザでそのURLを開き、登録ページからサインアップします。これにより、アカウントを作成するで説明されている通り、あなた個人のユーザーと最初のアカウントが作成されます。
::screenshot{label="インストール直後のインスタンスの登録ページ"}
サーバー全体の管理パネルを使いたい場合は、自分のユーザーにフラグを付与します。
docker compose exec app php artisan kollek:make-instance-administrator you@example.com
これによって何ができて何ができないかについては、インスタンス管理者権限を付与するを参照してください。
Composeスタックは4つのコンテナを起動します。そのうち3つは同じKolleKイメージを、CONTAINER_ROLE環境変数で選択された異なる役割で実行します。
CONTAINER_ROLE
high
default
low
4つ目のコンテナはmysqlで、MySQL 8.4を実行します。
データは、コンテナとは独立した2つの名前付きDockerボリュームに保存されます。データベース用のdb-dataと、アップロードされた写真や書類用のstorage-dataです。コンテナは自由に再ビルド・置き換えできますが、ボリュームは維持されます。
db-data
storage-data
3つのアプリケーションコンテナはすべて同じ.envを、とりわけ同じAPP_KEYを共有する必要があります。Composeファイルはすでにこれを実現するように構成されています。セットアップをカスタマイズする場合も、この構成は維持してください。
デフォルトでは、webコンテナは起動するたびにデータベースをマイグレーションするため、アップグレード時に手を加える必要がありません。手動で制御したい場合は、.envでRUN_MIGRATIONS=falseを設定し、必要なときに自分でマイグレーションを実行してください。
RUN_MIGRATIONS=false
docker compose exec app php artisan migrate --force
このページの内容