stringer
A self-hosted, anti-social RSS reader.
File Explorer
Download Latest Version (.zip)- config.yml
- build.yml
- FUNDING.yml
- .keep
- .keep
- application.css
- custom.css
- font-awesome-fonts.css
- lato-fonts.css
- reenie-beanie-font.css
- create.rb
- export_to_opml.rb
- fetch_all.rb
- fetch_all_for_user.rb
- fetch_one.rb
- find_new_stories.rb
- import_from_opml.rb
- authentication.rb
- read_favicons.rb
- read_feeds.rb
- read_feeds_groups.rb
- read_groups.rb
- read_items.rb
- read_links.rb
- response.rb
- sync_saved_item_ids.rb
- sync_unread_item_ids.rb
- write_mark_feed.rb
- write_mark_group.rb
- write_mark_item.rb
- mark_all_as_read.rb
- mark_as_read.rb
- mark_as_starred.rb
- mark_as_unread.rb
- mark_as_unstarred.rb
- mark_feed_as_read.rb
- mark_group_as_read.rb
- refresh_from_feed.rb
- sign_in_user.rb
- cast_boolean.rb
- fever_api.rb
- .keep
- application_controller.rb
- debug_controller.rb
- exports_controller.rb
- feeds_controller.rb
- fever_controller.rb
- imports_controller.rb
- passwords_controller.rb
- profiles_controller.rb
- sessions_controller.rb
- settings_controller.rb
- stories_controller.rb
- tutorials_controller.rb
- url_helpers.rb
- eslint-plugin-sort-keys-fix.d.ts
- application.ts
- dialog_controller.ts
- hotkeys_controller.ts
- index.ts
- keep_unread_toggle_controller.ts
- mark_all_as_read_controller.ts
- star_toggle_controller.ts
- story_refresh_controller.ts
- unread_count_controller.ts
- api.ts
- assert.ts
- application.ts
- application_job.rb
- callable_job.rb
- .keep
- user_signup.rb
- application_record.rb
- feed.rb
- group.rb
- migration_status.rb
- setting.rb
- story.rb
- subscription.rb
- user.rb
- feed_repository.rb
- group_repository.rb
- story_repository.rb
- user_repository.rb
- remove_old_stories.rb
- authorization.rb
- content_sanitizer.rb
- feed_discovery.rb
- opml_parser.rb
- safe_fetch.rb
- sample_story.rb
- heroku.html.erb
- index.html.erb
- _action_bar.html.erb
- _feed.html.erb
- _single_feed_action_bar.html.erb
- edit.html.erb
- index.html.erb
- new.html.erb
- show.html.erb
- new.html.erb
- _flash.html.erb
- _footer.html.erb
- _shortcuts.html.erb
- application.html.erb
- new.html.erb
- edit.html.erb
- new.erb
- index.html.erb
- _action_bar.html.erb
- _js.html.erb
- _mark_all_as_read_form.html.erb
- _templates.html.erb
- _zen.html.erb
- archived.html.erb
- index.html.erb
- starred.html.erb
- _action_bar.html.erb
- index.html.erb
- build
- build_css
- dev
- rails
- rake
- rubocop
- setup
- thrust
- development.rb
- production.rb
- test.rb
- assets.rb
- content_security_policy.rb
- dotenv.rb
- feed_bag.rb
- filter_parameter_logging.rb
- good_job.rb
- inflections.rb
- permissions_policy.rb
- sax_machine.rb
- session_store.rb
- de.yml
- el-GR.yml
- en.yml
- eo.yml
- es.yml
- fr.yml
- he.yml
- it.yml
- ja.yml
- nl.yml
- pt-BR.yml
- pt.yml
- ru.yml
- sv.yml
- tr.yml
- zh-CN.yml
- zh-TW.yml
- application.rb
- boot.rb
- brakeman.ignore
- database.yml
- environment.rb
- puma.rb
- routes.rb
- 20130409010818_create_feeds.rb
- 20130409010826_create_stories.rb
- 20130412185253_add_new_fields_to_stories.rb
- 20130418221144_add_user_model.rb
- 20130423001740_drop_email_from_user.rb
- 20130423180446_remove_author_from_stories.rb
- 20130425211008_add_setup_complete_to_user.rb
- 20130425222157_add_delayed_job.rb
- 20130429232127_add_status_to_feeds.rb
- 20130504005816_text_url.rb
- 20130504022615_change_story_permalink_column.rb
- 20130509131045_add_unique_constraints.rb
- 20130513025939_add_keep_unread_to_stories.rb
- 20130513044029_add_is_starred_status_for_stories.rb
- 20130522014405_add_api_key_to_user.rb
- 20130730120312_add_entry_id_to_stories.rb
- 20130805113712_update_stories_unique_constraints.rb
- 20130821020313_update_nil_entry_ids.rb
- 20130905204142_use_text_datatype_for_title_and_entry_id.rb
- 20140413100725_add_groups_table_and_foreign_keys_to_feeds.rb
- 20140421224454_fix_invalid_unicode.rb
- 20141102103617_fix_invalid_titles_with_unicode_line_endings.rb
- 20221206231914_add_enclosure_url_to_stories.rb
- 20230120222742_drop_setup_complete.rb
- 20230221233057_add_user_id_to_tables.rb
- 20230223045525_add_null_false_to_associations.rb
- 20230223231930_add_username_to_users.rb
- 20230224042638_update_unique_indexes.rb
- 20230301024452_encrypt_api_key.rb
- 20230305010750_create_good_jobs.rb
- 20230312193113_drop_delayed_job.rb
- 20230313034938_add_admin_to_users.rb
- 20230330215830_create_subscriptions.rb
- 20230721160939_create_settings.rb
- 20230801025230_create_good_job_settings.rb
- 20230801025231_create_index_good_jobs_jobs_on_priority_created_at_when_unfinished.rb
- 20230801025232_create_good_job_batches.rb
- 20230801025233_create_good_job_executions.rb
- 20230801025234_create_good_jobs_error_event.rb
- 20240226201050_add_precision_to_timestamps.rb
- 20240313195404_add_default_to_stories.rb
- 20240314031219_recreate_good_job_cron_indexes_with_conditional.rb
- 20240314031220_create_good_job_labels.rb
- 20240314031221_create_good_job_labels_index.rb
- 20240314031222_remove_good_job_active_id_index.rb
- 20240314031223_create_index_good_job_jobs_for_candidate_lookup.rb
- 20240316211109_add_stories_order_to_users.rb
- 20240709172405_create_good_job_execution_error_backtrace.rb
- 20240709172406_create_good_job_process_lock_ids.rb
- 20240709172407_create_good_job_process_lock_indexes.rb
- 20240709172408_create_good_job_execution_duration.rb
- 20260609120000_add_group_stories_to_users.rb
- schema.rb
- seeds.rb
- init_or_update_env.rb
- start.sh
- supervisord.conf
- Docker.md
- Heroku.md
- OpenShift.md
- VPS.md
- eslint_autogen
- stylelint_autogen
- .keep
- .keep
- admin_constraint.rb
- no_before_hook.rb
- .gitkeep
- .keep
- eslint-plugin-sort-keys-fix@1.1.2.patch
- apple-touch-icon-precomposed.png
- arrow-left.png
- arrow-right-up.png
- arrow-right.png
- arrow-up-left.png
- arrow-up-right.png
- favicon.png
- 400.html
- 404.html
- 406-unsupported-browser.html
- 422.html
- 500.html
- apple-touch-icon-precomposed.png
- apple-touch-icon.png
- favicon.ico
- icon.png
- icon.svg
- manifest.json
- robots.txt
- feed.png
- instructions.png
- keyboard_shortcuts.png
- logo.png
- rss-zero.png
- stories.png
- create_spec.rb
- export_to_opml_spec.rb
- fetch_all_for_user_spec.rb
- fetch_all_spec.rb
- fetch_one_spec.rb
- find_new_stories_spec.rb
- import_from_opml_spec.rb
- authentication_spec.rb
- read_favicons_spec.rb
- read_feeds_groups_spec.rb
- read_feeds_spec.rb
- read_groups_spec.rb
- read_items_spec.rb
- read_links_spec.rb
- sync_saved_item_ids_spec.rb
- sync_unread_item_ids_spec.rb
- write_mark_feed_spec.rb
- write_mark_group_spec.rb
- write_mark_item_spec.rb
- mark_all_as_read_spec.rb
- mark_as_read_spec.rb
- mark_as_starred_spec.rb
- mark_as_unread_spec.rb
- mark_as_unstarred_spec.rb
- mark_feed_as_read_spec.rb
- mark_group_as_read_spec.rb
- refresh_from_feed_spec.rb
- sign_in_user_spec.rb
- cast_boolean_spec.rb
- feeds.rb
- groups.rb
- stories.rb
- subscriptions.rb
- users.rb
- feeds.opml
- invalid.opml
- url_helpers_spec.rb
- feed_importing_spec.rb
- dialog_controller_spec.ts
- hotkeys_controller_spec.ts
- mark_all_as_read_controller_spec.ts
- star_toggle_controller_spec.ts
- story_refresh_controller_spec.ts
- unread_count_controller_spec.ts
- api_spec.ts
- assert_spec.ts
- story_spec.ts
- story_view_spec.ts
- stimulus.ts
- application_spec.ts
- setup.ts
- callable_job_spec.rb
- admin_constraint_spec.rb
- no_before_hook_spec.rb
- user_signup_spec.rb
- application_record_spec.rb
- feed_spec.rb
- group_spec.rb
- migration_status_spec.rb
- story_spec.rb
- subscription_spec.rb
- user_spec.rb
- feed_repository_spec.rb
- group_repository_spec.rb
- story_repository_spec.rb
- user_repository_spec.rb
- debug_controller_spec.rb
- exports_controller_spec.rb
- feeds_controller_spec.rb
- fever_controller_spec.rb
- imports_controller_spec.rb
- passwords_controller_spec.rb
- profiles_controller_spec.rb
- sessions_controller_spec.rb
- settings_controller_spec.rb
- stories_controller_spec.rb
- tutorials_controller_spec.rb
- feed.xml
- feed_updated.xml
- feed.xml
- subscriptions.xml
- subscriptions.xml
- change_all_records.rb
- change_record.rb
- delete_record.rb
- invoke.rb
- assets.rb
- axe_core.rb
- capybara.rb
- coverage.rb
- downloads.rb
- factory_bot.rb
- feed_server.rb
- generate_xml.rb
- matchers.rb
- request_helpers.rb
- shoulda_matchers.rb
- system_helpers.rb
- webmock.rb
- with_model.rb
- account_setup_spec.rb
- add_feed_spec.rb
- application_settings_spec.rb
- archive_spec.rb
- authentication_spec.rb
- debug_spec.rb
- export_spec.rb
- feed_edit_spec.rb
- feed_show_spec.rb
- feed_status_spec.rb
- feeds_index_spec.rb
- good_job_spec.rb
- heroku_spec.rb
- import_spec.rb
- keyboard_shortcuts_spec.rb
- login_spec.rb
- multi_user_isolation_spec.rb
- profile_spec.rb
- starred_spec.rb
- stories_index_spec.rb
- tutorial_spec.rb
- remove_old_stories_spec.rb
- authorization_spec.rb
- content_sanitizer_spec.rb
- feed_discovery_spec.rb
- feedjira_spec.rb
- i18n_support_spec.rb
- opml_parser_spec.rb
- safe_fetch_spec.rb
- rails_helper.rb
- spec_helper.rb
- .keep
- .keep
- eslint-plugin-sort-keys-fix.d.ts
- .keep
- .dockerignore
- .env.development
- .env.test
- .eslint_todo.ts
- .gitattributes
- .gitignore
- .mcp.json
- .node-version
- .rspec
- .rubocop.yml
- .rubocop_todo.yml
- .ruby-version
- .stylelint_todo.yml
- .tool-versions
- AGENTS.md
- app.json
- CODE_OF_CONDUCT.md
- config.ru
- docker-compose.yml
- Dockerfile
- eslint.config.ts
- Gemfile
- Gemfile.lock
- LICENSE
- package.json
- pnpm-lock.yaml
- Procfile
- Procfile.dev
- Rakefile
- README.md
- stylelint.config.mjs
- tsconfig.json
- vitest.config.ts
# Installation Guide
1. Get the code
git clone https://github.com/stringer-rss/stringer
Downloads the entire project code from GitHub to your computer.
cd stringer
Moves into the project folder you just downloaded.
2. Docker
Easy RecommendedPrerequisites
- Git Needed to download the project code from GitHub.
- Docker Desktop Needed to build and run containers. Install it and keep it running in the background.
docker compose up -d --build
Builds and starts all defined containers (server, database, etc.) at once, in the background.
Run docker compose ps to check the containers are Up. If the README mentions a port, open http://localhost:PORT in your browser.
3. Node.js
EasyPrerequisites
npm install
Downloads and installs the libraries listed in package.json.
npm start
Starts the development/run server.
After running the command, open the address shown in the terminal (usually something like http://localhost:3000) in your browser.
4. Ruby
EasyPrerequisites
bundle install
Installs the Ruby libraries listed in the Gemfile.
If bundle install finishes without errors, continue with the run command from the README (e.g. rails server).
// repository documentation
Was this content helpful?
(0 ratings)
