# pulsarss ![Build](https://github.com/YGGverse/pulsarss/actions/workflows/build.yml/badge.svg) [![Dependencies](https://deps.rs/repo/github/YGGverse/pulsarss/status.svg)](https://deps.rs/repo/github/YGGverse/pulsarss) [![crates.io](https://img.shields.io/crates/v/pulsarss.svg)](https://crates.io/crates/pulsarss) ## RSS Aggregator for [Gemini Protocol](https://geminiprotocol.net/) `pulsarss` is a multi-process crawler for RSS feeds, that collects and converts results into the static [gemtext](https://geminiprotocol.net/docs/gemtext.gmi) files; also aggregates an actual `index.gmi` file in the relevant folders organized by channel / item `pub_date`. > [!NOTE] > At this moment, `pulsarss` does not provide any built-in server. To read the data collected, use any server for static files listed in the [awesome-gemini](https://github.com/kr1sp1n/awesome-gemini#servers) ## Install ``` bash cargo install pulsarss ``` ## Launch ``` bash pulsarss --source https://path/to/feed.rss --index index.gmi ``` ### Options ``` bash pulsarss --help ``` ### Autostart #### systemd 1. Install `pulsarss` by copy the binary compiled into the native system apps destination: * Linux: `sudo install /home/user/.cargo/bin/pulsarss /usr/local/bin/pulsarss` 2. Create `systemd` configuration file: ``` pulsarss.service # /etc/systemd/system/pulsarss.service [Unit] After=network-online.target Wants=network-online.target [Service] Type=simple User=pulsarss Group=pulsarss # Uncomment for debug # Environment="RUST_LOG=debug" # Environment="NO_COLOR=1" ExecStart=/usr/local/bin/pulsarss -s https://path/to/feed.rss -i index.gmi StandardOutput=file:///home/pulsarss/debug.log StandardError=file:///home/pulsarss/error.log [Install] WantedBy=multi-user.target ``` * example above requires new system user (`useradd -m pulsarss`) 3. Run in priority: * `systemctl daemon-reload` - reload systemd configuration * `systemctl enable pulsarss` - enable new service * `systemctl start pulsarss` - start the process * `systemctl status pulsarss` - check process launched