diff --git a/docs/how-to-install/styles.module.css b/docs/how-to-install/styles.module.css
new file mode 100644
index 0000000..42c49e8
--- /dev/null
+++ b/docs/how-to-install/styles.module.css
@@ -0,0 +1,48 @@
+.image {
+ border: 1px solid #E0E0E0;
+}
+
+.menu_item:before {
+ content: '';
+ width: 22px;
+ height: 22px;
+ margin: auto 8px auto 0;
+ background-color: var(--ifm-color-content);
+}
+
+.menu_item_desktop:before {
+ background: url("/icon/remote-desktop.svg");
+}
+
+.menu_item_commandline:before {
+ background: url("/icon/console.svg");
+}
+
+.menu_item_demoversion:before {
+ background: url("/icon/openremote.svg");
+}
+
+.menu_item_productionready:before {
+ -webkit-mask-image: url("/icon/package-variant-closed.svg");
+ mask-image: url("/icon/package-variant-closed.svg");
+}
+
+.menu_item_customproject:before {
+ -webkit-mask-image: url("/icon/tools.svg");
+ mask-image: url("/icon/tools.svg");
+}
+
+.bottom_navigation_container {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ gap: 12px;
+}
+
+.bottom_navigation_container > * {
+ flex: 1;
+}
+
+/*
+.theme-code-block {
+ background: blue;
+}*/
diff --git a/docs/how-to-install/using-aws-marketplace.mdx b/docs/how-to-install/using-aws-marketplace.mdx
new file mode 100644
index 0000000..b780621
--- /dev/null
+++ b/docs/how-to-install/using-aws-marketplace.mdx
@@ -0,0 +1,9 @@
+---
+sidebar_position: 4
+sidebar_label: Using AWS Marketplace
+unlisted: true
+---
+
+# Install using AWS Marketplace
+
+WIP
\ No newline at end of file
diff --git a/docs/how-to-install/using-docker.mdx b/docs/how-to-install/using-docker.mdx
new file mode 100644
index 0000000..5061a55
--- /dev/null
+++ b/docs/how-to-install/using-docker.mdx
@@ -0,0 +1,190 @@
+---
+sidebar_position: 1
+sidebar_label: Using Docker
+---
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+import OpenRemoteDemo from '@site/static/img/install-demo.png';
+import InsightsDashboard from '@site/static/img/insights-dashboard.png';
+import OpenRemoteIcon from '@site/static/icon/openremote.svg';
+import DockerIcon from '@site/static/icon/docker-mark-blue.svg';
+import OpenInTabIcon from '@site/static/icon/open-in-new.svg';
+import DownloadIcon from '@site/static/icon/download.svg';
+import ChevronRight from '@site/static/icon/chevron-right.svg';
+import styles from './styles.module.css';
+import Admonition from '@theme/Admonition';
+import {CardElement} from "../util/card-element";
+
+# Install using Docker
+
+The most common installation method for OpenRemote is using [Docker](https://www.docker.com).
+It is the most popular tool for providing containerization, which runs our software in its own isolated environment.
+
+We provide easy-to-install configurations using [Docker Compose](https://docs.docker.com/compose/) profiles.
+All of our distributions, for both ARM64 and AMD64, are available on [Docker Hub](https://hub.docker.com/u/openremote).
+
+## Prerequisites
+
+
+You'll need access to the Docker CLI during the setup, to start containers using [Docker Compose](https://docs.docker.com/compose/).
+
+{/*
+ You can install Docker Desktop on [Windows](https://docs.docker.com/desktop/setup/install/windows-install/), [Mac](https://docs.docker.com/desktop/setup/install/mac-install/) or [Linux](https://docs.docker.com/desktop/setup/install/linux/).
+ It provides a straightforward GUI (Graphical User Interface) that lets you manage your containers, applications,
+ and images directly from your machine. All necessary tools for installing OpenRemote come preinstalled.
+
+ Users can install [Docker Engine](https://docs.docker.com/engine/install/) on any Linux distribution for running OpenRemote.
+ It includes all necessary CLI tools (like Docker Compose) for a smooth installation process.
+ Other platforms will have to use the [desktop environment](./using-docker?prerequisites=desktop) instead.
+
+ *Figure 1. Screenshot of the Manager UI Map page filled with the assets of this setup.*
+
+ We distribute a demo version of OpenRemote that includes several assets with simulated data.
+ It includes automation rules, dashboards, and full administrator control of the software.
+ The easy setup allows users to discover platform features, without needing additional setup.
+
+
+ ### 1. Download the `docker-compose.yml` file
+
+ By default, we expose port `80` (HTTP), `443` (HTTPS) and `8883` (MQTT) to the local network.
+ Make sure the correct firewall routing is set up for public access on these ports.
+ Alternatively, you can adjust port mapping within the `docker-compose.yml` file; see [here](https://docs.docker.com/compose/how-tos/networking/).
+
+
+ ### 2. Start the OpenRemote stack
+ Open a terminal in the folder you downloaded the `docker-compose.yml` file in, and run the following command;
+ ```bash
+ docker-compose -p openremote up -d
+ ```
+
+
+ ### Complete!
+ You can now visit the Manager UI on **https://localhost**, and log in with username `admin`, and password `secret`.
+
+
+ You can bypass this error, see more information on this [here](https://www.guidingtech.com/top-ways-to-fix-your-connection-is-not-private-in-chrome/).
+
+ For a production deployment, with an SSL certificate, check the [production guide](./using-docker?install=production)
+
+
+
+ *Figure 2. Screenshot of the Manager UI Insights page filled with simulated data.*
+
+ This guide will help you setting up a production-ready OpenRemote instance, together with an included proxy service.
+ It comes without any pre-installed assets or realms, and includes minor tweaks to optimize for production use.
+
+
+ ### 1. Download the `docker-compose.yml` file
+
+ By default, we expose port `80` (HTTP), `443` (HTTPS) and `8883` (MQTT) to the local network.
+ Make sure the correct firewall routing is set up for public access on these ports.
+ Alternatively, you can adjust port mapping within the `docker-compose.yml` file; see [here](https://docs.docker.com/compose/how-tos/networking/).
+
+
+ ### 2. Create an `.env` file in the same folder
+ You can configure the OpenRemote instance using environment variables.
+ We create an `.env` file, where we add variables in `ENV_VARIABLE=VALUE` format. See this example here;
+ ```env
+ OR_HOSTNAME=demo.openremote.app
+ OR_ADMIN_PASSWORD=secret
+ ```
+ The most common environment variables are:
+ - `OR_HOSTNAME` - Configures the accessible hostname URL for all services.
+ - `OR_ADMIN_PASSWORD` - Sets the initial password for the `admin` username.
+ - `OR_EMAIL_***` - Configures the mail server to send emails from; full list [here](https://github.com/openremote/openremote/blob/1.3.0/profile/deploy.yml#L172).
+ - `OR_ADDITIONAL_HOSTNAMES` - Allow additional hostname URLs on top of `OR_HOSTNAME`.
+
+ A full list of variables can be viewed [here](https://github.com/openremote/openremote/blob/1.3.0/profile/deploy.yml).
+
+
+ ### 3. Optional steps
+ Configure a wildcard SSL certificate for your custom domain
+
+ By default, we ship a self-signed SSL certificate based on the `OR_HOSTNAME` environment variable.
+ You can bring your own by including the full certificate chain in a `.pem` file.
+
+ Place your `.pem` file in the same folder as your `docker-compose.yml` is located.
+
+ After that, you need to modify the `docker-compose.yml` file, to include the following line;
+ ```yml
+ services:
+ proxy:
+ image: openremote/proxy:${PROXY_VERSION:-latest}
+ // ...
+ volumes:
+ - proxy-data:/deployment
+ - ./cert.pem:/etc/haproxy/certs/00-custom
+ ```
+
+
+ ### 4. Start the OpenRemote stack
+ Open a terminal in the same folder, and run the following command;
+ ```bash
+ docker-compose -p openremote up -d
+ ```
+
+
+ ### Complete!
+ You can now visit the Manager UI on **https://[yourhostname].com**, and log in with username `admin`, and your password.
+
+
+ **Error:** "We are sorry... Invalid parameter: redirect_uri"
+
+ This is a common error when using an unexpected URL to access the Manager.
+ By default, only `localhost` is accepted, and other hostnames are rejected from access.
+
+ You can use the `OR_HOSTNAME` and `OR_ADDITIONAL_HOSTNAMES` environment variables for this.
+ Check Step 2 of the [Production ready guide](./using-docker?install=production#2-create-an-env-file-in-the-same-folder) for more details on setting these up.
+