Percolate
  • Percolate - AI in the data tier
  • Getting started
    • Quick start
    • Docker
      • Services
    • Kubernetes
    • Managed Cloud
    • Basic concepts
      • Database components
      • Core functions
        • Entities
      • Admin Api
  • Configure
    • Add language models
    • Add tools via APIs
    • Add agents
  • Going multimodal
    • Introduction
    • Querying
      • Graph
      • Vector
      • Key-value
      • Relational
    • Indexing
  • Recipes
    • Percolating Python-first
    • Percolating SQL-first
    • Percolate for SREs
    • No-code Percolate
    • Founder's DataRoom P8
    • Document Drafter P8
  • Concepts
    • Why put AI in the data tier?
Powered by GitBook
On this page
  1. Getting started

Docker

Docker is the easiest way to try out Percolate on your local machine. In the last section it was used for quick setup and here we provide more details

PreviousQuick startNextServices

Last updated 3 months ago

To run Percolate via docker, first clone the and from the root of the repo -

docker compose up -d

The credentials to connect to Postgres using your preferred client are in the docker-compose.yaml

services:
  postgres:
    image: percolationlabs/postgres-base:16
    container_name: percolate
    platform: linux/amd64
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: app
    ports:
      - "5438:5432"
    volumes:
      - percolate_data:/var/lib/postgresql/percolate
      - ./extension/sql:/docker-entrypoint-initdb.d
    restart: unless-stopped
volumes:
  percolate_data:

You will notice that the port is 5438and you can connect with postgres:postgres

One useful way to check that the installation scripts ran is to check the watermark with -

select * from p8."Session"

Of course, you will truly know Percolate is ready if you can ask it questions -

You need to have api keys set in the database. In some cases we can load these from the environment. In other cases you may want to add them to the p8.LanguageModelApi table. The tokens can be added to make it easier to run queries that require tokens. The cli can be used to sync keys from your environment to your local database.

select * from percolate('How do i add my own agents and entities to Percolate?')

The installation scripts in the docker compose are used to add extensions and Percolate schema elements to the database. If you wish you can remove some or all of the files in the local /extension/sql. Among other things, the install adds a number of extension for vector and graph data and also http requests.

The volume percolate_data is used to mount data.

Here is a reminder of some useful commands when working with Docker containers

Command
What it does

docker volume ls

list volumes in use by postgres/percolate

docker stop <container__id>

stop the running container e.g. to free a port

docker rm <container__id>

remove a container e.g. to clean up

docker compose down --volumes

detach volumes in use

docker logs [service]

check logs for one of the services

docker pull hub/image

ensure you have the latest image

docker compose restart percolate-api

example of restarting just one service for example to pull a new image and restart

repo