How samukadev/offlinet works
OffliNet is a LAN-hosted media streaming and private file-cloud application. Users connect from a browser, configure storage roots, and browse indexed files; they can then stream films or audio, preview and manage files, or manage torrent downloads. The server scans roots, exposes API routes, streams media, and persists catalog and application state. The README documents broader capabilities than the sampled source excerpts, so some feature-to-route connections are omitted where exact wiring could not be verified.
Main entry points: index.ts Bun HTTP Server · App.tsx App Router · db.ts SQLite Repositories · media.ts Media Routes
Components 24
LAN Client
- App Router
src/client/App.tsx
Media Experience
- Movie Catalog
src/client/components/MovieMode.tsx - Video Player
src/client/components/VideoPlayer.tsx - Audio Player
src/client/components/AudioPlayer.tsx - Audio Queue
src/client/context/AudioContext.tsx
Files And Storage
- Media Preview
src/client/components/MediaPreviewModal.tsx - File Explorer
src/client/components/FileExplorer.tsx - Storage Settings
src/client/components/StorageSettings.tsx
Server Runtime
- Bun HTTP Server
src/server/index.ts - Storage Routes
src/server/routes/storage.ts - File Routes
src/server/routes/files.ts - Media Routes
src/server/routes/media.ts - Playlist Routes
src/server/routes/playlists.ts - System Routes
src/server/routes/system.ts - Library Scanner
src/server/scanner.ts - Range Streaming
src/server/streamer.ts - Thumbnail Service
src/server/thumbnail.ts - SQLite Repositories
src/server/db.ts - LAN Discovery
src/server/network.ts
Torrent Downloads
- Torrent Manager UI
src/client/components/TorrentManager.tsx - Torrent Routes
src/server/routes/torrents.ts - Torrent Engine
src/server/torrentManager.ts
Other components
- LAN Devices
- Configured Disks
Connections 36
- LAN Devices → App Router: opens
- App Router → Movie Catalog: shows
- App Router → File Explorer: routes to
- App Router → Storage Settings: routes to
- App Router → Torrent Manager UI: routes to
- Movie Catalog → Video Player: starts playback
- App Router → Audio Player: renders
- Audio Player → Audio Queue: uses queue
- File Explorer → Media Preview: opens item
- Storage Settings → Storage Routes: configures roots
- App Router → Bun HTTP Server: requests API
- Bun HTTP Server → Storage Routes: dispatches
- Bun HTTP Server → File Routes: dispatches
- Bun HTTP Server → Media Routes: dispatches
- Bun HTTP Server → Playlist Routes: dispatches
- Bun HTTP Server → System Routes: dispatches
- Bun HTTP Server → Torrent Routes: dispatches
- Storage Routes → SQLite Repositories: reads/writes roots
- Storage Routes → Library Scanner: starts scans
- Library Scanner → Configured Disks: indexes files
- Library Scanner → SQLite Repositories: stores catalog
- File Routes → SQLite Repositories: reads catalog
- File Routes → Configured Disks: manages files
- Media Routes → SQLite Repositories: looks up media
- Media Routes → Range Streaming: streams ranges
- Media Routes → Thumbnail Service: serves thumbnails
- Video Player → Bun HTTP Server: requests stream
- Media Preview → Bun HTTP Server: loads content
- Playlist Routes → SQLite Repositories: stores playlists
- System Routes → LAN Discovery: gets LAN addresses
- System Routes → SQLite Repositories: reads system state
- Torrent Manager UI → Torrent Routes: controls downloads
- Torrent Routes → Torrent Engine: delegates control
- Torrent Engine → SQLite Repositories: persists status
- Torrent Engine → Configured Disks: writes downloads
- Torrent Engine → Library Scanner: indexes completed files