diff --git a/app.py b/app.py
index 6226c9a63e13f805c7c7a6850d3189751691f24e..1f907e8395afd592ad66345fef0345856ef21a86 100644
--- a/app.py
+++ b/app.py
@@ -1,18 +1,17 @@
 """Anonymous push notification service for Nextcloud."""
 # pylint: disable=import-error
 
+import json
 import os
 import docker
 from flask import Flask, request
-from ruamel.yaml import YAML
 
 
 app = Flask(__name__)
 client = docker.from_env()
-yaml = YAML(typ="safe")
 
 
-USERNAME = os.getenv("NC_USERNAME", "nimrod")
+NAME = os.getenv("NC_NAME", "Nimrod Adar")
 CONTAINER_NAME = os.getenv("NC_CONTAINER", "nextcloud_nextcloud_1")
 
 
@@ -35,7 +34,32 @@ def send_message():
             message = data
     else:
         message = request.args["message"]
-    return message
 
-    # result = container.exec_run(
-    #    f"""./occ notification:generate -- {user_id} "{message}"""")
+    for c in client.containers.list():  # pylint: disable=invalid-name
+        if c.name == CONTAINER_NAME:
+            container = c
+            break
+    else:
+        raise RuntimeError(f"Failed to find container {CONTAINER_NAME}.")
+
+    users = json.loads(
+        container.exec_run(
+            "./occ user:list --output json --info", user="www-data"
+        ).output
+    )
+    for (k, v) in users.items():  # pylint: disable=invalid-name
+        if v["display_name"] == NAME:
+            uid = k
+            break
+    else:
+        raise RuntimeError(f"Failed to find user {NAME}.")
+
+    result = container.exec_run(
+        f"""./occ notification:generate -- {uid} '{message}'""",
+        user="www-data",
+    )
+
+    if result.exit_code != 0:
+        raise RuntimeError(result.output.decode())
+
+    return message
diff --git a/requirements.txt b/requirements.txt
index 3107c49b69203d7d1a4e26911e02f899a52fae56..e540f6706133a16f6743213c580a93225f50b370 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,3 @@
 docker
 flask
 gunicorn
-ruamel.yaml