inn2-fudforum-auth/README.md

46 lines
1.9 KiB
Markdown
Raw Permalink Normal View History

2019-09-08 00:14:00 +05:00
# FUDForum authentication provider for INN2
This repository contains FUDForum authentication provider for INN2.
Reason this project exists is a big need in federated (well, okay, kind of, INN2 isn't federated but peering software) forum for [Medium ISP](https://mediumfoundation.org) which works on Yggdrasil. After googling I decided that write one from scratch will be a very big deal and tried to re-use existing technologies. I've choosed NNTP (aka Usenet) server INN2 and FUDForum, which able to sync messages from and to NNTP server. After that came "the problem of authorization" - I was using htpasswd-formatted file first, but users will definetely want easy-to-use GUI (WUI, web UI, okay) to register or reset their passwords. And inn2-fudforum-auth appeared.
## Dependencies
Nothing except Go compiler. Version 1.9+ is recommended. All dependencies are vendored, so inn2-fudforum-auth will compile event in constraint environments.
Right now authentication provider is able to connect only to PostgreSQL database. MRs are welcome for other providers.
## Installation
Right now you can build it yourself by using ``go get``:
```bash
go get -u -v develop.pztrn.name/pztrn/inn2-fudforum-auth
```
Binary will be placed in ``$GOPATH/bin``. Use [this configuration example](/inn2-fudforum-auth.dist.yaml) as example and tune it.
2019-09-08 00:14:00 +05:00
## Configuration
### Provider
See [this configuration example](/inn2-fudforum-auth.dist.yaml), it has comments for each section.
Don't forget to define default group and other groups your INN2 is using in ``readers.conf``!
### INN2
INN2 authentication uses ``auth`` and ``access`` blocks, first for authentication and second for authorization. We should define them both for each users group. Example for ``admin`` group from configuration example:
```text
auth admin {
hosts: *
auth: /usr/local/bin/inn2-fudforum-auth -config /etc/news/inn2-fudforum-auth.yaml
}
access admin {
users: "*@admin"
newsgroups: *
}
```