Repository navigation
FeedKeeper 0.21.0
FeedKeeper v0.21.0 reduces database work when listing articles and shares image downloads between readers of the same feed.
What's New in v0.21.0
Article lists
- Less database work: Article lists select the requested page before loading full article content. Permissions, filters, sorting and pagination stay the same.
Article images
- Shared downloads and cache: Native image requests and the web app's offline copies use a shared cache within each feed. Concurrent requests for the same image share one download; missing images are remembered briefly.
- Bounded resource use: Defaults allow 256 MiB of cached images, 2,000 entries and six hours of storage, with four active jobs and at most 32 waiting. Access checks, SSRF protection and source request limits remain in place.
- Saved copies: Cache and archive files share disk space when stored on the same filesystem. Saved images remain available after cache eviction and stay tied to their article.
Upgrade notes
No database migration or additional service is needed. The disposable cache lives next to the database by default; keep it separate from the permanent archive and run one process per cache directory. Continue backing up the database and archive as before.
Existing installations can use the defaults. Set IMAGE_CACHE_MAX_BYTES=0 to disable disk caching. See Article images and .env.example for configuration and rollback guidance.
Quick start with Docker
mkdir feedkeeper && cd feedkeeper
curl -fsSLO https://raw.githubusercontent.com/visualfusion/feedkeeper/v0.21.0/compose.yaml
echo "SESSION_SECRET=$(openssl rand -hex 32)" > .env
docker compose up -dOpen http://localhost:3000 to complete setup. For a public domain, add PUBLIC_URL=https://your.domain to .env.