Curio is a self-hosted news aggregator that brings back the joy of reading a morning newspaper. It collects articles from your favorite RSS feeds, uses AI to curate and summarize them based on your interests, and presents everything in a beautiful newspaper-style layout.
Perfect for: News enthusiasts, researchers, professionals who want to stay informed, or anyone tired of endless scrolling through cluttered news apps.
- Newspaper-style layout with hero articles, featured stories, and regular news
- Daily editions - Fresh curated content every day
- Grid or list view - Switch between layouts based on your preference
- Responsive design - Looks great on desktop, tablet, and mobile
- Smart article selection - AI picks the most relevant articles for you
- Enhanced titles & summaries - AI-generated titles and concise summaries
- Relevance scoring - Articles ranked by importance to your interests
- Duplicate detection - No more seeing the same story from multiple sources
- Categories - Organize feeds into topics (Tech, Science, Business, etc.)
- Saved articles - Bookmark articles to read later
- Unread indicators - Track what you haven't read yet
- Auto mark-as-read - Articles marked read as you scroll through them
- Custom newspaper title - Personalize your daily edition
- Interest configuration - Tell the AI what topics matter to you
- Multiple RSS feeds - Add unlimited feeds from any source
- Flexible scheduling - Control how often feeds are fetched
- Docker - For running the application
- OpenAI API Key - For AI features (Get one here)
- PostgreSQL - Database (included in Docker setup)
-
Install from Docker Hub:
- Go to the Docker tab in Unraid
- Click Add Container
- Set Repository to:
ghcr.io/cyberdns/curio:1
-
Configure the container:
- Network Type:
bridge - Port:
8080β8080(WebUI)
- Network Type:
-
Add required environment variables:
Variable Value OPENAI_API_KEYYour OpenAI API key SECRET_KEYRandom string for security (min 32 chars) POSTGRES_PASSWORDChoose a secure password DEV_MODEtrue(for single-user setup) -
Add volume mappings:
/mnt/user/appdata/curio/dataβ/data(Database storage)
-
Apply and start the container
-
Access Curio at
http://your-server-ip:8080
-
Create a directory and docker-compose.yml:
mkdir curio && cd curio
version: "3.8" services: curio: image: ghcr.io/cyberdns/curio:latest ports: - "8080:8080" environment: - OPENAI_API_KEY=sk-your-api-key - SECRET_KEY=your-secret-key-min-32-characters - POSTGRES_PASSWORD=secure-password - DEV_MODE=true volumes: - curio-data:/data restart: unless-stopped volumes: curio-data:
-
Start the application:
docker-compose up -d
-
Access Curio at
http://localhost:8080
For more control, you can run backend and frontend separately. See DOCKER.md for detailed instructions.
Go to Settings β AI Settings and describe what topics interest you:
I'm interested in:
- Technology and software development
- AI and machine learning breakthroughs
- Science discoveries and space exploration
- Business and startup news
I prefer:
- In-depth technical articles
- Breaking news about major developments
- Research papers and analysis
Please avoid:
- Celebrity news
- Sports
- Opinion pieces
Go to Settings β RSS Feeds and add your favorite news sources:
- Paste any RSS feed URL
- Assign it to a category
- Curio will start fetching articles
Popular feeds to get started:
- Hacker News:
https://news.ycombinator.com/rss - TechCrunch:
https://techcrunch.com/feed/ - Ars Technica:
https://feeds.arstechnica.com/arstechnica/index - The Verge:
https://www.theverge.com/rss/index.xml
Go to Settings β Categories to organize your feeds:
- Create categories like "Technology", "Science", "Business"
- Assign feeds to categories
- Browse articles by category in the navigation
- Click Refresh in the header to fetch articles
- Go to Settings β AI Settings and click Process New Articles
- Return to the home page to see your personalized newspaper!
| Variable | Required | Default | Description |
|---|---|---|---|
OPENAI_API_KEY |
Yes | - | Your OpenAI API key |
SECRET_KEY |
Yes | - | Random string for JWT tokens (min 32 chars) |
POSTGRES_PASSWORD |
Yes | - | Database password |
DEV_MODE |
No | false |
Set to true for single-user mode |
LLM_MODEL |
No | gpt-4-turbo-preview |
OpenAI model to use |
RSS_FETCH_INTERVAL |
No | 60 |
Minutes between automatic feed updates |
Go to Settings β Appearance to:
- Set a custom newspaper title
- Preview how your header will look
- Make sure you've added RSS feeds in Settings
- Click Refresh in the header to fetch new articles
- Go to AI Settings and click Process New Articles
- Verify your
OPENAI_API_KEYis set correctly - Check you have available credits at OpenAI Usage
- Make sure you've configured your interests in AI Settings
- Ensure all required environment variables are set
- Check that port 8080 isn't in use by another application
- Verify volume permissions for database storage
Curio uses OpenAI's API for AI features. Typical costs:
- Initial setup: ~$0.10-0.50 to process your first batch of articles
- Daily usage: ~$0.05-0.20 depending on article volume
- Tip: Use
gpt-4o-minimodel for lower costs (setLLM_MODEL=gpt-4o-mini)
Monitor your usage at OpenAI Platform.
Contributions are welcome! See CONTRIBUTING.md for development setup and guidelines.
MIT License - see LICENSE for details.
- Inspired by the timeless design of classic newspapers
- AI curation powered by OpenAI
Made with β for news lovers everywhere



