Skip to main content
By default, Noēsis writes episodes under ./runs/demo/.... In a team or service setting, you usually want a shared location so everyone can see/replay the same traces. This guide shows four common setups:
  1. Network volume (NFS/SMB)
  2. Local + S3 sync
  3. Docker bind mount
  4. Kubernetes PersistentVolumeClaim
Pick one of these patterns for your environment—you don’t need all four.

A) Shared dev: network volume

# Example: shared volume mounted at /srv/noesis/runs
ls /srv/noesis/runs
# (empty or existing runs)
Configure your app/runtime to use it as the base runs directory, e.g.:
# pseudo-config
NOESIS_RUNS_DIR=/srv/noesis/runs
Result: /srv/noesis/runs/<service>/<episode-id>/ is shared across the team.

B) Shared dev: local + S3 (or any object store)

Don’t write directly to S3; sync a local directory.
# App writes episodes locally
NOESIS_RUNS_DIR=/var/noesis/runs

# Periodic sync job (cron/CI)
aws s3 sync /var/noesis/runs s3://my-bucket/noesis-runs --delete

# Optionally pull shared episodes down
aws s3 sync s3://my-bucket/noesis-runs /var/noesis/runs
Pattern: local path for fast replay/debugging, S3 as central archive.

C) Docker: bind-mount the runs directory

mkdir -p /srv/noesis/runs

docker run \
  -v /srv/noesis/runs:/app/runs \
  -e NOESIS_RUNS_DIR=/app/runs \
  my-noesis-service:latest
Inside the container, Noēsis writes to /app/runs/...; on the host, you see /srv/noesis/runs/....

D) Kubernetes: PersistentVolumeClaim

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: noesis-runs-pvc
spec:
  accessModes: ["ReadWriteMany"]
  resources:
    requests:
      storage: 20Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-noesis-service
spec:
  template:
    spec:
      containers:
        - name: app
          image: my-noesis-service:latest
          env:
            - name: NOESIS_RUNS_DIR
              value: /var/noesis/runs
          volumeMounts:
            - name: noesis-runs
              mountPath: /var/noesis/runs
      volumes:
        - name: noesis-runs
          persistentVolumeClaim:
            claimName: noesis-runs-pvc
Each pod writes episodes under /var/noesis/runs, backed by the shared PVC.
If you can answer “Where do episodes live in this environment?” and “Who can read them?”, you’re ready to roll Noēsis out beyond your laptop.