Skip to content

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
└── .dockerignore

Creating the Dockerfile

Create a Dockerfile in the root of your repository:

FROM php:8.2-apache
# Install required extensions
RUN docker-php-ext-install opcache
# Enable Apache mod_rewrite
RUN a2enmod rewrite
# Set working directory
WORKDIR /var/www/html
# Download Kriss Feed
RUN 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 directory
RUN mkdir -p /var/www/html/data
# Set permissions
RUN chown -R www-data:www-data /var/www/html \
&& chmod -R 755 /var/www/html/data
# Configure PHP
RUN echo "memory_limit = 128M" > /usr/local/etc/php/conf.d/memory.ini
# Expose port
EXPOSE 80
# Start Apache
CMD ["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.

VariableRequiredDefaultDescription
PHP_MEMORY_LIMITNo128MPHP memory limit
TZNoUTCTimezone for feed updates

Deploying Kriss Feed on Klutch.sh

    Push Your Repository to GitHub

    Initialize your repository and push to GitHub:

    Terminal window
    git init
    git add Dockerfile .dockerignore README.md
    git commit -m "Initial Kriss Feed deployment configuration"
    git remote add origin https://github.com/yourusername/krissfeed-deploy.git
    git push -u origin main

    Create 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:

    • Select HTTP as the traffic type
    • Set the internal port to 80

    Set Environment Variables

    Add optional environment variables:

    VariableValue
    TZYour timezone (e.g., America/New_York)

    Attach Persistent Volumes

    Add volumes for data persistence:

    Mount PathRecommended SizePurpose
    /var/www/html/data1 GBFeed data and configuration

    Deploy Your Application

    Click Deploy to start the build process. Klutch.sh will:

    • Detect your Dockerfile automatically
    • Build the container image
    • Attach the persistent volumes
    • Start the Kriss Feed container
    • Provision an HTTPS certificate

    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:

  1. Set your admin password
  2. Configure basic settings (language, timezone)
  3. Add your first feeds
  4. Import OPML if you have existing subscriptions

Adding Feeds

Add new RSS/Atom feeds:

  1. Click the + button or go to settings
  2. Enter the feed URL
  3. Choose a category (optional)
  4. Save the feed

Importing OPML

Migrate from another reader:

  1. Export OPML from your current reader
  2. Go to Settings > Import
  3. Upload your OPML file
  4. Review imported feeds

Customizing the View

Configure your reading experience:

  1. List View: Compact list of articles
  2. Expanded View: See article summaries
  3. Reader View: Full article content

Keyboard Shortcuts

Navigate efficiently:

ShortcutAction
j / kNext / Previous article
oOpen article
mMark as read/unread
sStar article
rRefresh 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.