Concepts
How Frachtschiff thinks about disks, copies, and capacity - the model behind the UI.
Storage pool
All configured drives form a single logical pool. The webapp shows:
- Raw free - sum of free space across drives.
- Effective / usable - capacity adjusted for replication (a 100 GB High-priority file targeting 4 drives consumes ~400 GB of pool capacity).
Effective free is what matters for “can I upload this?”
Drive
A drive is a configured directory bind-mounted into the API (for example
/mnt/disk1tb → /data/drives/drive-c). That path can be a local disk, a
single data directory, or a network volume already mounted on the host. You can run with
one drive or many. The backend tracks label, path, capacity, and health. Users never
browse by drive in the file tree.
Files and placement
- Each file has a metadata record in Postgres and one or more whole-file blob copies.
- v1 stores entire files per copy - no chunking or erasure coding.
- Placement picks drives with free space, spreads copies, and respects tier targets.
Priority tiers
| Tier | Target copies | Admin default |
|---|---|---|
| Normal | N | 1 |
| Medium | N | 2 |
| High | All healthy drives, or capped N | all |
Folders set a default priority; files may override; child folders inherit unless overridden. The UI shows target vs actual (e.g. High · 3/4 copies).
Raising priority saves the tier immediately; extra copies are created only when you confirm Apply replication now. Lowering priority confirms space to reclaim, then deletes extra copies in the background.
Compliance states
| State | Meaning |
|---|---|
| Compliant | actual ≥ target |
| At risk | actual ≥ 1 but below target |
| Unavailable | actual == 0 (should not happen if upload rules hold) |
Auto-rebalance
When enabled (default), the system may move Normal-priority blobs off a full drive to make room for higher-tier replicas. Medium/High copies are never auto-moved in v1. Rebalance is best-effort.
Trash
Delete moves files to trash (blobs remain). Emptying trash removes all blob copies asynchronously.
Next: Web app · Admin guide