Files
comitium/README.md
T
2021-03-21 07:53:31 -06:00

146 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# comitium
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).
[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 usage that doesn't get all tangled with my non-subscription bookmarks
(\*cough\**Lagrange*\*cough\*)
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 page][quickstart].
[comitium.1]: doc/comitium.1.scd
[quickstart]: doc/quickstart.md
## building & installing
### downloading binaries
You can download prebuilt x86-64 binaries for Linux, FreeBSD, and Mac:
* [comitium v1.2.3 Linux][linux] — [GPG Signature][linux-sig]
* [comitium v1.2.3 FreeBSD][bsd] — [GPG Signature][bsd-sig]
* [comitium v1.2.3 Mac][mac] — [GPG Signature][mac-sig]
[SHA256 sums for all binaries][sums]
[linux]: https://nytpu.com/files/releases/comitium-v1.2.3-x86_64-linux
[linux-sig]: https://nytpu.com/files/releases/comitium-v1.2.3-x86_64-linux.gpg
[bsd]: https://nytpu.com/files/releases/comitium-v1.2.3-x86_64-freebsd
[bsd-sig]: https://nytpu.com/files/releases/comitium-v1.2.3-x86_64-freebsd.gpg
[mac]: https://nytpu.com/files/releases/comitium-v1.2.3-x86_64-darwin
[mac-sig]: https://nytpu.com/files/releases/comitium-v1.2.3-x86_64-darwin.gpg
[sums]: https://nytpu.com/files/releases/comitium-v1.2.3-sha256sums.txt
### 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
nongit-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)
## 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://github.com/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 nytpu.
`comitium` is licensed under the terms of the GNU Affero General Public
License, either version 3 of the License, or (at your option) any later
version. 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.