Archived
1
0

resolve conflict

This commit is contained in:
jeff 2015-09-04 16:51:19 -04:00
commit fb06097557
9 changed files with 213 additions and 29 deletions

30
LICENSE
View File

@ -1,17 +1,21 @@
The MIT License (MIT)
NOT FOR RECTAL USE PUBLIC LICENSE Copyright (c) 2015 Jeff Becker
Version 1.1, Febuary 2015
Copyright (C) 2015 Jeff Becker <ampernand@gmail.com> Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Everyone is permitted to copy and distribute verbatim or modified in the Software without restriction, including without limitation the rights
copies of this license document, and changing it is allowed as long to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
as the name is changed. copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
NOT FOR RECTAL USE PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. NOT for rectal use.
1. Don't sue me, it's your fault.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@ -1,16 +1,18 @@
# NNTPChan # # NNTPChan #
NNTPChan (previously known as overchan) is a decentralized imageboard that uses nntp to synchronize content between many different servers. It utilizes cryptograpghicly signed posts to perform optional/opt-in decentralized moderation (currently work-in-progress) 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.
This repository contains resources used by the core daemon which is located [here](https://github.com/majestrate/srndv2) along with general documentation, [here](doc/)
## getting started ## ## getting started ##
If you don't want to compile from source, you can download a precompiled binary [here](https://github.com/majestrate/srndv2/releases) when they are released. After you [built and installed the daemon](doc/build.md) and [set up your database](doc/database.md), clone this repository and start up the daemon
After you [built and installed the daemon](build-daemon.md) and [set up your database](database-setup.md), clone this repository and start up the daemon
# clone it # clone it
git clone https://github.com/majestrate/nntpchan git clone https://github.com/majestrate/nntpchan ~/nntpchan
cd nntpchan # get the latest stable release
cd ~/nntpchan/
git checkout tags/0.2.1
# set up the workspace # set up the workspace
srndv2 setup srndv2 setup
@ -18,11 +20,12 @@ After you [built and installed the daemon](build-daemon.md) and [set up your dat
# run the daemon # run the daemon
srndv2 run srndv2 run
Then open http://127.0.0.1:18000/ukko.html in your browser. Then open http://127.0.0.1:18000/ukko.html in your browser.
*PLEASE* report any bugs you find while setting up or building [(here)](https://github.com/majestrate/nntpchan/issues) so that the problems get fixed (^: *PLEASE* report any bugs you find while setting up or building [(here)](https://github.com/majestrate/nntpchan/issues) so that the problems get fixed (^:
For peering requests, questions or support find me on [rizon](https://qchat.rizon.net/?channels=#8chan-dev) as \__uguu\__ For peering requests, questions or support find me on [rizon](https://qchat.rizon.net/?channels=#nntpchan) as \__uguu\__
Like this project? Fund it: Like this project? Fund it:

View File

@ -4,6 +4,44 @@
<title> NNTPChan Frequently Asked Questions</title> <title> NNTPChan Frequently Asked Questions</title>
</head> </head>
<body> <body>
<p>No CP or anything illegal under United States law allowed. All posts on this site are the responsibility of the individual poster and not the administration of this site</p> <h2>NNTPChan faq </h2>
<br/>
<hr />
<div id="faq">
<p>
<div>Question: What is nntpchan?</div>
<div>NNTPCchan is a federated imageboard that spans across several networks including tor, i2p and anonet. There are no central servers so that as long as 1 server is left the forum will continue to function.</div>
</p>
<hr />
<p>
<div>Question: How is this different from *chan? </div>
<div>NNTPChan is by design invulnerable to global censorship. All moderation is local to each server.</div>
</p>
<hr />
<p>
<div>Question: How does moderation work then? </div>
<div>Moderation is done with our special tripcodes (ed25519-sha512 signed posts). Anyone can give moderation suggestions, but that doesn't mean anyone will accept them. Those who trust the actions of a moderator can have their frontend whitelist the moderation actions and have them performed without oversight by another moderator.</div>
</p>
<hr />
<p>
<div>Question: How can I remove content from nntpchan completely? </div>
<div>‾\(._.)/‾ I don't know. You probably can't unless every server agrees to remove the content, even then, nothing prevents someone from reposting it. You can't delete what you post on the internet.</div>
</p>
<hr />
<p>
<div>Question: Do you allow XYZ content? </div>
<div>If it violates USA Law or causes problems with my host, no. Otherwise, yes. <b>All posts on this site are the responsibility of the individual poster and not the administration of this server</b>.</div>
</p>
<hr />
<p>
<div>Question: I found a bug or I have a feature request where do I go? </div>
<div><a href="https://github.com/majestrate/nntpchan/issues">github</a></div>
</p>
<hr />
<p>
<div>Please send any questions to ampernand [|at\] gmail {dot} com with subject starting with "nntpchan question" </div>
</p>
<hr />
</div>
</body> </body>
</html> </html>

View File

@ -93,7 +93,6 @@ a:visited {
padding: 5px 5px; padding: 5px 5px;
margin: 5px 5px; margin: 5px 5px;
display: inline-block; display: inline-block;
border-radius: 10px;
} }
th { th {
@ -141,10 +140,51 @@ body {
color: #de04ef; color: #de04ef;
} }
@keyframes psych
{
0% {background-color: red; color: blue; }
10% {background-color: yellow; color: red; }
20% {background-color: blue; color: green; }
30% {background-color: green; color: yellow; }
40% {background-color: red; color: blue; }
50% {background-color: yellow; color: green; }
60% {background-color: blue; color: yellow; }
70% {background-color: green; color: blue; }
80% {background-color: red; color: green; }
90% {background-color: yellow; color: red; }
95% {background-color: blue; color: yellow; }
100% {background-color: green; color: white; }
}
.psy > p {
animation: psych 2s linear infinite;
display: inline-block;
}
.memearrows { .memearrows {
color: green; color: green;
} }
.redtext {
color: #d50505;
font-weight: bold;
}
.spoiler {
display: inline-block;
}
.spoiler > p {
background: black;
color: black;
}
.spoiler:hover > p {
background: black;
color: white;
}
.intro { .intro {
margin-bottom: 0.75em; margin-bottom: 0.75em;
} }
@ -160,3 +200,24 @@ body {
max-width: 300px; max-width: 300px;
max-height: 200px; max-height: 200px;
} }
pre > p {
margin: 0px 0px;
}
.reply , .post_body > pre , .ukko_thread_header {
padding: 7px 7px;
border-radius: 5px;
box-shadow: 1px 1px 3px black;
}
.post_body > pre {
background: #3f3f3f;
color: #d17600;
}
#faq > div {
margin-left: 20%;
width: 50%;
padding: 10px;
}

View File

@ -17,9 +17,11 @@
<div class="index-outer"> <div class="index-outer">
<div class="index-inner"> <div class="index-inner">
<h1> {{frontend}} on nntpchan </h1> <h1> {{frontend}} on nntpchan </h1>
<h2>View the <a href="ukko.html">overboard</a></h2>
<h3>Read the <a href="{{prefix}}static/faq.html">FAQ</a></h3> <h3>Read the <a href="{{prefix}}static/faq.html">FAQ</a></h3>
<h3>View the <a href="ukko.html">overboard</a></h3> <h3>Join the <a href="https://i2p.rocks/irc/?channels=overchan&nick=nameless">IRC</a></h3>
<h3>We've Had {{totalposts}} Posts Since August 01 2015 </h3> <h3>Fork on github: <a href="https://github.com/majestrate/nntpchan/">frontend</a> and <a href="https://github.com/majestrate/srndv2/">core</a></h3>
<h4>We've Had {{totalposts}} Posts Since August 01 2015 </h4>
</div> </div>
<div class="index-inner"> <div class="index-inner">
<table id="board_graph"> <table id="board_graph">

23
contrib/tools/thumbs.sh Executable file
View File

@ -0,0 +1,23 @@
#!/usr/bin/env bash
#
# shell script for regenerating thumbnails
#
if [ "$1" == "" ] ; then
echo "usage: $0 webroot_dir"
else
cd $1
echo "regenerate missing thumbs in $(pwd)"
find img/ \
-type f \
-regextype posix-extended \
-iregex '.*\.(png|jpg|gif)$' \
-not -execdir test -f '../thm/{}' \; \
-exec echo 'generating missing thumb for {}' \; \
-exec mogrify \
-define jpeg:size=500x500 \
-thumbnail '250>x250>' \
-path thm/ \
-strip \
'{}' \;
fi

View File

@ -7,6 +7,7 @@
* go 1.4 or higher * go 1.4 or higher
* libsodium 1.0 or higher * libsodium 1.0 or higher
* imagemagick * imagemagick
* RabbitMQ
## debian ## ## debian ##
@ -22,7 +23,7 @@ Debian Jessie has go 1.3, we need 1.4 or higher to build the nntpchan daemon so
# set up a directory for our go distribution # set up a directory for our go distribution
mkdir -p $HOME/local mkdir -p $HOME/local
cd $$HOME/local cd $HOME/local
# obtain and unpack go binary distribution # obtain and unpack go binary distribution
wget https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz -O go-stable.tar.gz wget https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz -O go-stable.tar.gz
@ -43,12 +44,12 @@ We'll also need to install some dependancies that come with debian:
# as root # as root
apt-get update apt update
apt-get install libmagickwand-dev libsodium-dev apt install imagemagick libsodium-dev
Now build the daemon:
Now you can build the daemon: go get github.com/majestrate/srndv2
go install github.com/majestrate/srndv2 go install github.com/majestrate/srndv2
It will create an executable at $GOPATH/bin/srndv2 which is already in our $PATH so it can be run by typing ``srndv2`` It will create an executable at $GOPATH/bin/srndv2 which is already in our $PATH so it can be run by typing ``srndv2``

52
doc/peering.md Normal file
View File

@ -0,0 +1,52 @@
## peering with other nodes ##
In order to actually be distributed, you need another person to sync posts with, otherwise what's the point right?
Right now peering information is private, there is no link level authenticatio (yet) so everything is done via either a vpn tunnel or a tor hidden service.
### Peering via cjdns vpn tunnel ###
Set up cjdns, read more [here](https://github.com/cjdelisle/cjdns/blob/master/doc/configure.md#connection-interfaces)
git clone https://github.com/cjdelisle/cjdns
cd cjdns && ./do
./cjdroute --genconf >> cjdroute.conf
./cjdroute < cjdroute.conf
Get your ipv6 address for cjdns
ip addr show tun0
Edit srnd.ini to bind nntp on that ipv6 address, make sure to use the square brances `[` and `]`
[nntp]
...
bind=[xxxx:xxxx:xxxx:xxx:xx....]:1199
say you have 2 friends at fc33:3:3::aadd and fc03:9f:123::a3df. right now feeds.ini can't take raw ipv6 addresses so add them to `/etc/hosts`
# add these lines to /etc/hosts
fc33:3:3::aadd bob
fc03:9f:123::a3df charlie
then add to feeds.ini the following:
[feed-bob]
proxy-type=none
[bob]
overchan.*=1
ctl=1
[feed-charlie]
proxy-type=none
[charlie]
overchan.*=1
ctl=1
then restart srndv2
**TODO:** firewalling