134 lines
3.8 KiB
Markdown
134 lines
3.8 KiB
Markdown
# comitium
|
||
|
||
comitium is currently looking for translations! See [translating.md][] for
|
||
info on how to help out!
|
||
|
||
comitium is a [Gemini][], Gopher, and HTTP feed aggregator that supports Atom,
|
||
RSS, JSON, and [Gemini feeds][], as well as tracking page changes, which is
|
||
output into a simple static Gemini document that you can put anywhere.
|
||
|
||
You can see a running instance in action at
|
||
[gemini://nytpu.com/feed.gmi](gemini://nytpu.com/feed.gmi).
|
||
|
||
[translating.md]: doc/translating.en.md
|
||
[Gemini]: https://gemini.circumlunar.space/docs/faq.gmi
|
||
[Gemini feeds]: https://gemini.circumlunar.space/docs/companion/subscription.gmi
|
||
[lagrange]: https://github.com/skyjake/lagrange/blob/dev/res/about/help.gmi#L184-L197
|
||
[gmisub]: https://git.sr.ht/~callum/gmisub
|
||
[gemreader]: https://sr.ht/~sircmpwn/gemreader/
|
||
|
||
|
||
## why another aggregator?
|
||
|
||
There are many Gemini aggregators out there, and yet not one does everything I
|
||
want it to. I want an aggregator that:
|
||
|
||
1. Works with Gemini *and* Gopher (and possibly http)
|
||
2. Supports Atom, RSS, and Gemini feeds (and possibly JSON feeds)
|
||
3. Can watch a page for changes
|
||
4. Simple and easy setup & usage
|
||
|
||
All of the aggregators always have really cool and unique features, and yet all
|
||
that I've found don't meet one or more of these basic (IMO) criterion. Hence,
|
||
going and writing my own.
|
||
|
||
Also, it's nice if it doesn't tie me to a specific browser/service; i.e.
|
||
trivially self-hostable, ideally as CGI or static pages that can use an existing
|
||
server setup rather than needing vhosting and routes.
|
||
|
||
|
||
## usage
|
||
|
||
See `comitium help` for basic usage. For more detailed usage, see
|
||
[comitium(1)][comitium.1].
|
||
|
||
To get up and running, see the [quickstart/tutorial page][quickstart].
|
||
|
||
|
||
[comitium.1]: doc/comitium.1.scd
|
||
[quickstart]: doc/quickstart.en.md
|
||
|
||
|
||
## building & installing
|
||
|
||
### downloading binaries
|
||
|
||
[You can download prebuilt binaries here](https://nytpu.com/releases/comitium/)
|
||
|
||
|
||
### building
|
||
|
||
Dependencies:
|
||
|
||
* go (module-aware)
|
||
* [scdoc][]
|
||
|
||
Then do the standard:
|
||
|
||
```
|
||
$ git clone git://git.nytpu.com/comitium # you could also download a tarball
|
||
$ cd comitium
|
||
$ make
|
||
# make install
|
||
```
|
||
|
||
A note to packagers (yes, I'm ambitious aren't I?): make sure to build with
|
||
`make COMMIT=tarball`, otherwise there will be an issue when building in a
|
||
non–git-repo.
|
||
|
||
|
||
[scdoc]: https://git.sr.ht/~sircmpwn/scdoc
|
||
|
||
|
||
## contributing
|
||
|
||
Send patches and issue reports to
|
||
[~nytpu/public-inbox@lists.sr.ht](mailto:~nytpu/public-inbox@lists.sr.ht) or
|
||
[alex@nytpu.com](mailto:alex@nytpu.com)
|
||
|
||
|
||
## attributions
|
||
|
||
`comitium` took inspiration and small code snippets from:
|
||
|
||
* [Amfora][] — how to structure saving subscriptions to JSON and refreshing
|
||
subscriptions with goroutines.
|
||
* [gemreader][] — simple Gemini feed parsing.
|
||
|
||
`comitium` gratefully makes use of the following libre libraries:
|
||
|
||
* [go-gemini][] for fetching Gemini resources.
|
||
* [go-gopher][] for fetching Gopher resources.
|
||
* [gofeed][] for parsing Atom, RSS, and JSON feeds.
|
||
* [pflag][] for parsing flags and arguments.
|
||
* [go-homedir][] for locating configuration directories.
|
||
|
||
|
||
[Amfora]: https://github.com/makeworld-the-better-one/amfora
|
||
[gemreader]: https://git.sr.ht/~sircmpwn/gemreader
|
||
[go-gemini]: https://git.sr.ht/~adnano/go-gemini
|
||
[go-gopher]: https://git.mills.io/prologic/go-gopher
|
||
[gofeed]: https://github.com/mmcdole/gofeed
|
||
[pflag]: https://github.com/spf13/pflag
|
||
[go-homedir]: https://github.com/mitchellh/go-homedir
|
||
|
||
|
||
## license
|
||
|
||
`comitium` is Copyright © 2021-2023 nytpu.
|
||
|
||
`comitium` is licensed under the terms of the GNU Affero General Public License,
|
||
version 3. For more information, see [LICENSE][] or the [GNU website][agpl-3]
|
||
|
||
|
||
[LICENSE]: LICENSE
|
||
[agpl-3]: https://www.gnu.org/licenses/agpl-3.0-standalone.html
|
||
|
||
|
||
|
||
## pssst! what does *comitium* even mean?
|
||
|
||
*Comitium* means “gathering” or “assembly” in Latin. `comitium` gathers
|
||
together stuff from all protocols into one centralized place. Blah blah blah,
|
||
you get the picture.
|