From 1a6f599971b63944b985ab0fd1c460b4f96530c4 Mon Sep 17 00:00:00 2001
From: Timothy Carambat <rambat1010@gmail.com>
Date: Wed, 6 Dec 2023 11:27:38 -0800
Subject: [PATCH] update docker build instructions (#412)

* update docker build instructions

* cleanup
---
 README.md                                     | 24 +++++++++++++++----
 .../cloudformation_create_anythingllm.json    |  2 +-
 docker/HOW_TO_USE_DOCKER.md                   | 21 +++++++++++++---
 3 files changed, 39 insertions(+), 8 deletions(-)

diff --git a/README.md b/README.md
index c4a72476b..cb55b702d 100644
--- a/README.md
+++ b/README.md
@@ -78,12 +78,28 @@ This monorepo consists of three main sections:
 - (optional) a vector database like Pinecone, qDrant, Weaviate, or Chroma*.
 *AnythingLLM by default uses a built-in vector db called LanceDB.
 
-## How to get started (Docker - simple setup)
+## Recommended usage with Docker (easy!)
+> [!TIP]
+> It is best to mount the containers storage volume to a folder on your host machine
+> so that you can pull in future updates without deleting your existing data!
+
 `docker pull mintplexlabs/anythingllm:master`
-`docker run -d -p 3001:3001 mintplexlabs/anythingllm:master`
 
-Go to `http://localhost:3001` and you are now using AnythingLLm!
-[More about running AnythingLLM with Docker](./docker/HOW_TO_USE_DOCKER.md)
+```shell
+STORAGE_LOCATION="/var/lib/anythingllm" \
+mkdir "$STORAGE_LOCATION" && \
+touch "$STORAGE_LOCATION/.env" && \
+docker run -d -p 3001:3001 \
+-v ${STORAGE_LOCATION}:/app/server/storage \
+-v ${STORAGE_LOCATION}/.env:/app/server/.env \
+-e STORAGE_DIR="/app/server/storage" \
+mintplexlabs/anythingllm:master
+```
+
+Go to `http://localhost:3001` and you are now using AnythingLLM! All your data and progress will persist between
+container rebuilds or pulls from Docker Hub.
+
+[Learn more about running AnythingLLM with Docker](./docker/HOW_TO_USE_DOCKER.md)
 
 ### How to get started (Development environment)
 - `yarn setup` from the project root directory.
diff --git a/cloud-deployments/aws/cloudformation/cloudformation_create_anythingllm.json b/cloud-deployments/aws/cloudformation/cloudformation_create_anythingllm.json
index a50fac7a6..1fca10dc9 100644
--- a/cloud-deployments/aws/cloudformation/cloudformation_create_anythingllm.json
+++ b/cloud-deployments/aws/cloudformation/cloudformation_create_anythingllm.json
@@ -117,7 +117,7 @@
     "AnythingLLMInstanceSecurityGroup": {
       "Type": "AWS::EC2::SecurityGroup",
       "Properties": {
-        "GroupDescription": "AnythingLLm Instance Security Group",
+        "GroupDescription": "AnythingLLM Instance Security Group",
         "SecurityGroupIngress": [
           {
             "IpProtocol": "tcp",
diff --git a/docker/HOW_TO_USE_DOCKER.md b/docker/HOW_TO_USE_DOCKER.md
index 6d44e565f..b0e4e96c5 100644
--- a/docker/HOW_TO_USE_DOCKER.md
+++ b/docker/HOW_TO_USE_DOCKER.md
@@ -5,11 +5,26 @@ Use the Dockerized version of AnythingLLM for a much faster and complete startup
 ## Requirements
 - Install [Docker](https://www.docker.com/) on your computer or machine.
 
-## Pull from Docker
+## Recommend way to run dockerized AnythingLLM!
+> [!TIP]
+> It is best to mount the containers storage volume to a folder on your host machine
+> so that you can pull in future updates without deleting your existing data!
+
 `docker pull mintplexlabs/anythingllm:master`
-`docker run -d -p 3001:3001 mintplexlabs/anythingllm:master`
 
-Go to `http://localhost:3001` and you are now using AnythingLLm!
+```shell
+STORAGE_LOCATION="/var/lib/anythingllm" \
+mkdir "$STORAGE_LOCATION" && \
+touch "$STORAGE_LOCATION/.env" && \
+docker run -d -p 3001:3001 \
+-v ${STORAGE_LOCATION}:/app/server/storage \
+-v ${STORAGE_LOCATION}/.env:/app/server/.env \
+-e STORAGE_DIR="/app/server/storage" \
+mintplexlabs/anythingllm:master
+```
+
+Go to `http://localhost:3001` and you are now using AnythingLLM! All your data and progress will persist between
+container rebuilds or pulls from Docker Hub.
 
 ## Build locally from source
 - `git clone` this repo and `cd anything-llm` to get to the root directory.
-- 
GitLab