👩👩👧👦 ☀️ Community Server Implementation 💻 👨👩👧👦
Three Raspberry Pis 4 with double fan casing and external SSD drives
Most of the software and hardware preparations happened two weeks prior to the trip. But even while travelling I spent sleepless nights in hotel rooms downloading and preparing the devices.
My initial idea was to boot the Pis from the SSDs connected to USB 3. But after a lot of trial and error I found out that having an SSD connected to USB 3 and a Wifi access-point at the same time is impossible for the Pi, because of RF interference, which is detailed in this paper.
Mobile community-server hotspot: a Raspberry 4, connected to UPS with two 18650 batteries and an external SSD
In the territory, the process for implementing the #community-server began by having assemblies which were held specifically for the purpose of our project. During these gatherings I'd turn on the mobile hotspot-server to demo to everyone present what a community Intranet is, in order to settle expectations and misunderstandings, and also get some early feedback.
Some of the feedback was really useful, and so I had to do a lot of improvising at the Balaio village despite it's very precarious Internet connection, to tweak some services and add some new ones.
Solar panel being installed on roof of a school at Parintins village
First thing we needed was the energy to power our Intranet, so on each of the 3 villages we started by installing the solar kits we brought: 150W panel, with 150Ah battery and cheapest 10A controller.
Using such a low-end controller was probably not the best idea, as one malfunctioned within a week. Not sure how the rest is holding out.
150Ah battery and cheap 10A controller
To power the community-server we used 12V to 5V 5A converters between the 12V battery and the Pi's USB C cable.
Young Balaio men gathered around a laptop playing with the community-portal's code
I had ISO images of the servidor-comunitario stack on my computer. So burning the SD card and putting it on the Pi produced a configured hotspot and dnsmasq, with stack of applications: Jellyfin, Calibre, Meshtastic Web, Solar Calculator, Filebrowser, Etherpad.
We had the first prototype of the community-portal which is edited through a code-server and has offline maps with pre-downloaded tiles, native-land, their territory's geojson shapes and markers for each village.
Poster with instruction on how to connect and interact with the community-server and portal
Together with representatives from each village we created posters with instructions on how to connect to the community intranet and make use of it's applications and services.
Final setup: Pi4 in a waterproof enclosure and Tplink Archer C50 with #libremesh
Using the Pi as a community hotspot is far from ideal, as it's wifi isn't really made for that. So two of the three villages also got a router running LibreRouterOS, which made it possible for the signal to go much further, and enables the network to be expanded through mesh in the future.
Another advantage is that since we're not using the Pi as a hotspot, USB 3 works fine again, giving the intranet a huge boost in performance.
Something we learned was that the Pi4 can't remain completely sealed in a waterproof enclosure in the Amazon. Too hot, despite it's dual fan heat-sink armor.
Last year we experimented with the community-server and community-portal with indigenous communities for the first time at the Krahô territory. This was the second experiment, and I believe we were able to take it to a whole new level.
But we were still not able to have the community fully appropriate this technology, but we're getting closer and we really learned A LOT.
This experiences has been really valuable for us to understand the importance of creating cohesion between services, having monitoring of the servers and on how to make a better portal experience for communities. Since then we've evolved a lot with our newer community-server stacks based on Balena, such as Jurubeba and Guarita.