Installation into Conda environment#

This installation route installs all necessary software – including the prerequisite services PostgreSQL and RabbitMQ – into a Conda environment. This is the recommended method for users on shared systems and systems where the user has no administrative privileges. If you want to install AiiDA onto you own personal workstation/laptop, it is recommanded to use the system-wide installation.


This installation method installs all software into a conda environment, including PostgreSQL and RabbitMQ. See the system-wide installation to use Conda only to install the AiiDA (core) Python package.

Install prerequisite services + AiiDA (core)

Install the aiida-core package and all required services in a Conda environment.

  1. We strongly recommend using mamba instead of the default conda (or environment resolution may time out). Consider using Mambaforge when starting from scratch, or conda install -c conda-forge mamba.

  2. Open a terminal and execute:

$ mamba create -n aiida -c conda-forge aiida-core
$ mamba activate aiida
Start-up services and initialize data storage

Before working with AiiDA, you must first initialize a database storage area on disk.

(aiida) $ initdb -D mylocal_db

This database cluster (located inside a folder named mylocal_db) may contain a collection of databases (one per profile) that is managed by a single running server process. We start this process with:

(aiida) $ pg_ctl -D mylocal_db -l logfile start


The default port 5432 may already be in use by another process. In this case, you can pass the -o "-F -p <port-num>" option to the pg_ctl command, <port-num> being the desired port number. Then for the psql command, you can pass the -p <port-num> option.

Then, start the RabbitMQ server:

(aiida) $ rabbitmq-server -detached


The services started this way will use the default ports on the machine. Conflicts may happen if there are more than one user running AiiDA this way on the same machine, or you already have the server running in a system-wide installation. To get around this issue, you can explicitly define the ports to be used.

Setup profile

Next, set up an AiiDA configuration profile and related data storage, with the verdi quicksetup command.

(aiida) $ verdi quicksetup
Info: enter "?" for help
Info: enter "!" to ignore the default and set no value
Profile name: me
Email Address (for sharing data):
First name: my
Last name: name
Institution: where-i-work


In case of non-default ports are used for the database cluster and the RabbitMQ server, you can pass them using --db-port and --broker-port options respectively.

Is AiiDA unable to auto-detect the PostgreSQL setup?

If you get an error saying that AiiDA has trouble autodetecting the PostgreSQL setup, you will need to do the manual setup explained in the troubleshooting section.

Once the profile is up and running, you can start the AiiDA daemon(s):

(aiida) $ verdi daemon start 2


The verdi daemon(s) must be restarted after a system reboot.


Do not start more daemons then there are physical processors on your system.

Check setup

To check that everything is set up correctly, execute:

(aiida) $ verdi status
✓ version:     AiiDA v2.0.0
✓ config:      /path/to/.aiida
✓ profile:     default
✓ storage:     Storage for 'default' @ postgresql://username:***@localhost:5432/db_name / file:///path/to/repository
✓ rabbitmq:    Connected as amqp://
✓ daemon:      Daemon is running as PID 2809 since 2019-03-15 16:27:52

Missing a checkmark or ecountered some other issue?

See the troubleshooting section.

What’s next?

Shut-down services

After finishing with your aiida session, particularly if switching between profiles, you may wish to power down the daemon and the services:

(aiida) $ verdi daemon stop
(aiida) $ pg_ctl -D mylocal_db stop
(aiida) $ rabbitmqctl stop
Restart the services

If you want to restart the services and the daemon:

(aiida) $ pg_ctl -D mylocal_db start
(aiida) $ rabbitmq-server -detached
(aiida) $ verdi daemon start


If different ports are used, you have to pass them here as well.