| example | ||
| src | ||
| .gitignore | ||
| composer.json | ||
| LICENSE | ||
| README.md | ||
Pulsar
RSS Aggregator for Gemini Protocol
Simple RSS feed converter to static Gemtext format, useful for news portals or localhost reading
Usage
git clone https://github.com/YGGverse/Pulsar.gitcp example/crawler.json crawler.json- setup your feed locationsphp src/crawler.php- grab feeds manually or using crontab
Config
Configuration file supports multiple feed channels with custom settings:
source- string, filepath or URL to the valid RSS feedtarget- string, relative or absolute path to Gemtext dumpsitemlimit- integer, how many items to display on page generatedtemplate- string, custom pattern for feed item, that supports following macros{nl}- new line separator{link}- item link{guid}- item guid{pubDate}- item pubDate, soon with custom time format e.g.{pubDate:Y-m-d H:s}{title}- item title{description}- item description
Resulting files could be placed to any local folder (for personal reading) or shared with others (using gmid, twins or any other server)
Server
Pulsar comes with build-in Titan-II server implementation.
It's especially useful for Yggdrasil users, who wish to host their feeds using plain IPv6 0200::/7 addresses as the CN record. Build-in server contain this feature implemented from the box.
Setup
cd Pulsar- navigate to the project foldercomposer update- download server dependencies with Composermkdir server/127.0.0.1- init server location (you can define any other destination,serverjust git ignored)cp example/host.json server/127.0.0.1/host.json- copy configuration example to the destination foldercd server/127.0.0.1- navigate to server folder created and generate new self-signed certificate
On example above, certificate could be generated with following command:
openssl req -x509 -newkey rsa:4096 -keyout key.rsa -out cert.pem -days 365 -nodes -subj "/CN=127.0.0.1"
- tip: for IPv6 address, just skip square brackets from
CNvalue
Launch
php src/server.php server/127.0.0.1- supported relative or absolute paths (for systemd service)
Open gemini://127.0.0.1 in Gemini browser!
Service
Launch Pulsar server as systemd service
Following example means you have Pulsar installed in home directory of pulsar user (useradd -m pulsar)
#/etc/systemd/system/pulsar.service
[Unit]
After=network.target
[Service]
Type=simple
User=pulsar
ExecStart=/usr/bin/php /home/pulsar/Pulsar/src/server.php /home/pulsar/Pulsar/server/127.0.0.1
StandardOutput=file:/home/pulsar/Pulsar/server/127.0.0.1/debug.log
StandardError=file:/home/pulsar/Pulsar/server/127.0.0.1/error.log
Restart=on-failure
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload- reload systemd configurationsudo systemctl enable pulsar- enable Pulsar service on system startupsudo systemctl start pulsar- start Pulsar server