Hey y’all! Just an update from when I wrote this article. I am working to overhaul this. The chat server kinda sucks when it comes to registering new users. And in an emergency or hectic time the last thing you want to do is fuck with a bunch of user registration settings. So I am going to update to a better platform and this might change. Let this be a general guide on how to think about projects like this. The most important thing isn’t the software, but how the hardware and thinking pattern works. Software comes and goes. Also made some edits to the text too thanks to some smart people. Anyways enjoy!
Living in Texas comes with its challenges. Every year the climate crisis gets worse, each summer is hotter, freak snowstorms, a crumbling electrical grid, and incompetent (and in my view murderous) state government. Last week ERCOT, the energy monopoly that runs the majority of the deregulated electrical grid in texas said they cannot handle the power needs of Texas and to turn down their energy use or face possible rolling blackouts. This is after the disaster that winter storm Uri brought during February, leading to an almost total collapse of the Texas power grid and hundreds of people dead from freezing to death or carbon monoxide poisoning.
After all of this the need for emergency communications, and the ability to share information is paramount. This system does not have to just be used for survival situations, it’s modular and can be used for protesting, general security, camping, traveling. Whatever.
I set out to find a solution that could meet these criteria:
Cheap. It has to be made from durable and cheap tech or something that can be recycled.
Ease of use for nontechnical people. I could homebrew all of this and make a custom web server and really get deep in things. But I want the average person with some basic tech skills to be able to get started.
Secure. Encryption and data security would be an absolute must.
Low power. Everything must run off a battery bank and be 100% portable.
I put together some hardware that I already had laying around.
Raspberry Pi 3b+
Battery bank or power source
I chose the AR150 because it is a cheap travel router that honestly has so many features and a slick UI for the price of like $30 it seriously is an amazing router. It has an external antenna connection so you can quickly upgrade the range depending on your needs. It is also super small at like 2 inches X 2 inches.
You can use any raspberry pi but the 3b+ is best because it runs off a micro usb, and has HDMI without the need for an extra dongle like the RPi 4 needs. You can also turn it into a microcomputer by just switching out the memory card so it is super modular.
These can easily fit in your pocket, in a backpack, or purse and both require very little power to run.
Software:
Stock software on the AR150. (it is really easy to use)
FreedomBox
Freedombox is pretty cool because it is a very easy to setup file server that will act as the backbone of everything. If you have never used a Rasberry Pi it is very easy to get started. Instructions on how to install freedom box are really easy to follow.
I won’t go into exhaustive detail on getting everything set up since there is documentation for both the router and freedombox.
A couple of points when setting this up that will save you problems:
You don’t need to have the HDMI cable plugged in while first setting up the freedom box. I did that and freaked out when it didnt boot properly which caused the install to fail and I had to reflash the SD card. So just follow the instructions from freedombox and don’t worry about connecting the Pi to a monitor.
After the initial install update your server. Calibre (the ebook library) will no t be available to install unless you run an update. Just go to the system settings and look for “updates”
Two criteria for this server is that it has to offer ebooks and have a chat server. This is where things get a little troublesome. Because the Freedombox is about security each account has its own permissions and access to the server. This is great but also means random people in the public cannot access books without an account.
To get around this I made a public account which is fine but is just an extra step people have to go through. This does keep anyone unsavory from accessing the data.
Software for books: Calibre
If you have pirated books or just are an ebook nerd you know about Calibre. But basically, Calibre is an easy-to-use library organizer. The desktop version also allows for file conversions so you can change a PDF into a format that can work on an ereader. A calibre server is hosted on the Freedombox and admins can upload any books they want into sub folders or whatever structure is needed.
Then an end-user can have access to the books and choose to download them to their own device or just read them with their device.
Software for chat:
Here is where things get tougher. For built in chatting with JSXC each user needs their own account.
Great! Security is wonderful but this means the server admin has to manually add people to the server to have an account. This is kinda annoying and not sure why FreedomBox does not allow for public registration to a server but whatever. It is easier than spinning up all this stuff yourself especially if you are not an experienced admin.
The benefit of using JSXC chat and the yammer client is that it does not require an internet connection or the user to have already installed an app ahead of time. This is good for off grid or emergency situations. It just requires the admin to add people into the server. This is less of an issue if you delegate certain people with server access to act as communication leaders who will just send along messages from other people but that is in a situation where there is no access to cellular or regular internet connections. But still want to include it even though it is an edge case.
Hosting Matrix with Element (a discord clone)
The other option is more robust but does require the user to download an app and have access to the internet at least when initially setting themselves up. Matrix is easy to install on the Freedombox and just acts as a server in the background. Then you use Element as a client to actually chat. Install Element to your phone and then when making an account choose the server (should be freedombox.local though it might change you will have to mess with it).
Element allows for public users to connect and chat without a local account on the FreedomBox.
For offgrid applications, I guess you could download the Element repo and host it on the Freedombox in a gitrepo or have a local build but that’s getting into deeper territory.
Use cases for this server:
*Off grid emergencies
In a situation where power and internet are knocked out people with access to an electronic device with wifi can connect to this emergency router. They can have access to a way of communication without the need for physical interaction and have the ability to quickly get survival information in books, or any file that might help such as evacuation maps.
*Protests and other events
Hey there! Thanks to some smart people giving us a head up, Element can be encrypted but it requires the client to enable it. So it works, but keep in mind if you want end to end encryption out the box you are going to need something else :/
This setup can allow for protest organizers to spin up their own wifi and easily tether the internet connection to a phone to create a secure connection point for other protesters or other organizers. Because Element is encrypted there is no need to worry about chats being intercepted by police or intelligence agencies (As long as the server is not connected to the internet) unless they gain access to the router or server. Police would have to find the server operator, dump the memory from the server SD card, then get credentials to access the element app. All of this would add an extra layer of protection and you are not at the ToS whims of Discord or other chat apps. You could just use signal but there are other cases where a server like this would be useful.
*Camping and Travelling
The AR150 router is by fast the one thing I carry in my bag every day. In under 10 seconds you can have your own wifi connection up with access to a built in fileshare, easy phone tethering, built in VPN client that can automatically connect all users to a secure tunnel. And it is super easy to use. Camping was fun because I brought the router with a different Pi with a media server on it and was able to share shows in the middle of the woods with other people on the same network and make an offgrid netflix! This is also good to have to separate your network traffic from a hotel or air b&b and keep your information more secure.
Upgrades to range
Almost forgot to mention, the AR150 has a removable antenna so you can upgrade the range an insane amount with a bigger wifi antenna. Any one made for routers will work ALFA makes good wifi antennas and accessories.
This is not a 100% exhaustive explanation but now you have a list of supplies, sites that have all the instructions, and a general idea of what you can do with this tech. This is a starting point, let your curiosity push you :)
You can find me on twitter @asolarpunk