diff --git a/docs/docs/installation/6-arduino.md b/docs/docs/installation/6-arduino.md
deleted file mode 100644
index b9d60f3d..00000000
--- a/docs/docs/installation/6-arduino.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# Installing on Arduino
-
-The Arduino platform is significantly different from the other platforms listed, and as a result, it cannot use the Groundlight SDK directly since it doesn't support standard Python. However, you can still use Groundlight's services with Arduino devices by following an alternative approach.
-
-We have created a dedicated example repository that demonstrates how to use Groundlight with an ESP32-CAM module, which is compatible with Arduino IDE. The repository contains a complete end-to-end example, including integration with the Groundlight services. This example is written in C code and directly calls the Groundlight API by making HTTPS requests.
-
-To get started, please visit the [GitHub repository](https://github.com/groundlight/esp32cam) and follow the instructions provided in the README file. This example will guide you through setting up your Arduino-compatible device to work with Groundlight's services, even though the standard SDK isn't directly applicable to the Arduino platform.
-
-Keep in mind that this example is specifically tailored for the ESP32-CAM module and works well with M5Stack ESP32 Camera, ESP32CAM, and likely others. You may need to verify and update the pinouts for other Arduino-compatible devices. Some hardware devices are more reliable than others, and the software makes regular attempts to reboot as necessary, which often gets things going again.
-
-If you need assistance or have questions about integrating Groundlight with Arduino, please consider opening an issue on the GitHub repository or reaching out to our [support team](mailto:support@groundlight.ai).
-
-## Additional Arduino Resources
-
-To learn more about Arduino and expand your knowledge, you can explore the following resources:
-
-- [Arduino Official Website](https://www.arduino.cc/)
-- [Arduino Playground](https://playground.arduino.cc/)
-- [Arduino Forum](https://forum.arduino.cc/)
-- [ESP32 Community Forum](https://www.esp32.com/)
-- [Adafruit Learning System](https://learn.adafruit.com/)
-
-These resources provide extensive documentation, tutorials, and community support for Arduino enthusiasts and developers.
-
diff --git a/docs/docs/installation/7-optional-libraries.md b/docs/docs/installation/6-optional-libraries.md
similarity index 66%
rename from docs/docs/installation/7-optional-libraries.md
rename to docs/docs/installation/6-optional-libraries.md
index ca61bd93..0ef99f40 100644
--- a/docs/docs/installation/7-optional-libraries.md
+++ b/docs/docs/installation/6-optional-libraries.md
@@ -11,11 +11,11 @@ wrong if you try to use these features.
## PIL - optional but default installed
-The `PIL` library offers a bunch of standard utilities for working with images in python. The Groundlight SDK can work without `PIL`.
+The `PIL` library offers a bunch of standard utilities for working with images in python. The Groundlight SDK can work without `PIL`.
-Because `PIL` is not very large, and is quite useful, we install it by default with the normal build of the Groundlight SDK. So when you
+Because `PIL` is not very large, and is quite useful, we install it by default with the normal build of the Groundlight SDK. So when you
-``` shell
+```shell
pip3 install groundlight
```
@@ -24,8 +24,8 @@ it comes with the `pillow` version of the `PIL` library already installed.
### Working without PIL
If you are extremely space constrained, you can install the Groundlight SDK from source without `PIL` and it will work properly, but with reduced functionality.
-Specifically, you will need to convert your images into `JPEG` format yourself. The SDK normally relies on `PIL` to do JPEG compression (which is a non-trivial algorithm), and the API requires images to be in JPEG format. However on space-constrained platforms, sometimes this conversion is done in hardware, and so we don't want to force you to install `PIL` if you don't need it.
+Specifically, you will need to convert your images into `JPEG` format yourself. The SDK normally relies on `PIL` to do JPEG compression (which is a non-trivial algorithm), and the API requires images to be in JPEG format. However on space-constrained platforms, sometimes this conversion is done in hardware, and so we don't want to force you to install `PIL` if you don't need it.
## Numpy, OpenCV - fully optional
-These commonly-used libraries are not installed by default, because they are quite large, and their installation can often cause conflicts with other dependent libraries. If you want to use them, install them directly.
+These commonly-used libraries are not installed by default, because they are quite large, and their installation can often cause conflicts with other dependent libraries. If you want to use them, install them directly.
diff --git a/docs/docs/installation/7-monitoring-notification-server.md b/docs/docs/installation/7-monitoring-notification-server.md
new file mode 100644
index 00000000..34eb1eb9
--- /dev/null
+++ b/docs/docs/installation/7-monitoring-notification-server.md
@@ -0,0 +1,46 @@
+# Monitoring Notification Server
+
+This is the easiest way to deploy your Groundlight detectors on a linux computer. All configuration is done through a web user interface, and no code development is required.
+
+## Prerequisites
+
+1. Internet connected linux computer
+2. Video source (USB camera or RTSP stream)
+3. Groundlight API Key (available from [groundlight.ai](https://www.groundlight.ai/))
+
+## Deployment
+
+1. Install Docker on your computer. See [Docker's installation instructions](https://docs.docker.com/get-docker/).
+2. Create a new file called `docker-compose.yml` in your project directory. Copy the following into it:
+
+```yaml
+services:
+ frontend:
+ image: docker.io/groundlight/monitoring-notification-server-frontend:latest
+ ports:
+ - "3000:3000"
+ depends_on:
+ - backend
+ backend:
+ image: docker.io/groundlight/monitoring-notification-server-backend:latest
+ ports:
+ - "8000:8000"
+ devices:
+ - /dev/video0:/dev/video0
+ - /dev/video1:/dev/video1
+ - /dev/video2:/dev/video2
+ - /dev/video3:/dev/video3
+ privileged: true
+ volumes:
+ - /dev/bus/usb:/dev/bus/usb
+```
+
+3. Run the following command in your project directory:
+
+```bash
+docker-compose up
+```
+
+4. If installed locally, open http://localhost:3000 in your browser. If installed on a remote device, replace `localhost` with the IP address of your device. You should see the following page:
+
+![Screenshot of the Groundlight Monitoring Notification Server](/img/docker-img-frontpage.png)
diff --git a/docs/docs/installation/8-nocode-iot-deployment.md b/docs/docs/installation/8-nocode-iot-deployment.md
new file mode 100644
index 00000000..06850857
--- /dev/null
+++ b/docs/docs/installation/8-nocode-iot-deployment.md
@@ -0,0 +1,55 @@
+# No-Code IoT Deployment
+
+Groundlight supplies a tool for no-code deployment of a detector to an ESP32 Camera board. You can find it at https://code.groundlight.ai/groundlight-embedded-uploader/.
+
+## Easy Deployment
+
+This tool is designed to make it as easy as possible to deploy your Groundlight detector on an ESP32 Camera Board. You can deploy your detector in just a few clicks.
+
+1. Go to https://code.groundlight.ai/groundlight-embedded-uploader/.
+2. Plug your ESP32 Camera Board into your computer with a USB cable.
+3. Click through the steps to upload your detector to your ESP32 Camera Board.
+
+## Notification Options
+
+The tool supports the following notification options for your deployed detector:
+
+- Email
+- SMS (With Twilio)
+- Slack
+
+## Multiple Supported Boards
+
+Tested with the following boards. Many other ESP32 boards should work as well, but may require building the firmware from source and changing the IO pin definitions.
+
+- M5Stack ESP32 PSRAM Timer Camera [[purchase here](https://shop.m5stack.com/products/esp32-psram-timer-camera-ov3660)]
+- M5Stack ESP32 PSRAM Timer Camera X [[purchase here](https://shop.m5stack.com/products/esp32-psram-timer-camera-x-ov3660)]
+- ESP32-CAM [[purchase here](https://www.amazon.com/s?k=ESP32-CAM&i=electronics)]
+- SeeedStudio ESP32S3 Sense [[purchase here](https://www.seeedstudio.com/XIAO-ESP32S3-Sense-p-5639.html)]
+
+
+
+
+
+
+## Source Code
+
+The source code is written as an Arduino-based PlatformIO project for ESP32, and is available on GitHub at https://github.com/groundlight/esp32cam
+
+If you need assistance or have questions about integrating Groundlight with Arduino, please consider opening an issue on the GitHub repository or reaching out to our [support team](mailto:support@groundlight.ai).
diff --git a/docs/docs/installation/installation.md b/docs/docs/installation/installation.md
index 763d8ede..0f82c2bb 100644
--- a/docs/docs/installation/installation.md
+++ b/docs/docs/installation/installation.md
@@ -11,7 +11,7 @@ Choose your platform from the list below and follow the instructions in the corr
- [Windows](3-windows.md)
- [Raspberry Pi](4-raspberry-pi.md)
- [NVIDIA Jetson](5-nvidia-jetson.md)
-- [Arduino](6-arduino.md)
+- [Linux with Monitoring Notification Server](7-monitoring-notification-server.md)
+- [ESP32 Camera Device](8-nocode-iot-deployment.md)
After completing the installation process for your platform, you'll be ready to start [building visual applications](/docs/building-applications/) using the Groundlight SDK.
-
diff --git a/docs/static/img/docker-img-frontpage.png b/docs/static/img/docker-img-frontpage.png
new file mode 100644
index 00000000..3e567f29
Binary files /dev/null and b/docs/static/img/docker-img-frontpage.png differ
diff --git a/docs/static/img/esp32-cam.png b/docs/static/img/esp32-cam.png
new file mode 100644
index 00000000..7d0c6d7c
Binary files /dev/null and b/docs/static/img/esp32-cam.png differ
diff --git a/docs/static/img/m5stack_timer_camera.png b/docs/static/img/m5stack_timer_camera.png
new file mode 100644
index 00000000..2ff321ef
Binary files /dev/null and b/docs/static/img/m5stack_timer_camera.png differ
diff --git a/docs/static/img/m5stack_timer_camera_x.png b/docs/static/img/m5stack_timer_camera_x.png
new file mode 100644
index 00000000..35af675b
Binary files /dev/null and b/docs/static/img/m5stack_timer_camera_x.png differ
diff --git a/docs/static/img/xiao-esp32s3-sense.png b/docs/static/img/xiao-esp32s3-sense.png
new file mode 100644
index 00000000..e3cf4955
Binary files /dev/null and b/docs/static/img/xiao-esp32s3-sense.png differ