* feat: add Overseerr migration
* refactor: rename to Seerr
* refactor: more rename to Seerr
* feat: update the value of the MediaStatus.DELETED enum
* fix: add more details in migration logs
* fix: replace .update by .save for TypeORM hooks
* fix: add fake migration to skip the duplicated UpdateWebPush migration
* fix: rewrite the AddUserAvatarCacheFields migration for Overseerr merge
* fix: replace jellyseerr migrations with a dedicated one for overseerr
* fix: update overseerr migration
* fix: update overseerr migration
* fix: remove irrelevant changes
* fix: typos
* docs: update jsdoc comment
* docs: update seerr description
* docs: fix the contributing.md link
* fix: remove unwanterd change on postgres dev datasource
* docs: add latest tag to docker image
* fix: migrate old deleted status for 4k media
* fix: update Seerr version check
* feat(dns): implement dns caching
* feat: simple implementation of dnscaching
* feat: dynamic ttl which is revalidated while using stale dns cache
This is done as tmdb ttl is very less like 40 seconds so to make sure
any issues wont be caused due to cached dns (previously we were caching
for 5 minutes no matter what ttl)
* feat(dns): improve DNS cache with multi-strategy fallback system
- multiple DNS resolution strategie
- graceful fallbacks between IPv6 and IPv4 addresses
- network error reporting in fetch fix
- compatibility with cypress testing (I HOPE)
* fix: typos
* feat: dns cache stats in jobs & cache page (and cleanup)
* feat(networksettings): cache dns off by default
* feat: make dnsCache optional and enable-able through network settings
* chore(i18n): extract translation keys
* test(cypress): fix cypress testing
* feat(dnscache): dns cache entries are now flushable
* style(cypress): run prettier
* chore(cypresssettings): git ignore cypress json settings
* chore: ignore cypress/config/settings.json
* fix(dnscache): use entry specific hits and misses not global
* refactor: clean up console logs
* fix(dnscache): fix miss counter
* feat(dnscache): global stats
* chore(i18n): extract translation keys
* refactor: use date-fns for formatting age and remove useless code
* refactor: remove cypress testing options in dnsCacheManager
* refactor: remove console logs
* refactor: removed useless condition when its always truthy
* fix: remove FetchAPI-related code
* fix: remove old ipv4first setting
* refactor: use our own dns-caching package instead
* fix: correct dns-caching module configuration
* fix: correct dns-caching module configuration
* fix: remove useless lru-cache dependency
* fix: update dns-caching to v0.2.0
* fix: add env variable for min/max ttl & update dns-caching
* fix: update dns-caching package
* fix: add force min/max TTL in network settings
* docs: add docs for dns caching
---------
Co-authored-by: Gauthier <mail@gauthierth.fr>
- Divided Docker and standalone installation methods in tabs
- Added some guidance for PostgreSQL socket paths, Docker networking requirements, and migration procedures
* Update reverse-proxy.mdx
Add Apache2 configuration as per #1760
* Update reverse-proxy.mdx
Apache2 moved to the bottom.
Location update to sync with nginx docs
* feat(blacklist): add 'Hide Blacklisted Items' setting to general settings and UI
* feat(migration): add HideBlacklistedItems migration for PostgreSQL and SQLite
* feat(settings): add hideBlacklisted option to application settings
* feat(settings): add tooltips for hideAvailable and hideBlacklisted options in settings
* chore(migration): remove HideBlacklistedItems migration files for PostgreSQL and SQLite
* docs(settings): clarify description of 'Hide Blacklisted Items' setting to specify it affects all users
* docs(settings): update tooltip and description for 'Hide Blacklisted Items' to clarify it applies to all users, including administrators
* docs(settings): clarify 'Hide Blacklisted Items' functionality to specify it applies only to administrators with the "Manage Blacklist" permission
* fix(hooks): update permission check for 'Hide Blacklisted Items' to include 'Manage Blacklist'
* fix(settings): update tooltip for 'Hide Blacklisted Items' to clarify it applies to all users with the "Manage Blacklist" permission
* feat(settings): add experimental badge to settings tooltip for 'Hide Available' option
* feat(blacklist): add blacktag settings to main settings page
* feat(blacklist): create blacktag logic and infrastructure
* feat(blacklist): add scheduling for blacktags job
* feat(blacklist): create blacktag ui badge for blacklist
* docs(blacklist): document blacktags in using-jellyseerr
* fix(blacklist): batch blacklist and media db removes to avoid expression tree too large error
* feat(blacklist): allow easy import and export of blacktag configuration
* fix(settings): don't copy the API key every time you press enter on the main settings
* fix(blacklist): move filter inline with page title to match all the other pages
* feat(blacklist): allow filtering between manually blacklisted and automatically blacklisted entries
* docs(blacklist): reword blacktag documentation a little
* refactor(blacklist): remove blacktag settings from public settings interfaces
There's no reason for it to be there
* refactor(blacklist): remove unused variable from processResults in blacktagsProcessor
* refactor(blacklist): change all instances of blacktag to blacklistedTag and update doc to match
* docs(blacklist): update general documentation for blacklisted tag settings
* fix(blacklist): update setting use of "blacklisted tag" to match between modals
* perf(blacklist): remove media type constraint from existing blacklist entry query
Doesn't make sense to keep it because tmdbid has a unique constraint on it
* fix(blacklist): remove whitespace line causing prettier to fail in CI
* refactor(blacklist): swap out some != and == for !s and _s
* fix(blacklist): merge back CopyButton changes, disable button when there's nothing to copy
* refactor(blacklist): use axios instead of fetch for blacklisted tag queries
* style(blacklist): use templated axios types and remove redundant try-catches
* feat: support disabling jellyfin login
* feat: revamp login screen
Update the login screen for better usability, especially with OpenID
Connect and Plex login, allowing one-click login and removing the
accordion layout. Additionally, ensures that media server login is
hidden when disabled in the settings.
* test: update cypress login command
* docs: update the current list of features we offer
* docs: add the missing `)`
Co-authored-by: Gauthier <mail@gauthierth.fr>
* docs: use proper acronym case
Co-authored-by: Gauthier <mail@gauthierth.fr>
* docs: add the missing `)`
Co-authored-by: Gauthier <mail@gauthierth.fr>
---------
Co-authored-by: Gauthier <mail@gauthierth.fr>
* chore: update nodejs to 22 in an attempt to fix undici errors
This is an attempt to fix the undici errors introduced after the switch
from axios to native fetch. The decision was made as it native fetch on
node 20 seems to be "experimental" and
> since native fetch is no longer experimental since Node 21
* chore: increase the required node version
* build: update nodejs version to 22
* chore: update nodejs version to 22
* chore: update @types/node to v22
* chore(gen-docs): update the gen-docs node engine requirement to 22
* feat: add separate setting for streaming region
Currently, the "Currently Streaming On" information is based on the Discover Region setting. This PR
adds a new setting to specify which region should be used to display the streaming region.
re #890
* fix: add missing newline
* fix: rename migration function
* docs: add a troubleshooting page
This troubleshooting page explains how to solve dns blockage issues from ISPs and how to fix some
slowdowns / ipv6 errors with the forceIpv4First environment variable.
fix#1098
* fix: specify the difference between DNS blocking and total blocking from the ISP
* feat: improve discord notifications
Added a field in the general notification settings to allow a role to be mentioned in the webhook
message via discord notification agent
* feat: add discord role id notification - locales