KolleK内部には、自動バックアップの仕組みはありません。データを守るのは運用者の仕事であり、このページがその手順です。また今のところ、これは「すべてをエクスポートするにはどうすればよいか」という問いへの、コレクションデータをバックアップするがコレクター側の視点で説明している内容とはまた別の、実質的な答えでもあります。
3つの要素があり、そのすべてが重要です。
db-data
storage-data
.env
APP_KEY
APP_PREVIOUS_KEYS
対応するアプリケーションキーのないバックアップは、バックアップとは言えません。暗号化されたフィールドは、書き込んだときのキーがなければ、読み取れない暗号文として復元されます。バックアップを取るたびに、そのキーも一緒に、あるいはそばに保管してください。アプリケーションキーと暗号化を参照してください。
データベースをダンプします。
docker compose exec mysql mysqldump -u root -p"$DB_ROOT_PASSWORD" "$DB_DATABASE" > kollek-backup.sql
ストレージボリュームをアーカイブします。
docker run --rm -v kollek_storage-data:/data -v "$PWD":/backup alpine tar czf /backup/kollek-storage.tar.gz -C /data .
両方のファイルと、.envのコピーを、サーバーの外のどこかにコピーしてください。夜間のcronジョブで自動化し、複数世代を保持しましょう。一度も復元したことのないバックアップは、希望的観測であって計画とは言えません。
新しいマシンでは、次の順序で復元します。
docker compose exec -T mysql mysql -u root -p"$DB_ROOT_PASSWORD" "$DB_DATABASE" < kollek-backup.sql
docker run --rm -v kollek_storage-data:/data -v "$PWD":/backup alpine tar xzf /backup/kollek-storage.tar.gz -C /data
docker compose up -d
docker compose down -vは、名前付きボリュームを削除します。つまりデータベースとアップロードされたすべてのファイルが消えます。本番のインスタンスでは-vフラグを絶対に使わないでください。単にdocker compose downとするだけであれば安全で、ボリュームはそのまま残ります。
docker compose down -v
-v
docker compose down
このページの内容