Skip to main content
This guide covers the installation, configuration, and maintenance of a self-hosted Kontratar instance. Self-hosting is intended for organizations that require a private deployment on their own infrastructure rather than using the Kontratar SaaS platform.

System requirements

RequirementMinimum specification
Operating systemLinux, macOS, or Windows with WSL
RAM8 GB
Disk space10 GB free
DockerDocker and Docker Compose installed
Python3.8 or later
GitInstalled
LiquibaseInstalled (used for database schema configuration)
NetworkInternet access required for installation

Prerequisites

Before starting the installation, prepare the following:

1. Database

A running PostgreSQL database (self-hosted or cloud-based, for example AWS RDS). You will need:
  • Database host, username, and password
  • An SSL certificate (.crt file) for verifying the database connection

2. SMTP (optional)

SMTP credentials for sending notification emails. While optional, SMTP is recommended for full platform functionality.

3. Redis

A Redis instance (cloud-based or self-hosted). You will need the host address, port, and password.

4. Domain name

A registered domain name for your self-hosted instance. You will need a TLS/SSL certificate to verify the domain connection.

Installation

Step 1: Download the installer

git clone https://github.com/your-org/kontratar-installer.git
cd kontratar-installer
The repository URL above is a placeholder. The actual URL will be provided during your onboarding process.

Step 2: Make the installer executable (Linux/macOS)

chmod +x install.py

Step 3: Run the installer

python3 install.py
The installer prompts you for the following information:
PromptDescription
Base portThe starting port for the application (for example, 3000). All services are offset from this port.
Domain nameThe domain for your self-hosted instance (for example, example.yourdomain.com). Optionally provide an SSL certificate path.
PostgreSQL credentialsHost, username, password, and SSL certificate path.
Redis credentialsHost, port, and password.
SMTP credentialsHost, username, password, and port.

What the installer does

The installer performs the following actions:
  1. Authenticates and accesses the Docker registry.
  2. Downloads and runs the Liquibase database schema setup.
  3. Generates an .env file with your environment variables.
  4. Creates a docker-compose.yml file with port mappings based on your base port.
  5. Pulls and runs all required containers.

Port mapping

All services are offset from your base port. For example, if your base port is 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
Record these ports for reference when verifying service health or troubleshooting.

Accessing your instance

After the containers are running, access Kontratar at:
https://<your-domain>:<base-port>

Verifying service health

curl https://<your-domain>:3001/api/checkalive        # Auth service
curl https://<your-domain>:3008/api/gateway/checkalive # API Gateway

Verifying running containers

docker ps                  # List running containers
docker logs <container>    # View logs for a specific container

Maintenance

Restarting all services

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

Viewing service logs

docker-compose logs -f <service_name>

Updating environment configuration

Edit the .env file, then restart:
docker-compose up -d --build

Reinstalling with new configuration

To reconfigure from scratch:
docker-compose down
rm .env docker-compose.yml
python3 install.py
  • Quick Start — Account creation and workspace configuration (applies to both SaaS and self-hosted instances).
  • Administrator Workspace — Organizational management after installation.
  • FAQ — Common questions about Kontratar.
Parent topic: Kontratar v1.2 Documentation