Commit Graph

66 Commits (cb1d1f973559dd3fd8f5ab4fab72bed3d6649900)

Author SHA1 Message Date
Your Name cb1d1f9735 Remove PF_HOME_TIMELINE_CACHE config entry entirely
Home timeline caching is now always on with no toggle.
3 months ago
Your Name 986e271e98 Default PF_HOME_TIMELINE_CACHE to true, remove false code path
The home timeline cache-busting calls (Cache::forget) are now
unconditional since caching is always on. Removed the config
checks from StatusObserver, FollowerObserver, and UnfollowPipeline.
3 months ago
Your Name 8d156bda1a Add DB fallback, cache TTL, and configurable dropoffs for all timelines
Improvements to all three timeline services (Home, Public, Network):

1. DB fallback on cache exhaustion:
   - Add fallbackMaxId() to each service that queries the DB when
     Redis returns empty during max_id pagination
   - Users can now scroll infinitely regardless of cache size

2. Cache TTL (24 hours):
   - All sorted sets now expire after 24h, triggering a fresh rebuild
   - Prevents stale data from accumulating
   - Configurable via PF_HOME_TIMELINE_CACHE_TTL,
     INSTANCE_PUBLIC_TIMELINE_CACHE_TTL, INSTANCE_NETWORK_TIMELINE_CACHE_TTL

3. Configurable dropoff limits:
   - Home: 400 -> 800 (per user, via PF_HOME_TIMELINE_CACHE_DROPOFF)
   - Public: 400 -> 10000 (via INSTANCE_PUBLIC_TIMELINE_CACHE_DROPOFF)
   - Network: already 10000

4. Increased get() cap from 100 to 500 in all services
3 months ago
Your Name b08da33a3c Merge branch 'investigate-network-timeline-cached' into timeline-improvements 3 months ago
Your Name 247054b262 Remove INSTANCE_NETWORK_TIMELINE_CACHED, always use Redis cache
Remove the config entry and all DB-query fallback branches for the
network/federated timeline. NetworkTimelineService (Redis) is now
the only code path.

- config/instance.php: remove 'cached' key from timeline.network
- ApiV1Controller: remove DB fallback in network timeline branch
- PublicApiController: remove entire DB fallback (~70 lines)
- Helpers.php: remove cached check before adding to NetworkTimelineService
- Diagnostics: remove INSTANCE_NETWORK_TIMELINE_CACHED row
3 months ago
Your Name ec51672fe2 Increase network timeline cache_dropoff default to 10000
100 items was far too small — users hit an empty feed after just a
few pages since there's no DB fallback. 10000 gives deep scrolling
at negligible Redis cost (~80KB for status IDs in a sorted set).
3 months ago
Your Name 68886fb772 Default INSTANCE_NETWORK_TIMELINE_CACHED to true
When PF_NETWORK_TIMELINE is enabled (the default), the network/federated
timeline will now use NetworkTimelineService (Redis sorted set) by default
instead of direct DB queries.

The cache_dropoff (100) and max_hours_old (2160h/90d) tuning values
remain configurable via their respective env vars.
3 months ago
Your Name 06c0a16a81 Remove INSTANCE_PUBLIC_TIMELINE_CACHED, always use Redis cache
Remove the config entry and the DB-query fallback branch from
ApiV1Controller::timelinePublic(). The PublicTimelineService
(Redis sorted set) path is now the only code path for serving
the local public timeline via the Mastodon API.
3 months ago
Your Name 80fb583b72 Default INSTANCE_PUBLIC_TIMELINE_CACHED to true
This controls whether the Mastodon-compatible /api/v1/timelines/public
endpoint uses PublicTimelineService (Redis sorted set) or direct DB
queries. The Redis path is mature, handles cache warming, and Redis
is already a hard dependency. Defaulting to true for better performance
on all instances.
3 months ago
Daniel Supernault ff2c7a60cf
Update CuratedOnboarding notify admin. Fixes #6400 4 months ago
dansup 481d5653f7
Merge pull request #6163 from Krafting/patch-1
Change default max number of blocked/muted account
9 months ago
Daniel Supernault ab085452a7
Update instance config 10 months ago
Krafting 15376e913d
Change default max number of blocked/muted account 11 months ago
Daniel Supernault 77044ba193
Update CustomFilter model, add custom limits for max_content_scan_limit, max_filters_per_user, max_keywords_per_filter, max_keyword_length, max_pattern_length, max_reported_matches, max_create_per_hour, max_updates_per_hour so admins have more control over this feature 1 year ago
Daniel Supernault 5a5821fe86
Update Instance total post, add optional estimation for huge status tables 1 year ago
Daniel Supernault 717f17cdee
Update DM config, allow new users to send DMs by default, with a new env variable to enforce a 72h limit 1 year ago
Daniel Supernault de4ce3c83f
Update config, allow Beagle discover service to be disabled 2 years ago
Daniel Supernault ed7c3bd888
Update instance config 2 years ago
Daniel Supernault 33621dd680
Add Notify App Gateway support 2 years ago
Daniel Supernault c042d13590
Update instance config, update network cache feed max_hours_old falloff to 90 days instead of 6 hours to allow for less active instances to have more results 2 years ago
Daniel Supernault 4aad1c225a
Add api/v1/instance/peers API endpoint, disabled by default 2 years ago
Daniel Supernault 8dac2caf1d
Add Curated Onboarding 2 years ago
Daniel Supernault b0fb198829
Add Software Update banner to admin home feeds 2 years ago
Daniel Supernault 8b4ac5cc0b
Update public/network timelines, fix non-redis response and fix reblogs in home feed 2 years ago
Daniel Supernault 0faf59e3b7
Update ApiV1Controller, fix network timeline 2 years ago
Daniel Supernault db1b466792
Update instance config 3 years ago
Daniel Supernault c53894fe16
Add Parental Controls feature 3 years ago
Daniel Supernault 5cea5aab3c
Add Domain Blocks 3 years ago
Daniel Supernault 3aad75abcf
Update InstanceService, fix banner blurhash memory bug 3 years ago
Daniel Supernault 970f77b078
Update instance config, enable config cache by default 3 years ago
Daniel Supernault 780f250742
Update LandingService, enable landing directory/explore feed by default and move configuration to config/instance.php file 3 years ago
Daniel Supernault 4e1d0ed596
Add admin report email notifications 3 years ago
Daniel Supernault 5b879f0156
Update mute/block logic with admin defined limits and improved filtering to skip deleted accounts 3 years ago
Daniel Supernault b73ca9a1ea
Add Admin Invites 4 years ago
Daniel Supernault 3328b367fd
Add optional home feed caching 4 years ago
Daniel Supernault a31bdec750
Allow forceHttps to be disabled, fixes #3710 4 years ago
Daniel Supernault ae78129678
Update changelog 4 years ago
Daniel Supernault 5cac7fb44f
Revert nsfw posts hidden on local/network timelines by default 4 years ago
Daniel Supernault c990ac2a7b
Enable network timeline caching by default 4 years ago
Daniel Supernault 7734dc033b
Add instance post/profile embed config setting 4 years ago
Daniel Supernault 0b7d0a9627
Add customizable Legal Notice page 4 years ago
Daniel Supernault 1310d95cdb
Add NetworkTimelineService cache 4 years ago
Daniel Supernault 52f25ff109
Update instance config, match default oauth settings in AuthServiceProvider 4 years ago
Daniel Supernault fee2857deb
Update ComposeController 5 years ago
Daniel Supernault d2cb7d4770
Update ConfigCacheService, fix db issue 5 years ago
Daniel Supernault 668e936eb5
Update instance endpoint, add custom description 5 years ago
Daniel Supernault 1404ac6e6f
Update Discover, allow public discover access 6 years ago
Daniel Supernault abe9cb3db0
Update site config, add labels to config 6 years ago
delthas 748a3be46d Add support for configurable OAuth tokens and refresh tokens lifetime
Previously, the lifetime of tokens and refresh tokens was hardcoded at
15 and 30 days.

Some instances administrators may wish to change these values.

This makes these two values configurable with the two .env variables:
OAUTH_TOKEN_DAYS and OAUTH_REFRESH_DAYS which are the lifetime in days
for these two tokens and refresh tokens.
6 years ago
Daniel Supernault 76dd453ea0
Update instance config 6 years ago