2024-11-02 12:01:29 +01:00
---
title: Overview
layout: home
nav_order: 1
---
2024-11-04 06:00:28 +01:00
# Goma Gateway
2024-11-02 12:01:29 +01:00
{:.no_toc}
2024-11-29 17:24:12 +01:00
Goma Gateway is a lightweight High-Performance Declarative API Gateway Management.
2024-11-02 12:01:29 +01:00
2024-11-03 04:07:05 +01:00
< img src = "https://raw.githubusercontent.com/jkaninda/goma-gateway/main/logo.png" width = "150" alt = "Goma logo" >
2024-11-18 10:40:12 +01:00
## Features
It's designed to be straightforward and efficient, offering a rich set of features, including:
### Core Features
- **RESTful API Gateway Management**
Simplify the management of your API Gateway with powerful tools.
- **Domain/Host-Based Request Routing**
Route requests based on specific domains or hosts.
- **Multi-Domain Request Routing**
Handle requests across multiple domains seamlessly.
- **Reverse Proxy**
Efficiently forward client requests to backend servers.
- **WebSocket Proxy**
Enable real-time communication via WebSocket support.
### Security and Control
- **Cross-Origin Resource Sharing (CORS)**
Define and manage cross-origin policies for secure interactions.
- **Custom Headers**
Add and modify headers to meet specific requirements.
- **Backend Errors Interceptor**
Catch and handle backend errors effectively.
- **Block Common Exploits Middleware**
- Detect patterns indicating SQL injection attempts.
- Identify basic cross-site scripting (XSS) attempts.
- **Authentication Middleware**
- Support for **JWT** with client authorization based on request results.
- **Basic-Auth** and **OAuth** authentication mechanisms.
### Monitoring and Performance
- **Logging**
Comprehensive request and response logging.
- **Metrics**
Gather insights and monitor performance metrics.
- **Rate Limiting**
- **In-Memory Rate Limiting**: Client IP-based request throttling.
- **Distributed Rate Limiting**: Leverage Redis for scalable, client IP-based rate limits.
- **Load Balancing**
Use a round-robin algorithm for efficient load distribution.
### Configuration and Flexibility
- **Support for Multiple Route Configuration Files**
Organize routes across multiple `.yml` or `.yaml` files.
- **TLS Support**
Ensure secure communication with TLS integration.
- **HTTP Method Restrictions**
Limit HTTP methods for specific routes to enhance control.
Define your routes and middleware directly in code for seamless configuration.
2024-11-02 12:01:29 +01:00
2024-11-04 06:00:28 +01:00
----
2024-11-03 04:07:05 +01:00
Architecture:
< img src = "https://raw.githubusercontent.com/jkaninda/goma-gateway/main/goma-gateway.png" width = "912" alt = "Goma archi" >
2024-11-02 12:01:29 +01:00
We are open to receiving stars, PRs, and issues!
{: .fs-6 .fw-300 }
---
2024-11-07 00:00:58 +01:00
The [jkaninda/goma-gateway ](https://hub.docker.com/r/jkaninda/goma-gateway ) Docker image can be deployed on Docker, Docker in Swarm mode, and Kubernetes.
2024-11-02 12:01:29 +01:00
## Available image registries
This Docker image is published to both Docker Hub and the GitHub container registry.
Depending on your preferences and needs, you can reference both `jkaninda/goma-gateway` as well as `ghcr.io/jkaninda/goma-gateway` :
```
docker pull jkaninda/goma-gateway
docker pull ghcr.io/jkaninda/goma-gateway
```
Documentation references Docker Hub, but all examples will work using ghcr.io just as well.
## References
2024-11-04 06:00:28 +01:00
We decided to publish this image as a simpler and more lightweight because of the following requirements:
2024-11-02 12:01:29 +01:00
2024-11-09 15:06:09 +01:00
- The original image is based on `Alpine` , making it heavy.
2024-11-02 12:01:29 +01:00
- This image is written in Go.
- `arm64` and `arm/v7` architectures are supported.
- Docker in Swarm mode is supported.
- Kubernetes is supported.