diff --git a/README.md b/README.md index 186fcb3..6e32034 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,20 @@ -# NNTPChan # +NNTPChan +======== -NNTPChan (previously known as overchan) is a decentralized imageboard that uses nntp to synchronize content between many different servers. It utilizes cryptographically signed posts to perform optional/opt-in decentralized moderation. +**NNTPChan** (previously known as overchan) is a decentralized imageboard that uses the [NNTP protocol](https://en.wikipedia.org/wiki/Network_News_Transfer_Protocol) (network-news protocol) to synchronize content between many different servers. It utilizes cryptographically signed posts to perform optional/opt-in decentralized moderation. This repository contains resources used by the core daemon which is located on [github](https://github.com/majestrate/srndv2) (for now) along with general documentation, [here](doc/) -## getting started ## +##Getting started +This is a step-by-step guide for getting up and running with NNTPChan. -[see build documentation](doc/build.md) +1. [Compile the NNTPChan server](doc/build.md) +2. [Configuring your NNTPChan node](doc/config.md) ---- +##Bugs and issues -*PLEASE* report any bugs you find while setting up or building on [github](https://github.com/majestrate/nntpchan/issues) or [gitgud](https://gitgud.io/uguu/nntpchan/issues) so that the problems get fixed :\^) +*PLEASE* report any bugs you find while building, setting-up or using NNTPChan on the [GitHub issue tracker](https://github.com/majestrate/nntpchan/issues) or on the [GitGud issue tracker](https://gitgud.io/uguu/nntpchan/issues) so that the probelms can be resolved or discussed. IRC: diff --git a/build.sh b/build.sh index ff2181c..090b3c5 100755 --- a/build.sh +++ b/build.sh @@ -88,4 +88,5 @@ else cp $GOPATH/bin/srndv2 $root fi -echo "Built" +echo -e "Built\n" +echo "Now configure NNTPChan with ./srndv2 setup" diff --git a/doc/build.md b/doc/build.md index 7800c9e..ec76253 100644 --- a/doc/build.md +++ b/doc/build.md @@ -1,38 +1,52 @@ -# building the daemon # +Building the NNTPChan server +============================ +This document will help you setup the NNTPChan server from the source code. -## requirements ## +##Requirements -* linux or freebsd -* libsodium 1.0 or higher +NNTPChan can run on the following operating systems: + +* Linux +* FreeBSD + +Dependancies: + +* libsodium _1.0_ or _higher_ * imagemagick * ffmpeg * sox +* go _1.6_ or _higher_ **with redis driver** +* go _1.3_ or _higher_ **without redis driver** -## supported go versions ## +##Debian instructions -* `go 1.6` or higher with redis driver +These are installation instructions for Debian. -* `go 1.3` or higher without redis driver +###Install Go -## debian ## +Install the Go programming language version _1.6_ from the [Go website](https://golang.org/dl/). -Get `go 1.6` from [here](https://golang.org/dl/) for your platform - -Get the dependancies +###Install the dependancies sudo apt-get update sudo apt-get --no-install-recommends install imagemagick libsodium-dev ffmpeg sox build-essential git ca-certificates +###Get the NNTPChan source -Check out the repo and build it - - git clone https://github.com/majestrate/nntpchan + git clone https://github.com/majestrate/nntpchan --depth=1 cd nntpchan + +###Now compile! + +If you want to compile with Redis support (recommended - Redis is easy to use) then run: + ./build.sh -If you want to build without supporting redis then build with the `--no-redis` flag +If you want to build without support for Redis then build with the `--no-redis` flag: ./build.sh --no-redis -To run eiter run `./srndv2 setup` and browse to http://127.0.0.1:18000 or configure [by hand](database.md) +##Now let's setup NNTPChan + +Check out [Configuring NNTPChan](config.md). diff --git a/doc/cli.md b/doc/cli.md index a71a59d..5c4ea32 100644 --- a/doc/cli.md +++ b/doc/cli.md @@ -1,20 +1,37 @@ -# command line interface +#Command-line interface + +**srndv2** comes with a selection of command-line arguments for managing your node. + +##Rebuild all thumbnails + +To rebuild all thumbnails run: - # rebuild all thumbnails srndv2 tool rethumb - # generate a new tripcode keypair - # print out to stdout +##Generate a new tripcode keypair (prints to stdout) + srndv2 tool keygen + +##Add a public key to moderation trust + +Where `publickey` is the public key to be added. + + srndv2 tool mod add publickey - # add an nntp login +##Remove a public key from moderation trust + +Where `publickey` is the public key to be removed. + + srndv2 tool mod del publickey + +##Add a new NNTP user + +Where `username` is the username and `password` is the user's password for the new uer. + srndv2 tool nntp add-login username password - - # remove an nntp login + +##Remove an existing NNTP user + +Where `username` is the username of the user to be deleted. + srndv2 tool nntp del-login username - - # add public key to moderation trust - srndv2 tool mod add publickeygoeshere - - # remove public key from moderation trust - srndv2 tool mod del publickeygoeshere diff --git a/doc/config.md b/doc/config.md new file mode 100644 index 0000000..7b717da --- /dev/null +++ b/doc/config.md @@ -0,0 +1,72 @@ +Configuring NNTPChan server +=========================== + +This document provides a step-by-step guide to configurin your NNTPChan node. + +##Configuring via web-interface + +You can configure NNTPChan via the web-interface by navigating your browser to http://127.0.0.1:18000. + +###Selecting your data-storage system + +![Image 1](http://i.imgur.com/l9iiXxB.png) + +First your will be asked what data-storage system you would like to use. We support Redis and PostgreSQL. + +
+ +####Redis configuration + +![Image 2](http://i.imgur.com/HDp4Ddf.png) + +If you have chosen Redis then fill in the fields below: + +* **Hostname or IP Address** - This is the hostname or IP address of your Redis server (I would run it locally on 127.0.0.1 to be safe). +* **Port number** - The port that your Redis server is running on. +* **Password** - Optional authentication password for Redis ([Setting up a Redis password](securing-redis.md)). + +
+ +####PostgreSQL configuration + +![Image 3](http://i.imgur.com/WPXedZB.png) + +If you have chosen PostgreSQL then fill in the fields below: + +* **Hostname or IP Address** - This is the hostname or IP address of your PostreSQL server (I would run it locally on 127.0.0.1 to be safe). +* **Port number** - This is the port that your PostgreSQL server is running on. +* **Username** - The username for PostgreSQL. +* **Password** - The password for PostgreSQL. + +
+ +###Configuring the NNTP server + +![Image 4](http://i.imgur.com/FXxShtu.png) + +Fill in the fields required for the NNTP server. + +* **Name of NNTP instance** - What is the significamce of this name. +* **Allow attachements** - Check the box if you want people to be able to add attachements to posts. +* **Allow anonymous posters** - Check the box if you want to allow anonymous posters. +* **Allow attachments from anonymous posters** - Check the box if you want to allow anonymous posters to add attachments to their posts. +* **Require TLS for incoming connections** - Check the box if NNTP connections must be encrypted and authenticated with TLS (highly recommended). + +###Configuring TLS + +![Image 5](http://i.imgur.com/EjkrjTT.png) + +Fill in the fields required for the TLS security system. + +* **Hostname or IP address** - FIXME. +* **TLS keyname** - FIXME. + +###Set paths to external programs + +![Image 6](http://i.imgur.com/hBXYJDo.png) + +NNTPChan needs to know the paths to the listed programs on your system. + +* **convert path** - Path to the `convert` program. +* **ffmpeg path** - Path to the `ffmpeg` program. +* **sox path** - Path to the `sox` program. diff --git a/doc/securing-redis.md b/doc/securing-redis.md new file mode 100644 index 0000000..5983166 --- /dev/null +++ b/doc/securing-redis.md @@ -0,0 +1,15 @@ +Securing Redis +============== + +This document provides a good tip for securing your Redis server, just to be 100% happy with the security. + +##Adding an authentication password for commands + +This will allow you to add a password to your Redis server that must be used before any other commands can be issued to your Redis server. + +* Remember choose a strong password with lower-case, upper-case, numbers and other symbols. +* Make sure there are no spaces. (need to still test this #6969) + +Then take your password, `x` and run this command (with `sudo` if needed). + + echo "requirepass x" >> /path/to/your/redis.conf