-
Notifications
You must be signed in to change notification settings - Fork 1
Installation & Deployment Guide
Welcome to the Sendium Installation Guide. This document provides step-by-step instructions on how to deploy the Sendium SMS Gateway in your environment. Sendium is containerized, making it easy to deploy using Docker or Docker Compose.
Before deploying Sendium, ensure your host machine or server meets the following network and resource requirements.
Network Ports Sendium requires the following ports to be available on the host machine:
2775: Smpp Server
8080: Backend REST API and Swagger UI.
Hardware Resources
Resource requirements depend heavily on your expected SMS throughput and the version of the image you choose to run (see Section 2).
Minimum Setup: 1 CPU Core, 1GB RAM (Native image) / 2GB RAM (Standard image).
Production Setup: 2+ CPU Cores, 4GB+ RAM.
Sendium provides two distinct Docker images hosted on Docker Hub under cytechmobile/sendium, optimized for different infrastructure needs:
Standard Image (JVM) * Best for: Traditional server environments with ample memory, where peak long-term throughput is the primary goal. Tag: latest (e.g., cytechmobile/sendium:latest)
Native Image (GraalVM) Best for: Cloud-native environments, microservices architectures, or edge devices. Compiled Ahead-of-Time (AoT), it offers near-instant startup times and a drastically reduced memory footprint. Tag: latest-native
If you want to quickly spin up Sendium for testing or development, you can use the standard Docker CLI. To run the Standard version:
Bash
docker run -d
--name sendium-gateway
-p 2775:2775
-p 8080:8080
cytechmobile/sendium:latest
To run the Native (GraalVM) version: Bash
docker run -d
--name sendium-gateway
-p 2775:2775
-p 8080:8080
cytechmobile/sendium:latest-native
For more robust deployments—especially when you need to pass multiple environment variables or connect Sendium to other services (like a database or Redis cache)—we highly recommend using Docker Compose.
Create a docker-compose.yml file in your deployment directory:
YAML version: '3.8'
services: sendium: image: cytechmobile/sendium:latest # Change to latest-native if preferred container_name: sendium-gateway restart: unless-stopped ports: - "2775:2775" # Smpp Server port - "8080:8080" # Backend / API Port environment: # Add your environment variables here networks: - sendium-network
Start the application by running the following command in the same directory as your docker-compose.yml file:
Bash
docker-compose up -d
Once the container is up and running, you can access the different components of Sendium using your web browser or API clients (like Postman):
Backend Base API: http://localhost:8080
Interactive API Documentation (Swagger): http://localhost:8080/swagger-ui
Note: If you are deploying Sendium on a remote server, replace localhost with the IP address or domain name of your server. Ensure that your firewall or cloud security groups allow inbound traffic on ports 2775 and 8080.