Move social instance to dat download

This commit is contained in:
Bob Mottram 2018-06-16 13:15:21 +01:00
parent f3a2772e96
commit 3070bb3514
2 changed files with 77 additions and 156 deletions

View File

@ -18,6 +18,7 @@ A social instance image allows you to easily set up a fediverse server, which fe
* An ethernet patch cable * An ethernet patch cable
* A domain name of your own * A domain name of your own
* A dynamic DNS account * A dynamic DNS account
* Ability to alter settings on your internet router
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: 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:
@ -26,9 +27,10 @@ The installation process is the same as usual, with the only difference being th
Substitute *sdX* with the device name for your USB drive. Substitute *sdX* with the device name for your USB drive.
#+begin_src bash #+begin_src bash
sudo apt-get install xz-utils wget sudo apt-get install xz-utils nodejs
wget https://freedombone.net/downloads/v31/freedombone-pleroma-amd64.img.xz npm install -g dat
wget https://freedombone.net/downloads/v31/freedombone-pleroma-amd64.img.xz.sig dat clone dat://231b24dbeef3c3f7b115b9c7cd02e416b382df0a1050ef66f94b988fc8dae92e/
cd 231b24dbeef3c3f7b115b9c7cd02e416b382df0a1050ef66f94b988fc8dae92e
gpg --verify freedombone-pleroma-amd64.img.xz.sig gpg --verify freedombone-pleroma-amd64.img.xz.sig
unxz freedombone-pleroma-amd64.img.xz unxz freedombone-pleroma-amd64.img.xz
sudo dd if=/dev/zero of=/dev/sdX bs=32M count=8 sudo dd if=/dev/zero of=/dev/sdX bs=32M count=8

View File

@ -3,33 +3,26 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2018-05-10 Thu 11:49 --> <title></title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <!-- 2018-06-16 Sat 13:14 -->
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>&lrm;</title> <meta name="generator" content="Org-mode" />
<meta name="generator" content="Org mode" /> <meta name="author" content="Bob Mottram" />
<meta name="author" content="Bob Mottram" /> <meta name="description" content="Social Instance"
<meta name="description" content="Social Instance"
/> />
<meta name="keywords" content="freedombone, debian, social, fediverse, instance, pleroma, gnusocial, postactiv" /> <meta name="keywords" content="freedombone, debian, social, fediverse, instance, pleroma, gnusocial, postactiv" />
<style type="text/css"> <style type="text/css">
<!--/*--><![CDATA[/*><!--*/ <!--/*--><![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; } .todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; } .done { color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace; .tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; } padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; } .timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; } .timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; } .right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; } .left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; } .center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; } .underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; } #postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; } p.verse { margin-left: 3%; }
@ -56,111 +49,27 @@
border: 1px solid black; border: 1px solid black;
} }
pre.src:hover:before { display: inline;} pre.src:hover:before { display: inline;}
/* Languages per Org manual */ pre.src-sh:before { content: 'sh'; }
pre.src-asymptote:before { content: 'Asymptote'; } pre.src-bash:before { content: 'sh'; }
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-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; } pre.src-R:before { content: 'R'; }
pre.src-gnuplot:before { content: 'gnuplot'; } pre.src-perl:before { content: 'Perl'; }
pre.src-haskell:before { content: 'Haskell'; } pre.src-java:before { content: 'Java'; }
pre.src-hledger:before { content: 'hledger'; } pre.src-sql:before { content: 'SQL'; }
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; } table { border-collapse:collapse; }
caption.t-above { caption-side: top; } caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; } caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; } td, th { vertical-align:top; }
th.org-right { text-align: center; } th.right { text-align: center; }
th.org-left { text-align: center; } th.left { text-align: center; }
th.org-center { text-align: center; } th.center { text-align: center; }
td.org-right { text-align: right; } td.right { text-align: right; }
td.org-left { text-align: left; } td.left { text-align: left; }
td.org-center { text-align: center; } td.center { text-align: center; }
dt { font-weight: bold; } dt { font-weight: bold; }
.footpara { display: inline; } .footpara:nth-child(2) { display: inline; }
.footpara { display: block; }
.footdef { margin-bottom: 1em; } .footdef { margin-bottom: 1em; }
.figure { padding: 1em; } .figure { padding: 1em; }
.figure p { text-align: center; } .figure p { text-align: center; }
@ -180,7 +89,6 @@
{ font-size: 10px; font-weight: bold; white-space: nowrap; } { font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight .org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; } { background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" type="text/css" href="freedombone.css" /> <link rel="stylesheet" type="text/css" href="freedombone.css" />
@ -189,7 +97,7 @@
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
JavaScript code in this tag. JavaScript code in this tag.
Copyright (C) 2012-2017 Free Software Foundation, Inc. Copyright (C) 2012-2013 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU redistribute it and/or modify it under the terms of the GNU
@ -236,25 +144,33 @@ for the JavaScript code in this tag.
<a name="top" id="top"></a> <a name="top" id="top"></a>
</div> </div>
<div id="content"> <div id="content">
<h1 class="title"></h1>
<div class="figure"> <div class="figure">
<p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" /> <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
</p> </p>
</div> </div>
<div id="outline-container-org1c80367" class="outline-2"> <div id="outline-container-sec-1" class="outline-2">
<h2 id="org1c80367">Social Instance</h2> <h2 id="sec-1">Social Instance</h2>
<div class="outline-text-2" id="text-org1c80367"> <div class="outline-text-2" id="text-1">
<p> <p>
A social instance image allows you to easily set up a fediverse server, which federates using the OStatus or ActivityPub protocol. You will need: A social instance image allows you to easily set up a fediverse server, which federates using the OStatus or ActivityPub protocol. You will need:
</p> </p>
<ul class="org-ul"> <ul class="org-ul">
<li>An old laptop, capable of booting from USB</li> <li>An old laptop, capable of booting from USB
<li>A USB drive, preferably Sandisk and 16GB or larger</li> </li>
<li>An ethernet patch cable</li> <li>A USB drive, preferably Sandisk and 16GB or larger
<li>A domain name of your own</li> </li>
<li>A dynamic DNS account</li> <li>An ethernet patch cable
</li>
<li>A domain name of your own
</li>
<li>A dynamic DNS account
</li>
<li>Ability to alter settings on your internet router
</li>
</ul> </ul>
<p> <p>
@ -263,21 +179,23 @@ The installation process is the same as usual, with the only difference being th
</div> </div>
</div> </div>
<div id="outline-container-org2c69e3d" class="outline-2"> <div id="outline-container-sec-2" class="outline-2">
<h2 id="org2c69e3d">Copy the image to the USB drive</h2> <h2 id="sec-2">Copy the image to the USB drive</h2>
<div class="outline-text-2" id="text-org2c69e3d"> <div class="outline-text-2" id="text-2">
<p> <p>
Substitute <b>sdX</b> with the device name for your USB drive. Substitute <b>sdX</b> with the device name for your USB drive.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">sudo apt-get install xz-utils wget
wget https://freedombone.net/downloads/v31/freedombone-pleroma-amd64.img.xz <pre class="src src-bash">sudo apt-get install xz-utils nodejs
wget https://freedombone.net/downloads/v31/freedombone-pleroma-amd64.img.xz.sig npm install -g dat
dat clone dat://231b24dbeef3c3f7b115b9c7cd02e416b382df0a1050ef66f94b988fc8dae92e/
cd 231b24dbeef3c3f7b115b9c7cd02e416b382df0a1050ef66f94b988fc8dae92e
gpg --verify freedombone-pleroma-amd64.img.xz.sig gpg --verify freedombone-pleroma-amd64.img.xz.sig
unxz freedombone-pleroma-amd64.img.xz 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>=32M <span class="org-variable-name">count</span>=8 sudo dd if=/dev/zero of=/dev/sdX bs=32M count=8
sudo dd <span class="org-variable-name">bs</span>=32M <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,sync,noerror sudo dd bs=32M if=freedombone-pleroma-amd64.img of=/dev/sdX conv=fdatasync,sync,noerror
</pre> </pre>
</div> </div>
@ -287,9 +205,9 @@ Also note that if the laptop has a removable SSD drive it's possible to copy the
</div> </div>
</div> </div>
<div id="outline-container-org94c2081" class="outline-2"> <div id="outline-container-sec-3" class="outline-2">
<h2 id="org94c2081">Connect the laptop to your internet router</h2> <h2 id="sec-3">Connect the laptop to your internet router</h2>
<div class="outline-text-2" id="text-org94c2081"> <div class="outline-text-2" id="text-3">
<p> <p>
Plug the USB drive into the laptop and connect it to your internet router with the ethernet cable. Plug the USB drive into the laptop and connect it to your internet router with the ethernet cable.
</p> </p>
@ -302,9 +220,9 @@ Plug the USB drive into the laptop and connect it to your internet router with t
</div> </div>
</div> </div>
<div id="outline-container-orgfdae149" class="outline-2"> <div id="outline-container-sec-4" class="outline-2">
<h2 id="orgfdae149">Boot the laptop from the USB drive</h2> <h2 id="sec-4">Boot the laptop from the USB drive</h2>
<div class="outline-text-2" id="text-orgfdae149"> <div class="outline-text-2" id="text-4">
<p> <p>
You may need to alter the BIOS settings to get this to work reliably. You may need to alter the BIOS settings to get this to work reliably.
</p> </p>
@ -317,9 +235,9 @@ You may need to alter the BIOS settings to get this to work reliably.
</div> </div>
</div> </div>
<div id="outline-container-org6226cc3" class="outline-2"> <div id="outline-container-sec-5" class="outline-2">
<h2 id="org6226cc3">Forward ports 80 (HTTP) and 443 (HTTPS) from your internet router to the laptop</h2> <h2 id="sec-5">Forward ports 80 (HTTP) and 443 (HTTPS) from your internet router to the laptop</h2>
<div class="outline-text-2" id="text-org6226cc3"> <div class="outline-text-2" id="text-5">
<p> <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. 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> </p>
@ -332,10 +250,11 @@ Log into your internet router using a non-Tor browser (usually it's on an addres
</div> </div>
</div> </div>
<div id="outline-container-org66f3f3c" class="outline-2"> <div id="outline-container-sec-6" class="outline-2">
<h2 id="org66f3f3c">From another machine ssh into the laptop</h2> <h2 id="sec-6">From another machine ssh into the laptop</h2>
<div class="outline-text-2" id="text-org66f3f3c"> <div class="outline-text-2" id="text-6">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-bash">ssh fbone@freedombone.local -p 2222 <pre class="src src-bash">ssh fbone@freedombone.local -p 2222
</pre> </pre>
</div> </div>
@ -346,18 +265,18 @@ Or alternatively you can log in directly on the laptop. The initial username is
</div> </div>
</div> </div>
<div id="outline-container-org1e1acec" class="outline-2"> <div id="outline-container-sec-7" class="outline-2">
<h2 id="org1e1acec">Follow the setup procedure</h2> <h2 id="sec-7">Follow the setup procedure</h2>
<div class="outline-text-2" id="text-org1e1acec"> <div class="outline-text-2" id="text-7">
<p> <p>
Enter your user details, domain name and dynamic DNS settings. Enter your user details, domain name and dynamic DNS settings.
</p> </p>
</div> </div>
</div> </div>
<div id="outline-container-org95d2fea" class="outline-2"> <div id="outline-container-sec-8" class="outline-2">
<h2 id="org95d2fea">When installation is complete</h2> <h2 id="sec-8">When installation is complete</h2>
<div class="outline-text-2" id="text-org95d2fea"> <div class="outline-text-2" id="text-8">
<p> <p>
Navigate to your domain and register a new user. Navigate to your domain and register a new user.
</p> </p>