Skip to content

Deploying Stringer

Introduction

Stringer is a self-hosted, anti-social RSS reader designed for simplicity and focus. Built with Ruby on Rails, it provides a clean, minimalist interface that helps you stay on top of your feeds without the distractions of social features or recommendation algorithms.

Key highlights of Stringer:

  • Minimalist Design: Clean, distraction-free interface focused on reading
  • Keyboard Navigation: Efficient keyboard shortcuts for power users
  • OPML Import/Export: Easily migrate your feeds from other readers
  • Automatic Fetching: Background job system keeps feeds updated
  • Mobile Responsive: Works well on phones and tablets
  • Fever API Support: Compatible with Fever API clients like Reeder
  • Mark as Read: Automatic and manual marking of read items
  • PostgreSQL Backend: Reliable data storage with full-text search

This guide walks through deploying Stringer on Klutch.sh using Docker.

Why Deploy Stringer on Klutch.sh

Deploying Stringer on Klutch.sh provides several advantages:

Simplified Deployment: Klutch.sh automatically detects your Dockerfile and builds Stringer without complex orchestration.

Persistent Storage: Attach persistent volumes for your PostgreSQL database. Your feeds and read state survive container restarts.

HTTPS by Default: Klutch.sh provides automatic SSL certificates for secure access.

GitHub Integration: Connect your configuration repository directly from GitHub for automatic redeployments.

Prerequisites

Before deploying Stringer on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your Stringer configuration
  • Basic familiarity with Docker and containerization concepts
  • A PostgreSQL database (can be deployed on Klutch.sh or use a managed service)

Deploying Stringer on Klutch.sh

    Create Your Repository

    Create a new GitHub repository with a Dockerfile for Stringer:

    FROM mdswanson/stringer:latest
    ENV RACK_ENV=production
    ENV RAILS_ENV=production
    ENV SECRET_KEY_BASE=${SECRET_KEY_BASE}
    ENV DATABASE_URL=${DATABASE_URL}
    EXPOSE 8080

    Push to GitHub

    Initialize and push your repository to GitHub with your Dockerfile.

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project.

    Create a New App

    Within your project, create a new app and connect your GitHub repository containing the Stringer Dockerfile.

    Configure HTTP Traffic

    In the deployment settings:

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

    Set Environment Variables

    Configure the following environment variables:

    VariableValue
    SECRET_KEY_BASEGenerate with openssl rand -hex 64
    DATABASE_URLYour PostgreSQL connection string
    RACK_ENVproduction
    RAILS_ENVproduction

    Deploy Your Application

    Click Deploy to start the build process.

    Access Stringer

    Once deployment completes, access your Stringer instance and create your account.

Configuration

Adding Feeds

After logging in, add RSS feeds by entering the feed URL. Stringer will automatically fetch and parse the feed content.

OPML Import

Import existing feeds from another RSS reader by uploading your OPML export file through the settings menu.

Keyboard Shortcuts

Stringer supports extensive keyboard navigation:

  • j / k - Navigate between items
  • o or Enter - Open item
  • v - Open link in new tab
  • m - Toggle read/unread
  • ? - Show all shortcuts

Additional Resources

Conclusion

Deploying Stringer on Klutch.sh gives you a minimalist, self-hosted RSS reader focused on distraction-free reading. With automatic builds and secure HTTPS access, you can stay on top of your feeds from anywhere.