Open3

ウェブサイトのスクリーンショットを生成するサービスをつくる過程

眠気眠気

指定したURLのスクリーンショットを生成する。
ブラウザでの直接ダウンロードやAPIでの指定も検討。

どこにでもあるサービスだが、学習のために作ってみる。

眠気眠気

Frontend:Next.js(ダッシュボード)
Backend:Laravel(認証、APIキー、レートリミット)
ScreenShot Server:hono(ヘッドレスブラウザ)
Storage:Cloudflare R2(生成した画像の一時的な保存先)

眠気眠気

Laravel側にはGoogleとGithub認証を用意。
ユーザー登録時にAPI用のaccessKeyを生成し、Laravelとキャプチャ用サーバー間のリクエストには別途secretKeyを設定して外部から無料乗りされないようにした。