1import * as Fly from "@/Fly";
2import * as Effect from "effect/Effect";
3import * as HttpServerResponse from "effect/http/HttpServerResponse";
4
5export const Site = Fly.App("Site");
6
7export default class MountedBlueGreen extends Fly.Service<MountedBlueGreen>()(
8 "Mounted",
9 {
10 app: Site,
11 main: import.meta.url,
12 services: [],
13 checks: { ready: { type: "http", port: 3000, path: "/" } },
14 deploy: { strategy: "bluegreen" },
15 },
16 Effect.gen(function* () {
17 yield* Fly.MountVolume({ path: "/data", sizeGb: 1 });
18 return { fetch: Effect.succeed(HttpServerResponse.text("ready")) };
19 }).pipe(Effect.provide(Fly.MountVolumeLive)),
20) {}