yggverse
8bce4bc809
|
7 months ago | |
---|---|---|
example | 7 months ago | |
src | 7 months ago | |
.gitignore | 7 months ago | |
LICENSE | 7 months ago | |
README.md | 7 months ago | |
composer.json | 7 months ago |
README.md
Pulsar
RSS Aggregator for Gemini Protocol
Simple RSS feed converter to static Gemtext format, useful for news portals or localhost reading
Example
gemini://[301:23b4:991a:634d::feed]
- Yggdrasil instance by YGGversegemini://pulsar.yggverse.dedyn.io
- Internet alias
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 for gemtext
statics)
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 without domain in 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 service file by following example:
[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