Skip to content

Linux - Cardano DB Sync Installation

Complete guide for installing Cardano DB Sync on Debian 12 with PostgreSQL database and NIX package manager, including service configuration

Debian 12Cardano DB SyncPostgreSQLNIXBlockchainDatabase

Important Notes

Please note these important points before setup

Cardano Node

A running Cardano Node is required for DB Sync

Disk Space

At least 700GB free disk space (Cardano Node: 203GB, DB Sync: 10GB, PostgreSQL: 438GB)

RAM Requirement

At least 48GB RAM (Cardano Node: 24GB, DB Sync: 21GB, System: 3GB)

Synchronization Time

Initial synchronization can take several days

Root Access

Root access or sudo permission required

Setup Steps

Install PostgreSQL and additional extensions

sudo apt install postgresql postgresql-contrib

Enable PostgreSQL service for automatic startup

sudo systemctl enable postgresql

Start PostgreSQL service

sudo systemctl start postgresql

Connect to PostgreSQL console as postgres user

sudo -u postgres psql

Create Cardano database user with password

CREATE USER cardano WITH PASSWORD 'PASSWORD';

Use a strong, secure password

Create Cardano Explorer database

CREATE DATABASE cexplorer OWNER cardano;

Grant all privileges for the database

GRANT ALL PRIVILEGES ON DATABASE cexplorer TO cardano;

Switch to cardano user account

sudo -i -u cardano

Clone Cardano DB Sync repository

git clone https://github.com/IntersectMBO/cardano-db-sync.git

Change to cardano-db-sync directory

cd cardano-db-sync/

List available version tags

git tag | sort -V

Switch to specific version tag

git switch -d tags/13.6.0.5

Install Cardano DB Sync with NIX

nix profile install .

This installation may take some time

Create PostgreSQL password file

.pgpass
localhost:5432:cexplorer:cardano:PASSWORD

Set file permissions for security

chmod 600 ~/cardano-config/.pgpass

Create system-wide symbolic link

sudo ln -sf /home/cardano/.nix-profile/bin/cardano-db-sync /usr/local/bin/cardano-db-sync

Create systemd service configuration file

cardano-db-sync.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[Unit]Description=Cardano DB SyncAfter=network.target cardano-node.serviceRequires=cardano-node.service [Service]User=cardanoGroup=cardanoWorkingDirectory=/home/cardano/cardano-configEnvironment="PGPASSFILE=/home/cardano/cardano-config/.pgpass"ExecStart=/usr/local/bin/cardano-db-sync \  --config /home/cardano/cardano-config/db-sync-config.json \  --socket-path /home/cardano/cardano-db/node.socket \  --state-dir /home/cardano/cardano-db-sync-state \  --schema-dir /home/cardano/cardano-db-sync/schema Restart=on-failureRestartSec=10LimitNOFILE=32768 [Install]WantedBy=multi-user.target

Reload systemd for new service

sudo systemctl daemon-reload

Enable service for automatic startup

sudo systemctl enable cardano-db-sync

Start Cardano DB Sync service

sudo systemctl start cardano-db-sync

Check service status

sudo systemctl status cardano-db-sync

Follow service logs in real-time

journalctl -u cardano-db-sync -f

Additional Tips

Useful commands and tips for better management

Cardano DB Sync Installation Complete!

Your Cardano DB Sync is now running and synchronizing blockchain data to the PostgreSQL database. Monitor logs and synchronization progress regularly.