Documentation for social instance installs

This commit is contained in:
Bob Mottram 2018-03-13 12:39:26 +00:00
parent 5e5db6e713
commit 17d7f7fc01
8 changed files with 318 additions and 85 deletions

View File

@ -19,15 +19,14 @@
So you want to run your own internet services? Email, chat, VoIP, web sites, file synchronisation, wikis, blogs, social networks, media hosting, backups, VPN. Freedombone enables you to do all of that in a self-hosted way, where you keep control of your data and it resides in your own home.
[[./homeserver.html][Here's how]].
A list of other supported ARM boards [[./boards.html][can be found here]], or you can install onto an old laptop or netbook. Some installation instructions for different use cases are:
And here's how [[./beaglebone.html][on a Beaglebone Black]]. A list of other supported ARM boards [[./boards.html][can be found here]].
Or you can install [[./debianinstall.html][onto an existing Debian system]].
If you have a single board ARM computer which isn't one of the officially supported ones, such as Raspberry Pi, then you may still be able to install [[./armbian.html][Freedombone with Armbian]].
Want to make a community mesh network which can either be fully autonomous or connected to the internet? The [[./mesh.html][Freedombone Mesh]] is a wireless solution for networked communication that can be rapidly deployed in temporary, emergency or post-disaster situations where internet access is unavailable or compromised, or used as an infrastructural community service similar to [[https://en.wikipedia.org/wiki/Freifunk][Freifunk]].
* [[./homeserver.html][Typical installation]]
* Installing [[./beaglebone.html][on a Beaglebone Black]]
* Installing on an [[./debianinstall.html][existing Debian system]]
* Installing [[./armbian.html][on Armbian]], for unsupported ARM boards such as Raspberry Pi
* Creating a dedicated [[./socialinstance.html][fediverse instance]] for a single user or to host a community
* Deploying a [[./mesh.html][mesh network]] which can operate with or without the internet
After installation it's possible that you might want some advice on how to run your system and set up apps to work nicely with it.

View File

@ -26,10 +26,62 @@ A social instance image allows you to easily set up a fediverse server, which fe
The installation process is the same as usual, with the only difference being that on initial setup it will go straight to the domain setup details for your instance. In summary:
* Copy the image to the USB drive, with the *dd* command or other image copying software
* Connect the laptop to your internet router with the ethernet cable
* Boot the laptop from the USB drive
* Forward ports 80 and 443 from your internet router to the laptop
* From another machine ssh into the laptop with *ssh fbone@freedombone.local -p 2222*
* Follow the setup procedure and enter your domain name and dynamic DNS details
* When installation is complete navigate to your domain and register a new user
* Copy the image to the USB drive
Substitute *sdX* with the device name for your USB drive.
#+begin_src bash
sudo apt-get install xz-utils wget
wget https://freedombone.net/downloads/current/freedombone-pleroma-amd64.img.xz
wget https://freedombone.net/downloads/current/freedombone-pleroma-amd64.img.xz.sig
gpg --verify freedombone-pleroma-amd64.img.xz.sig
unxz freedombone-pleroma-amd64.img.xz
sudo dd if=/dev/zero of=/dev/sdX bs=1M count=8
sudo dd bs=1M if=freedombone-pleroma-amd64.img of=/dev/sdX conv=fdatasync
#+end_src
Also note that if the laptop has a removable SSD drive it's possible to copy the image directly to that if you have enough equipment.
* Connect the laptop to your internet router
With the ethernet cable.
#+BEGIN_CENTER
[[file:images/laptop_router.jpg]]
#+END_CENTER
* Boot the laptop from the USB drive
You may need to alter the BIOS settings to get this to work reliably.
#+BEGIN_CENTER
[[file:images/bios_boot_usb.jpg]]
#+END_CENTER
* Forward ports 80 (HTTP) and 443 (HTTPS) from your internet router to the laptop
Log into your internet router using a non-Tor browser (usually it's on an address like 192.168.1.1 or 192.168.1.254). Often port forwarding settings are together with firewall settings.
#+BEGIN_CENTER
[[file:images/port_forwarding.png]]
#+END_CENTER
* From another machine ssh into the laptop
#+begin_src bash
ssh fbone@freedombone.local -p 2222
#+END_SRC
Or alternatively you can log in directly on the laptop. The initial username is *fbone* and the password is *freedombone*. You should make sure you write down or copy the new password when it is shown.
* Follow the setup procedure
Enter your user details, domain name and dynamic DNS settings.
* When installation is complete
Navigate to your domain and register a new user.
#+BEGIN_CENTER
[[file:images/pleroma_register.jpg]]
#+END_CENTER

BIN
img/bios_boot_usb.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
img/laptop_router.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
img/pleroma_register.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
img/port_forwarding.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -3,26 +3,33 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title></title>
<!-- 2018-03-10 Sat 21:04 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="Org-mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Turn the Beaglebone Black into a personal communications server"
<!-- 2018-03-13 Tue 12:38 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>&lrm;</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Bob Mottram" />
<meta name="description" content="Turn the Beaglebone Black into a personal communications server"
/>
<meta name="keywords" content="freedombox, debian, beaglebone, red matrix, email, web server, home server, internet, censorship, surveillance, social network, irc, jabber" />
<meta name="keywords" content="freedombox, debian, beaglebone, red matrix, email, web server, home server, internet, censorship, surveillance, social network, irc, jabber" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center; }
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { color: green; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.right { margin-left: auto; margin-right: 0px; text-align: right; }
.left { margin-left: 0px; margin-right: auto; text-align: left; }
.center { margin-left: auto; margin-right: auto; text-align: center; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
@ -49,27 +56,111 @@
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
pre.src-sh:before { content: 'sh'; }
pre.src-bash:before { content: 'sh'; }
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-R:before { content: 'R'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-java:before { content: 'Java'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.right { text-align: center; }
th.left { text-align: center; }
th.center { text-align: center; }
td.right { text-align: right; }
td.left { text-align: left; }
td.center { text-align: center; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
@ -89,6 +180,7 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -97,7 +189,7 @@
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2013 Free Software Foundation, Inc.
Copyright (C) 2012-2017 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
@ -144,8 +236,7 @@ for the JavaScript code in this tag.
<a name="top" id="top"></a>
</div>
<div id="content">
<h1 class="title"></h1>
<div class="center">
<div class="org-center">
<p>
<img src="images/logo.png" alt="logo.png" />
<img src="images/bbb3.png" alt="bbb3.png" />
@ -167,44 +258,30 @@ So you want to run your own internet services? Email, chat, VoIP, web sites, fil
</p>
<p>
<a href="./homeserver.html">Here's how</a>.
A list of other supported ARM boards <a href="./boards.html">can be found here</a>, or you can install onto an old laptop or netbook. Some installation instructions for different use cases are:
</p>
<p>
And here's how <a href="./beaglebone.html">on a Beaglebone Black</a>. A list of other supported ARM boards <a href="./boards.html">can be found here</a>.
</p>
<p>
Or you can install <a href="./debianinstall.html">onto an existing Debian system</a>.
</p>
<p>
If you have a single board ARM computer which isn't one of the officially supported ones, such as Raspberry Pi, then you may still be able to install <a href="./armbian.html">Freedombone with Armbian</a>.
</p>
<p>
Want to make a community mesh network which can either be fully autonomous or connected to the internet? The <a href="./mesh.html">Freedombone Mesh</a> is a wireless solution for networked communication that can be rapidly deployed in temporary, emergency or post-disaster situations where internet access is unavailable or compromised, or used as an infrastructural community service similar to <a href="https://en.wikipedia.org/wiki/Freifunk">Freifunk</a>.
</p>
<ul class="org-ul">
<li><a href="./homeserver.html">Typical installation</a></li>
<li>Installing <a href="./beaglebone.html">on a Beaglebone Black</a></li>
<li>Installing on an <a href="./debianinstall.html">existing Debian system</a></li>
<li>Installing <a href="./armbian.html">on Armbian</a>, for unsupported ARM boards such as Raspberry Pi</li>
<li>Creating a dedicated <a href="./socialinstance.html">fediverse instance</a> for a single user or to host a community</li>
<li>Deploying a <a href="./mesh.html">mesh network</a> which can operate with or without the internet</li>
</ul>
<p>
After installation it's possible that you might want some advice on how to run your system and set up apps to work nicely with it.
</p>
<ul class="org-ul">
<li><a href="./domains.html">How to get a domain name</a>
</li>
<li><a href="./security.html">Improving security</a>
</li>
<li><a href="./users.html">Adding or removing users</a>
</li>
<li><a href="./apps.html">Apps available on the system</a>
</li>
<li><a href="./faq.html">Frequently Asked Questions</a>
</li>
<li><a href="./mobile.html">Advice on setting up a mobile phone</a>
</li>
<li><a href="./support.html">I like this project. How can I help to support it?</a>
</li>
<li><a href="./domains.html">How to get a domain name</a></li>
<li><a href="./security.html">Improving security</a></li>
<li><a href="./users.html">Adding or removing users</a></li>
<li><a href="./apps.html">Apps available on the system</a></li>
<li><a href="./faq.html">Frequently Asked Questions</a></li>
<li><a href="./mobile.html">Advice on setting up a mobile phone</a></li>
<li><a href="./support.html">I like this project. How can I help to support it?</a></li>
</ul>
@ -216,7 +293,7 @@ If you find bugs, or want to add a new app to this system see the <a href="./dev
Ready made disk images which can be copied onto USB or microSD drives are <a href="./downloads/current">available here</a>.
</p>
<div class="center">
<div class="org-center">
<p>
This site can also be accessed via a Tor browser at <a href="http://yjxlc3imv7obva4grjae6u3qw527koaytrgjgdp364hmthrst3jodiid.onion">http://yjxlc3imv7obva4grjae6u3qw527koaytrgjgdp364hmthrst3jodiid.onion</a>. This documentation is under the <a href="https://www.gnu.org/licenses/fdl-1.3.txt">GNU Free Documentation License version 1.3</a>
</p>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2018-03-12 Mon 14:01 -->
<!-- 2018-03-13 Tue 12:38 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>&lrm;</title>
@ -264,15 +264,120 @@ A social instance image allows you to easily set up a fediverse server, which fe
The installation process is the same as usual, with the only difference being that on initial setup it will go straight to the domain setup details for your instance. In summary:
</p>
<ul class="org-ul">
<li>Copy the image to the USB drive, with the <b>dd</b> command or other image copying software</li>
<li>Connect the laptop to your internet router with the ethernet cable</li>
<li>Boot the laptop from the USB drive</li>
<li>Forward ports 80 and 443 from your internet router to the laptop</li>
<li>From another machine ssh into the laptop with <b>ssh fbone@freedombone.local -p 2222</b></li>
<li>Follow the setup procedure and enter your domain name and dynamic DNS details</li>
<li>When installation is complete navigate to your domain and register a new user</li>
</ul>
<div id="outline-container-orgbcf5aad" class="outline-2">
<h2 id="orgbcf5aad">Copy the image to the USB drive</h2>
<div class="outline-text-2" id="text-orgbcf5aad">
<p>
Substitute <b>sdX</b> with the device name for your USB drive.
</p>
<div class="org-src-container">
<pre class="src src-bash">sudo apt-get install xz-utils wget
wget https://freedombone.net/downloads/current/freedombone-pleroma-amd64.img.xz
wget https://freedombone.net/downloads/current/freedombone-pleroma-amd64.img.xz.sig
gpg --verify freedombone-pleroma-amd64.img.xz.sig
unxz freedombone-pleroma-amd64.img.xz
sudo dd <span class="org-variable-name">if</span>=/dev/zero <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">count</span>=8
sudo dd <span class="org-variable-name">bs</span>=1M <span class="org-variable-name">if</span>=freedombone-pleroma-amd64.img <span class="org-variable-name">of</span>=/dev/sdX <span class="org-variable-name">conv</span>=fdatasync
</pre>
</div>
<p>
Also note that if the laptop has a removable SSD drive it's possible to copy the image directly to that if you have enough equipment.
</p>
</div>
</div>
<div id="outline-container-orgfdbde2b" class="outline-2">
<h2 id="orgfdbde2b">Connect the laptop to your internet router</h2>
<div class="outline-text-2" id="text-orgfdbde2b">
<p>
With the ethernet cable.
</p>
<div class="org-center">
<div class="figure">
<p><img src="images/laptop_router.jpg" alt="laptop_router.jpg" />
</p>
</div>
</div>
</div>
</div>
<div id="outline-container-orgae9997f" class="outline-2">
<h2 id="orgae9997f">Boot the laptop from the USB drive</h2>
<div class="outline-text-2" id="text-orgae9997f">
<p>
You may need to alter the BIOS settings to get this to work reliably.
</p>
<div class="org-center">
<div class="figure">
<p><img src="images/bios_boot_usb.jpg" alt="bios_boot_usb.jpg" />
</p>
</div>
</div>
</div>
</div>
<div id="outline-container-orgf3f4c4a" class="outline-2">
<h2 id="orgf3f4c4a">Forward ports 80 (HTTP) and 443 (HTTPS) from your internet router to the laptop</h2>
<div class="outline-text-2" id="text-orgf3f4c4a">
<p>
Log into your internet router using a non-Tor browser (usually it's on an address like 192.168.1.1 or 192.168.1.254). Often port forwarding settings are together with firewall settings.
</p>
<div class="org-center">
<div class="figure">
<p><img src="images/port_forwarding.png" alt="port_forwarding.png" />
</p>
</div>
</div>
</div>
</div>
<div id="outline-container-org4972cde" class="outline-2">
<h2 id="org4972cde">From another machine ssh into the laptop</h2>
<div class="outline-text-2" id="text-org4972cde">
<div class="org-src-container">
<pre class="src src-bash">ssh fbone@freedombone.local -p 2222
</pre>
</div>
<p>
Or alternatively you can log in directly on the laptop. The initial username is <b>fbone</b> and the password is <b>freedombone</b>. You should make sure you write down or copy the new password when it is shown.
</p>
</div>
</div>
<div id="outline-container-org955b5d7" class="outline-2">
<h2 id="org955b5d7">Follow the setup procedure</h2>
<div class="outline-text-2" id="text-org955b5d7">
<p>
Enter your user details, domain name and dynamic DNS settings.
</p>
</div>
</div>
<div id="outline-container-org584e95d" class="outline-2">
<h2 id="org584e95d">When installation is complete</h2>
<div class="outline-text-2" id="text-org584e95d">
<p>
Navigate to your domain and register a new user.
</p>
<div class="org-center">
<div class="figure">
<p><img src="images/pleroma_register.jpg" alt="pleroma_register.jpg" />
</p>
</div>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">