Skip to main content

Installation

Before diving into the installation process, ensure that your environment is adequately prepared. You should be operating with Go 1.20 and have access to the github.com/go-redis/redis/v8 package (version v8.11.5).

Sendhooks provides two straightforward installation methods, each catering to different operational preferences and system setups: Docker and Direct Binary installation. Choose the method that seamlessly integrates with your system and operational flow.

To run the sendhooks executable, you'll need a config.json file. This file contains important parameters such as the Redis host, Redis stream names for listening to webhook data streaming, and TLS Redis certificates.

Here's an example of a config.json file:

{
"redisAddress": "127.0.0.1:6379",
"redisPassword": "your_password_here",
"redisDb": "0",
"redisSsl": "false",
"redisCaCert": "/path/to/ca_cert.pem",
"redisClientCert": "/path/to/client_cert.pem",
"redisClientKey": "/path/to/client_key.pem",
"redisStreamName": "hooks",
"redisStreamStatusName": "sendhooks-status-updates"
}

To learn more about the config.json file, check this section.

Docker Installation

Using Docker for the installation simplifies the setup process, promoting a uniform operational environment.

Advantages:

  • It promotes an efficient and streamlined setup process.
  • It facilitates consistency and uniformity in various operational stages.

Considerations:

  • Ensure Docker is readily installed and correctly configured on your system.

Installation Steps:

  1. Pull the Docker Image
docker pull transfa/sendhooks:latest
  1. Run the Docker Image
docker run -v /path/to/config.json:/app/config.json -t transfa/sendhooks

Direct Binary Installation (macOS and Linux)

The Direct Binary Installation method is ideal for systems that operate without Docker. It allows for more hands-on interaction and a direct engagement with the Sendhooks binary.

Advantages:

  • It is suitable for environments that operate without Docker.
  • It offers a more tactile and direct interaction with the Sendhooks binary.

Considerations:

  • This method involves a more manual setup process, requiring a nuanced understanding of system management.
  • Redis must be either locally installed or accessible through an instance.

Installation Steps:

  1. Download the Binary
curl -LO https://github.com/Transfa/sendhooks-engine/releases/latest/download/sendhooks
  1. Make the Binary Executable
chmod +x sendhooks
  1. Run the Binary

Ensure that you have a config.json file in the same directory as the executable.

./sendhooks

In instances where Redis is actively running on localhost, executing the binary directly becomes a viable option.

Configuration Parameters

The following parameters are essential for configuring your Sendhooks operation. All parameters are optional as there are default values provided. However, if redisSsl is set to true, then redisCaCert, redisClientCert, and redisClientKey are required. These parameters should be defined in the config.json file:

  • redisAddress: Specifies the Redis server address. Default is 127.0.0.1:6379.
  • redisDb: Specifies the Redis database to be used. Default is 0.
  • redisPassword: Optional. Used to set a password for accessing Redis. No default value.
  • redisSsl: Boolean value to enable or disable SSL/TLS. Default is false.
  • redisCaCert, redisClientCert, redisClientKey: Required when redisSsl is true. Set these to the paths of the respective SSL/TLS certificates.
  • redisStreamName: Specifies the Redis stream to be used for webhook data. Default is hooks.
  • redisStreamStatusName: Specifies the Redis stream to be used for status updates. Default is sendhooks-status-updates.

When redisSsl is enabled (set to true), ensure that the redisCaCert, redisClientCert, and redisClientKey parameters are correctly configured with the respective certificate paths.