<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Part 2: Wikipedia managed with Co-op cloud on LoRes Mesh</title><link>https://lores.tech/docs/node_stewards/initial_setup/coop_cloud/</link><description>Recent content in Part 2: Wikipedia managed with Co-op cloud on LoRes Mesh</description><generator>Hugo</generator><language>en-au</language><lastBuildDate>Wed, 03 Sep 2025 09:00:00 +1000</lastBuildDate><atom:link href="https://lores.tech/docs/node_stewards/initial_setup/coop_cloud/index.xml" rel="self" type="application/rss+xml"/><item><title>Docker swarm setup</title><link>https://lores.tech/docs/node_stewards/initial_setup/coop_cloud/docker_swarm/</link><pubDate>Wed, 03 Sep 2025 09:00:00 +1000</pubDate><guid>https://lores.tech/docs/node_stewards/initial_setup/coop_cloud/docker_swarm/</guid><description>&lt;section class="hero">&lt;div class="section-content">We&amp;rsquo;re just about ready to start installing apps using Co-op Cloud. Co-op Cloud apps are a set of &lt;strong>Docker&lt;/strong> containers. We&amp;rsquo;ll sometimes work with docker directly, so let&amp;rsquo;s go over the concepts involved.&lt;/div>&lt;/section>

&lt;p>There&amp;rsquo;s some background info below, but if you&amp;rsquo;re already familiar with Docker and Docker Swarm, you can skip ahead to &lt;a href="#installing-docker">Installing Docker&lt;/a>.&lt;/p>
&lt;aside>&lt;h2 id="why-we-use-docker-for-our-apps">Why we use Docker for our apps&lt;/h2>
&lt;p>Docker is a program for building, deploying and managing &lt;strong>Containers&lt;/strong>, which are lightweight, portable packages for an application and all it&amp;rsquo;s dependencies. These were popularised by Docker, and so are sometimes called &lt;strong>Docker Containers&lt;/strong>, but there&amp;rsquo;s actually an open standard for how they work as part of the &lt;strong>Open Container Initiative (OCI)&lt;/strong>. Here&amp;rsquo;s a &lt;a href="https://medium.com/@fred.j/docker-in-depth-first-part-history-499682db0c12">great article&lt;/a> that describes what containers are in more detail, and how they relate to docker.&lt;/p></description></item><item><title>Abra server config, stored in git</title><link>https://lores.tech/docs/node_stewards/initial_setup/coop_cloud/server/</link><pubDate>Wed, 03 Sep 2025 09:00:00 +1000</pubDate><guid>https://lores.tech/docs/node_stewards/initial_setup/coop_cloud/server/</guid><description>&lt;section class="hero">&lt;div class="section-content">The commands on this page are all on our dev computer.&lt;/div>&lt;/section>

&lt;h2 id="creating-server-config">Creating server config&lt;/h2>
&lt;p>We already made our &lt;a href="../../raspberry_pi">Raspberry Pi&lt;/a> available on the internet via a domain name. That public domain name is how we&amp;rsquo;re going to be referring to it with &lt;code>abra&lt;/code>.&lt;/p>
&lt;p>Let&amp;rsquo;s start by creating the server config:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>abra server add YOUR_SERVER_DOMAIN
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>(replace &lt;code>YOUR_SERVER_DOMAIN&lt;/code> with the correct domain for your server, eg &lt;code>makerspace.nodes.merri-bek.tech&lt;/code>)&lt;/p>
&lt;p>If that worked, you should see it in the list of servers that abra is now managing by running:&lt;/p></description></item><item><title>The Traefik web proxy</title><link>https://lores.tech/docs/node_stewards/initial_setup/coop_cloud/traefik/</link><pubDate>Wed, 03 Sep 2025 09:00:00 +1000</pubDate><guid>https://lores.tech/docs/node_stewards/initial_setup/coop_cloud/traefik/</guid><description>&lt;section class="hero">&lt;div class="section-content">We&amp;rsquo;re going to have multiple apps on our Raspberry Pi, so we need a way of directing traffic to the correct one. Co-op Cloud has a standard approach to this using a web proxy called Traefik.&lt;/div>&lt;/section>

&lt;p>Despite Traefik&amp;rsquo;s special role in routing requests to other apps, it is itself just installed as a Co-op Cloud app, managed by abra.&lt;/p>
&lt;h2 id="creating-the-app">Creating the app&lt;/h2>
&lt;p>Let&amp;rsquo;s add the new app using:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>abra app new traefik
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>It will ask you to select which server you&amp;rsquo;re deploying to, unless this is your only server. It will also ask you to specify a domain for the app, and you can press ENTER for the default.&lt;/p></description></item><item><title>Preparing a flash drive full of "zim" files</title><link>https://lores.tech/docs/node_stewards/initial_setup/coop_cloud/preparing_flash_drive/</link><pubDate>Wed, 03 Sep 2025 09:00:00 +1000</pubDate><guid>https://lores.tech/docs/node_stewards/initial_setup/coop_cloud/preparing_flash_drive/</guid><description>&lt;section class="hero">&lt;div class="section-content">If we&amp;rsquo;re going to store a local copy of Wikipedia, we&amp;rsquo;re going to need some storage for it.&lt;/div>&lt;/section>

&lt;p>Wikipedia is over 100GB, for just the English version. The MicroSD Card that &lt;a href="../../raspberry_pi/sd_card_imaging">you created&lt;/a> for the Raspberry Pi is likely not big enough to store it, an in fact we&amp;rsquo;re not generally going to use that SD card for storing application data for a number of reasons. It&amp;rsquo;s mostly just for the operating system.&lt;/p></description></item><item><title>Accessing the flash drive on with the Pi</title><link>https://lores.tech/docs/node_stewards/initial_setup/coop_cloud/mounting_flash_drive/</link><pubDate>Wed, 03 Sep 2025 09:00:00 +1000</pubDate><guid>https://lores.tech/docs/node_stewards/initial_setup/coop_cloud/mounting_flash_drive/</guid><description>&lt;section class="hero">&lt;div class="section-content">When you put flash drive we just &lt;a href="../preparing_flash_drive">prepared&lt;/a> in your dev computer, it probably pops up ready to read in your file manager. The Raspberry Pi won&amp;rsquo;t do that automatically, so we need to set that up.&lt;/div>&lt;/section>

&lt;h2 id="plugging-it-in">Plugging it in&lt;/h2>
&lt;p>Let&amp;rsquo;s start by plugging the flash drive into one of the USB ports on the Pi. On a Raspberry Pi 5, only two blue USB (type A) ports support the faster USB-3. Providing you have a modern flash drive that supports it, you want to put it in one of those.&lt;/p></description></item><item><title>The Kiwix wikipedia server</title><link>https://lores.tech/docs/node_stewards/initial_setup/coop_cloud/kiwix/</link><pubDate>Wed, 03 Sep 2025 09:00:00 +1000</pubDate><guid>https://lores.tech/docs/node_stewards/initial_setup/coop_cloud/kiwix/</guid><description>&lt;section class="hero">&lt;div class="section-content">&lt;a href="https://kiwix.org">Kiwix&lt;/a> is a great project to make a number of important reference websites, including Wikipedia, readable offline.&lt;/div>&lt;/section>

&lt;p>It looks a lot like installing any app with abra, so let&amp;rsquo;s go through steps very similar to the ones we just followed with &lt;a href="../traefik">traefik&lt;/a>:&lt;/p>
&lt;h2 id="creating-the-app">Creating the app&lt;/h2>
&lt;p>Let&amp;rsquo;s add the new app using:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>abra app new kiwix
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="configuring-the-app">Configuring the app&lt;/h2>
&lt;p>We do have something to configure here, so let&amp;rsquo;s run:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>abra app config traefik.YOUR_SERVER_DOMAIN
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>There&amp;rsquo;s a line in the config that will look like this:&lt;/p></description></item></channel></rss>