Installation with docker

Requirements: docker and docker-compose

To build and deploy actinia, run

git clone
cd actinia-core
docker-compose -f docker/docker-compose.yml up

Now you have a running actinia instance locally! Check with

  • For how to add data to this setup, how to run actinia locally with most recent GRASS GIS or how to fix common startup errors, see more details in docker README.

Local installation

A local installation requires a full GRASS GIS installation. Make sure all requirements are fulfilled to compile GRASS GIS from the git repository.

These installation instructions are based on a Ubuntu Linux system (other operating systems and distributions are fine, too).

First install PROJ and GRASS GIS by downloading the latest packages and GRASS GIS git version and compile it.

  1. Install the latest projection library
sudo apt-get update
sudo apt-get install proj-bin proj-data
  1. Set Python 3 environment

Note that this step changes python to point to python3, system-wide:

# recommended to give Python3 precedence over Python2 (which is end-of-life since 2019)
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1
  1. Compile and install GRASS GIS and additional modules:
# or some other location of your choice, /tmp will not keep data between reboots
cd /tmp

# fetch weekly generated latest snapshot of GRASS GIS stable
tar xzvf grass-8.0.git_src_snapshot_latest.tar.gz
mv grass-8.0.git_src_snapshot_????_??_?? grass
rm -f grass-8.0.git_src_snapshot_latest.tar.gz

cd grass

# production related compilation flags (no debugging enabled)
export CFLAGS="-O2 -std=gnu99 -fexceptions -fstack-protector -m64"
export CXXFLAGS="-O2"
export LDFLAGS="-Wl,--no-undefined -Wl,-z,now"

./configure \
  --with-cxx \
  --enable-largefile \
  --with-proj-share=/usr/share/proj \
  --with-gdal \
  --with-geos \
  --with-sqlite \
  --with-cairo --with-cairo-ldflags=-lfontconfig \
  --with-fftw \
  --with-netcdf \
  --with-bzlib \
  --with-zstd \
  --without-postgres \
  --without-freetype \
  --without-openmp \
  --without-opengl \
  --without-nls \
  --without-mysql \
  --without-odbc \
  --without-openmp \

make -j8
sudo make install

cd temporal/
git clone
cd t.rast.sample
cd ../..
sudo make install

# t.rast.udf
# see

cd display/
git clone d.rast.multi
cd d.rast.multi
cd ../..
sudo make install
  1. Download the test datasets ("locations") and place them into a specific directory that will be used by actinia as a persistent database:
mkdir -p $HOME/actinia/grassdb
cd $HOME/actinia/grassdb
tar xzvf nc_spm_08_grass7.tar.gz
rm -f nc_spm_08_grass7.tar.gz
mv nc_spm_08_grass7 nc_spm_08

tar xzvf ECAD.tar.gz
rm -f ECAD.tar.gz

tar xzvf LL.tar.gz
rm -f LL.tar.gz
mv LL latlong_wgs84
  1. Actinia Core must be installed and run within a (virtual) Python3 environment:
mkdir -p $HOME/actinia/workspace/tmp

cd /tmp

git clone actinia_core
cd actinia_core
pip install -r requirements.txt
python install
  1. Actinia API must be installed and run within a (virtual) Python3 environment:
mkdir -p $HOME/actinia/workspace/tmp

cd /tmp

git clone actinia-api
cd actinia-api
python install
  1. Make sure that a redis service is running and create a user with actinia-user tool
cd /tmp

# install and start redis server
apt-get install -y redis
redis-server &

# Create the superuser
actinia-user create -u superadmin -w abcdefgh -r superadmin -g admin -c 100000000000 -n 1000 -t 6000

# Start the actinia service with
actinia-server --host --port 5000
  1. Check the service with curl
export ACTINIA_URL="http://localhost:5000/api/${ACTINIA_VERSION}"
export AUTH='-u superadmin:abcdefgh'

curl ${AUTH} -X GET ${ACTINIA_URL}/locations

The curl command call should report back:


Success and welcome to actinia!