Skip to main content
Version: Next

Quickstart Linux

For a quick and tested local installation: (Default debian with apt and python3)

Install Docker

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
sudo usermod -aG docker $USER
newgrp docker

Install k3d, kubectl, and helm

curl -s https://raw.githubusercontent.com/rancher/k3d/main/install.sh | bash
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
sudo apt-get install -y openssl

Clone the project repo

git clone https://gitlab.com/civitas-connect/civitas-core/civitas-core.git
cd civitas-core

Setup Developer Environment

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

ansible-galaxy collection install -r ansible-collections.yml

Setup local k8s Cluster

export KUBECONFIG=~/.kube/config
./local_deployment/startup.sh -k
# Add Domain Entries
sudo sh -c "cat << 'EOF' >> /etc/hosts
127.0.0.1 civitas.test
127.0.0.1 alertmanager.civitas.test
127.0.0.1 api-dashboard.civitas.test
127.0.0.1 api.civitas.test
127.0.0.1 api-admin.civitas.test
127.0.0.1 apim.civitas.test
127.0.0.1 geoportal.civitas.test
127.0.0.1 geoserver.civitas.test
127.0.0.1 grafana.civitas.test
127.0.0.1 idm.civitas.test
127.0.0.1 mimir.civitas.test
127.0.0.1 minio-tenant-console.civitas.test
127.0.0.1 minio-tenant.civitas.test
127.0.0.1 monitoring.civitas.test
127.0.0.1 mqtt.civitas.test
127.0.0.1 oauth.civitas.test
127.0.0.1 oauth.geoportal.civitas.test
127.0.0.1 pgadmin.civitas.test
127.0.0.1 superset.civitas.test
EOF"

Install Civitas Core in k8s

Run the playbook using an inventory. Default values are in core_platform/default_inventory.yml.
The default is also used as a fallback if a variable is not specified.

inventory_loc_k3d.yml is a minimal inventory for Civitas-Core using a local k3d cluster.
For customization, core_platform/default_inventory.yml can be used as a baseline.

ansible-playbook -l localhost -i inventory_loc_k3d.yml core_platform/playbook.yml