/Pulsar

RSS aggregator for different protocols

Primary LanguagePHPMIT LicenseMIT

Pulsar

RSS aggregator for different protocols

See also alternative branch to generate static gemtext

Features

  • src/crawler.php - scan configured RSS feeds and dump results to SQLite
  • src/cleaner.php - auto clean deprecated records
  • src/server.php - server launcher for different protocols:

Example

  • nex://[301:23b4:991a:634d::feed] - Yggdrasil instance by YGGverse

Install

  1. apt install git composer php-fpm php-sqlite3 php-pdo php-mbstring - install system dependencies
  2. git clone https://github.com/YGGverse/Pulsar.git - get latest Pulsar version
  3. cd Pulsar - navigate project folder
  4. composer update - install application dependencies
  5. cp config/example.json config/name.json - setup your feed

Crawler

  • php src/crawler.php config=name.json - crawl feeds configured by name.json - manually or using crontab
    • config - relative (to config folder) or absolute path to configuration file

Server

Launch as many servers as wanted, for different protocols and configurations (provided as the arguments)

  • php src/server.php protocol=nex config=name.json - launch nex protocol server with name.json config
    • config - relative (config folder) or absolute path to configuration file
    • protocol - server protocol, supported options:

Autostart

systemd

Launch server as the systemd service

Following example mean application installed into the home directory of pulsar user (useradd -m pulsar)

# /etc/systemd/system/pulsar.service

[Unit]
After=network.target

[Service]
Type=simple
User=pulsar
Group=pulsar
ExecStart=/usr/bin/php /home/pulsar/Pulsar/src/server.php protocol=nex config=name.json
StandardOutput=file:/home/pulsar/debug.log
StandardError=file:/home/pulsar/error.log
Restart=on-failure

[Install]
WantedBy=multi-user.target
  • sudo systemctl daemon-reload - reload systemd configuration
  • sudo systemctl enable pulsar - enable service on system startup
  • sudo systemctl start pulsar - start server