ACI.dev is the open source tool-calling platform that hooks up 600+ tools into any agentic IDE or custom AI agent through direct function calling or a...
docker pull pgvector/pgvector
docker run -d --name aci -p 5432:5432 --restart always pgvector/pgvector:pg17
podman run -d --name aci -p 5432:5432 --restart always pgvector/pgvector:pg17
skopeo inspect docker://docker.io/pgvector/pgvector:pg17
oras pull pgvector/pgvector:pg17
docker compose up -d
name: aci
services:
db:
# Note: we need to use the pgvector/pgvector:pg17 image to use the pgvector extension, instead of the official postgres image
image: pgvector/pgvector:pg17
healthcheck:
test: ["CMD-SHELL", "pg_isready -U user -d local_db"]
interval: 1s
retries: 5
start_period: 1s
timeout: 10s
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: local_db
ports:
- "5432:5432"
restart: no
test-db:
image: pgvector/pgvector:pg17
healthcheck:
test: ["CMD-SHELL", "pg_isready -U user -d local_db"]
interval: 1s
retries: 5
start_period: 1s
timeout: 10s
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: local_db
restart: no
aws:
image: localstack/localstack
ports:
- "4566:4566"
environment:
- DEBUG=1
- DATA_DIR=/var/lib/localstack/data
- SERVICES=kms
- LS_LOG=warn
volumes:
- ./scripts/create-kms-encryption-key.sh:/etc/localstack/init/ready.d/create-kms-encryption-key.sh
propelauth_mock:
build:
context: .
dockerfile: Dockerfile.runner
ports:
- "12800:12800"
working_dir: /workdir
volumes:
- ./mock/propelauth_mock_server.py:/workdir/propelauth_mock_server.py
command: uvicorn propelauth_mock_server:app --proxy-headers --forwarded-allow-ips=* --host 0.0.0.0 --port 12800 --reload
server:
build:
context: .
dockerfile: Dockerfile.server
healthcheck:
test: ["CMD-SHELL", "curl localhost:8000/v1/health"]
interval: 10s
retries: 5
start_period: 3s
timeout: 10s
env_file:
- .env.local
# useful for development, changes take effect in the container without needing to rebuild the image.
volumes:
- ./aci/server:/workdir/aci/server
- ./aci/common:/workdir/aci/common
# Mocks out the propelauth_fastapi module in server container to bypass token validation in local development
- ./mock/propelauth_fastapi_mock.py:/workdir/.venv/lib/python3.12/site-packages/propelauth_fastapi/__init__.py
ports:
- "8000:8000"
# this overrides the default CMD specified in the Dockerfile, use this for local development
command: uvicorn aci.server.main:app --proxy-headers --forwarded-allow-ips=* --host 0.0.0.0 --port 8000 --reload --no-access-log
depends_on:
db:
condition: service_healthy
aws:
condition: service_healthy
restart: no
# can think of runner as an staging host for executing any commands
# e.g., run cli commands and scripts such as seed db etc.
runner:
build:
context: .
dockerfile: Dockerfile.runner
env_file:
- .env.local
# Mount the local code into the container so you can run scripts / Alembic
volumes:
- ./aci:/workdir/aci
- ./apps:/workdir/apps
- ./scripts:/workdir/scripts
- ./evals:/workdir/evals
- ./alembic.ini:/workdir/alembic.ini
# Mocks out the propelauth_fastapi module in server container to bypass token validation in local development
- ./mock/propelauth_fastapi_mock.py:/workdir/.venv/lib/python3.12/site-packages/propelauth_fastapi/__init__.py
command: >
/bin/sh -c "alembic upgrade head && tail -f /dev/null"
depends_on:
db:
condition: service_healthy
server:
condition: service_healthy
test-runner:
build:
context: .
dockerfile: Dockerfile.runner
env_file:
- .env.local
environment:
# override the db host to use the test-db service
- SERVER_DB_HOST=test-db
- ALEMBIC_DB_HOST=test-db
- CLI_DB_HOST=test-db
# Mount the local code into the container so you can run scripts / Alembic
volumes:
- ./aci:/workdir/aci
- ./apps:/workdir/apps
- ./scripts:/workdir/scripts
- ./evals:/workdir/evals
- ./alembic.ini:/workdir/alembic.ini
# Mocks out the propelauth_fastapi module in server container to bypass token validation in local development
- ./mock/propelauth_fastapi_mock.py:/workdir/.venv/lib/python3.12/site-packages/propelauth_fastapi/__init__.py
command: >
/bin/sh -c "alembic upgrade head && tail -f /dev/null"
depends_on:
test-db:
condition: service_healthy
aws:
condition: service_healthy