|
| 1 | +<img align="right" width="100" height="100" src="public/fluorite.svg"> |
| 2 | + |
1 | 3 | # Fluorite |
2 | 4 |
|
3 | | -A elegant PWA video player. |
| 5 | +An elegant, offline‑first PWA video player for your local media. Try the [official version](https://fluorite.afcms.dev)! |
4 | 6 |
|
5 | 7 |  |
6 | 8 |  |
7 | 9 |  |
8 | 10 |  |
9 | 11 |
|
10 | | -```shell |
| 12 | +## Features |
| 13 | + |
| 14 | +- Drag & Drop or file dialog to open a video |
| 15 | +- Clean controls with auto‑hide and keyboard shortcuts |
| 16 | +- Video info overlay (codec, bitrate, dimensions, etc.) |
| 17 | +- PWA: installable, offline‑ready with a service worker |
| 18 | +- Internationalization (currently English and French) |
| 19 | +- Privacy‑friendly: no server, no tracking; plays your local files in the browser |
| 20 | + |
| 21 | +## Quick start (local) |
| 22 | + |
| 23 | +This project requires pnpm. |
| 24 | + |
| 25 | +```bash |
| 26 | +corepack enable pnpm |
11 | 27 | pnpm install |
| 28 | + |
| 29 | +# Development (http://localhost:5173) |
12 | 30 | pnpm run dev |
13 | | -# or |
| 31 | + |
| 32 | +# Production build + preview (http://localhost:4173) |
14 | 33 | pnpm run build && pnpm run preview |
15 | 34 | ``` |
| 35 | + |
| 36 | +## Run with Docker |
| 37 | + |
| 38 | +Prebuilt images are published to GitHub Container Registry. |
| 39 | + |
| 40 | +Pull and run: |
| 41 | + |
| 42 | +```bash |
| 43 | +docker pull ghcr.io/afcms/fluorite:master |
| 44 | +docker run --rm -p 4173:80 ghcr.io/afcms/fluorite:master |
| 45 | +# Open http://localhost:4173 |
| 46 | +``` |
| 47 | + |
| 48 | +Build locally and run: |
| 49 | + |
| 50 | +```bash |
| 51 | +docker build -t fluorite:latest . |
| 52 | +docker run --rm -p 4173:80 fluorite:latest |
| 53 | +# Open http://localhost:4173 |
| 54 | +``` |
| 55 | + |
| 56 | +Docker details: |
| 57 | + |
| 58 | +- Preconfigured Caddy server serving static files from /srv |
| 59 | +- Hardened HTTP security headers |
| 60 | +- No volumes or env vars required |
| 61 | +- No TLS support (reverse proxy required for production use) |
| 62 | + |
| 63 | +## Internationalization |
| 64 | + |
| 65 | +Fluorite uses Lingui for i18n. |
| 66 | + |
| 67 | +```bash |
| 68 | +pnpm run extract # extract source strings |
| 69 | +# edit translations in src/locales/*/messages.po |
| 70 | +pnpm run build |
| 71 | +``` |
| 72 | + |
| 73 | +## Development |
| 74 | + |
| 75 | +Scripts of interest: |
| 76 | + |
| 77 | +- `pnpm run dev` — start dev server at http://localhost:5173 |
| 78 | +- `pnpm run build` — typecheck and build the app |
| 79 | +- `pnpm run preview` — preview the production build at http://localhost:4173 |
| 80 | +- `pnpm run lint` — run ESLint |
| 81 | +- `pnpm run test` — run unit tests (Vitest) |
0 commit comments