How shaneisrael/fireshare works
Fireshare is a self-hosted media library for sharing game clips, videos, and images through public or link-only links. A viewer opens the web client, browses or follows a share link, and plays media; the client’s service layer communicates with Flask API routes, which use media models and stored files. Separate branches support ingestion and uploads, library administration, games and tags, and account security. The README documents additional capabilities such as transcoding, profiles, RSS, and notifications; some implementation links are omitted because their source was not sampled.
Main entry points: __init__.py API registration · models.py Media records · App.js Client routing · Watch.js Video viewing
Components 25
Web client
- Client routing
app/client/src/App.js - Video viewing
app/client/src/views/Watch.js - Media browsing
app/client/src/views/Home.js - Video player
app/client/src/components/player/VideoJSPlayer.js - API services
app/client/src/services/Api.js - Login interface
app/client/src/views/Login.js
Flask API
- API registration
app/server/fireshare/api/__init__.py - Video routes
app/server/fireshare/api/video.py - Image routes
app/server/fireshare/api/image.py - Upload routes
app/server/fireshare/api/upload.py - Library scanning
app/server/fireshare/api/scan.py - Library administration
app/server/fireshare/api/admin.py - Transcoding
app/server/fireshare/api/transcoding.py - Games and metadata
app/server/fireshare/api/game.py - Tags
app/server/fireshare/api/tag.py - Folder sharing
app/server/fireshare/api/folder.py - RSS and notifications
app/server/fireshare
Media library
- Media records
app/server/fireshare/models.py - Media database
app/server/fireshare/models.py - Media files
Accounts and security
- Login and MFA
app/server/fireshare/auth.py - Users and profiles
app/server/fireshare/api/users.py - Permission rules
app/server/fireshare/permissions.py
Other components
- Viewer
- External integrations
Connections 31
- Viewer → Client routing: uses
README.md - Client routing → Video viewing: routes to
app/client/src/App.js - Client routing → Media browsing: routes to
app/client/src/App.js - Video viewing → Video player: renders
- Video viewing → API services: requests media
- API services → API registration: sends API requests
- API registration → Video routes: registers
app/server/fireshare/api/__init__.py - API registration → Image routes: registers
app/server/fireshare/api/__init__.py - API registration → Upload routes: registers
app/server/fireshare/api/__init__.py - API registration → Library scanning: registers
app/server/fireshare/api/__init__.py - API registration → Library administration: registers
app/server/fireshare/api/__init__.py - API registration → Transcoding: registers
app/server/fireshare/api/__init__.py - API registration → Games and metadata: registers
app/server/fireshare/api/__init__.py - API registration → Tags: registers
app/server/fireshare/api/__init__.py - API registration → Folder sharing: registers
app/server/fireshare/api/__init__.py - Video routes → Media records: uses records
app/server/fireshare/api/video.py - Video routes → Media files: serves originals
- Media records → Media database: persists records
app/server/fireshare/models.py - Library scanning → Media records: updates catalog
- Upload routes → Media files: accepts uploads
- Transcoding → Media files: creates renditions
- Library administration → Media records: manages records
app/server/fireshare/api/admin.py - Viewer → Login interface: signs in
README.md - Login interface → API services: uses services
- Login and MFA → Permission rules: checks access
app/server/fireshare/auth.py - Users and profiles → Permission rules: applies rules
- API registration → Users and profiles: registers
app/server/fireshare/api/__init__.py - Games and metadata → Media records: uses records
- Tags → Media records: uses records
- Folder sharing → Media records: uses records
- External integrations → RSS and notifications: receives notices