**Core Value:** Users can securely access and manage files on the Pi from anywhere via the web, with the server completely isolated to its designated storage directory.
## v1 Requirements
Requirements for initial release. Each maps to roadmap phases.
### Authentication
- [ ]**AUTH-01**: User can log in with username and password
- [ ]**AUTH-02**: Passwords stored with secure hashing (bcrypt/argon2)
- [ ]**AUTH-03**: JWT tokens for session management
- [ ]**AUTH-04**: User can log out
### CLI Tool
- [ ]**CLI-01**: Admin can create user account with username/password
- [ ]**CLI-02**: Admin can delete user account
- [ ]**CLI-03**: Admin can change user password
- [ ]**CLI-04**: Admin can list all users
### File Operations
- [ ]**FILE-01**: User can browse folders and see file listing
- [ ]**FILE-02**: User can upload files
- [ ]**FILE-03**: User can download files
- [ ]**FILE-04**: User can delete files and folders
- [ ]**FILE-05**: User can create folders
- [ ]**FILE-06**: User can rename files and folders
- [ ]**FILE-07**: User can move files and folders
### Web UI
- [ ]**UI-01**: Current path displayed (non-clickable)
- [ ]**UI-02**: `..` entry for navigating up one directory
- [ ]**UI-03**: File sizes displayed in listing
- [ ]**UI-04**: Upload progress indicator
### Infrastructure
- [ ]**INFRA-01**: Docker container runs isolated to mounted volume only
- [ ]**INFRA-02**: Single binary Go backend
## v2 Requirements
Deferred to future release. Tracked but not in current roadmap.
### UI Enhancements
- **UI-05**: Drag-and-drop file upload
- **UI-06**: Responsive mobile design
- **UI-07**: Clickable breadcrumb navigation
### Features
- **FEAT-01**: File preview (images, text, video)
- **FEAT-02**: Bulk file selection and operations
## Out of Scope
Explicitly excluded. Documented to prevent scope creep.
| Feature | Reason |
|---------|--------|
| Self-registration | Security — admin creates accounts via CLI only |
| Web admin panel | Simplicity — CLI is sufficient for small user base |
| Per-user private folders | Not needed — trusted group shares one space |