Skip to content

Filesystem Layout

This page documents the filesystem structure inside the Docker containers.

Container Filesystem

PathModePurpose
/dataRead-onlyProject source files (mounted from host)
/artefactsRead-writeAll writable state and outputs
/config/system_prompt.mdRead-onlyDomain-specific system prompt
/appRead-onlyApplication code (baked into image)
/tmptmpfsTemporary files (noexec, nosuid, nodev)
/runtmpfsRuntime ephemeral storage
/opt/venvRead-onlyPython virtual environment (workers only)

/data — Project Files

The project data directory is mounted read-only from the host. For the Karavanke project, the structure is:

/data/
└── PID_Karavanke/
    ├── A-01_Zbirni načrt/           # Master index
    │   └── 1. Obrazci/              # Title pages, index PDFs
    ├── B-01_Predor - finalna dela/  # Tunnel final works
    │   ├── 00_Tekst/                # Specifications, kampada registry (Excel)
    │   ├── 01_Situacije/            # Site plans (PDF, DWG)
    │   ├── 02_Vzdolžni prerezi/     # Longitudinal sections
    │   ├── 03_Prečni prerezi/       # Cross sections
    │   ├── 04_Detajli/              # Detail drawings
    │   ├── 05_Armaturni načrti/     # Reinforcement plans
    │   ├── 06_Opažni načrt/         # Formwork plans
    │   └── IFC/                     # BIM models
    ├── B-02_Predor - izkop in podpiranje/  # Excavation & support
    ├── B-03_Portalna zgradba - arhitektura/
    ├── B-04_Portalna zgradba - gradbene konstrukcije/
    ├── C-01_Načrt krajinske arhitekture/
    ├── C-02_Lokacije vtočkov izkopanega materiala/
    └── C-0x_...                     # Additional disciplines

Key Files

FileLocationDescription
Kampada RegistryB-01_Predor - finalna dela/00_Tekst/251114_ListaKampad_Elea_zaklenjeno.xlsx640 kampadas, 69 columns, 7 sheets
Attribute CodebookB-01_Predor - finalna dela/00_Tekst/KAR_Kodna_knjiga_atributov_v2.9.xlsx592 element types + 67 enumerations
Model InventoryB-01_Predor - finalna dela/IFC/Seznam_modelov_BIM_PID.xlsx177 IFC models

/artefacts — Writable State

All writable state is under the artefacts directory:

/artefacts/
├── state/
│   ├── auth.db                    # User authentication database
│   ├── session_registry.db        # Session slot manager database
│   └── home/
│       └── .claude/
│           ├── .credentials.json  # Anthropic credentials
│           └── projects/          # Conversation state per project
├── sessions/
│   ├── <session-key-1>/          # Session 1 outputs
│   │   ├── betonske_plosce_volumni.csv
│   │   └── ...
│   ├── <session-key-2>/          # Session 2 outputs
│   └── pending/                  # Provisioned but not yet bound
├── conversations/
│   └── export/                   # Exported conversation data
└── logs/
    └── *.jsonl                   # Transcript logs

Session Artefacts

Each session gets an isolated output directory. Files generated by the agent (CSV exports, summaries, analysis results) are saved here and accessible through the web UI's file browser.

/config — Configuration

/config/
└── system_prompt.md              # Domain knowledge and agent behavior rules

The system prompt is mounted read-only and reloaded on each query. Edit the file on the host to update agent behavior without restarting.

Volume Mounts Summary

yaml
# docker-compose.yml volume mapping
volumes:
  # Project data — read-only
  - "${DATA_PATH:-../data}:/data:ro"

  # Writable state and outputs
  - "${ARTEFACTS_PATH:-./artefacts}:/artefacts"

  # System prompt — read-only
  - "${SYSTEM_PROMPT_PATH:-./config/system_prompt.md}:/config/system_prompt.md:ro"