Deploying Tiny Tiny RSS
Introduction
Tiny Tiny RSS (TT-RSS) is a free and open-source web-based RSS and Atom feed reader. It provides a powerful, feature-rich alternative to commercial feed readers while keeping your reading habits private. With support for keyboard shortcuts, theming, and extensive plugins, TT-RSS offers a complete news aggregation solution.
Key features of Tiny Tiny RSS include:
- Feed Aggregation: Subscribe to RSS and Atom feeds
- Multi-User Support: Host for yourself or multiple users
- Full-Text Extraction: Retrieve full articles from truncated feeds
- Filters and Labels: Organize articles with rules and tags
- Keyboard Shortcuts: Efficient navigation for power users
- Theming: Customize the appearance with themes
- Plugin System: Extend functionality with plugins
- Mobile Apps: Android and iOS clients available
- OPML Import/Export: Migrate subscriptions easily
- API Access: Integrate with third-party clients
- Privacy-Focused: No tracking, your data stays yours
This guide walks you through deploying Tiny Tiny RSS on Klutch.sh, configuring the database, and setting up your feed reader.
Why Deploy Tiny Tiny RSS on Klutch.sh
Deploying Tiny Tiny RSS on Klutch.sh provides several advantages:
Always-Updated Feeds: Klutch.sh keeps TT-RSS running 24/7, ensuring feeds are always fresh.
Privacy: Self-hosted means your reading habits aren’t tracked or monetized.
Simplified Deployment: Klutch.sh handles container orchestration automatically.
Persistent Storage: Your subscriptions and articles persist reliably.
HTTPS by Default: Secure access with automatic SSL certificates.
Prerequisites
Before deploying Tiny Tiny RSS on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your configuration
- PostgreSQL database (recommended) or MySQL
- Basic familiarity with Docker and RSS concepts
Preparing Your Repository
Create a GitHub repository with the following structure:
ttrss-deploy/├── Dockerfile└── .dockerignoreCreating the Dockerfile
FROM cthulhoo/ttrss-fpm-pgsql-static:latest
# Environment configurationENV TTRSS_DB_TYPE=pgsqlENV TTRSS_DB_HOST=${TTRSS_DB_HOST}ENV TTRSS_DB_USER=${TTRSS_DB_USER}ENV TTRSS_DB_NAME=${TTRSS_DB_NAME}ENV TTRSS_DB_PASS=${TTRSS_DB_PASS}
# Application URLENV TTRSS_SELF_URL_PATH=${TTRSS_SELF_URL_PATH}
# Session and securityENV TTRSS_SESSION_COOKIE_LIFETIME=${TTRSS_SESSION_COOKIE_LIFETIME:-86400}
# Feed update settingsENV TTRSS_FEED_UPDATE_TIMEOUT=${TTRSS_FEED_UPDATE_TIMEOUT:-60}
# The base image includes the default entrypointAlternative: Using the All-in-One Image
FROM cthulhoo/ttrss-web-nginx:latest
ENV TTRSS_DB_TYPE=pgsqlENV TTRSS_DB_HOST=${TTRSS_DB_HOST}ENV TTRSS_DB_USER=${TTRSS_DB_USER}ENV TTRSS_DB_NAME=${TTRSS_DB_NAME}ENV TTRSS_DB_PASS=${TTRSS_DB_PASS}ENV TTRSS_SELF_URL_PATH=${TTRSS_SELF_URL_PATH}
EXPOSE 8080
# The base image includes the default entrypointEnvironment Variables Reference
| Variable | Required | Default | Description |
|---|---|---|---|
TTRSS_DB_TYPE | No | pgsql | Database type (pgsql or mysql) |
TTRSS_DB_HOST | Yes | - | Database hostname |
TTRSS_DB_USER | Yes | - | Database username |
TTRSS_DB_NAME | Yes | - | Database name |
TTRSS_DB_PASS | Yes | - | Database password |
TTRSS_SELF_URL_PATH | Yes | - | Public URL of your TT-RSS instance |
TTRSS_SESSION_COOKIE_LIFETIME | No | 86400 | Session duration in seconds |
Deploying on Klutch.sh
Set Up PostgreSQL Database
TT-RSS works best with PostgreSQL. Deploy it on Klutch.sh:
| Mount Path | Size | Purpose |
|---|---|---|
/var/lib/postgresql/data | 10 GB | Database storage |
Create the TT-RSS database and user.
Push Your Repository to GitHub
Commit and push your Dockerfile.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project named “ttrss” or “rss-reader”.
Create the TT-RSS App
Within your project, create a new app and connect your GitHub repository.
Configure HTTP Traffic
Set the traffic type to HTTP with the internal port set to 8080.
Set Environment Variables
Configure the required variables:
| Variable | Value |
|---|---|
TTRSS_DB_HOST | Your PostgreSQL host |
TTRSS_DB_USER | ttrss |
TTRSS_DB_NAME | ttrss |
TTRSS_DB_PASS | Your secure password |
TTRSS_SELF_URL_PATH | https://your-app-name.klutch.sh/tt-rss/ |
Attach Persistent Volumes
Add persistent storage:
| Mount Path | Size | Purpose |
|---|---|---|
/var/www/html/cache | 2 GB | Feed cache |
/var/www/html/plugins.local | 500 MB | Custom plugins |
/var/www/html/themes.local | 500 MB | Custom themes |
Deploy Your Application
Click Deploy to build and launch Tiny Tiny RSS.
Complete Initial Setup
Access TT-RSS and log in with default credentials to complete setup.
Initial Configuration
First Login
Default credentials:
- Username:
admin - Password:
password
Change the admin password immediately after first login!
Basic Configuration
Configure TT-RSS settings:
- Click the gear icon for Preferences
- Set your timezone
- Configure default view settings
- Set up update behavior
Adding Feeds
Subscribe to feeds:
- Click “Subscribe to feed”
- Enter the feed URL
- Choose a category
- Click Subscribe
Organizing with Categories
Create categories for organization:
- Go to Preferences > Feeds
- Create new categories
- Drag feeds into categories
Advanced Features
Filters
Create rules to organize articles:
- Go to Preferences > Filters
- Click “Create filter”
- Set conditions (title contains, author, etc.)
- Choose actions (label, star, delete)
Labels
Tag articles with custom labels:
- Create labels in Preferences
- Apply labels manually or via filters
- View articles by label
Full-Text Extraction
Get complete articles from truncated feeds:
- Install the
af_readabilityplugin - Enable full-text mode per feed
- TT-RSS will fetch full article content
Keyboard Shortcuts
Efficient navigation:
| Shortcut | Action |
|---|---|
j/k | Next/previous article |
n/p | Next/previous feed |
o | Open article |
s | Star article |
t | Toggle tags |
r | Mark as read |
? | Show all shortcuts |
Plugins
Installing Plugins
Add functionality with plugins:
- Download plugin to
plugins.localdirectory - Enable in Preferences > Plugins
- Configure plugin settings
Popular Plugins
| Plugin | Purpose |
|---|---|
af_readability | Full-text extraction |
feedly | Feedly-like theme |
af_comics | Enhanced comic support |
auth_ldap | LDAP authentication |
fever | Fever API compatibility |
Fever API
Use with third-party clients:
- Enable Fever API plugin
- Set Fever password in preferences
- Configure client with Fever endpoint
Mobile Access
Android Apps
- Tiny Tiny RSS (official)
- FeedMe
- News+ with TT-RSS plugin
iOS Apps
- Fiery Feeds
- Reeder (via Fever API)
- lire (via Fever API)
Web App
Access the responsive web interface from any mobile browser.
Production Best Practices
Security Recommendations
- Change Default Password: First priority after install
- HTTPS Only: Use Klutch.sh’s automatic SSL
- Regular Updates: Keep TT-RSS updated
- User Management: Create separate accounts per user
- Database Security: Use strong database passwords
Performance Optimization
- Feed Update Interval: Balance freshness vs. load
- Database Maintenance: Run cleanup periodically
- Cache Management: Configure appropriate cache sizes
- Purge Old Articles: Set retention policies
Backup Strategy
Protect your reading data:
- Regular database backups
- Export OPML feed list
- Back up custom plugins/themes
- Document configuration
Troubleshooting
Feeds Not Updating
- Check the update daemon is running
- Verify feed URLs are accessible
- Review error logs for feed issues
- Test feed URL manually
Database Connection Errors
- Verify database credentials
- Check database server is running
- Confirm network connectivity
- Review PostgreSQL logs
Login Problems
- Clear browser cookies
- Verify username/password
- Check session cookie settings
- Review authentication logs
Performance Issues
- Increase PHP memory limit
- Optimize database queries
- Reduce concurrent updates
- Check server resources
Additional Resources
- Tiny Tiny RSS Official Site
- TT-RSS Wiki
- TT-RSS Git Repository
- TT-RSS Community
- Klutch.sh Persistent Volumes
- Klutch.sh Deployments
Conclusion
Deploying Tiny Tiny RSS on Klutch.sh gives you a powerful, privacy-respecting feed reader that’s always available. With comprehensive features, keyboard shortcuts, and mobile app support, TT-RSS provides a complete news aggregation solution. Self-hosting ensures your reading habits remain private while Klutch.sh’s reliable infrastructure keeps your feeds updated around the clock.