#1 requirements.lock was incomplete (missing python-multipart, mcp, chain deps)
- Switch Dockerfile to use requirements.txt (loose pins)
- Add python-multipart>=0.0.9 and mcp>=1.25.0 to requirements.txt
#2 main.py wrong import: AuditTrail does not exist
- core/audit.py defines AuditLog, not AuditTrail
- Updated import + usage
#3 main.py wrong import path: _PersistentStore doesn't exist
- Actual class is PersistentStore (no underscore prefix)
- Lives in routers/_persistent_store.py (not routers/chain_vault.py)
- Updated import path + name
#4 DB volume permissions broken
- Added entrypoint.sh that chowns /data to walletpress:walletpress as root
- Reordered Dockerfile: COPY entrypoint + chmod before USER directive
- Added /data mkdir + chown in Dockerfile for build-time setup
After fixes:
- walletpress-backend container Up (healthy)
- 112 API endpoints accessible at /backend/*
- Tailscale access works, direct IP requires basic auth