You must complete all steps found on the Prerequisites page before continuing.

Register and Run

Continue using the same path you’ve selected on the Prerequisites page to register and run your operator.

1

Pull the Docker Image

Install and run the docker daemon if you haven’t already then, pull the latest image from the GitHub Container Registry.

docker pull ghcr.io/predicatelabs/operator:<version>
2

Register with Predicate AVS

export ENV_FILE=Path_to_your_env_file
docker run --network host --env-file ${ENV_FILE} \
-v "${REGISTRATION_PRIVATE_KEY_STORE_PATH}:/app/registrationkey.json" \
-v "${PREDICATE_SIGNING_PRIVATE_KEY_STORE_PATH}:/app/signingkey.json" \
ghcr.io/predicatelabs/operator:<version> register \
--registration-private-key-store-path /app/registrationkey.json \
--predicate-signing-private-key-store-path /app/signingkey.json
3

Remove Registration Key

While we do not load registration keys in the following step, we suggest removing it from your config file before running the operator.

4

Run the Operator

export ENV_FILE=Path_to_your_env_file
docker run --network host --env-file ${ENV_FILE} -v "${DB_PATH}:/app/data/" \
-v "${PREDICATE_SIGNING_PRIVATE_KEY_STORE_PATH}:/app/signingkey.json" \
ghcr.io/predicatelabs/operator:<version> start \
--db-path /app/data/ \
--predicate-signing-private-key-store-path /app/signingkey.json
5

Confirm you are recieving tasks

Upon successfully starting up, the Predicate Operator should produce logs similar to the following:

    2024-09-09T23:18:14Z INF Received task for processing namespace=operator task_id=067eb50a-94a5-47f9-94cc-4110ad329073
    2024-09-09T23:18:14Z INF Processing task digest_hash=0x072096a774cb27178e4bcd95fdd8e5cd9ff504434bc2cd5291adfcb4cb919387 namespace=operator task_id=067eb50a-94a5-47f9-94cc-4110ad329073
    2024-09-09T23:18:14Z INF Policy enforcement result is_compliant=true namespace=operator task_id=067eb50a-94a5-47f9-94cc-4110ad329073

If you are not receiving tasks, please ensure your firewall is open and retry registration (step 2) with --skip-middleware-health-check set to false

To view additional configuration options: docker run ghcr.io/predicatelabs/operator:latest --help