Skip to content

Real-Dev-Squad/discord-message-broker

Repository files navigation

Discord Message Broker Setup and Running Instructions

This document provides instructions on how to set up and run the Go project using the provided Makefile commands.

Requirements

  • Go 1.18+
  • Make
  • Air (for make air)

Ensure you have these dependencies installed before running the commands.

Prerequisites

Before running the project, ensure that you have the following installed:

  • Go 1.18+: The Go programming language (required to run and build the project).
  • Air: A live-reloading tool for Go that will automatically restart the project on file changes.
  • Make: A build automation tool used to manage tasks defined in the Makefile.

Installation

  1. Install Go If you don't have Go installed, follow the official guide to install it:Go Installation Guide.
  2. Install Make To install Make, follow the installations steps from here based on your OS: Make Installation Guide.
  3. Install Air To install Air, follow the installation steps here: Air Installation Guide

Running RabbitMQ with Docker

  1. Ensure Docker is installed and running on your machine.

  2. Navigate to the project directory.

  3. Make sure repo contains a docker-compose.yml file with the following content:

    version: '3.8'
    
    services:
      rabbitmq:
        image: rabbitmq:3.13-management
        container_name: rabbitmq
        ports:
          - '5672:5672'
          - '15672:15672'
  4. Start the RabbitMQ container:

    docker-compose up -d
  5. Verify that RabbitMQ is running by accessing the management interface at http://localhost:15672. The default username and password are both guest.

Setting up Environment Variables

There are total 3 variables required to make this service functional

  1. QUEUE_URL (amqp://<HOST_NAME>:<PORT>) The value of HOST_NAME depends on how you're running the project.
  • If you're using docker-compose for both the queue and consumer, and assuming the queue's container is named rabbitmq, set HOST_NAME to rabbitmq.
  • If you're running the consumer without docker-compose, then set HOST_NAME to localhost.
  1. QUEUE_NAME You can use any name, consider RDS_QUEUE for default use case
  2. DISCORD_SERVICE_URL Place URL of Discord Service

Running the Project Using Go

  1. Install Packages

    go mod download
  2. Verify Packages If it's your first time running the project, ensure all dependencies are set up:

    go mod tidy
  3. Running the Project

    go run .
  4. Running the Project Using Air

    air

Running the Project Using Make

You can run the project using the Makefile, which provides several commands for various tasks. Below are the steps to run the project:

  1. Install Packages

    make download
  2. Verify Packages If it's your first time running the project, ensure all dependencies are set up:

    make tidy
  3. Running the Project

    make run
  4. Running the Project Using Air

    make air

Other Commands Usage

  1. To run tests:

    make test #or go list ./... | grep -v "/config$$" | grep -v "/routes$$" | xargs go test -v
  2. To generate a coverage report:

    make coverage #or go list ./... | grep -v "/config$$" | grep -v "/routes$$" | xargs go test -v -coverprofile=coverage.out
  3. To automatically re-run the application on changes:

    make air #or air
  4. To clean up the generated files:

    make clean #or rm -rf coverage coverage.out coverage.html

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •