Last active
January 26, 2026 20:01
-
-
Save retrozenith/947f062dbe0fd64c30577a3379df0d74 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?xml version="1.0"?> | |
| <!-- StreamyStats Unraid Template --> | |
| <!-- Created: 2025-01-26 --> | |
| <!-- Source: https://github.com/fredrikburmester/streamystats --> | |
| <!-- | |
| How to use: | |
| 1. wget -O /boot/config/plugins/dockerMan/templates-user/streamystats.xml "https://gist.githubusercontent.com/retrozenith/947f062dbe0fd64c30577a3379df0d74/raw/bf558d71197a03acf7ae76cf431530f3d4740216/unraid-streamystats-aio.xml" | |
| 2. Docker tab > Add Container > Select streamystats template | |
| 3. Change POSTGRES_PASSWORD and SESSION_SECRET (use: openssl rand -base64 32) | |
| --> | |
| <Container version="2"> | |
| <Name>streamystats</Name> | |
| <Repository>fredrikburmester/streamystats-v2-aio:latest</Repository> | |
| <Registry>https://hub.docker.com/r/fredrikburmester/streamystats-v2-aio</Registry> | |
| <Network>bridge</Network> | |
| <MyIP/> | |
| <Shell>sh</Shell> | |
| <Privileged>false</Privileged> | |
| <Support>https://github.com/fredrikburmester/streamystats</Support> | |
| <Project>https://github.com/fredrikburmester/streamystats</Project> | |
| <Overview>StreamyStats is an advanced analytics and statistics platform for Jellyfin media servers. Track watch time, monitor live sessions, analyze user behavior, and get AI-powered recommendations. Features include comprehensive dashboards, library statistics, multi-server support, AI chat with your library, and data import from Jellystat and Playback Reporting Plugin. Built with Next.js, TypeScript, and includes PostgreSQL database (no external database required).</Overview> | |
| <Category>MediaApp:Other Status:Stable</Category> | |
| <WebUI>http://[IP]:[PORT:3000]</WebUI> | |
| <TemplateURL/> | |
| <Icon>https://raw.githubusercontent.com/fredrikburmester/streamystats/refs/heads/main/apps/nextjs-app/public/web-app-manifest-512x512.png</Icon> | |
| <ExtraParams>--restart=unless-stopped</ExtraParams> | |
| <PostArgs/> | |
| <CPUset/> | |
| <DateInstalled></DateInstalled> | |
| <DonateText/> | |
| <DonateLink/> | |
| <Requires/> | |
| <Config Name="WebUI Port" Target="3000" Default="3000" Mode="tcp" Description="Web interface port" Type="Port" Display="always" Required="true" Mask="false">3000</Config> | |
| <Config Name="Data Directory" Target="/var/lib/postgresql/data" Default="/mnt/user/appdata/streamystats/data" Mode="rw" Description="PostgreSQL data storage" Type="Path" Display="always" Required="true" Mask="false">/mnt/user/appdata/streamystats/data</Config> | |
| <Config Name="POSTGRES_USER" Target="POSTGRES_USER" Default="postgres" Mode="" Description="PostgreSQL username" Type="Variable" Display="always" Required="true" Mask="false">postgres</Config> | |
| <Config Name="POSTGRES_PASSWORD" Target="POSTGRES_PASSWORD" Default="postgres" Mode="" Description="PostgreSQL password (change this!)" Type="Variable" Display="always" Required="true" Mask="true">postgres</Config> | |
| <Config Name="POSTGRES_DB" Target="POSTGRES_DB" Default="streamystats" Mode="" Description="PostgreSQL database name" Type="Variable" Display="always" Required="true" Mask="false">streamystats</Config> | |
| <Config Name="DATABASE_URL" Target="DATABASE_URL" Default="postgresql://postgres:postgres@localhost:5432/streamystats" Mode="" Description="Database connection URL (update if you changed user/password)" Type="Variable" Display="always" Required="true" Mask="false">postgresql://postgres:postgres@localhost:5432/streamystats</Config> | |
| <Config Name="SESSION_SECRET" Target="SESSION_SECRET" Default="" Mode="" Description="Secret key for sessions (generate a random string)" Type="Variable" Display="always" Required="true" Mask="true"></Config> | |
| <Config Name="NODE_ENV" Target="NODE_ENV" Default="production" Mode="" Description="Node environment" Type="Variable" Display="advanced" Required="false" Mask="false">production</Config> | |
| <Config Name="SESSION_POLL_INTERVAL_MS" Target="SESSION_POLL_INTERVAL_MS" Default="5000" Mode="" Description="Session polling interval in milliseconds" Type="Variable" Display="advanced" Required="false" Mask="false">5000</Config> | |
| <Config Name="CRON_ACTIVITY_SYNC" Target="CRON_ACTIVITY_SYNC" Default="*/1 * * * *" Mode="" Description="Activity sync schedule (cron format)" Type="Variable" Display="advanced" Required="false" Mask="false">*/1 * * * *</Config> | |
| <Config Name="CRON_RECENT_ITEMS_SYNC" Target="CRON_RECENT_ITEMS_SYNC" Default="*/1 * * * *" Mode="" Description="Recent items sync schedule (cron format)" Type="Variable" Display="advanced" Required="false" Mask="false">*/1 * * * *</Config> | |
| <Config Name="CRON_USER_SYNC" Target="CRON_USER_SYNC" Default="*/1 * * * *" Mode="" Description="User sync schedule (cron format)" Type="Variable" Display="advanced" Required="false" Mask="false">*/1 * * * *</Config> | |
| <Config Name="CRON_PEOPLE_SYNC" Target="CRON_PEOPLE_SYNC" Default="*/15 * * * *" Mode="" Description="People sync schedule (cron format)" Type="Variable" Display="advanced" Required="false" Mask="false">*/15 * * * *</Config> | |
| <Config Name="CRON_EMBEDDINGS_SYNC" Target="CRON_EMBEDDINGS_SYNC" Default="*/15 * * * *" Mode="" Description="Embeddings sync schedule (cron format)" Type="Variable" Display="advanced" Required="false" Mask="false">*/15 * * * *</Config> | |
| <Config Name="CRON_GEOLOCATION_SYNC" Target="CRON_GEOLOCATION_SYNC" Default="*/5 * * * *" Mode="" Description="Geolocation sync schedule (cron format)" Type="Variable" Display="advanced" Required="false" Mask="false">*/5 * * * *</Config> | |
| <Config Name="CRON_FINGERPRINT_SYNC" Target="CRON_FINGERPRINT_SYNC" Default="0 4 * * *" Mode="" Description="Fingerprint sync schedule (cron format)" Type="Variable" Display="advanced" Required="false" Mask="false">0 4 * * *</Config> | |
| <Config Name="CRON_JOB_CLEANUP" Target="CRON_JOB_CLEANUP" Default="*/1 * * * *" Mode="" Description="Job cleanup schedule (cron format)" Type="Variable" Display="advanced" Required="false" Mask="false">*/1 * * * *</Config> | |
| <Config Name="CRON_OLD_JOB_CLEANUP" Target="CRON_OLD_JOB_CLEANUP" Default="0 3 * * *" Mode="" Description="Old job cleanup schedule (cron format)" Type="Variable" Display="advanced" Required="false" Mask="false">0 3 * * *</Config> | |
| <Config Name="CRON_FULL_SYNC" Target="CRON_FULL_SYNC" Default="0 2 * * *" Mode="" Description="Full sync schedule (cron format)" Type="Variable" Display="advanced" Required="false" Mask="false">0 2 * * *</Config> | |
| <Config Name="CRON_DELETED_ITEMS_CLEANUP" Target="CRON_DELETED_ITEMS_CLEANUP" Default="0 * * * *" Mode="" Description="Deleted items cleanup schedule (cron format)" Type="Variable" Display="advanced" Required="false" Mask="false">0 * * * *</Config> | |
| <Config Name="SKIP_STARTUP_FULL_SYNC" Target="SKIP_STARTUP_FULL_SYNC" Default="false" Mode="" Description="Skip full sync on startup (true/false)" Type="Variable" Display="advanced" Required="false" Mask="false">false</Config> | |
| </Container> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment