diff --git a/lib/livebook_web/live/home_live.ex b/lib/livebook_web/live/home_live.ex
index df129074e..232a7d4b6 100644
--- a/lib/livebook_web/live/home_live.ex
+++ b/lib/livebook_web/live/home_live.ex
@@ -25,7 +25,9 @@ defmodule LivebookWeb.HomeLive do
file_info: %{exists: true, access: :read_write},
sessions: sessions,
notebook_infos: notebook_infos,
- page_title: "Livebook"
+ page_title: "Livebook",
+ app_service_url: Livebook.Config.app_service_url(),
+ memory: Livebook.SystemResources.memory()
)}
end
@@ -39,6 +41,7 @@ defmodule LivebookWeb.HomeLive do
+ <.memory_notification memory={@memory} app_service_url={@app_service_url} />
@@ -104,7 +107,7 @@ defmodule LivebookWeb.HomeLive do
<% end %>
-
+
<.live_component module={LivebookWeb.HomeLive.SessionListComponent}
id="session-list"
sessions={@sessions}/>
@@ -154,6 +157,23 @@ defmodule LivebookWeb.HomeLive do
end
end
+ defp memory_notification(assigns) do
+ ~H"""
+ <%= if @app_service_url && @memory.free < 30_000_000 do %>
+
+
+ <.remix_icon icon="alarm-warning-line" class="text-xl mr-2" />
+
+ Less than 30 MB of memory left, consider adding more resources to
+ the instance
+ or closing running sessions.
+
+
+
+ <% end %>
+ """
+ end
+
@impl true
def handle_params(%{"session_id" => session_id}, _url, socket) do
session = Enum.find(socket.assigns.sessions, &(&1.id == session_id))