Skip to content

YGGverse/Pulsar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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