From 1ec6712513631552b238ff9627f38a09afba25e0 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Sat, 28 Sep 2024 15:27:59 +0100 Subject: [PATCH] Add health controller Fly.io uses '/health' to determine the application health status. --- .../controllers/health_controller.ex | 19 +++++++++++++++++++ lib/music_library_web/router.ex | 1 + 2 files changed, 20 insertions(+) create mode 100644 lib/music_library_web/controllers/health_controller.ex diff --git a/lib/music_library_web/controllers/health_controller.ex b/lib/music_library_web/controllers/health_controller.ex new file mode 100644 index 00000000..51c9fc74 --- /dev/null +++ b/lib/music_library_web/controllers/health_controller.ex @@ -0,0 +1,19 @@ +defmodule MusicLibraryWeb.HealthController do + use MusicLibraryWeb, :controller + + alias MusicLibrary.Repo + + def index(conn, _params) do + case Repo.query("SELECT 1") do + {:ok, _} -> + conn + |> put_resp_content_type("text/html") + |> send_resp(200, "App is running") + + {:error, _} -> + conn + |> put_resp_content_type("text/html") + |> send_resp(500, "App is not running") + end + end +end diff --git a/lib/music_library_web/router.ex b/lib/music_library_web/router.ex index 31363c74..df87a45e 100644 --- a/lib/music_library_web/router.ex +++ b/lib/music_library_web/router.ex @@ -17,6 +17,7 @@ defmodule MusicLibraryWeb.Router do scope "/", MusicLibraryWeb do pipe_through :browser + get "/health", HealthController, :index get "/images/:record_id", ImageController, :show live "/", RecordLive.Index, :index