Deploying Kriss Feed
Introduction
Kriss Feed is a simple, lightweight RSS and Atom feed reader written in PHP. Unlike more complex feed readers, Kriss Feed is designed to be minimal and efficient, storing all data in flat files without requiring a database. This makes it perfect for personal use and easy deployment.
The application provides a clean, distraction-free interface for reading your feeds. It supports multiple views, OPML import/export, and can be customized with themes. The entire application runs from a single PHP file, making installation and maintenance straightforward.
Key features of Kriss Feed:
- No Database Required: All data stored in flat files
- Single-File Application: Minimal footprint and easy deployment
- OPML Support: Import and export your feed subscriptions
- Multiple Views: List, expanded, and reader modes
- Keyboard Shortcuts: Navigate feeds efficiently
- Feed Categories: Organize feeds into folders
- Mark as Read: Track read/unread articles
- Responsive Design: Works on mobile devices
- Customizable Themes: Change the look and feel
- Fast Performance: Lightweight and efficient
- No External Dependencies: Self-contained application
- Open Source: Free to use and modify
This guide walks through deploying Kriss Feed on Klutch.sh using Docker, configuring your feeds, and customizing the reader.
Why Deploy Kriss Feed on Klutch.sh
Deploying Kriss Feed on Klutch.sh provides several advantages:
Simplified Deployment: Klutch.sh automatically detects your Dockerfile and builds Kriss Feed without complex orchestration.
Persistent Storage: Attach persistent volumes for your feed data and configuration. Your subscriptions survive container restarts.
HTTPS by Default: Klutch.sh provides automatic SSL certificates for secure reading.
GitHub Integration: Connect your configuration repository directly from GitHub. Updates trigger automatic redeployments.
Lightweight Resources: Kriss Feed’s minimal requirements mean low resource costs.
Environment Variable Management: Securely store configuration without exposing in code.
Custom Domains: Assign a custom domain for easy access to your feeds.
Always-On Availability: Access your feeds anytime from any device.
Prerequisites
Before deploying Kriss Feed on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your configuration
- Basic familiarity with Docker and containerization concepts
- Your RSS/Atom feed URLs or an OPML file
- (Optional) A custom domain for your Kriss Feed instance
Preparing Your Repository
Create a GitHub repository containing your Dockerfile for deploying Kriss Feed on Klutch.sh.
Repository Structure
krissfeed-deploy/├── Dockerfile├── README.md└── .dockerignoreCreating the Dockerfile
Create a Dockerfile in the root of your repository:
FROM php:8.2-apache
# Install required extensionsRUN docker-php-ext-install opcache
# Enable Apache mod_rewriteRUN a2enmod rewrite
# Set working directoryWORKDIR /var/www/html
# Download Kriss FeedRUN curl -L https://github.com/tontof/kriss_feed/archive/refs/heads/master.zip -o kriss.zip \ && unzip kriss.zip \ && mv kriss_feed-master/* . \ && rm -rf kriss_feed-master kriss.zip
# Create data directoryRUN mkdir -p /var/www/html/data
# Set permissionsRUN chown -R www-data:www-data /var/www/html \ && chmod -R 755 /var/www/html/data
# Configure PHPRUN echo "memory_limit = 128M" > /usr/local/etc/php/conf.d/memory.ini
# Expose portEXPOSE 80
# Start ApacheCMD ["apache2-foreground"]Environment Variables Reference
Kriss Feed primarily uses configuration files rather than environment variables. Configuration is done through the web interface on first access.
| Variable | Required | Default | Description |
|---|---|---|---|
PHP_MEMORY_LIMIT | No | 128M | PHP memory limit |
TZ | No | UTC | Timezone for feed updates |
Deploying Kriss Feed on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 80
- Detect your Dockerfile automatically
- Build the container image
- Attach the persistent volumes
- Start the Kriss Feed container
- Provision an HTTPS certificate
Push Your Repository to GitHub
Initialize your repository and push to GitHub:
git initgit add Dockerfile .dockerignore README.mdgit commit -m "Initial Kriss Feed deployment configuration"git remote add origin https://github.com/yourusername/krissfeed-deploy.gitgit push -u origin mainCreate a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project. Give it a descriptive name like “kriss-feed” or “rss-reader”.
Create a New App
Within your project, create a new app. Connect your GitHub account if you haven’t already, then select the repository containing your Kriss Feed Dockerfile.
Configure HTTP Traffic
In the deployment settings:
Set Environment Variables
Add optional environment variables:
| Variable | Value |
|---|---|
TZ | Your timezone (e.g., America/New_York) |
Attach Persistent Volumes
Add volumes for data persistence:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/var/www/html/data | 1 GB | Feed data and configuration |
Deploy Your Application
Click Deploy to start the build process. Klutch.sh will:
Access Kriss Feed
Once deployment completes, access your Kriss Feed instance at https://your-app-name.klutch.sh.
Initial Configuration
First-Time Setup
When you first access Kriss Feed:
- Set your admin password
- Configure basic settings (language, timezone)
- Add your first feeds
- Import OPML if you have existing subscriptions
Adding Feeds
Add new RSS/Atom feeds:
- Click the + button or go to settings
- Enter the feed URL
- Choose a category (optional)
- Save the feed
Importing OPML
Migrate from another reader:
- Export OPML from your current reader
- Go to Settings > Import
- Upload your OPML file
- Review imported feeds
Customizing the View
Configure your reading experience:
- List View: Compact list of articles
- Expanded View: See article summaries
- Reader View: Full article content
Keyboard Shortcuts
Navigate efficiently:
| Shortcut | Action |
|---|---|
j / k | Next / Previous article |
o | Open article |
m | Mark as read/unread |
s | Star article |
r | Refresh feeds |
? | Show all shortcuts |
Troubleshooting Common Issues
Feeds Not Updating
- Check feed URLs are accessible
- Verify PHP has network access
- Increase memory limit if needed
Data Not Persisting
- Ensure volume is mounted to
/var/www/html/data - Check directory permissions
- Verify www-data ownership
Slow Performance
- Enable PHP opcache
- Reduce number of feeds per category
- Increase PHP memory limit
Additional Resources
Conclusion
Deploying Kriss Feed on Klutch.sh gives you a lightweight, database-free RSS reader with automatic builds and secure HTTPS access. Enjoy your feeds without the complexity of heavier feed readers.