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