fedi feed router is a self-hosted tool for routing content from RSS/Atom feeds to the fediverse.
Find a file
2025-06-30 20:29:55 +02:00
.github/workflows Fresh Laravel + Sail install 2025-06-29 08:50:03 +02:00
app Check community history for same urls 2025-06-30 19:54:43 +02:00
bootstrap Add database logging 2025-06-29 18:33:18 +02:00
config Get JWT token 2025-06-29 20:16:25 +02:00
database Check community history for same urls 2025-06-30 19:54:43 +02:00
docker Dockerize app 2025-06-30 20:29:55 +02:00
public Fresh Laravel + Sail install 2025-06-29 08:50:03 +02:00
resources Add database logging 2025-06-29 18:33:18 +02:00
routes Check community history for same urls 2025-06-30 19:54:43 +02:00
storage Fresh Laravel + Sail install 2025-06-29 08:50:03 +02:00
tests Fresh Laravel + Sail install 2025-06-29 08:50:03 +02:00
.editorconfig Fresh Laravel + Sail install 2025-06-29 08:50:03 +02:00
.env.example Add updated at timestamp 2025-06-29 17:13:18 +02:00
.gitattributes Fresh Laravel + Sail install 2025-06-29 08:50:03 +02:00
.gitignore Add updated at timestamp 2025-06-29 17:13:18 +02:00
.prettierignore Fresh Laravel + Sail install 2025-06-29 08:50:03 +02:00
.prettierrc Fresh Laravel + Sail install 2025-06-29 08:50:03 +02:00
artisan Fresh Laravel + Sail install 2025-06-29 08:50:03 +02:00
components.json Fresh Laravel + Sail install 2025-06-29 08:50:03 +02:00
composer.json Fresh Laravel + Sail install 2025-06-29 08:50:03 +02:00
composer.lock Fresh Laravel + Sail install 2025-06-29 08:50:03 +02:00
docker-compose.yml Add scheduler, fetch service 2025-06-29 09:37:49 +02:00
Dockerfile Dockerize app 2025-06-30 20:29:55 +02:00
eslint.config.js Fresh Laravel + Sail install 2025-06-29 08:50:03 +02:00
package.json Fresh Laravel + Sail install 2025-06-29 08:50:03 +02:00
phpunit.xml Fresh Laravel + Sail install 2025-06-29 08:50:03 +02:00
README.md Dockerize app 2025-06-30 20:29:55 +02:00
tsconfig.json Fresh Laravel + Sail install 2025-06-29 08:50:03 +02:00
vite.config.ts Fresh Laravel + Sail install 2025-06-29 08:50:03 +02:00

Lemmy Poster

A Laravel application for posting articles to Lemmy platforms.

Docker Deployment

Building the Image

docker build -t your-registry/lemmy-poster:latest .
docker push your-registry/lemmy-poster:latest

Docker Compose

Create a docker-compose.yml file:

services:
  app-web:
    image: your-registry/lemmy-poster:latest
    command: ["web"]
    ports:
      - "8000:8000"
    environment:
      - APP_ENV=production
      - APP_KEY=${APP_KEY}
      - DB_CONNECTION=mysql
      - DB_HOST=mysql
      - DB_PORT=3306
      - DB_DATABASE=lemmy_poster
      - DB_USERNAME=lemmy_user
      - DB_PASSWORD=${DB_PASSWORD}
      - QUEUE_CONNECTION=database
      - LEMMY_INSTANCE=${LEMMY_INSTANCE}
      - LEMMY_USERNAME=${LEMMY_USERNAME}
      - LEMMY_PASSWORD=${LEMMY_PASSWORD}
      - LEMMY_COMMUNITY=${LEMMY_COMMUNITY}
    depends_on:
      - mysql
    volumes:
      - storage_data:/var/www/html/storage/app
    restart: unless-stopped

  app-queue:
    image: your-registry/lemmy-poster:latest
    command: ["queue"]
    environment:
      - APP_ENV=production
      - APP_KEY=${APP_KEY}
      - DB_CONNECTION=mysql
      - DB_HOST=mysql
      - DB_PORT=3306
      - DB_DATABASE=lemmy_poster
      - DB_USERNAME=lemmy_user
      - DB_PASSWORD=${DB_PASSWORD}
      - QUEUE_CONNECTION=database
      - LEMMY_INSTANCE=${LEMMY_INSTANCE}
      - LEMMY_USERNAME=${LEMMY_USERNAME}
      - LEMMY_PASSWORD=${LEMMY_PASSWORD}
      - LEMMY_COMMUNITY=${LEMMY_COMMUNITY}
    depends_on:
      - mysql
    volumes:
      - storage_data:/var/www/html/storage/app
    restart: unless-stopped

  mysql:
    image: mysql:8.0
    environment:
      - MYSQL_DATABASE=lemmy_poster
      - MYSQL_USER=lemmy_user
      - MYSQL_PASSWORD=${DB_PASSWORD}
      - MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
    volumes:
      - mysql_data:/var/lib/mysql
    restart: unless-stopped

volumes:
  mysql_data:
  storage_data:

Environment Variables

Create a .env file with:

APP_KEY=your-app-key-here
DB_PASSWORD=your-db-password
DB_ROOT_PASSWORD=your-root-password
LEMMY_INSTANCE=your-lemmy-instance.com
LEMMY_USERNAME=your-lemmy-username
LEMMY_PASSWORD=your-lemmy-password
LEMMY_COMMUNITY=your-target-community

Generate the APP_KEY:

openssl rand -base64 32 | tr -d '='

Deployment

  1. Build and push the image
  2. Copy the docker-compose.yml to your server
  3. Create the .env file with your environment variables
  4. Run: docker-compose up -d

The web interface will be available on port 8000, ready for CloudFlare tunnel configuration.