diff --git a/.gitignore b/.gitignore
index 74279fc91..7ecf004bb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,5 +14,6 @@
/server/logs
/build
+/start
package-lock.json
diff --git a/README.md b/README.md
index 67638748d..db98e9e36 100644
--- a/README.md
+++ b/README.md
@@ -34,7 +34,7 @@ docker-compose up -d --build
```
### Without Docker
-1. Ensure you have Node.js, PostgreSQL, MinIO and Redis installed on your system.
+1. Ensure you have Node.js, PostgreSQL, MinIO and Redis installed on your system. Check out the [installation guide](./docs/DB%20installation%20guide.md) here!
2. Run the commands below
```
git clone https://github.com/getmaxun/maxun
@@ -50,6 +50,7 @@ cd maxun-core
npm install
# start frontend and backend together
+cd ..
npm run start
```
You can access the frontend at http://localhost:5173/ and backend at http://localhost:8080/
diff --git a/docs/DB installation guide.md b/docs/DB installation guide.md
new file mode 100644
index 000000000..e0bdcc437
--- /dev/null
+++ b/docs/DB installation guide.md
@@ -0,0 +1,112 @@
+- [For MacOS](#for-macos)
+ - [Redis installation](#redis-installation)
+ - [Postgres Installation](#postgres-installation)
+ - [MinIO installation](#minio-installation)
+
+
+
+# For MacOS
+
+
+## Redis installation
+```
+# installing redis from Homebrew
+brew install redis
+
+# start instance of redis server in background
+brew services start redis
+
+# Check if its running using
+brew services info redis
+
+# for closing it use
+brew services stop redis
+
+# alternatively, start redis instance in foreground of terminal, note that the server will close if the terminal is closed
+redis-server
+```
+
+Redis runs default on Port: 6379, which is already written in the sample .env file
+
+
+## Postgres Installation
+```
+# Installing postgres from Homebrew
+brew install postgresql
+
+# Check if postgres is installed properly using
+postgres -V
+# >> postgres (PostgreSQL) 14.13 (Homebrew)
+
+# Enter postgres CLI using
+psql postgres
+
+# After entering postgres CLI, which looks like "postgres=# "
+# Create a role name with password for accessing db
+CREATE ROLE maxun WITH LOGIN PASSWORD 'maxun';
+
+# Check if role is successfully created
+\du
+
+# Create a DB for maxun usage
+CREATE DATABASE maxundb;
+
+# Give all permissions related to the DB to the user
+GRANT ALL PRIVILEGES ON DATABASE maxundb TO maxun;
+
+# Check if the database is connecting by user "maxun"
+# Quit postgres cli using
+\q
+
+# Re-enter as the user maxun
+psql postgres -U maxun
+
+# Try to connect with above created db
+\connect maxundb
+# You should see the message "You are now connected to database "maxundb" as user "maxun"."
+```
+
+
+## MinIO installation
+```
+# Install minio using homebrew
+brew install minio
+
+# Start a minio server
+minio server start
+
+```
+
+Minio Server information will then display on terminal like:
+```
+API: http://192.168.55.102:9000 http://127.0.0.1:9000
+RootUser: minioadmin
+RootPass: minioadmin
+
+Console: http://192.168.55.102:49809 http://127.0.0.1:49809
+RootUser: minioadmin
+RootPass: minioadmin
+
+Command-line: https://docs.min.io/docs/minio-client-quickstart-guide
+ $ mc alias set myminio http://192.168.55.102:9000 minioadmin
+minioadminDocumentation: https://docs.min.io
+```
+
+- Copy the Console URL (the 2nd one), here i.e `http://127.0.0.1:49809` and open in a browser
+- You will be welcomed with a login page, copy the RootUser and RootPass as mentioned above, here i.e `minioadmin`
+![MinIO Login Page](./images/minio-1.png)
+- After entering dashboard, select "buckets" on left navbar, select "create bucket", and create a bucket named "maxundb"
+- After the creation of bucket, make sure to visit the bucket page and change the access policy to "Public"
+![MinIO Select Bucket](./images/minio-2.png)
+![MinIO Select Bucket](./images/minio-7.png)
+
+- Once the bucket is created, Go to "identities" section from navbar and under "user" subsection click "create user" and create a user with name and password "minio-maxun" with below settings
+![MinIO Create User](./images/minio-3.png)
+- After the user is created, go to the newly created user page, go into Service account section and click "Create Access key"
+![MinIO Access key](./images/minio-4.png)
+- Click the Create button and a popup will appear from where you can copy the Access and Secret key to paste it the .env file
+![MinIO Access key](./images/minio-5.png)
+![MinIO Access key](./images/minio-6.png)
+
+Also Check out the [Sample ENV](env_sample_without_docker.txt) for setting up Maxun without Docker
+(Note that above variables names used in the example already)
\ No newline at end of file
diff --git a/docs/env_sample_without_docker.txt b/docs/env_sample_without_docker.txt
new file mode 100644
index 000000000..b641b136a
--- /dev/null
+++ b/docs/env_sample_without_docker.txt
@@ -0,0 +1,22 @@
+# App Setup
+NODE_ENV=development # Set to 'development' or 'production' as required
+JWT_SECRET=your_jwt_secret_key # Replace with a secure JWT secret key
+DB_NAME=maxundb # Your PostgreSQL database name
+DB_USER=maxun # PostgreSQL username
+DB_PASSWORD=maxun # PostgreSQL password
+DB_HOST=localhost # Host for PostgreSQL in Docker
+DB_PORT=5432 # Port for PostgreSQL (default: 5432)
+ENCRYPTION_KEY=your_encryption_key # Key for encrypting sensitive data (passwords and proxies)
+MINIO_ENDPOINT=localhost # MinIO endpoint in Docker
+MINIO_PORT=9000 # Port for MinIO (default: 9000)
+MINIO_ACCESS_KEY= # MinIO access key
+MINIO_SECRET_KEY= # MinIO secret key
+REDIS_HOST=localhost # Redis host in Docker
+REDIS_PORT=6379 # Redis port (default: 6379)
+
+# Backend URLs
+BACKEND_URL=http://localhost:8080 # Internal URL for backend service
+VITE_BACKEND_URL=http://localhost:8080 # URL used by frontend to connect to backend
+
+# Telemetry Settings - Please keep it enabled. Keeping it enabled helps us understand how the product is used and assess the impact of any new changes.
+MAXUN_TELEMETRY=true
\ No newline at end of file
diff --git a/docs/images/minio-1.png b/docs/images/minio-1.png
new file mode 100644
index 000000000..1a0ef9d08
Binary files /dev/null and b/docs/images/minio-1.png differ
diff --git a/docs/images/minio-2.png b/docs/images/minio-2.png
new file mode 100644
index 000000000..0b8298892
Binary files /dev/null and b/docs/images/minio-2.png differ
diff --git a/docs/images/minio-3.png b/docs/images/minio-3.png
new file mode 100644
index 000000000..38cec6072
Binary files /dev/null and b/docs/images/minio-3.png differ
diff --git a/docs/images/minio-4.png b/docs/images/minio-4.png
new file mode 100644
index 000000000..9306f7e7f
Binary files /dev/null and b/docs/images/minio-4.png differ
diff --git a/docs/images/minio-5.png b/docs/images/minio-5.png
new file mode 100644
index 000000000..a25f220da
Binary files /dev/null and b/docs/images/minio-5.png differ
diff --git a/docs/images/minio-6.png b/docs/images/minio-6.png
new file mode 100644
index 000000000..1f2021f58
Binary files /dev/null and b/docs/images/minio-6.png differ
diff --git a/docs/images/minio-7.png b/docs/images/minio-7.png
new file mode 100644
index 000000000..82d44563e
Binary files /dev/null and b/docs/images/minio-7.png differ