Skip to content

Conversation

@le-lenn
Copy link

@le-lenn le-lenn commented Dec 5, 2025

This PR adds the option to automatically push new entries to integrated readeck instances.

Have you followed these guidelines?

Readeck Auto‑Push Integration Manual Test

This document describes a small local setup to manually test the Miniflux → Readeck integration with “Automatically push new entries to Readeck” enabled, using a simple Nginx‑served RSS feed.

———

1. Goals

  • Run Readeck via Docker.
  • Run an Nginx container serving a static RSS feed.
  • Run Miniflux locally, configure Readeck integration (including auto‑push).
  • Subscribe Miniflux to the Nginx RSS feed and verify new entries are pushed automatically to Readeck.

———

2. Prerequisites

  • Docker and Docker Compose installed.
  • Miniflux running locally (e.g. on http://localhost:8080 or similar).

From Miniflux’s perspective, Readeck will be http://localhost:8000 and the RSS feed will be http://localhost:8081/feed.xml.

———

3. Docker Compose Setup

Create a file docker-compose.readeck-test.yml with the following content:


 services:
   # Readeck application
   app:
     image: codeberg.org/readeck/readeck:latest
     container_name: readeck
     ports:
       - "8000:8000"
     environment:
       # Defines the application log level. Can be error, warn, info, debug.
       READECK_LOG_LEVEL: info
       # The IP address on which Readeck listens.
       READECK_SERVER_HOST: "0.0.0.0"
       # The TCP port on which Readeck listens.
       READECK_SERVER_PORT: 8000
       # Easier to read log format
       READECK_LOG_FORMAT: text
       # Optional, the URL prefix of Readeck.
       # READECK_SERVER_PREFIX: "/"
     volumes:
       - readeck-data:/readeck
     restart: unless-stopped
     healthcheck:
       test: ["CMD", "/bin/readeck", "healthcheck", "-config", "config.toml"]
       interval: 30s
       timeout: 2s
       retries: 3

   # Simple Nginx serving a static RSS feed
   rss:
     image: nginx:alpine
     container_name: readeck-rss
     ports:
       - "8081:80"
     volumes:
       # Mount local directory with RSS file(s)
       - ./testdata/rss:/usr/share/nginx/html:ro
     restart: unless-stopped

 volumes:
   readeck-data:

Key points:

———

4. RSS Feed Served by Nginx

Create the directory testdata/rss (relative to the compose file) and add a file feed.xml:

testdata/rss/feed.xml:

  <?xml version="1.0" encoding="UTF-8"?>
  <rss version="2.0">
    <channel>
      <title>Readeck Test Feed</title>
      <link>http://localhost:8081/</link>
      <description>Test feed for Miniflux → Readeck integration</description>
      <language>en-us</language>
      <item>
        <title>Initial Test Article</title>
        <link>https://example.com/readeck-test-1</link>
        <guid>readeck-test-1</guid>
        <pubDate>Mon, 01 Jan 2024 12:00:00 +0000</pubDate>
        <description><![CDATA[
          <p>This is the initial test article content for Readeck auto-push.</p>
        ]]></description>
      </item>
    </channel>
  </rss>

To simulate a new article later, you will edit this file and add another .

———

5. Starting the Test Environment

From the directory containing docker-compose.readeck-test.yml:

docker compose -f docker-compose.readeck-test.yml up -d

Quick checks:

———

6. Readeck Setup

  1. Create initial user
    Follow the prompts to create an admin user.
  2. Log in to Readeck UI at http://localhost:8000 with the created user.
  3. Obtain API key:
    • Go to Readeck’s settings / API section.
    • Create an API token
    • Note this token; you will use it in Miniflux.
CleanShot 2025-12-12 at 16 56 34@2x

Base URL to use in Miniflux: http://localhost:8000.

———

7. Miniflux Configuration

7.1 Configure Readeck Integration

In the Miniflux UI:

  1. Navigate to Integrations (user settings).
  2. Find the Readeck section.
  3. Set:
    • Readeck endpoint: http://localhost:8000
    • API key: the token from Readeck.
    • Labels: e.g. tag1,tag2 (to mirror what the tests use).
    • Only send URL:
      • For testing the JSON onlyURL path, enable this.
      • For testing full content (multipart), disable this.
    • Automatically push new entries to Readeck:
      • Enable this (this is the readeck_push_activate flag).
  4. Save the integration settings.

7.2 Subscribe to the RSS Feed

Still in Miniflux:

  1. Add a new subscription / feed.
  2. Feed URL: http://localhost:8081/feed.xml
  3. Select appropriate category and save.

At this point Miniflux knows about the test feed but might not have fetched it yet.

———

8. Test Procedure

8.1 Initial Fetch and Push

  1. In Miniflux, refresh the new feed (manually fetch the feed or wait for the poller).
  2. Verify:
    • The article “Initial Test Article” appears in Miniflux.
  3. In Readeck:
    • Refresh the page.
    • There should be no new items since the initial fetch of "old" RSS items does not auto-push into integrations

8.2 Adding a New RSS Item

  1. Edit testdata/rss/feed.xml and add a second :
 <item>
        <title>Initial Test Article</title>
        <link>https://example.com/readeck-test-1</link>
        <guid>readeck-test-1</guid>
        <pubDate>Mon, 01 Jan 2024 12:00:00 +0000</pubDate>
        <description><![CDATA[
          <p>This is the initial test article content for Readeck auto-push.</p>
        ]]></description>
      </item>

Place it under the first item.

  1. No container restart is required; Nginx serves static files directly from the bind mount.
  2. In Miniflux, manually refresh the test feed again.
  3. Verify:
    • “Second Test Article” appears in Miniflux.

If this works, it confirms that each newly discovered entry in Miniflux triggers the Readeck auto‑push.

———

9. Expected Results

  • When new items are added to the feed:
    • Miniflux fetches them and shows them in the UI.
    • Readeck automatically receives new bookmarks for those items, without manual action.
CleanShot 2025-12-12 at 17 12 00@2x

@le-lenn le-lenn changed the title [WIP] Add push entries option to readeck integration feat: Add push entries option to readeck integration Dec 5, 2025
@le-lenn le-lenn changed the title feat: Add push entries option to readeck integration feat: option to readeck integration to auto-push new entries Dec 12, 2025
@le-lenn le-lenn changed the title feat: option to readeck integration to auto-push new entries feat: Add option to readeck integration to auto-push new entries Dec 12, 2025
@le-lenn le-lenn marked this pull request as ready for review December 12, 2025 16:09
@le-lenn le-lenn force-pushed the readeck-push-entries branch from 9a0aff7 to d16bba2 Compare December 13, 2025 07:38
@le-lenn le-lenn marked this pull request as draft December 13, 2025 07:39
@le-lenn le-lenn force-pushed the readeck-push-entries branch from d16bba2 to 2d1f085 Compare December 13, 2025 07:47
@le-lenn le-lenn force-pushed the readeck-push-entries branch from 2d1f085 to 222e07a Compare December 13, 2025 07:50
@le-lenn le-lenn marked this pull request as ready for review December 13, 2025 07:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant