diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index df22d29a8..640c34aec 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -637,6 +637,22 @@ def get_or_fetch_by_ap_id(ap_id) do
     end
   end
 
+  def get_or_create_instance_user do
+    if user = get_by_ap_id(Pleroma.Web.Endpoint.url()) do
+      user
+    else
+      changes =
+        %User{}
+        |> cast(%{}, [:ap_id, :nickname, :local])
+        |> put_change(:ap_id, Pleroma.Web.Endpoint.url())
+        |> put_change(:nickname, nil)
+        |> put_change(:local, true)
+
+      {:ok, user} = Repo.insert(changes)
+      user
+    end
+  end
+
   # AP style
   def public_key_from_info(%{
         "source_data" => %{"publicKey" => %{"publicKeyPem" => public_key_pem}}