Skip to main content

Installation

We provide pre-built binaries, Docker Images and Helm Charts

Binary (Cross-platform)

Download the appropriate version for your platform from releases page. Once downloaded, the binary can be run from anywhere. You don’t need to install it into a global location. This works well for shared hosts and other systems where you don’t have a privileged account. Ideally, you should install it somewhere in your PATH for easy use. /usr/local/bin is the most probable location.

Homebrew

# Install shield (requires homebrew installed)
$ brew install goto/taps/shield

# Upgrade shield (requires homebrew installed)
$ brew upgrade shield

# Check for installed shield version
$ shield version

Docker

Prerequisites

  • Docker installed

Run Docker Image

Shield provides Docker image as part of the release. Make sure you have Spicedb and postgres running on your local and run the following.

# Download docker image from docker hub
$ docker pull gotocompany/shield

# Run the following docker command with minimal config.
$ docker run -p 8080:8080 \
-e SHIELD_DB_DRIVER=postgres \
-e SHIELD_DB_URL=postgres://shield:@localhost:5432/shield?sslmode=disable \
-e SHIELD_SPICEDB_HOST=spicedb.localhost:50051 \
-e SHIELD_SPICEDB_PRE_SHARED_KEY=randomkey
-v .config:.config
gotocompany/shield serve

Compiling from source

Prerequisites

Shield requires the following dependencies:

  • Golang (version 1.21 or above)
  • Git

Build

Run the following commands to compile shield from source

git clone git@github.com:goto/shield.git
cd shield
make build

Use the following command to test

./shield version

Shield service can be started with the following command although there are few required configurations for it to start.

./shield server start