mirror of
https://github.com/BreizhHardware/Jellystat.git
synced 2026-01-18 16:27:20 +01:00
6b1d5932b659a98552e30323210cd5f9776a2f11
added latest activity view to assist in grouping added triggers as the view is a material view and will need to be updated when changes are made to activity table created new view to include episode and library metadata to reduce join operations needed in query
Jellystat is a free and open source Statistics App for Jellyfin! (This project is still in development - expect some weirdness)
Current Features
- Session Monitoring and logging
- Statistics for all Libraries and Users
- Watch History
- User Overview and activity
- Watch statisitcs
- Backup and restore Data
- Auto sync library items
- Jellyfin Statistics Plugin Integration
Required Development
- Responsive UI
- Code Optimizations
- Security Testing
- More Validations and Error Handling
- Multi-Server support
- More to come
Environmental Variables
| Env | Default | Example | Description |
|---|---|---|---|
POSTGRES_USER REQUIRED |
null |
postgres |
Username that will be used in postgres database |
POSTGRES_PASSWORD REQUIRED |
null |
postgres |
Password that will be used in postgres database |
POSTGRES_IP REQUIRED |
null |
jellystat-db or 192.168.0.5 |
Hostname/IP of postgres instance |
POSTGRES_PORT REQUIRED |
null |
5432 |
Port Postgres is running on |
JWT_SECRET REQUIRED |
null |
my-secret-jwt-key |
JWT Key to be used to encrypt JWT tokens for authentication |
TZ REQUIRED |
null |
Etc/UTC |
Server timezone (Can be found at https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List) |
| JS_BASE_URL | / |
/ |
Base url |
| JS_USER | null |
User |
Master Override User in case username or password used during setup is forgotten (Both JS_USER and JS_PASSWORD required to work) |
| JS_PASSWORD | null |
Password |
Master Override Password in case username or password used during setup is forgotten (Both JS_USER and JS_PASSWORD required to work) |
| POSTGRES_DB | jfstat |
jfstat |
Name of postgres database |
| REJECT_SELF_SIGNED_CERTIFICATES | true |
false |
Allow or deny self signed SSL certificates |
| JS_GEOLITE_ACCOUNT_ID | null |
123456 |
maxmind.com user id to be used for Geolocating IP Addresses (Can be found at https://www.maxmind.com/en/accounts/current/edit) |
| JS_GEOLITE_LICENSE_KEY | null |
ASDWdaSdawe2sd186 |
License key you need to generate on maxmind to use their services |
| MINIMUM_SECONDS_TO_INCLUDE_PLAYBACK | 1 |
10 |
The minimum time (in seconds) to include a playback record, which can be used to exclude short playbacks |
Getting Started with Development
- Clone the project from git
- Set your env variables before starting the server (Variable names as per Environmental Variables above).
- Run
npm installto install necessary packages - Run
npm run buildto build local files ready to run - Run
npm run start-serverto only run the backend nodejs server - Run
npm run start-clientto only run the frontend React UI - Run
npm run start-appto run both backend and frontend at the same time
When contributing please ensure to log a pull request on the unstable branch
Launching Jellystat using Docker
Check out our dockerhub to run Jellystat: https://hub.docker.com/r/cyfershepard/jellystat
Environment variables from files (Docker secrets)
You can set any environment variable from a file by using the prefix FILE__
As an example:
jellystat:
environment:
FILE__MYVAR: /run/secrets/MYSECRETFILE
Will set the environment variable MYVAR based on the contents of the /run/secrets/MYSECRETFILE file. see docker secrets for more info.
Screenshots
Support
- Bug reports and feature requests can be submitted via GitHub Issues.
- Join us in our Discord
API Documentation
To-do
Languages
JavaScript
95.5%
CSS
4%
Shell
0.2%
HTML
0.2%