Skip to content

terra-sync/cnc

Repository files navigation

CNC - Database Replication Tool

Introduction

CNC is a robust tool designed in C to facilitate the replication of databases from a host to a target system. With its current focus on PostgreSQL, CNC aims to simplify and automate the database replication process, especially in cloud environments, thereby catering to the needs of DevOps teams.

Features

  • Database Replication: Seamlessly replicate databases from a host to a target system with minimal manual intervention.

  • PostgreSQL Support: Currently supports PostgreSQL with plans to extend functionality to other database systems.

  • Configuration Management: Easy management of database and application settings through .ini files.

  • Email Notifications (Under development): Integrates email functionalities to notify about replication status or errors.

Quick Start

  1. Clone the Repository

    git clone https://github.com/terra-sync/cnc
  2. Set Up Configuration

    Edit the .ini files in the configs directory to set up the database.

  3. Build the Project

    ./autogen.sh
    ./configure
    make
  4. Run the Application

    Execute the built application:

    ./cnc -f configs/test.ini
Note
To run with Docker read our docker documentation.

Configuration

The CNC tool uses .ini files for configuration. Here’s a brief overview:

  • PostgreSQL Settings: Configure host, user, password, port, and database details in the [postgres] section.

  • Email Settings (Under Development): Set up SMTP settings including username, password, host, and port in the [smtp] section.

    For a detailed configuration guide, please refer to Config Module Documentation.

Contributing

We welcome contributions! Please refer to CONTRIBUTING.adoc for guidelines on how to contribute to this project.

Authors

License

This project is licensed under the MIT License.