Simple open source MLOps stack with docker compose.
This setup requires docker and docker compose. The easiest way to get started is to install docker desktop.
Create a .env file with the following keys. Values below are only placeholders and can be freely changed.
POSTGRES_DATABASE=postgres
POSTGRES_HOST=postgres
POSTGRES_PASSWORD=password
POSTGRES_PORT=5432
POSTGRES_USER=postgres
MINIO_ROOT_USER=minio
MINIO_ROOT_PASSWORD=password
Now run the following command:
docker compose up -d
Once the applications have started and are ready, you can access them on the following urls:
- MLflow: http://localhost:5001
- MinIO: http://localhost:9001
- Qdrant: http://localhost:6333/dashboard
- Argilla: http://localhost:6900
- PostgreSQL (SQL)
- MinIO (object storage)
- Qdrant (vector search)
- Argilla (data annotation)
- MLflow (experiment tracking & model registry)
The following commands will stop the containers, update images if new versions have been published and redeploy containers.
docker compose stop
docker compose pull
docker compose up -d
- MLflow: no official image containing psycopg2. Workaround of running
pip install psycopg2
prior to launching server. (Not enough benefits to create custom image). - postgreSQL: Setting up databases per application. Mounting init-db.sql to docker-entrypoint-initdb.d folder which is automatically run only if postgres volume is empty.