configuration | ||
database | ||
.gitignore | ||
.golangci.yaml | ||
.markdownlint.json | ||
.yamllint.yml | ||
go.mod | ||
go.sum | ||
inn2-fudforum-auth.dist.yaml | ||
inn2-fudforum-auth.go | ||
README.md |
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 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
:
go get -u -v develop.pztrn.name/pztrn/inn2-fudforum-auth
Binary will be placed in $GOPATH/bin
. Use this configuration example as example and tune it.
Configuration
Provider
See this configuration example, 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:
auth admin {
hosts: *
auth: /usr/local/bin/inn2-fudforum-auth -config /etc/news/inn2-fudforum-auth.yaml
}
access admin {
users: "*@admin"
newsgroups: *
}