Requirements

Before starting, ensure your environment meets the following:

System Requirements

  • OS: Linux, macOS, or Windows with WSL
  • RAM: Minimum 8 GB
  • Disk: 10 GB free. The key requirement is for the system to support both Linux and Docker.

Software Requirements

  • Docker & Docker Compose installed.
  • Python 3.8+.
  • Git.
  • Liquibase (For Database Configuration Setup).
  • Internet access.

Prerequisites

1. Database Setup

  • A running PostgreSQL database (self-hosted or cloud e.g., AWS RDS).
  • SSL certificate (.crt) to verify DB connection.

2. SMTP Setup

  • SMTP credentials for sending notification emails (optional but recommended).

3. Redis

  • Redis host and credentials (cloud-based or self-hosted).

4. Domain Name

  • A domain name requires a certificate to verify the domain connection.

Installation Steps

1. Download the Installer

git clone https://github.com/your-org/kontratar-installer.git
cd kontratar-installer

# Please note the actual link would be updated later. 

2. Make the Installer Executable (Linux/macOS)

chmod +x install.py

3. Run the Installer

python3 install.py
You will be prompted to enter:
  • Base port for the application (e.g. 3000).
  • Domain name for the self-hosted app (e.g. example.yourdomain.com) and optional SSL cert path.
  • PostgreSQL host, user, password, SSL cert path.
  • Redis host, port, and password.
  • SMTP host, user, password, port.
The installer will:
  • Dynamically authenticate and access the Docker registry.
  • Download and run Liquibase schema setup.
  • Generate an .env file for environment variables.
  • Create a docker-compose.yml file with dynamic port mapping.
  • Pull and run all required containers.

🔄 Port Mapping

All services are offset from your base port (e.g., 3000):
ServicePort OffsetFinal Port
Frontend+03000
Auth Service+13001
Opps Controller+23002
SAM Data Feed+33003
SAM to Repository+43004
Opportunity Service+53005
Award Repository+63006
Information Service+73007
API Gateway+83008

It is essential to note these ports, so that we understand where each service of the containers would be running.

🔗 Accessing Your App

Once containers are running, access the kontratar platform through:
https://<your-domain>:<base-port>
You can verify service health with:
curl https://<your-domain>:3001/api/checkalive       # Auth service and other services
curl https://<your-domain>:3008/api/gateway/checkalive # Specific for api service          
You can run the following to verify containers:
docker ps                 # List running containers
docker logs <container>  # Inspect logs

Maintenance & Troubleshooting

Restarting Services

docker-compose down && docker-compose up -d

Checking Logs

docker-compose logs -f <service_name>

Check Container Logs

docker-compose logs -f <service_name>

Updating Environment

Edit .env And re-run:
docker-compose up -d --build

Re-running the Installer

To change configs completely, stop the running services with
docker-compose down
And then delete .env and docker-compose.yml:
rm .env docker-compose.yml
python3 install.py
Thank you for choosing Kontratar.