多少の組み立ては必要。でも、ほんの少しだけ。

自分だけのコレクションアプリを、自分のやり方で。

KolleK は、選んだインフラで動かせる本格的なコレクションアプリです。Docker Compose から始め、各パーツを理解できる状態に保ち、アップグレードとバックアップの道筋を明確にしておけます。

bash — kollek@server: ~/kollek

ステップ 1 · クローン

$ git clone https://github.com/djaiss/kollek.git kollek

Cloning into 'kollek'... done.

ステップ 2 · 設定

$ cd kollek && cp .env.docker.example .env

Set APP_KEY, DB_PASSWORD in .env

ステップ 3 · アプリキーを設定

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

Application key set.

ステップ 4 · 起動

$ docker compose up -d

Started app, queue, scheduler, mysql · migrations ran on boot

4 containers healthy · app on http://localhost:8000

空のディレクトリから稼働中のインスタンスまで、コマンドは 4 つ。最後は「docker compose up」で、賭けではありません。

ゼロから稼働までの短い道のり

サポートされている道筋は Docker です。

Web アプリ、キューワーカー、スケジューラー、データベース、ストレージを、文書化された手順で立ち上げます。フォーラムの投稿と楽観で継ぎ接ぎするのではなく。

1

リポジトリをクローン

git clone …/kollek

ソースコードと同梱の Compose スタックを取得します。

2

.env を設定

cp .env.docker.example .env

サンプルの env をコピーし、アプリキーとデータベースのパスワードを設定します。

3

Compose を起動

docker compose up -d

4 つのコンテナが一緒に起動します。app、queue、scheduler、MySQL。

4

起動完了

http://localhost:8000

マイグレーションは起動時に実行されます。ブラウザでアプリを開きましょう。

理解できる小ささ

5 つのパーツ。登場人物はそれで全部です。

KolleK は、Web ロール、キューロール、スケジューラーロール、MySQL、永続ストレージを使います。各パーツには役割があり、どれもドキュメントで説明されています。

Compose スタック docker-compose.yml · 4 サービス

アプリケーション

Web app

nginx と PHP-FPM でアプリを配信し、起動時にデータベースのマイグレーションを実行します。

キューワーカー queue

high・default・low の各キューでバックグラウンドジョブを処理します。

スケジューラー scheduler

artisan スケジュールを実行します。定期的なクリーンアップやメンテナンス処理。

読み書き

状態 & ストレージ

MySQL 永続ボリューム

コレクション・アイテム・コピー・履歴を保持します。信頼できる唯一の情報源です。

db-data → /var/lib/mysql

永続ストレージ 永続ボリューム

アップロードした写真・文書・生成ファイル。ローカルディスク、または任意の S3 互換バケット。

storage-data → /var/www/html/storage

息を止めずにアップグレード

データボリュームは入れ替えを生き延びます。

アップデートは、データベースとアップロードファイルを保持するデータボリュームを維持します。文書化されたアップグレード手順に従い、マイグレーションを実行して、そのまま進みましょう。

コンテナは置き換えられます。名前付きボリュームはそのままなので、入れ替わるのはコードであって、あなたのコレクションではありません。
アップグレード実行 v3.2 → v3.3
1

新しいイメージを取得

docker compose pull

コード
2

まずバックアップ

docker compose exec mysql mysqldump kollek > db.sql

安全策
3

コンテナを再作成

docker compose up -d

ボリューム保持
4

起動時にマイグレーション

php artisan migrate --force

自動

バックアップも約束のうち

3 つをまとめてバックアップ。

信頼できるバックアップには、データベース、アップロードファイル、アプリケーションキーが含まれます。地味ですが、やる価値は絶大です。

バックアップのチェックリスト 3 件中 3 件をカバー
データベース db-data

すべてのアイテム・コレクション・評価額・履歴。mysqldump でもボリュームのスナップショットでも構いません。

必須
アップロードしたファイル storage-data

写真・文書・添付ファイル。これらなしでデータベースを復元すると、参照が壊れたまま残ります。

必須
アプリケーションキー .env → APP_KEY

KolleK はデータを保存時に暗号化するため、このキーがないと暗号化された値を読み戻せません。忘れやすく、失うと厄介です。

省略厳禁

自動バックアップコマンドはまだ同梱されていません。2 つの名前付きボリュームをスナップショットし、APP_KEY を安全な場所に保管すれば、あとは標準の Docker ツールで対応できます。

自分で動かす準備はできましたか?

1 つの文書化された道筋で、インストール・アップグレード・バックアップをカバーします。Docker Compose から始めて、動く部分をすべて見える場所に置いておきましょう。

インストールガイドを読む

次の場合、KolleK はまだあなた向きではないかもしれません…

メンテ不要のホスティングサービスがほしく、Docker には一切触れたくない場合。

運用上のあらゆる判断を代わりに下してくれるデプロイ基盤が必要な場合。

KolleK を選ぶのはこんなとき…

選んだインフラで完全なアプリを動かすための、文書化されサポートされた道筋がほしい場合。

小さなサーバー、Docker Compose、明快な運用モデルが朗報に聞こえる場合。

製品が変わったら、このページを更新します。 機能ステータスのページに、地味だけれど大事な詳細があります。