socialinstance.html 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  5. <head>
  6. <!-- 2018-05-10 Thu 11:49 -->
  7. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  8. <meta name="viewport" content="width=device-width, initial-scale=1" />
  9. <title>&lrm;</title>
  10. <meta name="generator" content="Org mode" />
  11. <meta name="author" content="Bob Mottram" />
  12. <meta name="description" content="Social Instance"
  13. />
  14. <meta name="keywords" content="freedombone, debian, social, fediverse, instance, pleroma, gnusocial, postactiv" />
  15. <style type="text/css">
  16. <!--/*--><![CDATA[/*><!--*/
  17. .title { text-align: center;
  18. margin-bottom: .2em; }
  19. .subtitle { text-align: center;
  20. font-size: medium;
  21. font-weight: bold;
  22. margin-top:0; }
  23. .todo { font-family: monospace; color: red; }
  24. .done { font-family: monospace; color: green; }
  25. .priority { font-family: monospace; color: orange; }
  26. .tag { background-color: #eee; font-family: monospace;
  27. padding: 2px; font-size: 80%; font-weight: normal; }
  28. .timestamp { color: #bebebe; }
  29. .timestamp-kwd { color: #5f9ea0; }
  30. .org-right { margin-left: auto; margin-right: 0px; text-align: right; }
  31. .org-left { margin-left: 0px; margin-right: auto; text-align: left; }
  32. .org-center { margin-left: auto; margin-right: auto; text-align: center; }
  33. .underline { text-decoration: underline; }
  34. #postamble p, #preamble p { font-size: 90%; margin: .2em; }
  35. p.verse { margin-left: 3%; }
  36. pre {
  37. border: 1px solid #ccc;
  38. box-shadow: 3px 3px 3px #eee;
  39. padding: 8pt;
  40. font-family: monospace;
  41. overflow: auto;
  42. margin: 1.2em;
  43. }
  44. pre.src {
  45. position: relative;
  46. overflow: visible;
  47. padding-top: 1.2em;
  48. }
  49. pre.src:before {
  50. display: none;
  51. position: absolute;
  52. background-color: white;
  53. top: -10px;
  54. right: 10px;
  55. padding: 3px;
  56. border: 1px solid black;
  57. }
  58. pre.src:hover:before { display: inline;}
  59. /* Languages per Org manual */
  60. pre.src-asymptote:before { content: 'Asymptote'; }
  61. pre.src-awk:before { content: 'Awk'; }
  62. pre.src-C:before { content: 'C'; }
  63. /* pre.src-C++ doesn't work in CSS */
  64. pre.src-clojure:before { content: 'Clojure'; }
  65. pre.src-css:before { content: 'CSS'; }
  66. pre.src-D:before { content: 'D'; }
  67. pre.src-ditaa:before { content: 'ditaa'; }
  68. pre.src-dot:before { content: 'Graphviz'; }
  69. pre.src-calc:before { content: 'Emacs Calc'; }
  70. pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
  71. pre.src-fortran:before { content: 'Fortran'; }
  72. pre.src-gnuplot:before { content: 'gnuplot'; }
  73. pre.src-haskell:before { content: 'Haskell'; }
  74. pre.src-hledger:before { content: 'hledger'; }
  75. pre.src-java:before { content: 'Java'; }
  76. pre.src-js:before { content: 'Javascript'; }
  77. pre.src-latex:before { content: 'LaTeX'; }
  78. pre.src-ledger:before { content: 'Ledger'; }
  79. pre.src-lisp:before { content: 'Lisp'; }
  80. pre.src-lilypond:before { content: 'Lilypond'; }
  81. pre.src-lua:before { content: 'Lua'; }
  82. pre.src-matlab:before { content: 'MATLAB'; }
  83. pre.src-mscgen:before { content: 'Mscgen'; }
  84. pre.src-ocaml:before { content: 'Objective Caml'; }
  85. pre.src-octave:before { content: 'Octave'; }
  86. pre.src-org:before { content: 'Org mode'; }
  87. pre.src-oz:before { content: 'OZ'; }
  88. pre.src-plantuml:before { content: 'Plantuml'; }
  89. pre.src-processing:before { content: 'Processing.js'; }
  90. pre.src-python:before { content: 'Python'; }
  91. pre.src-R:before { content: 'R'; }
  92. pre.src-ruby:before { content: 'Ruby'; }
  93. pre.src-sass:before { content: 'Sass'; }
  94. pre.src-scheme:before { content: 'Scheme'; }
  95. pre.src-screen:before { content: 'Gnu Screen'; }
  96. pre.src-sed:before { content: 'Sed'; }
  97. pre.src-sh:before { content: 'shell'; }
  98. pre.src-sql:before { content: 'SQL'; }
  99. pre.src-sqlite:before { content: 'SQLite'; }
  100. /* additional languages in org.el's org-babel-load-languages alist */
  101. pre.src-forth:before { content: 'Forth'; }
  102. pre.src-io:before { content: 'IO'; }
  103. pre.src-J:before { content: 'J'; }
  104. pre.src-makefile:before { content: 'Makefile'; }
  105. pre.src-maxima:before { content: 'Maxima'; }
  106. pre.src-perl:before { content: 'Perl'; }
  107. pre.src-picolisp:before { content: 'Pico Lisp'; }
  108. pre.src-scala:before { content: 'Scala'; }
  109. pre.src-shell:before { content: 'Shell Script'; }
  110. pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
  111. /* additional language identifiers per "defun org-babel-execute"
  112. in ob-*.el */
  113. pre.src-cpp:before { content: 'C++'; }
  114. pre.src-abc:before { content: 'ABC'; }
  115. pre.src-coq:before { content: 'Coq'; }
  116. pre.src-groovy:before { content: 'Groovy'; }
  117. /* additional language identifiers from org-babel-shell-names in
  118. ob-shell.el: ob-shell is the only babel language using a lambda to put
  119. the execution function name together. */
  120. pre.src-bash:before { content: 'bash'; }
  121. pre.src-csh:before { content: 'csh'; }
  122. pre.src-ash:before { content: 'ash'; }
  123. pre.src-dash:before { content: 'dash'; }
  124. pre.src-ksh:before { content: 'ksh'; }
  125. pre.src-mksh:before { content: 'mksh'; }
  126. pre.src-posh:before { content: 'posh'; }
  127. /* Additional Emacs modes also supported by the LaTeX listings package */
  128. pre.src-ada:before { content: 'Ada'; }
  129. pre.src-asm:before { content: 'Assembler'; }
  130. pre.src-caml:before { content: 'Caml'; }
  131. pre.src-delphi:before { content: 'Delphi'; }
  132. pre.src-html:before { content: 'HTML'; }
  133. pre.src-idl:before { content: 'IDL'; }
  134. pre.src-mercury:before { content: 'Mercury'; }
  135. pre.src-metapost:before { content: 'MetaPost'; }
  136. pre.src-modula-2:before { content: 'Modula-2'; }
  137. pre.src-pascal:before { content: 'Pascal'; }
  138. pre.src-ps:before { content: 'PostScript'; }
  139. pre.src-prolog:before { content: 'Prolog'; }
  140. pre.src-simula:before { content: 'Simula'; }
  141. pre.src-tcl:before { content: 'tcl'; }
  142. pre.src-tex:before { content: 'TeX'; }
  143. pre.src-plain-tex:before { content: 'Plain TeX'; }
  144. pre.src-verilog:before { content: 'Verilog'; }
  145. pre.src-vhdl:before { content: 'VHDL'; }
  146. pre.src-xml:before { content: 'XML'; }
  147. pre.src-nxml:before { content: 'XML'; }
  148. /* add a generic configuration mode; LaTeX export needs an additional
  149. (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
  150. pre.src-conf:before { content: 'Configuration File'; }
  151. table { border-collapse:collapse; }
  152. caption.t-above { caption-side: top; }
  153. caption.t-bottom { caption-side: bottom; }
  154. td, th { vertical-align:top; }
  155. th.org-right { text-align: center; }
  156. th.org-left { text-align: center; }
  157. th.org-center { text-align: center; }
  158. td.org-right { text-align: right; }
  159. td.org-left { text-align: left; }
  160. td.org-center { text-align: center; }
  161. dt { font-weight: bold; }
  162. .footpara { display: inline; }
  163. .footdef { margin-bottom: 1em; }
  164. .figure { padding: 1em; }
  165. .figure p { text-align: center; }
  166. .inlinetask {
  167. padding: 10px;
  168. border: 2px solid gray;
  169. margin: 10px;
  170. background: #ffffcc;
  171. }
  172. #org-div-home-and-up
  173. { text-align: right; font-size: 70%; white-space: nowrap; }
  174. textarea { overflow-x: auto; }
  175. .linenr { font-size: smaller }
  176. .code-highlighted { background-color: #ffff00; }
  177. .org-info-js_info-navigation { border-style: none; }
  178. #org-info-js_console-label
  179. { font-size: 10px; font-weight: bold; white-space: nowrap; }
  180. .org-info-js_search-highlight
  181. { background-color: #ffff00; color: #000000; font-weight: bold; }
  182. .org-svg { width: 90%; }
  183. /*]]>*/-->
  184. </style>
  185. <link rel="stylesheet" type="text/css" href="freedombone.css" />
  186. <script type="text/javascript">
  187. /*
  188. @licstart The following is the entire license notice for the
  189. JavaScript code in this tag.
  190. Copyright (C) 2012-2017 Free Software Foundation, Inc.
  191. The JavaScript code in this tag is free software: you can
  192. redistribute it and/or modify it under the terms of the GNU
  193. General Public License (GNU GPL) as published by the Free Software
  194. Foundation, either version 3 of the License, or (at your option)
  195. any later version. The code is distributed WITHOUT ANY WARRANTY;
  196. without even the implied warranty of MERCHANTABILITY or FITNESS
  197. FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
  198. As additional permission under GNU GPL version 3 section 7, you
  199. may distribute non-source (e.g., minimized or compacted) forms of
  200. that code without the copy of the GNU GPL normally required by
  201. section 4, provided you include this license notice and a URL
  202. through which recipients can access the Corresponding Source.
  203. @licend The above is the entire license notice
  204. for the JavaScript code in this tag.
  205. */
  206. <!--/*--><![CDATA[/*><!--*/
  207. function CodeHighlightOn(elem, id)
  208. {
  209. var target = document.getElementById(id);
  210. if(null != target) {
  211. elem.cacheClassElem = elem.className;
  212. elem.cacheClassTarget = target.className;
  213. target.className = "code-highlighted";
  214. elem.className = "code-highlighted";
  215. }
  216. }
  217. function CodeHighlightOff(elem, id)
  218. {
  219. var target = document.getElementById(id);
  220. if(elem.cacheClassElem)
  221. elem.className = elem.cacheClassElem;
  222. if(elem.cacheClassTarget)
  223. target.className = elem.cacheClassTarget;
  224. }
  225. /*]]>*///-->
  226. </script>
  227. </head>
  228. <body>
  229. <div id="preamble" class="status">
  230. <a name="top" id="top"></a>
  231. </div>
  232. <div id="content">
  233. <div class="figure">
  234. <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
  235. </p>
  236. </div>
  237. <div id="outline-container-org1c80367" class="outline-2">
  238. <h2 id="org1c80367">Social Instance</h2>
  239. <div class="outline-text-2" id="text-org1c80367">
  240. <p>
  241. A social instance image allows you to easily set up a fediverse server, which federates using the OStatus or ActivityPub protocol. You will need:
  242. </p>
  243. <ul class="org-ul">
  244. <li>An old laptop, capable of booting from USB</li>
  245. <li>A USB drive, preferably Sandisk and 16GB or larger</li>
  246. <li>An ethernet patch cable</li>
  247. <li>A domain name of your own</li>
  248. <li>A dynamic DNS account</li>
  249. </ul>
  250. <p>
  251. 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:
  252. </p>
  253. </div>
  254. </div>
  255. <div id="outline-container-org2c69e3d" class="outline-2">
  256. <h2 id="org2c69e3d">Copy the image to the USB drive</h2>
  257. <div class="outline-text-2" id="text-org2c69e3d">
  258. <p>
  259. Substitute <b>sdX</b> with the device name for your USB drive.
  260. </p>
  261. <div class="org-src-container">
  262. <pre class="src src-bash">sudo apt-get install xz-utils wget
  263. wget https://freedombone.net/downloads/v31/freedombone-pleroma-amd64.img.xz
  264. wget https://freedombone.net/downloads/v31/freedombone-pleroma-amd64.img.xz.sig
  265. gpg --verify freedombone-pleroma-amd64.img.xz.sig
  266. unxz freedombone-pleroma-amd64.img.xz
  267. 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
  268. 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
  269. </pre>
  270. </div>
  271. <p>
  272. 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.
  273. </p>
  274. </div>
  275. </div>
  276. <div id="outline-container-org94c2081" class="outline-2">
  277. <h2 id="org94c2081">Connect the laptop to your internet router</h2>
  278. <div class="outline-text-2" id="text-org94c2081">
  279. <p>
  280. Plug the USB drive into the laptop and connect it to your internet router with the ethernet cable.
  281. </p>
  282. <div class="figure">
  283. <p><img src="images/laptop_router.jpg" alt="laptop_router.jpg" width="100%" align="center" />
  284. </p>
  285. </div>
  286. </div>
  287. </div>
  288. <div id="outline-container-orgfdae149" class="outline-2">
  289. <h2 id="orgfdae149">Boot the laptop from the USB drive</h2>
  290. <div class="outline-text-2" id="text-orgfdae149">
  291. <p>
  292. You may need to alter the BIOS settings to get this to work reliably.
  293. </p>
  294. <div class="figure">
  295. <p><img src="images/bios_boot_usb.jpg" alt="bios_boot_usb.jpg" width="100%" align="center" />
  296. </p>
  297. </div>
  298. </div>
  299. </div>
  300. <div id="outline-container-org6226cc3" class="outline-2">
  301. <h2 id="org6226cc3">Forward ports 80 (HTTP) and 443 (HTTPS) from your internet router to the laptop</h2>
  302. <div class="outline-text-2" id="text-org6226cc3">
  303. <p>
  304. 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.
  305. </p>
  306. <div class="figure">
  307. <p><img src="images/port_forwarding.png" alt="port_forwarding.png" width="100%" align="center" />
  308. </p>
  309. </div>
  310. </div>
  311. </div>
  312. <div id="outline-container-org66f3f3c" class="outline-2">
  313. <h2 id="org66f3f3c">From another machine ssh into the laptop</h2>
  314. <div class="outline-text-2" id="text-org66f3f3c">
  315. <div class="org-src-container">
  316. <pre class="src src-bash">ssh fbone@freedombone.local -p 2222
  317. </pre>
  318. </div>
  319. <p>
  320. 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.
  321. </p>
  322. </div>
  323. </div>
  324. <div id="outline-container-org1e1acec" class="outline-2">
  325. <h2 id="org1e1acec">Follow the setup procedure</h2>
  326. <div class="outline-text-2" id="text-org1e1acec">
  327. <p>
  328. Enter your user details, domain name and dynamic DNS settings.
  329. </p>
  330. </div>
  331. </div>
  332. <div id="outline-container-org95d2fea" class="outline-2">
  333. <h2 id="org95d2fea">When installation is complete</h2>
  334. <div class="outline-text-2" id="text-org95d2fea">
  335. <p>
  336. Navigate to your domain and register a new user.
  337. </p>
  338. <div class="figure">
  339. <p><img src="images/pleroma_register.jpg" alt="pleroma_register.jpg" width="100%" align="center" />
  340. </p>
  341. </div>
  342. <p>
  343. More details about setting up and using Pleroma <a href="./app_pleroma.html">can be found here</a>.
  344. </p>
  345. <div class="figure">
  346. <p><img src="images/tusky.jpg" alt="tusky.jpg" width="50%" align="center" />
  347. </p>
  348. </div>
  349. </div>
  350. </div>
  351. </div>
  352. <div id="postamble" class="status">
  353. <style type="text/css">
  354. .back-to-top {
  355. position: fixed;
  356. bottom: 2em;
  357. right: 0px;
  358. text-decoration: none;
  359. color: #000000;
  360. background-color: rgba(235, 235, 235, 0.80);
  361. font-size: 12px;
  362. padding: 1em;
  363. display: none;
  364. }
  365. .back-to-top:hover {
  366. background-color: rgba(135, 135, 135, 0.50);
  367. }
  368. </style>
  369. <div class="back-to-top">
  370. <a href="#top">Back to top</a> | <a href="mailto:bob@freedombone.net">E-mail me</a>
  371. </div>
  372. </div>
  373. </body>
  374. </html>