diff --git a/CHECKS b/CHECKS new file mode 100644 index 00000000..3fa14dfb --- /dev/null +++ b/CHECKS @@ -0,0 +1,5 @@ +WAIT=5 +TIMEOUT=60 +ATTEMPTS=3 + +/health ok diff --git a/lib/microwaveprop_web/controllers/health_controller.ex b/lib/microwaveprop_web/controllers/health_controller.ex new file mode 100644 index 00000000..f247b033 --- /dev/null +++ b/lib/microwaveprop_web/controllers/health_controller.ex @@ -0,0 +1,12 @@ +defmodule MicrowavepropWeb.HealthController do + use MicrowavepropWeb, :controller + + def check(conn, _params) do + # Verify DB is reachable + Ecto.Adapters.SQL.query!(Microwaveprop.Repo, "SELECT 1") + + conn + |> put_resp_content_type("text/plain") + |> send_resp(200, "ok") + end +end diff --git a/lib/microwaveprop_web/router.ex b/lib/microwaveprop_web/router.ex index ec7d30fe..6bd76b4a 100644 --- a/lib/microwaveprop_web/router.ex +++ b/lib/microwaveprop_web/router.ex @@ -14,6 +14,9 @@ defmodule MicrowavepropWeb.Router do plug :accepts, ["json"] end + # Health check — no pipeline, minimal overhead + get "/health", MicrowavepropWeb.HealthController, :check + scope "/", MicrowavepropWeb do pipe_through :browser