Skip to content

rsscloud/tester

Repository files navigation

rsscloud-tester

A small web app for testing rssCloud publisher implementations. Subscribe to a feed's cloud endpoint, receive /feedupdated notifications, and watch them stream into a live dashboard over a WebSocket.

Built with Hono + @hono/node-server and Tailwind CSS.

Configuration

Required environment variables (see .env.example):

  • PASSWORD — dashboard login password.
  • PUBLIC_URL — the externally reachable URL of this app (used as the rssCloud callback). For multiple subscriber URLs (e.g. https + http), set PUBLIC_URL_1 through PUBLIC_URL_9 instead.
  • PORT — listen port (default 3000).

Feeds are persisted to ./data/feeds.json.

Local development

cp .env.example .env     # then edit PASSWORD and PUBLIC_URL
npm install
npm run dev              # tsx watch + tailwind watch

Production-style run from the same checkout:

npm run build
npm start                # reads .env, runs node dist/index.js

Docker

The repo ships a multi-stage Dockerfile and npm scripts that publish a multi-arch image (linux/amd64 + linux/arm64) to ghcr.io/andrewshell/rsscloud-tester.

Prerequisites

  1. A buildx builder:
    docker buildx create --use
  2. Login to GHCR with a GitHub PAT that has write:packages:
    echo "$GHCR_TOKEN" | docker login ghcr.io -u andrewshell --password-stdin

Building and publishing

Both scripts tag the image :latest and :<version>, where <version> is read from package.json.

npm run docker:build     # multi-arch build, no push (verification only)
npm run docker:push      # multi-arch build + push to ghcr.io

To cut a new release, bump version in package.json and run npm run docker:push.

Note: docker:build does not load the image into the local Docker engine — multi-arch manifests can't live there. For a local smoke test, do a single-arch --load build:

docker buildx build --load -t rsscloud-tester:test .

Running the container

Env vars are passed at runtime (the image does not bake in a .env). Mount a volume at /app/data if you want feeds to persist across restarts.

docker run --rm -p 3000:3000 \
  -e PASSWORD=changeme \
  -e PUBLIC_URL=https://tester.example.com \
  -v $(pwd)/data:/app/data \
  ghcr.io/andrewshell/rsscloud-tester:latest

Or with an env file:

docker run --rm -p 3000:3000 \
  --env-file .env \
  -v $(pwd)/data:/app/data \
  ghcr.io/andrewshell/rsscloud-tester:latest

Docker Compose (Dockge)

Drop this next to a .env file. Mount ./data if you want feeds to survive a recreate.

services:
  web:
    image: ghcr.io/andrewshell/rsscloud-tester:latest
    restart: unless-stopped
    ports:
      - 3000:3000
    env_file:
      - .env
    volumes:
      - ./data:/app/data
networks: {}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors