How jhnbrd/jhn-drive works
JHN Drive is a self-hosted, multi-user file-management application. Users request access, are approved by a superadmin, then authenticate to manage quota-limited files and folders; they can also publish public share links or use an isolated PIN-gated vault. The README documents media previews and streaming, folder ZIP downloads, storage isolation, and quotas. Sampled controller excerpts support the main drive and public sharing relationships; vault and some route wiring are represented from the README and repository tree, not sampled implementation.
Main entry points: web.php Web routes · DriveController.php File management and media · ShareController.php Public share delivery · SecretController.php PIN-gated vault
Components 18
Access and administration
- Web routes
routes/web.php - Authentication and requests
app/Http/Controllers/AuthController.php - Access administration
app/Http/Controllers/AdminController.php - User accounts and quotas
app/Models/User.php - Admin panel
resources/views/admin/index.blade.php
Personal drive
- File management and media
app/Http/Controllers/DriveController.php - Drive interface
resources/views/drive/index.blade.php - Local drive files
config/filesystems.php
Public sharing
- Public share delivery
app/Http/Controllers/ShareController.php - Share links
app/Models/SharedLink.php - Shared item interface
resources/views/share/show.blade.php
Secret vault
- PIN-gated vault
app/Http/Controllers/SecretController.php - Vault session guard
app/Http/Middleware/SecretVaultAuth.php - Vault interface
resources/views/secret/vault.blade.php - Vault PIN screen
resources/views/secret/pin.blade.php
Other components
- Drive user
- Superadmin
- Relational database
config/database.php
Connections 25
- Drive user → Web routes: sends requests
- Superadmin → Web routes: sends requests
- Web routes → Authentication and requests: dispatches auth
- Web routes → Access administration: dispatches admin
- Web routes → File management and media: dispatches drive
- Web routes → Public share delivery: dispatches shares
- Web routes → PIN-gated vault: dispatches vault
- Authentication and requests → User accounts and quotas: checks and creates
- Authentication and requests → Relational database: reads and writes
- Access administration → User accounts and quotas: updates accounts
- Access administration → Admin panel: renders dashboard
- Access administration → Local drive files: deletes user files
- File management and media → User accounts and quotas: checks quota
- File management and media → Local drive files: manages and streams
- File management and media → Share links: updates share links
- File management and media → Drive interface: renders drive
- File management and media → Relational database: reads and writes
- Public share delivery → Share links: loads link
- Public share delivery → Local drive files: reads shared files
- Public share delivery → Shared item interface: renders shared item
- Public share delivery → Relational database: updates download counts
- PIN-gated vault → Vault session guard: uses session guard
- PIN-gated vault → Vault PIN screen: renders PIN screen
- PIN-gated vault → Vault interface: renders vault
- PIN-gated vault → Local drive files: accesses vault files