Conva installation steps

1. Installing conva backend

Commands

1. $ mkdir conva && cd conva  //create a new directory
2. $ /bin/bash -c "$(curl -fsSL https://backend.onemana.dev/conva/download/<conva-key>)"  //replace conva-key with key sent yo you mail
3. $ cp ./.sample.env ./.env   //copy env file

what is in .env file

PORT=3000 //port in which go service (conva backend) is exposed inside the container DON'T CHANGE IT UNLESS REQUIRED
DSN="host=postgres port=5432 user=root password=secret dbname=conva sslmode=disable timezone=UTC connect_timeout=5" //DSN is used by go service to postgres DON'T CHANGE THE HOST AND PORT UNLESS REQUIRED
DB_PASSWORD=secret
DB_HOST=postgres 
DB_PORT=5432 //DON'T CHANGE UNLESS REQUIRED
DB_USER=root
DB_NAME=conva //DON'T CHANGE UNLESS REQUIRED
REDIS_PASSWORD=czxczxc 
REDIS_HOST=redis:6379 //DON'T CHANGE UNLESS REQUIRED
JWT_SECRET=casvasdjvnsakdvasd //CHANGE IT ON PERIODIC BASIS used for conva user auth and emqx auth
MINIO_USER=onemana777
MINIO_PASSWORD=onemana@777
MINIO_ACCESS_KEY_ID=<get-it-from-minio>
MINIO_SECRET_ACCESS_KEY=<get-it-from-minio>
MINIO_HOST=mino.domain //CHANGE IT !
MINIO_SSL=true //DON'T CHANGE UNLESS REQUIRED
USER_UPLOAD_BUCKET_NAME=conva
DGRAPH_HOST=alpha:9080 //DON'T CHANGE UNLESS REQUIRED
DGRAPH_USER=groot //DON'T CHANGE UNLESS REQUIRED
DGRAPH_PASSWORD=password //DON'T CHANGE UNLESS REQUIRED
EMQX_DASHBOARD_DEFAULT_USERNAME=onemana
EMQX_DASHBOARD_DEFAULT_PASSWORD=123
MQTT_CLEAN_SESSION=true //DON'T CHANGE UNLESS REQUIRED
MQTT_BROKER=tcp://emqx:1883 //DON'T CHANGE UNLESS REQUIRED
MQTT_CLIENT_ID=backend //DON'T CHANGE UNLESS REQUIRED
MQTT_USERNAME=backend //DON'T CHANGE UNLESS REQUIRED
OS_HOST=https://opensearch-node1:9200 //DON'T CHANGE UNLESS REQUIRED
OS_PASSWORD=vsdvsdvsdv
OS_USERNAME=admin
GOOGLE_CLIENT_ID=<get-from-google-cloud-api> //oauth
GOOGLE_CLIENT_SECRET=<get-from-google-cloud-api> //oauth
GITHUB_CLIENT_ID=<get-from-github> //oauth
GITHUB_CLIENT_SECRET=<get-from-github> //oauth
POSTGRES_DOMAIN=postgres.domain //CHANGE IT !
MQTT_DOMAIN=mqtt.domain //CHANGE IT !
MINO_DOMAIN=minio.domain //CHANGE IT !
MINO_CONSOLE_DOMAIN=minio-console.domain  //CHANGE IT !
OS_DOMAIN=os.domain //CHANGE IT !
BACKEND_DOMAIN=backend.domain //CHANGE IT !
REDIS_DOMAIN=redis.domain //CHANGE IT !
EMQX_WS_DOMAIN=emqx.domain //CHANGE IT !
EMQX_CONSOLE_DOMAIN=emqx-console.domain //CHANGE IT !
FE_DOMAIN=frontend.domain //CHANGE IT !
FIREBASE_CRED_PATH=firebase-cred.json //path for firebase admin cred for push notification
ADMIN_EMAIL_ID=admin@domain.com //CHANGE IT ! an emial id of user who can block/unblock users from conva org
UPLOAD_LIMIT_IN_MB=10 // media file upload limit change it if required
TRAEFIK_EMAIL=contact@onemana.dev //CHANGE IT !
TRAEFIK_DOMAIN=traefik.domain //CHANGE IT !
TRAEFIK_HASHED_PASSWORD= //get it by htpasswd -nb admin sdcvsad
ALLOWED_DOMAINS=onemana.dev,inspeak.dev //domains allowed form logged in user's email
4. $ cp ./sample-compose.yml ./compose.yml   //copy compose file
5. $ make build_restart_all  //builds go service image and 
6. $ make create_postgres_db   //creates db in postgress
7. $ make build_restart_service //run this after updating the env file and after updating app 

EMQX Authorization file

{allow, {username, {re, "^dashboard$"}}, subscribe, ["$SYS/#"]}.

{allow, {username, "backend"}, all, ["#"]}.

{allow, {username, {re, "^user_.*$"}}, subscribe, ["message/#", "typing/#"]}.

{deny, all}.
$ /bin/bash -c "$(curl -fsSL https://backend.onemana.dev/conva/download/<conva-key>)"  //replace conva-key with key sent yo you mail

2. Installing conva frontend

a. Host FE on free static site hosting like cloudflare pages or github pages

b. Steps to install frontend on server

Forent is open source at OneMana repo.

create ./.env file and add following content

FE_DOMAIN="conva.inspeak.dev" //Add your FE domian CHANGE IT !
Update somain name in "vars/.env.production" !important
Commands
1. $ make build_image
2. $ create_fe_container