Skip to content

Getting Started

Prerequisites

  • Python 3.10+
  • PostgreSQL
  • Redis
  • Node.js 18+ (for Ops UI and dbt docs)
  • AWS credentials (for S3 access)

Installation

1. Install Python dependencies

bash
./venv/bin/pip install -r requirements.txt

2. Configure credentials

bash
cp config.py.sample config.py

Edit config.py with your actual values:

ConfigDescription
DATABASE_URLPostgreSQL connection string
REDIS_URLRedis connection string
FINERACT_*Fineract base URL and credentials
AWS_*AWS access key, secret, region
INTERNAL_ORCHESTRATION_TOKENToken for service-to-service auth

3. Initialize database tables

Run this once to create all required schemas and tables:

bash
python scripts/init_all_tables.py

Or individually:

bash
./venv/bin/python scripts/init_s3_file_log_table.py
./venv/bin/python scripts/init_webhook_tables.py
./venv/bin/python scripts/init_fineract_api_log_table.py

4. Configure dbt

Create ~/.dbt/profiles.yml:

yaml
fineract_engine:
  target: dev
  outputs:
    dev:
      type: postgres
      host: 127.0.0.1
      port: 5432
      user: postgres
      password: ""
      dbname: fineract
      schema: raw
      threads: 4
      sslmode: prefer

Validate the connection:

bash
cd dbt/
dbt debug

See DBTSETUP.md for full details.

Database Schemas

SchemaPurpose
RAWSource data as-is: CSV loads, webhook JSON, Fineract audit logs, S3 file tracking
BASEdbt-transformed incremental models (standardized, deduplicated)
COREBusiness logic layer - loan master, transaction data, repayment queue

Next Steps

Turno Fineract LMS Documentation