RSS Aggregator for Gemini Protocol
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
yggverse 93f69ef6c6 sanitize request string 7 months ago
config add missed nl 7 months ago
src sanitize request string 7 months ago
.gitignore init sqlite implementation 7 months ago
LICENSE Initial commit 7 months ago
README.md add systemd config example 7 months ago
composer.json update requirements 7 months ago

README.md

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