Containers

Running with Docker

docker run --rm \
  -e LOOM_HOST=loom.internal \
  -e LOOM_PORT=7733 \
  -v /media/assets:/data \
  metaloom/cortex:latest \
  process run /data

Server Mode

docker run -d \
  --name cortex \
  -p 8093:8093 \
  -e LOOM_HOST=loom.internal \
  -e LOOM_PORT=7733 \
  -v cortex-meta:/root/.cache/metaloom/cortex/meta \
  metaloom/cortex:latest \
  server start

Docker Compose with Loom

version: "3.8"
services:
  postgres:
    image: postgres:16
    environment:
      POSTGRES_DB: loom
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: secret

  loom:
    image: metaloom/loom:latest
    depends_on: [postgres]
    ports:
      - "8092:8092"
    environment:
      LOOM_DB_HOST: postgres
      LOOM_DB_PASSWORD: secret

  cortex:
    image: metaloom/cortex:latest
    depends_on: [loom]
    command: server start
    environment:
      LOOM_HOST: loom
      LOOM_PORT: 7733
    volumes:
      - /media/assets:/data
      - cortex-meta:/root/.cache/metaloom/cortex/meta

volumes:
  cortex-meta:

Kubernetes CronJob

Cortex can run as a Kubernetes CronJob for scheduled batch processing:

apiVersion: batch/v1
kind: CronJob
metadata:
  name: cortex-ingest
spec:
  schedule: "*/15 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: cortex
            image: metaloom/cortex:latest
            args: ["process", "run", "/data"]
            env:
            - name: LOOM_HOST
              value: loom.svc.cluster.local
            - name: LOOM_PORT
              value: "7733"
            volumeMounts:
            - name: media
              mountPath: /data
          volumes:
          - name: media
            persistentVolumeClaim:
              claimName: media-pvc
          restartPolicy: OnFailure