Chromia
Start Building

02 / 05Advanced

Set up your project

Before you begin, install the following:

Set up PostgreSQL database

Set up PostgreSQL database

Rell needs PostgreSQL 16.3. You can use the IDE without a database, but you won't be able to run a node. Running a console or a remote postchain app doesn't need a database.

By default, Rell expects this database configuration:

  • database: postchain
  • user: postchain
  • password: postchain

Install

  1. Install Homebrew by following the Homebrew installation guide.

  2. Install PostgreSQL:

    shell
    brew install postgresql@16brew services start postgresql@16createuser -s postgres
  3. Create and configure the database:

    plsql
    psql -U postgres -c "CREATE DATABASE postchain WITH TEMPLATE = template0 LC_COLLATE = 'C.UTF-8' LC_CTYPE = 'C.UTF-8' ENCODING 'UTF-8';" -c "CREATE ROLE postchain LOGIN ENCRYPTED PASSWORD 'postchain'; GRANT ALL ON DATABASE postchain TO postchain;"
Install Chromia CLI

Install Chromia CLI

Follow these steps to install and update the Chromia CLI.

Prerequisite

You need the following before you start:

  • PostgreSQL database: Follow Set up PostgreSQL database.
  • RELL_JAVA environment: Chromia CLI runs on a Java runtime, version 21 or later. The package managers handle this dependency for you, so no manual setup is needed. To choose which Java runtime Chromia CLI uses, set the RELL_JAVA environment variable to a valid Java installation.

Installation

Install Chromia CLI through a package manager, or download it directly from Chromia CLI Packages.

On macOS, install Chromia CLI (chr) as follows:

  1. If you don't have Homebrew yet, install it:

    bash
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  2. Add the Chromia repository to Homebrew:

    bash
    brew tap chromia/core https://gitlab.com/chromaway/core-tools/homebrew-chromia.git
  3. Install Chromia CLI:

    bash
    brew install chromia/core/chr
  4. Confirm the installation by printing the version:

    bash
    chr --version

Updating Chromia CLI

Either download the newest Chromia CLI from the packages page, or, if you installed it with a package manager, update it with the command for your platform:

shell
brew updatebrew upgrade chr

Docker

You can also run Chromia CLI inside a standalone Linux container where it comes pre-installed. You still need the PostgreSQL database set up.

The published Docker images require Docker to be installed and configured on your host. For Windows, Mac, and Linux instructions, see the Docker guide on how to install Docker.

Start the Docker container with Chromia CLI pre-installed

To run the latest Chromia CLI, call docker run with the CLI image name followed by chr.

shell
docker run --rm -v $(pwd):/usr/app registry.gitlab.com/chromaway/core-tools/chromia-cli/chr:<latest version> chr

To update or remove the Docker image, consult the Docker CLI reference.

bash
#!/bin/bash# Allocate a pseudo-TTY one when run in interactive modeif [ -t 0 ] && [ -t 1 ] ; then TTY="--tty"; else TTY=""; fidocker run \  # Sets the network to host to not need to change the database hostname (linux only)  --network=host \  # Set timezone based on system settings (linux only)  -e TZ=$(cat /etc/timezone) \  # Sets process ownership to current user  --user $(id -u):$(id -g) \  --mount type=bind,source="/etc/passwd",target=/etc/passwd,readonly \  --mount type=bind,source="/etc/group",target=/etc/group,readonly \  # Configures ssh-agent (only needed if chr install is called on non-public repositores)  -e SSH_AUTH_SOCK=$SSH_AUTH_SOCK \  --volume "$SSH_AUTH_SOCK:$SSH_AUTH_SOCK" \  --mount type=bind,source="${HOME}/.ssh",target=${HOME}/.ssh,readonly \  --mount type=bind,source="${HOME}/.config/jgit",target=${HOME}/.config/jgit \  # Mounts current folder into the container (Use `Get-Location` on PowerShell)  --mount type=bind,source="$(pwd)",target=/usr/app \  --interactive ${TTY} \  --rm \  registry.gitlab.com/chromaway/core-tools/chromia-cli/chr:${CHR_VERSION:-latest} chr "$@"

Clone the repository

Get a local copy of the course repository:

shell
git clone https://bitbucket.org/chromawallet/chat-agent-course.git

Change into the project folder:

shell
cd chat-agent-course

Install the necessary libraries

shell
npm install

If npm install fails, try Bun instead:

shell
bun install

To install Bun, see the Bun installation instructions.

Your environment is now set up for the course.

Written for this site from Chromia’s public course. Code samples are the course’s own.