Solar Pi Thoughts

The Solar Pi is an idea I had for a project/concept art project: a Raspberry Pi powered directly from a solar panel, hosting a website. When the sun is down, the site isn’t available. There are other solar powered websites out there, but forgoing storage is an interesting idea.

It wouldn’t have to be a Pi, other single board computers could work. The key is that the load is light enough that a solar panel itself can power it without much reserve, over a reasonable period during the day. With a larger panel, even during overcast days you might be able to keep it running somewhat. The idea is to see how useful you can make this without introducing a battery, although I’m considering a supercapacitor to provide enough storage to shutdown gracefully, and handle a single cloud going overhead.

Spiritually, this is similar to things like solar water pumping off-grid: the sun powers the pump whenever it’s out, and you pump water into a tank for use. That’s your energy (and water) storage. Or, a solar vent fan. Conventional grid-tied solar is like using the grid as a battery, although if you time your loads right you can end up using it this way too.

This has gotten me thinking about a couple things. For one, maybe running a mail server too? Email should, in theory, work if a receiving server becomes unavailable. It would be neat to include this as well.

Another idea: what about leveraging something like syncthing? The website could be shared on the Pi, and then others would just download it when it’s online. Not only that, but users could help distribute it as well.

Amusingly, given my home network, the site would probably sit behind a proxy. In other words, another web server and mail server that would relay to the Pi. These would almost certainly be powered from the grid, although I may tackle that as an other project. It kind of takes the starch out of the initial proposal, but from my perspective at least it’s kind of fun to set this all up.

Email is Fine for What It is

In theory, you should be able to host your own email server. That, in turn, should allow you to exchange emails with other people with email servers. This is a form of federation, where users on each system can talk to users on another. A similar example of this on the web-side of things would be the fediverse, including Mastodon.

Email, however, has been around for a while. These days, chances are that a user of email is doing so through a big provider like Google or Microsoft. In addition to needing the expertise to set up one’s own server, there’s also maintenance, and of course, fighting spam. As such, outsourcing email is attractive, and as long as you own the domain you can always take it somewhere else.

I’ve hosted my own email, on a machine I control, for years. I have mixed feelings about recommending this to people. It works for me, but it’s not always easy, and I still do keep accounts around with the bigger providers for certain things. But, much of my email needs are self-hosted. I do it primarily because I can, and I want to be able to. I don’t want it to become a thing that only the big providers can handle, and I see this as doing my part.

I know there are others like me, but I know a lot of sentiment exists to the effect that this is a losing battle, and it’s really not worth doing. In the fight to save users from spam, it can be difficult to get emails to go through to the big providers. This makes it difficult to run your own. And if your server is on a residential IP range, good luck – this will probably get you blocked by itself. (I use an external relay.)

Large companies do manage to run successful email servers; usually there are IT staff there to maintain it, and maintain enough of a reputation that deliverability isn’t a problem. (They could also just outsource.) For an individual, I think it’s understandable to not want to deal with this. But, I think we need to take a step back and think about what email can be: a way to exchange messages between users on different computers.

Think about it: What if you didn’t need to worry about being able to deliver email to anyone with an email address? Or receive likewise? It sounds counterintuitive, after all you’d want postal mail to be able to come to you from anywhere. But maybe you also have your friend just drop something off at your doorstep, without using the public post office. Maybe they don’t even do it at your mailing address, or maybe you have a secret location in the woods. The postal service has advantages, but you don’t need it to physically exchange packages.

The idea of the tildeverse is to treat Linux/Unix servers like their own social network. What if two of these communities wanted to allow their users to exchange email with each other, and only those two? Email (technically, the simple mail transfer protocol or SMTP) works fine for this. And if you only intend to connect the two hosts, they could blacklist everything else. Or, perhaps even firewall other hosts, or just connect via VPN.

Or, maybe you and your friend just want to exchange emails with each other, and you each have an internet-connected machine running at each of your houses. You could do similar, and without either server using a block list, it’s possible to do it just with residential connections (no relay host like I mentioned earlier). Encryption would probably be a good idea for going over the internet, but otherwise the setup could be pretty simple.

Obviously, just getting a free email with a big provider is simpler. But, for anyone who wants to self-host some of their email communication, email may not have to be that complicated, so long as you’re willing to limit its scope.