commit
8802d5feef
15
README.md
15
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/)
|
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:
|
IRC:
|
||||||
|
|
||||||
|
3
build.sh
3
build.sh
@ -88,4 +88,5 @@ else
|
|||||||
cp $GOPATH/bin/srndv2 $root
|
cp $GOPATH/bin/srndv2 $root
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Built"
|
echo -e "Built\n"
|
||||||
|
echo "Now configure NNTPChan with ./srndv2 setup"
|
||||||
|
46
doc/build.md
46
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
|
NNTPChan can run on the following operating systems:
|
||||||
* libsodium 1.0 or higher
|
|
||||||
|
* Linux
|
||||||
|
* FreeBSD
|
||||||
|
|
||||||
|
Dependancies:
|
||||||
|
|
||||||
|
* libsodium _1.0_ or _higher_
|
||||||
* imagemagick
|
* imagemagick
|
||||||
* ffmpeg
|
* ffmpeg
|
||||||
* sox
|
* 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
|
###Install the dependancies
|
||||||
|
|
||||||
Get the dependancies
|
|
||||||
|
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get --no-install-recommends install imagemagick libsodium-dev ffmpeg sox build-essential git ca-certificates
|
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 --depth=1
|
||||||
|
|
||||||
git clone https://github.com/majestrate/nntpchan
|
|
||||||
cd nntpchan
|
cd nntpchan
|
||||||
|
|
||||||
|
###Now compile!
|
||||||
|
|
||||||
|
If you want to compile with Redis support (recommended - Redis is easy to use) then run:
|
||||||
|
|
||||||
./build.sh
|
./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
|
./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).
|
||||||
|
41
doc/cli.md
41
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
|
srndv2 tool rethumb
|
||||||
|
|
||||||
# generate a new tripcode keypair
|
##Generate a new tripcode keypair (prints to stdout)
|
||||||
# print out to stdout
|
|
||||||
srndv2 tool keygen
|
srndv2 tool keygen
|
||||||
|
|
||||||
# add an nntp login
|
##Add a public key to moderation trust
|
||||||
|
|
||||||
|
Where `publickey` is the public key to be added.
|
||||||
|
|
||||||
|
srndv2 tool mod add publickey
|
||||||
|
|
||||||
|
##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
|
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
|
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
|
|
||||||
|
72
doc/config.md
Normal file
72
doc/config.md
Normal file
@ -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.
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
####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)).
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
####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.
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
###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.
|
15
doc/securing-redis.md
Normal file
15
doc/securing-redis.md
Normal file
@ -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
|
Reference in New Issue
Block a user