aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxrs <xrs@mail36.net>2018-10-30 20:18:54 +0100
committerxrs <xrs@mail36.net>2018-10-30 20:18:54 +0100
commit0d99fe30fbb959baa1a121b7b9001bae227ab3ce (patch)
tree509299fcc50d5fcc1cfcf033452d23d8a23216c9
parent32a5a499b4a6944d0020de01df928f6c1cba2880 (diff)
downloadwww-0d99fe30fbb959baa1a121b7b9001bae227ab3ce.tar.gz
www-0d99fe30fbb959baa1a121b7b9001bae227ab3ce.zip
add tutorial section to website; add tutorial for archpi
-rw-r--r--common/navigation.j2.inc1
-rw-r--r--tutorial-archpi.html.j2148
-rw-r--r--tutorial.html.j226
3 files changed, 175 insertions, 0 deletions
diff --git a/common/navigation.j2.inc b/common/navigation.j2.inc
index 2df4814c..d7c9a7e5 100644
--- a/common/navigation.j2.inc
+++ b/common/navigation.j2.inc
@@ -26,6 +26,7 @@
26 <li class="dropdown"> 26 <li class="dropdown">
27 <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{{ _("Documentation") }} <span class="caret"></span></a> 27 <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{{ _("Documentation") }} <span class="caret"></span></a>
28 <ul class="dropdown-menu"> 28 <ul class="dropdown-menu">
29 <li><a href="tutorial.html">{{ _("Tutorial") }}</a></li>
29 <li><a href="glossary.html">{{ _("Glossary") }}</a></li> 30 <li><a href="glossary.html">{{ _("Glossary") }}</a></li>
30 <li><a href="https://docs.gnunet.org">{{ _("Handbook") }}</a></li> 31 <li><a href="https://docs.gnunet.org">{{ _("Handbook") }}</a></li>
31 <li><a href="faq.html">{{ _("FAQ") }}</a></li> 32 <li><a href="faq.html">{{ _("FAQ") }}</a></li>
diff --git a/tutorial-archpi.html.j2 b/tutorial-archpi.html.j2
new file mode 100644
index 00000000..44df06fc
--- /dev/null
+++ b/tutorial-archpi.html.j2
@@ -0,0 +1,148 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<div class="container">
4
5<h2>{{ _("Tutorial: GNUnet on Archlinux/Pi") }}</h2>
6
7Welcome to this GNUnet tutorial for Archlinux on a Raspberry Pi 3. If you want
8to run a GNUnet node on a separte System, permanently online, with low energy
9consumption, this might be the thing for you. This tutorial shows you how to
10install, run, and operate it.
11
12<h3>{{ _("Requirements") }}</h3>
13
14<p>First you need the hardware. This tutorial works with a Raspberry Pi 3. The
15other Pi versions I haven't tested, but they should probably work, too. To
16install Archlinux on the Pi3, follow the instructions from <a
17href="https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3">archlinuxarm.org</a>.</p>
18
19<p>That was easy, right? Our goal now is to build GNUnet from source. So, let's
20install the tools for building new software.</p>
21
22<p><code>
23> sudo pacman -S base-devel
24</code></p>
25
26<p>Now we can continue to install the following Archlinux dependencies to
27compile GNUnet on our Pi.</p>
28
29<p><code>$ pacman -Su libmicrohttpd libgcrypt gnurl libunistring gnutls libidn
30libextractor openssl libltdl sqlite texinfo which gettext zlib
31pkg-config git miniupnpc libextractor jansson nim</code></p>
32
33<h3>{{ _("Get the Source Code") }}</h3>
34
35<p>We are getting closer. Download the GNUnet source code which we will build
36in the next step:<p>
37
38<p><code>
39> git clone https://gnunet.org/git/gnunet.git<br>
40</code></p>
41
42<p>Now it's time to compile GNUnet.</p>
43
44<p><code>
45> cd gnunet<br>
46> ./bootstrap # Run this to generate the configure files.<br>
47> ./configure # Use --help to see the various flags available to you.<br>
48> make -j$(nproc || echo -n 1)<br>
49> sudo make install<br>
50</code></p>
51
52<p>Congrats! GNUnet is now installed!</p>
53
54<h3>{{ _("Run") }}</h3>
55
56<p>By default GNUnet looks in our home directory for the file
57~/.gnunet/gnunet.conf. We can start with an empty file for now:</p>
58
59<p><code>
60> touch ~/.config/gnunet.conf
61</code></p>
62
63<p>Now we can start it with the commandline tool gnunet-arm (Automatic Restart
64Manager).</p>
65
66<p><code>
67> gnunet-arm -s
68</code></p>
69
70<p>It starts the default GNUnet services. We can list them with the -I option:</p>
71
72<p><code>
73> gnunet-arm -I<br>
74Running services:<br>
75ats (gnunet-service-ats)<br>
76revocation (gnunet-service-revocation)<br>
77set (gnunet-service-set)<br>
78nat (gnunet-service-nat)<br>
79transport (gnunet-service-transport)<br>
80peerstore (gnunet-service-peerstore)<br>
81hostlist (gnunet-daemon-hostlist)<br>
82identity (gnunet-service-identity)<br>
83namecache (gnunet-service-namecache)<br>
84peerinfo (gnunet-service-peerinfo)<br>
85datastore (gnunet-service-datastore)<br>
86zonemaster (gnunet-service-zonemaster)<br>
87zonemaster-monitor (gnunet-service-zonemaster-monitor)<br>
88nse (gnunet-service-nse)<br>
89cadet (gnunet-service-cadet)<br>
90dht (gnunet-service-dht)<br>
91core (gnunet-service-core)<br>
92gns (gnunet-service-gns)<br>
93statistics (gnunet-service-statistics)<br>
94topology (gnunet-daemon-topology)<br>
95fs (gnunet-service-fs)<br>
96namestore (gnunet-service-namestore)<br>
97vpn (gnunet-service-vpn)<br>
98</code></p>
99
100<p>For stopping GNUnet again we can use the -e option.</p>
101
102<p><code>
103> gnunet-arm -e
104</code></p>
105
106<h3>{{ _("Make sure, it works!") }}</h3>
107
108After starting GNUnet you should make sure, that your peer is connecting to the
109P2P-network. By typing gnunet-core you should see something like this:
110
111<p><code>
112> gnunet-core<br>
113Tue Oct 30 19:58:48 2018: connection established DSTJ (timeout in 293 s)<br>
114Tue Oct 30 19:58:48 2018: connection established A4MK (timeout in 292 s)<br>
115Tue Oct 30 19:58:48 2018: connection established 7WRD (timeout in 299 s)<br>
116Tue Oct 30 19:58:48 2018: connection established 5WBG (timeout in 299 s)<br>
117</code></p>
118
119<h3>{{ _("Chat the cat") }}</h3>
120
121<p>To be able to chat, we need to install and compile additional
122software.</p>
123
124<p><code>
125> git clone https://gnunet.org/git/gnunet-nim.git
126> cd gnunet-nim/examples
127> nim c groupchat.nim
128</code></p>
129
130<p>Fine! We can now try to enter a chat server running on another GNUnet node.
131
132<p><code>
133> LD_LIBRARY_PATH=/path/to/gnunetlibs ./groupchat --config=/path/to/gnunet.conf --server=YV6G9EP9K3X41BM3FJ3D29BDZR6358XNZ6KDZVV7DFW729YB0KCG --port=welcome --nick=YOURNICK
134</code></p>
135
136<p>You should now see something like this:</p>
137
138<p><code>
139> 2018-10-30 19:50:10 Welcome 8Q2T! participants: @[] <br>
140Hello GNUnet!<br>
1412018-10-30 19:52:53 [8Q2T] Hello GNUnet!
142</code></p>
143
144<p>Here we have typed "Hello gnunet!" to standard in which is then written out
145to standard out after having been sent back from GNUnet.</p>
146
147</div>
148{% endblock body_content %}
diff --git a/tutorial.html.j2 b/tutorial.html.j2
new file mode 100644
index 00000000..ad4f078c
--- /dev/null
+++ b/tutorial.html.j2
@@ -0,0 +1,26 @@
1{% extends "common/base.j2" %}
2{% block body_content %}
3<div class="container">
4
5<h2>{{ _("Tutorial") }}</h2>
6
7
8<div class="container-fluid adorn_h3_bracket c_acronym">
9 <div class="container">
10 <div class="row">
11 <div class="col-lg-3">
12 <a href="">GNUnet on Ubuntu</a>
13 </div>
14 <div class="col-lg-3">
15 <a href="tutorial-archpi.html">GNUnet on Arch-Pi</a>
16 </div>
17 <div class="col-lg-3">
18 GNUnet on Debian
19 </div>
20 </div>
21 </div>
22</div>
23
24
25</div>
26{% endblock body_content %}