Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Todo.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"verion":"0.0.1","entries":[]}
46 changes: 46 additions & 0 deletions ansible_script/Inventory/inventory.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
frontend:
hosts:
host1:
ansible_host: localhost # Add IP of frontend server here
# ansible_port: 3000 # ssh-port
# ansible_user:
# ansible_ssh_pass:
# ansible_ssh_private_key_file:
ansible_connection: local
ansible_python_interpreter: "/usr/bin/env python"

centralServer: #Also acts as load balancer
hosts:
host2:
ansible_host: localhost # Add IP of frontend server here
# ansible_port: 3001
ansible_connection: local
ansible_python_interpreter: "/usr/bin/env python"

cacheServer:
hosts:
host3:
ansible_host: localhost # Add IP of frontend server here
# ansible_port: 4000
ansible_connection: local
ansible_python_interpreter: "/usr/bin/env python"

regionalServer:
hosts:
host4:
ansible_host: localhost # Add IP of frontend server here
# ansible_port: 5000
ansible_connection: local


#groups

Server1:
children:
frontend:
centralServer:
cacheServer:

Server2:
children:
regionalServer:
150 changes: 150 additions & 0 deletions ansible_script/playbook/container_manager.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
# Set up basic server configurations

- name: Build and run Docker container
hosts: frontend #all
gather_facts: true
become: yes
tasks:
- name: Clone the Git repository
git:
repo: "https://github.com/ONDC-Sparse-Matrix/Sparse-Matrix-PS"
dest: "$HOME/test"
update: yes

# - name: Ensure Docker is installed
# pacman:
# name: docker
# state: present
# update_cache: no
# ignore_errors: True
# async: 30
# poll: 30

# - name: Start Docker service
# service:
# name: docker
# state: started
# enabled: yes

# - name: Clean up the Docker images
# shell: docker rm $(docker ps -q -a -f status=exited)

Build frontend container

- name: Build and run frontend
hosts: frontend
gather_facts: true
become: yes
tasks:
- name: Generate .env file
copy:
dest: "$HOME/test/user-frontend/.env"
content: |
MONGOURI=mongodb://localhost:27017
CENTRAL_SERVER_URL=http://localhost:3001

- name: Build Docker image frontend
command: ls
command: docker build -t frontend $HOME/test/user-frontend

- name: Run Docker container frontend
command: docker run -d --name=fronend_container -p 3000:3000 frontend
ignore_errors: True

- name: Ensure the Docker container is running frontend
docker_container:
name: fronend_container
image: frontend
state: started
ignore_errors: True


Build central_server container


- name: Build and run
hosts: centralServer
gather_facts: true
become: yes
tasks:
- name: Generate .env file
copy:
dest: "$HOME/test/user-frontend/.env"
content: |
MONGOURI=mongodb://localhost:27017
CENTRAL_SERVER_URL=http://localhost:3001

- name: Build Docker image central_server
command: ls
command: docker build -t central_server $HOME/test/centralCDN

- name: Run Docker container central_server
command: docker run -d --name=central_container -p 3001:3001 central_server
ignore_errors: True

- name: Ensure the Docker container is running central_server
docker_container:
name: central_container
image: central_server
state: started
ignore_errors: True

# Build cache_server container
- name: Build and run cache_server
hosts: cacheServer
gather_facts: true
become: yes
tasks:
- name: Generate .env file
copy:
dest: "$HOME/test/user-frontend/.env"
content: |
MONGOURI=mongodb://localhost:27017
CENTRAL_SERVER_URL=http://localhost:3001

- name: Build Docker image cache_server
command: ls
command: docker build -t cache_server $HOME/test/cacheServer

- name: Run Docker container cache_server
command: docker run -d --name=cache_container -p 4000:4000 cache_server
ignore_errors: True

- name: Ensure the Docker container is running cache_server
docker_container:
name: cache_container
image: cache_server
state: started


# Build regional_server container
- name: Build and run regional_server
hosts: regionalServer
gather_facts: true
become: yes
tasks:

- name: Generate .env file
copy:
dest: "$HOME/test/user-frontend/.env"
content: |
MONGOURI=mongodb://localhost:27017
CENTRAL_SERVER_URL=http://localhost:3001

- name: Build Docker image regional_server
command: ls
command: docker build -t regional_server $HOME/test/backend-server

- name: Run Docker container regional_server
command: docker run -d --name=regional_container -p 5000:5000 regional_server
ignore_errors: True

- name: Ensure the Docker container is running regional_server
docker_container:
name: regional_container
image: regional_server
state: started
ignore_errors: True


# ansible-playbook -v -K playbook/container_manager.yml -i Inventory/inventory.yml
43 changes: 43 additions & 0 deletions backend-server/controllers/cron_job.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package controllers

import (
"log"
"os/exec"

"github.com/robfig/cron/v3"
)

// myScheduledTask is the task that will be run every minute
func myScheduledTask() {

dumpPath := "./dump/"
uri := "mongodb://localhost:27017"
cmd := exec.Command("mongodump", "--uri", uri, "--out", dumpPath)

err := cmd.Run()
if err != nil {
log.Fatal(err)
}

log.Println("Data dumped successfully...")

}

// StartCronJob starts the cron job
func InitCronJob() {
// Initialize a new cron instance
c := cron.New(cron.WithSeconds())

// Schedule the task to run every minute
_, err := c.AddFunc("0 */1 * * * *", myScheduledTask)
if err != nil {
log.Fatalf("Error scheduling task: %v", err)
}

// // Funcs may also be added to a running Cron
// c.AddFunc("@daily", func() { fmt.Println("Every day") })

// Start the cron scheduler
c.Start()

}
16 changes: 7 additions & 9 deletions backend-server/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@ module regional_server

go 1.21.6

require (
github.com/gofiber/fiber/v2 v2.52.0
github.com/joho/godotenv v1.5.1
github.com/robfig/cron/v3 v3.0.1
go.mongodb.org/mongo-driver v1.13.1
)

require (
github.com/andybalholm/brotli v1.0.5 // indirect
github.com/gabriel-vasile/mimetype v1.4.2 // indirect
github.com/go-playground/locales v0.14.1 // indirect
github.com/go-playground/universal-translator v0.18.1 // indirect
github.com/go-playground/validator/v10 v10.17.0 // indirect
github.com/gofiber/fiber/v2 v2.52.0 // indirect
github.com/golang/snappy v0.0.1 // indirect
github.com/google/uuid v1.5.0 // indirect
github.com/joho/godotenv v1.5.1 // indirect
github.com/klauspost/compress v1.17.0 // indirect
github.com/leodido/go-urn v1.2.4 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-runewidth v0.0.15 // indirect
Expand All @@ -26,9 +26,7 @@ require (
github.com/xdg-go/scram v1.1.2 // indirect
github.com/xdg-go/stringprep v1.0.4 // indirect
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect
go.mongodb.org/mongo-driver v1.13.1 // indirect
golang.org/x/crypto v0.14.0 // indirect
golang.org/x/net v0.17.0 // indirect
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect
golang.org/x/sys v0.15.0 // indirect
golang.org/x/text v0.13.0 // indirect
Expand Down
28 changes: 5 additions & 23 deletions backend-server/go.sum
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@
github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs=
github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU=
github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA=
github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
github.com/go-playground/validator/v10 v10.17.0 h1:SmVVlfAOtlZncTxRuinDPomC2DkXJ4E5T9gDA0AIH74=
github.com/go-playground/validator/v10 v10.17.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU=
github.com/gofiber/fiber/v2 v2.52.0 h1:S+qXi7y+/Pgvqq4DrSmREGiFwtB7Bu6+QFLuIHYw/UE=
github.com/gofiber/fiber/v2 v2.52.0/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ=
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM=
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU=
github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
Expand All @@ -22,8 +15,6 @@ github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwA
github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM=
github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q=
github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
Expand All @@ -33,15 +24,10 @@ github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZ
github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe h1:iruDEfMl2E6fbMZ9s0scYfZQ84/6SPL6zC8ACM2oIL0=
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasthttp v1.51.0 h1:8b30A5JlZ6C7AS81RsWjYMQmrZG6feChmgAolCl1SqA=
Expand Down Expand Up @@ -69,8 +55,6 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
Expand Down Expand Up @@ -98,7 +82,5 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
4 changes: 3 additions & 1 deletion backend-server/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,16 @@ import (
"regional_server/configs"
"regional_server/routes" //add this

controllers "command-line-arguments/home/death/Desktop/linux_backup/sdsLabs/HACKATHONS/Matrix/Matrix/backendServer/controllers/merchants_controller.go"

"github.com/gofiber/fiber/v2"
)

func main() {
app := fiber.New()

configs.ConnectDB()

controllers.InitCronJob();
routes.MerchantRouter(app)
routes.MapRouter(app)

Expand Down
19 changes: 19 additions & 0 deletions centralCDN/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
MONGOURI=mongodb://localhost:27017
MONGOURI_1=mongodb://localhost:27017
MONGOURI_2=mongodb://localhost:27017
MONGOURI_3=mongodb://localhost:27017
MONGOURI_4=mongodb://localhost:27017
MONGOURI_CENTRAL=mongodb://localhost:27017

FRONTEND_URL=http://localhost:5173/

RABBITMQ_URI=amqp://guest:guest@localhost:5672/

CACHE_SERVER_HOST_1=localhost
CACHE_SERVER_PORT_1=4000
CACHE_SERVER_HOST_2=localhost
CACHE_SERVER_PORT_2=8001
CACHE_SERVER_HOST_3=localhost
CACHE_SERVER_PORT_3=8002
CACHE_SERVER_HOST_4=localhost
CACHE_SERVER_PORT_3=8003
Loading