https://github.com/napoii/fpvsessions
FPVSessions π β Self-hosted FPV Media Hub: πΉ browse, πΌοΈ preview, π·οΈ tag, π share & π auto-organize your sessions in a clean dark UI.
https://github.com/napoii/fpvsessions
bootstrap drone dronevideo flask fpv fpvapp fpvfootage fpvfreestyle fpvmedia fpvsessions fpvtools gunicorn nginx selfhosted
Last synced: about 1 month ago
JSON representation
FPVSessions π β Self-hosted FPV Media Hub: πΉ browse, πΌοΈ preview, π·οΈ tag, π share & π auto-organize your sessions in a clean dark UI.
- Host: GitHub
- URL: https://github.com/napoii/fpvsessions
- Owner: NapoII
- License: mit
- Created: 2025-08-24T22:29:51.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-08-28T11:15:04.000Z (10 months ago)
- Last Synced: 2025-08-28T18:30:40.450Z (10 months ago)
- Topics: bootstrap, drone, dronevideo, flask, fpv, fpvapp, fpvfootage, fpvfreestyle, fpvmedia, fpvsessions, fpvtools, gunicorn, nginx, selfhosted
- Language: HTML
- Homepage:
- Size: 2.61 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FPVSessions π
A modern, self-hosted FPV (First-Person View) session browser and sharing app. Browse your recorded sessions, preview videos and images, manage tags, generate share links, and download original filesβall in a clean, dark UI.
> Fast to set up, easy to use, and production-ready with Gunicorn + Nginx.
---
## Table of Contents
- [Features](#features-)
- [Quickstart (Local)](#quickstart-local-)
- [Project Structure](#project-structure-)
- [Auto organize & rename](#auto-organize--rename-)
- [Deployment (VPS)](#deployment-vps-)
- [Tech Stack](#tech-stack-)
- [License](#license)
---

## Features β¨
- Session overview with stats (videos, images, size, duration)
- Inline video player and image grid with lightbox
- Share links for single videos (public share page with embed meta tags)
- Download buttons for videos, logs, blackbox files, and metadata
- Tags: add/remove and save per session
- Admin Settings page: rebuild sessions index, manage users and permissions, upload drone images, set FPV base folder
- Consistent dark UI with Bootstrap 5 + Font Awesome icons
- Tames your FPV file jungle: scans your raw camera/goggle/blackbox dumps, auto-sorts them into clean session folders, and can optionally rename files to a consistent pattern
- Automatic thumbnails for videos and images; handy session cover art
- Powerful search and filter by date, tags, and filename
- Works even without the web UI: the organizer scripts build the tidy folder structure that the app can browse later
---
## Quickstart (Local) π§ͺ
1) Create and activate a virtual environment
```bash
python -m venv .venv
# Windows (PowerShell)
. .venv\\Scripts\\Activate.ps1
# Linux/macOS
# source .venv/bin/activate
```
2) Install dependencies
```bash
pip install -r FPVSession/requirements.txt
```
3) Run the app (development)
```bash
python FPVSession/wsgi.py
```
Open http://localhost:8007
> For production, use Gunicorn and (optionally) Nginx. See the Deployment section below.
---
## Project Structure π
```
My_FPV/
ββ FPVSession/
β ββ flask_app/
β β ββ app.py, templates/, static/, utils/
β β ββ sessions_config.json, users.json
β ββ wsgi.py
β ββ requirements.txt
ββ how-to-deploy/
ββ deploy.readme.en.md
ββ gunicorn.my_fpv.service
ββ nginx.conf
```
---
## Auto organize & rename ποΈ
Beat the FPV media chaos. FPVSessions can scan your source folders and:
- Group files by session (date/time range),
- Create a clean, consistent folder layout (e.g., FPV_Camera, Goggles, Blackbox, IMG, Meta),
- Optionally rename files to a canonical, sortable pattern,
- Generate thumbnails for quick browsing.
Where: see `auto_session_sorter/` for helper scripts like `1._Auto_rename.py` and `2._Auto_session.py`.
Use the organizer to prepare your library even if you donβt run the web UI yetβthe app will happily index and browse the structure later.
---
## Deployment (VPS) π
A complete step-by-step guide (system user, venv, systemd service, and Nginx reverse proxy):
- π [how-to-deploy/deploy.readme.en.md](how-to-deploy/deploy.readme.en.md)
You can also find example service and Nginx configs here:
- `how-to-deploy/gunicorn.my_fpv.service`
- `how-to-deploy/nginx.conf`
---
## Tech Stack π§°
- Backend: Flask
- Frontend: Bootstrap 5, Font Awesome
- Server: Gunicorn (WSGI), optional Nginx reverse proxy
---
## License βοΈ
This project is provided as-is. Add your chosen license here (e.g., MIT, Apache-2.0).