yggverse
c968a4d878
|
7 months ago | |
---|---|---|
example | ||
src | 7 months ago | |
.gitignore | ||
LICENSE | ||
README.md | 7 months ago | |
composer.json |
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.git
cp 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 dumpsitem
limit
- 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,server
just 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
CN
value
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!
Autostart
Launch server as systemd
service
Following example means you have Pulsar installed in home directory of pulsar
user (useradd -m pulsar
)
sudo nano /etc/systemd/system/pulsar.service
- create new unit file:
[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