123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  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. <title></title>
  7. <!-- 2018-04-12 Thu 12:37 -->
  8. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  9. <meta name="generator" content="Org-mode" />
  10. <meta name="author" content="Bob Mottram" />
  11. <meta name="description" content="How to use the RSS reader"
  12. />
  13. <meta name="keywords" content="Freedombone, RSS" />
  14. <style type="text/css">
  15. <!--/*--><![CDATA[/*><!--*/
  16. .title { text-align: center; }
  17. .todo { font-family: monospace; color: red; }
  18. .done { color: green; }
  19. .tag { background-color: #eee; font-family: monospace;
  20. padding: 2px; font-size: 80%; font-weight: normal; }
  21. .timestamp { color: #bebebe; }
  22. .timestamp-kwd { color: #5f9ea0; }
  23. .right { margin-left: auto; margin-right: 0px; text-align: right; }
  24. .left { margin-left: 0px; margin-right: auto; text-align: left; }
  25. .center { margin-left: auto; margin-right: auto; text-align: center; }
  26. .underline { text-decoration: underline; }
  27. #postamble p, #preamble p { font-size: 90%; margin: .2em; }
  28. p.verse { margin-left: 3%; }
  29. pre {
  30. border: 1px solid #ccc;
  31. box-shadow: 3px 3px 3px #eee;
  32. padding: 8pt;
  33. font-family: monospace;
  34. overflow: auto;
  35. margin: 1.2em;
  36. }
  37. pre.src {
  38. position: relative;
  39. overflow: visible;
  40. padding-top: 1.2em;
  41. }
  42. pre.src:before {
  43. display: none;
  44. position: absolute;
  45. background-color: white;
  46. top: -10px;
  47. right: 10px;
  48. padding: 3px;
  49. border: 1px solid black;
  50. }
  51. pre.src:hover:before { display: inline;}
  52. pre.src-sh:before { content: 'sh'; }
  53. pre.src-bash:before { content: 'sh'; }
  54. pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
  55. pre.src-R:before { content: 'R'; }
  56. pre.src-perl:before { content: 'Perl'; }
  57. pre.src-java:before { content: 'Java'; }
  58. pre.src-sql:before { content: 'SQL'; }
  59. table { border-collapse:collapse; }
  60. caption.t-above { caption-side: top; }
  61. caption.t-bottom { caption-side: bottom; }
  62. td, th { vertical-align:top; }
  63. th.right { text-align: center; }
  64. th.left { text-align: center; }
  65. th.center { text-align: center; }
  66. td.right { text-align: right; }
  67. td.left { text-align: left; }
  68. td.center { text-align: center; }
  69. dt { font-weight: bold; }
  70. .footpara:nth-child(2) { display: inline; }
  71. .footpara { display: block; }
  72. .footdef { margin-bottom: 1em; }
  73. .figure { padding: 1em; }
  74. .figure p { text-align: center; }
  75. .inlinetask {
  76. padding: 10px;
  77. border: 2px solid gray;
  78. margin: 10px;
  79. background: #ffffcc;
  80. }
  81. #org-div-home-and-up
  82. { text-align: right; font-size: 70%; white-space: nowrap; }
  83. textarea { overflow-x: auto; }
  84. .linenr { font-size: smaller }
  85. .code-highlighted { background-color: #ffff00; }
  86. .org-info-js_info-navigation { border-style: none; }
  87. #org-info-js_console-label
  88. { font-size: 10px; font-weight: bold; white-space: nowrap; }
  89. .org-info-js_search-highlight
  90. { background-color: #ffff00; color: #000000; font-weight: bold; }
  91. /*]]>*/-->
  92. </style>
  93. <link rel="stylesheet" type="text/css" href="freedombone.css" />
  94. <script type="text/javascript">
  95. /*
  96. @licstart The following is the entire license notice for the
  97. JavaScript code in this tag.
  98. Copyright (C) 2012-2013 Free Software Foundation, Inc.
  99. The JavaScript code in this tag is free software: you can
  100. redistribute it and/or modify it under the terms of the GNU
  101. General Public License (GNU GPL) as published by the Free Software
  102. Foundation, either version 3 of the License, or (at your option)
  103. any later version. The code is distributed WITHOUT ANY WARRANTY;
  104. without even the implied warranty of MERCHANTABILITY or FITNESS
  105. FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
  106. As additional permission under GNU GPL version 3 section 7, you
  107. may distribute non-source (e.g., minimized or compacted) forms of
  108. that code without the copy of the GNU GPL normally required by
  109. section 4, provided you include this license notice and a URL
  110. through which recipients can access the Corresponding Source.
  111. @licend The above is the entire license notice
  112. for the JavaScript code in this tag.
  113. */
  114. <!--/*--><![CDATA[/*><!--*/
  115. function CodeHighlightOn(elem, id)
  116. {
  117. var target = document.getElementById(id);
  118. if(null != target) {
  119. elem.cacheClassElem = elem.className;
  120. elem.cacheClassTarget = target.className;
  121. target.className = "code-highlighted";
  122. elem.className = "code-highlighted";
  123. }
  124. }
  125. function CodeHighlightOff(elem, id)
  126. {
  127. var target = document.getElementById(id);
  128. if(elem.cacheClassElem)
  129. elem.className = elem.cacheClassElem;
  130. if(elem.cacheClassTarget)
  131. target.className = elem.cacheClassTarget;
  132. }
  133. /*]]>*///-->
  134. </script>
  135. </head>
  136. <body>
  137. <div id="preamble" class="status">
  138. <a name="top" id="top"></a>
  139. </div>
  140. <div id="content">
  141. <h1 class="title"></h1>
  142. <div class="figure">
  143. <p><img src="images/logo.png" alt="logo.png" width="80%" height="10%" align="center" />
  144. </p>
  145. </div>
  146. <div id="outline-container-sec-1" class="outline-2">
  147. <h2 id="sec-1">RSS Reader</h2>
  148. <div class="outline-text-2" id="text-1">
  149. <p>
  150. The way that RSS reading is set up on Freedombone gives you strong reading privacy. Not only is there onion routing between you and the server but also between the server and the source of the RSS feed. The only down side is that many RSS feeds are still http only, and so could be vulnerable to injection attacks, but it's expected that more of this will go to https in the foreseeable future due to a combination of growing recognition of security issues and systems like Let's Encrypt which make obtaining certificates much easier.
  151. </p>
  152. <div class="figure">
  153. <p><img src="images/rss_reader_mobile.jpg" alt="rss_reader_mobile.jpg" width="80%" align="center" />
  154. </p>
  155. </div>
  156. </div>
  157. </div>
  158. <div id="outline-container-sec-2" class="outline-2">
  159. <h2 id="sec-2">Finding the onion address</h2>
  160. <div class="outline-text-2" id="text-2">
  161. <p>
  162. See the control panel for the RSS reader onion address.
  163. </p>
  164. <div class="org-src-container">
  165. <pre class="src src-bash">ssh username@domainname -p 2222
  166. </pre>
  167. </div>
  168. <p>
  169. Select <b>Administrator controls</b> then select the <b>About</b> screen.
  170. </p>
  171. <p>
  172. The RSS reader is accessible only via an onion address. This provides a reasonable degree of reading privacy, making it difficult for passive adversaries such as governments, corporations or criminals to create lists of sites which you are subscribed to.
  173. </p>
  174. <p>
  175. To set up the system open <a href="http://rss_reader_onion_address">http://rss_reader_onion_address</a> and log in with username <b>admin</b> and the password which can be found within the <b>Passwords</b> section of the <b>Administrator control panel</b>. You can then select the <b>Actions</b> menu and begin adding your feeds.
  176. </p>
  177. </div>
  178. </div>
  179. <div id="outline-container-sec-3" class="outline-2">
  180. <h2 id="sec-3">On mobile</h2>
  181. <div class="outline-text-2" id="text-3">
  182. <p>
  183. To access the RSS reader from a mobile device you can install a Tor compatible browser such as OrFox, then use the mobile onion address shown on the <b>About</b> screen of the <b>Administrator controls</b>. Remember to add the site to the NoScript whitelist, and you may also need to turn HTTPS Everywhere off.
  184. </p>
  185. <blockquote>
  186. <p>
  187. A note for the paranoid is that on mobile devices you get redirected to a different onion address which is specially set up for the mobile interface, so don't be alarmed that it looks like your connection is being hijacked.
  188. </p>
  189. </blockquote>
  190. </div>
  191. </div>
  192. <div id="outline-container-sec-4" class="outline-2">
  193. <h2 id="sec-4">With Emacs</h2>
  194. <div class="outline-text-2" id="text-4">
  195. <p>
  196. If you are an Emacs user then you can also read your RSS feeds via the <a href="https://github.com/dk87/avandu">Avandu</a> mode.
  197. </p>
  198. <p>
  199. Add the following to your configuration, changing the address and password as appropriate.
  200. </p>
  201. <div class="org-src-container">
  202. <pre class="src src-emacs-lisp">(<span class="org-keyword">setq</span> avandu-tt-rss-api-url <span class="org-string">"http://rss_reader_onion_address/api/"</span>
  203. avandu-user <span class="org-string">"admin"</span>
  204. avandu-password <span class="org-string">"mypassword"</span>)
  205. </pre>
  206. </div>
  207. <p>
  208. If you don't already have Emacs set up to route through Tor then also add the following:
  209. </p>
  210. <div class="org-src-container">
  211. <pre class="src src-emacs-lisp">(<span class="org-keyword">setq</span> socks-noproxy '(<span class="org-string">"localhost"</span>))
  212. (<span class="org-keyword">require</span> '<span class="org-constant">socks</span>)
  213. (<span class="org-keyword">require</span> '<span class="org-constant">tls</span>)
  214. (<span class="org-keyword">setq</span> socks-server (list <span class="org-string">"Tor socks"</span> <span class="org-string">"localhost"</span> 9050 5))
  215. </pre>
  216. </div>
  217. <p>
  218. And ensure that the Tor daemon is installed. On a debian based system:
  219. </p>
  220. <div class="org-src-container">
  221. <pre class="src src-bash">sudo apt-get install tor
  222. </pre>
  223. </div>
  224. <p>
  225. or on Arch/Parabola:
  226. </p>
  227. <div class="org-src-container">
  228. <pre class="src src-bash">sudo pacman -S tor
  229. sudo systemctl enable tor
  230. sudo systemctl start tor
  231. </pre>
  232. </div>
  233. </div>
  234. </div>
  235. </div>
  236. <div id="postamble" class="status">
  237. <style type="text/css">
  238. .back-to-top {
  239. position: fixed;
  240. bottom: 2em;
  241. right: 0px;
  242. text-decoration: none;
  243. color: #000000;
  244. background-color: rgba(235, 235, 235, 0.80);
  245. font-size: 12px;
  246. padding: 1em;
  247. display: none;
  248. }
  249. .back-to-top:hover {
  250. background-color: rgba(135, 135, 135, 0.50);
  251. }
  252. </style>
  253. <div class="back-to-top">
  254. <a href="#top">Back to top</a> | <a href="mailto:bob@freedombone.net">E-mail me</a>
  255. </div>
  256. </div>
  257. </body>
  258. </html>