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
- Select HTTP as the traffic type
- Set the internal port to 8080
Create Your Repository
Create a new GitHub repository with a Dockerfile for Stringer:
FROM mdswanson/stringer:latest
ENV RACK_ENV=productionENV RAILS_ENV=productionENV SECRET_KEY_BASE=${SECRET_KEY_BASE}ENV DATABASE_URL=${DATABASE_URL}
EXPOSE 8080Push 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:
Set Environment Variables
Configure the following environment variables:
| Variable | Value |
|---|---|
SECRET_KEY_BASE | Generate with openssl rand -hex 64 |
DATABASE_URL | Your PostgreSQL connection string |
RACK_ENV | production |
RAILS_ENV | production |
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 itemsoorEnter- Open itemv- Open link in new tabm- 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.