# Capital Index Database Middleware
## Overview
### About This Project
The **Capital Index Database Middleware** provides an abstraction layer for your database, enhancing query management and change monitoring. It streamlines database interactions while ensuring efficient performance and security.
### Repository Contents
This repository includes:
- **Middleware Source Code** – The core logic for database interaction.
- **Dockerfile** – Configuration for containerized deployment.
- **Install & Management Scripts** – Scripts for streamlined installation and maintenance.
## Getting Started
### Installation
#### Step 1: Install Required Dependencies
Before installing, ensure you have the necessary dependencies to download and build the Docker container.
Debian/Ubuntu
```bash
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y wget git docker.io
```
[Optional] Install Docker BuildKit:
```bash
sudo apt-get install -y docker-buildx
```
CentOS/Fedora
> **Note:** If using CentOS 7, replace `dnf` with `yum`.
```bash
sudo dnf update -y && sudo dnf upgrade -y
sudo dnf install -y wget git docker
```
[Optional] Install Docker BuildKit:
```bash
sudo dnf install -y docker-buildx
```
Arch Linux
```bash
sudo pacman -Syu --noconfirm
sudo pacman -S --noconfirm wget git docker
```
[Optional] Install Docker BuildKit:
```bash
sudo pacman -S --noconfirm docker-buildx
```
Alpine Linux
```bash
sudo apk update && sudo apk upgrade
sudo apk add --no-cache wget git docker
```
[Optional] Install Docker BuildKit:
```bash
sudo apk add --no-cache docker-cli-buildx
```
#### Step 2: Run the Setup Script
After installing dependencies, configure Docker permissions and run the setup script:
1. Add your user to the Docker group and re-login:
```bash
sudo usermod -aG docker $USER && sudo su - $USER
```
2. Download and execute the `setup.sh` script:
```bash
mkdir -p ~/.db-middleware/scripts \
&& rm -rf ~/.db-middleware/scripts/* \
&& cd ~/.db-middleware/scripts \
&& wget -qO setup.sh https://gitea.abdulhade.com/abdulhade/db-middleware/raw/branch/main/scripts/setup.sh \
&& bash setup.sh
```
---
## Configuration
During installation, you will be prompted to configure the following variables:
### 1. API_PORT
- Defines the port the middleware listens on.
- **Default:** `8080`
- Access within your machine: `http://localhost:8080`
- Ensure this port is forwarded if external access is required.
### 2. CONTAINER_NAME
- Specifies the name of the Docker container running the middleware.
### 3. HAS_LOCAL_DBS
Determines how the middleware connects to databases:
- **Enter `0`** – If all the databases are hosted on a remote server.
- **Enter `1`** – If one or more of the database runs on the same machine.
> **Note:** By default, Docker containers operate on an isolated network. If your database is local, the middleware must be configured to run on the same network to ensure connectivity.
---
## Next Steps
- [ ] **Test Your Setup** – Run a sample query to verify functionality.
- [ ] **Configure External Access** – If needed, update firewall and network settings.
- [ ] **Monitor Logs** – Use `docker logs ` to check for issues.
For further assistance, refer to the project documentation or open an issue in the repository.