fedi feed router is a self-hosted tool for routing content from RSS/Atom feeds to the fediverse.
Find a file
myrmidex 3e23dad5c5
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (push) Has been cancelled
Minor bug fixes
2026-02-25 20:22:02 +01:00
.github/workflows Fresh Laravel + Sail install 2025-06-29 08:50:03 +02:00
app Minor bug fixes 2026-02-25 20:22:02 +01:00
bootstrap 73 - Port react frontend to blade+livewire 2026-01-22 23:38:00 +01:00
config 73 - Move backend to root 2026-01-22 21:55:57 +01:00
database Minor bug fixes 2026-02-25 20:22:02 +01:00
docker 73 - Fix prod environment 2026-01-23 00:32:42 +01:00
public 73 - Move backend to root 2026-01-22 21:55:57 +01:00
resources 74 - Minor fixes 2026-01-23 01:00:37 +01:00
routes 73 - Port react frontend to blade+livewire 2026-01-22 23:38:00 +01:00
storage 73 - Move backend to root 2026-01-22 21:55:57 +01:00
tests 73 - Move backend to root 2026-01-22 21:55:57 +01:00
.dockerignore Fix compose issues 2025-07-03 21:16:57 +02:00
.editorconfig Fresh Laravel + Sail install 2025-06-29 08:50:03 +02:00
.env.example 73 - Move backend to root 2026-01-22 21:55:57 +01:00
.gitattributes Fresh Laravel + Sail install 2025-06-29 08:50:03 +02:00
.gitignore 73 - Move backend to root 2026-01-22 21:55:57 +01:00
artisan 73 - Move backend to root 2026-01-22 21:55:57 +01:00
composer.json 73 - Move backend to root 2026-01-22 21:55:57 +01:00
Dockerfile 73 - Fix prod environment 2026-01-23 00:32:42 +01:00
Dockerfile.dev 73 - Fix dev environment 2026-01-23 00:08:32 +01:00
Jenkinsfile Add tests. 2025-08-02 03:48:06 +02:00
package.json 73 - Move backend to root 2026-01-22 21:55:57 +01:00
phpstan.neon 73 - Move backend to root 2026-01-22 21:55:57 +01:00
phpunit.xml 73 - Move backend to root 2026-01-22 21:55:57 +01:00
postcss.config.js 73 - Move backend to root 2026-01-22 21:55:57 +01:00
README.md 73 - Fix prod environment 2026-01-23 00:32:42 +01:00
shell.nix 73 - Fix prod environment 2026-01-23 00:32:42 +01:00
tailwind.config.js 73 - Move backend to root 2026-01-22 21:55:57 +01:00
vite.config.js 73 - Fix dev environment 2026-01-23 00:08:32 +01:00

FFR (Feed to Fediverse Router)

A Laravel-based application for routing RSS/Atom feeds to Fediverse platforms like Lemmy. Built with Laravel, Livewire, and FrankenPHP for a modern, single-container deployment.

Features

  • Feed aggregation - Fetch articles from multiple RSS/Atom feeds
  • Fediverse publishing - Automatically post to Lemmy communities
  • Route configuration - Map feeds to specific channels with keywords
  • Approval workflow - Optional manual approval before publishing
  • Queue processing - Background job handling with Laravel Horizon
  • Single container deployment - Simplified hosting with FrankenPHP

Self-hosting

The production image is available at codeberg.org/lvl0/ffr:latest.

docker-compose.yml

services:
  app:
    image: codeberg.org/lvl0/ffr:latest
    container_name: ffr_app
    restart: always
    ports:
      - "8000:8000"
    environment:
      APP_KEY: "${APP_KEY}"
      APP_URL: "${APP_URL}"
      DB_DATABASE: "${DB_DATABASE}"
      DB_USERNAME: "${DB_USERNAME}"
      DB_PASSWORD: "${DB_PASSWORD}"
      REDIS_HOST: redis
      REDIS_PORT: 6379
    volumes:
      - app_storage:/app/storage
    depends_on:
      - db
      - redis
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8000/up"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

  db:
    image: mariadb:11
    container_name: ffr_db
    restart: always
    environment:
      MYSQL_DATABASE: "${DB_DATABASE}"
      MYSQL_USER: "${DB_USERNAME}"
      MYSQL_PASSWORD: "${DB_PASSWORD}"
      MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD}"
    volumes:
      - db_data:/var/lib/mysql

  redis:
    image: redis:7-alpine
    container_name: ffr_redis
    restart: always
    volumes:
      - redis_data:/data

volumes:
  db_data:
  redis_data:
  app_storage:

Environment Variables

Variable Required Description
APP_KEY Yes Encryption key. Generate with: echo "base64:$(openssl rand -base64 32)"
APP_URL Yes Your domain (e.g., https://ffr.example.com)
DB_DATABASE Yes Database name
DB_USERNAME Yes Database user
DB_PASSWORD Yes Database password
DB_ROOT_PASSWORD Yes MariaDB root password

Development

NixOS / Nix

git clone https://codeberg.org/lvl0/ffr.git
cd ffr
nix-shell

The shell will display available commands and optionally start the containers for you.

Available Commands

Command Description
dev-up Start development environment
dev-down Stop development environment
dev-restart Restart containers
dev-logs Follow app logs
dev-logs-db Follow database logs
dev-shell Enter app container
dev-artisan <cmd> Run artisan commands
prod-build [tag] Build and push prod image (default: latest)

Services

Service URL
App http://localhost:8000
Vite http://localhost:5173
MariaDB localhost:3307
Redis localhost:6380

Other Platforms

Contributions welcome for development setup instructions on other platforms.

License

This project is open-source software licensed under the AGPL-3.0 license.

Support

For issues and questions, please use Codeberg Issues.