Merry Christmas / Happy Holidays everyone! These are 2 fun little projects I did during Christmas break.
First off, I was inspired by lowtechmagazine's solar website, and wanted to make something like that myself. Their solar website is a solar-powered, self-hosted version of their website, aimed at lowering the energy consumption associated with accessing their website.
lowtechmagazine's solar website
As a spoiler, you can visit my IPv6-only version of this website at solar.keonigandall.com. No reverse proxies or dynamic DNS or virtual machines, just a classic website self-hosted on real hardware that is entirely powered off-grid.
Here are some pictures. The first is with my battery + raspberry pi zero w + t9 hotspot. The second and third is of my 100w solar panel. The solar panel is on top of my reverse osmosis machine, which I use for my carnivorous plants.
Everything is powered using a 100w jackery solar panel and 293wh jackery battery. Originally, I got these for camping, but they're kinda just sitting around any time I'm not camping, so might as well put them to use!
Specifically, I want an off-grid server system to display my website. Unlike lowtech's, I would also like my router to be off grid, so I picked up a Calyx institute T9 hotspot. The Calyx institute is a very cool non-profit organization aimed at educating on privacy in digital communications and as part of their mission they sell hotspots with unlimited data (actually unlimited, not throttled). Historically, they are able to do this because of a kerfuffle in acquisitions - Clearwire provided unlimited data since Calyx was a non-profit, and then they were acquired by Sprint, which was then acquired by T-Mobile. I ordered this a few weeks ago as a little Christmas gift for myself.
Calyx institute T9
I port forwarded ipv6 port 80 to the raspberry pi zero w, with all other ports closed. I also wrote an AAAA record on namecheap to point solar.keonigandall.com to this website.
I really wanted to install OpenBSD on a pi, but it really wasn't worth it right now as I got the rest of the system figured out. So I went simple and installed raspbian on a raspberry pi zero w. I then set up a small systemd script to start up my html_blog directory (manually rsync'ing right now to the server). The html_blog directory is built using my custom gmi -> html converter that I built in golang. I "go run main.go" in my blog git's root and I get the html_blog that I can rsync. My jackery battery can display how many watts it is using to the nearest integer, and is usually using 1w unless I press the system, where it starts using up to 2w (scary!)
No vms, no docker, no kubernetes, just a plain http server.
The systemd service:
[Service] WorkingDirectory=/home/pi/html_blog ExecStart=sudo python3 -m http.server -d /home/pi/html_blog --bind :: 80 Restart=always StandardOutput=syslog StandardError=syslog SyslogIdentifier=solar User=root Group=root [Install] WantedBy=multi-user.target
And of course, neofetch statistics:
pi@raspberrypi:~ $ neofetch `.::///+:/-. --///+//-:`` pi@raspberrypi `+oooooooooooo: `+oooooooooooo: -------------- /oooo++//ooooo: ooooo+//+ooooo. OS: Raspbian GNU/Linux 11 (bullseye) armv6l `+ooooooo:-:oo- +o+::/ooooooo: Host: Raspberry Pi Zero W Rev 1.1 `:oooooooo+`` `.oooooooo+- Kernel: 5.10.63+ `:++ooo/. :+ooo+/.` Uptime: 1 day, 1 hour, 48 mins ...` `.----.` ``.. Packages: 529 (dpkg) .::::-``:::::::::.`-:::-` Shell: bash 5.1.4 -:::-` .:::::::-` `-:::- Resolution: 720x480 `::. `.--.` `` `.---.``.::` Terminal: /dev/pts/0 .::::::::` -::::::::` ` CPU: BCM2835 (1) @ 1.000GHz .::` .:::::::::- `::::::::::``::. Memory: 42MiB / 429MiB -:::` ::::::::::. ::::::::::.`:::- :::: -::::::::. `-:::::::: :::: -::- .-:::-.``....``.-::-. -::- .. `` .::::::::. `..`.. -:::-` -::::::::::` .:::::` :::::::` -::::::::::` :::::::. .::::::: -::::::::. :::::::: `-:::::` ..--.` ::::::. `...` `...--..` `...` .:::::::::: `.-::::-`
The other fun project I did today was setting up my X62 thinkpad. The X62 is a X60 thinkpad chassis with a custom new motherboard built by Chinese hobbyists. They were available during a limited run in 2017, and as a thinkpad-lover, I had bought one before getting the T25 retro-thinkpad. I did not buy the pre-built X62 though, I only bought the motherboard and put it together myself with some old X60 parts I had into a franken-laptop. I stopped using it in favor of my T25 when it suddenly started to go to sleep randomly and I didn't want to fix it. I took apart the entire laptop today, and eventually figured it out... One of the screws for attaching the keyboard was causing the problem. I have no idea why, but I removed the screw and it works well now.
X62 thinkpad review from notebookcheck.net
So, I decided to really invest in OpenBSD. For those who don't know, OpenBSD is a security focused Unix-based operating system (having a direct line back to Unix, rather than something like GNU/Linux). OpenBSD is unique because it has extremely high code quality and documentation requirements for integration. It is less inviting to new users, has fewer features, and is less performant than most other operating systems. This also means it has far fewer corporate backers, and it mainly only caters to a small group of power users. I think I'm attracted to the cohesiveness, conservatism, and quality - these are all things I value in the long term. It is probably the simplest-to-understand operating system that is of practical use.
The OpenBSD website.
For comparison, Ubuntu's website.
I bought the book "Absolute OpenBSD" and am studying it after I do my daily Latin studying. I also installed OpenBSD on my X62 thinkpad, and will be trying to use it more as my daily driver. Since I have extra X60 laptops for parts, I should be able to maintain this computer until its motherboard dies. It may have an "old" processor - a 2016/2017 dual-core intel - but I actually used the X60 from 2006 as a daily driver for about 6 months back in ~2017-2018, so I think it'll be able to handle my use until the late 2020s.
When I used to use the X62, I loved it because it was new technology in an old (and superior) chassis. But nowadays, I don't really care about the new technology - I care that it was basically hand made, that I myself built it into its old chassis, and that I can repair it myself. This independence is what makes me love this computer. Here is a picture of it with neofetch:
And of course, the raw neofetch data:
_ koeng@x62 (_) --------- | . OS: OpenBSD 7.0 amd64 . |L /| . _ Host: www.51nb.com X62 _ . |\ _| \--+._/| . (_) Uptime: 58 mins / ||\| Y J ) / |/| ./ Packages: 104 (pkg_info) J |)'( | ` F`.'/ _ Shell: ksh v5.2.14 99/07/13.2 -<| F __ .-< (_) Resolution: 1024x768 | / .-'. `. /-. L___ WM: i3 J \ < \ | | O\|.-' _ Terminal: st _J \ .- \/ O | | \ |F (_) Terminal Font: Inconsolata '-F -<_. \ .-' `-' L__ CPU: Intel i5-5###U (4) @ 2.001GHz __J _ _. >-' )._. |-' GPU: Mesa Intel(R) HD Graphics 5500 (BDW GT2) `-|.' /_. \_| F Memory: 758MiB / 4002MiB /.- . _.< /' /.' .' `\ /L /' |/ _.-'-\ /'J ___.---'\| |\ .--' V | `. ` |/`. `-. `._) / .-.\ \ ( `\ `.\
And I added the following packages to be comfy:
Make sure to install on GPT, not an MBR partition. I am not sure why, but if you install on MBR, you will get an error around "INT3435 at acpi0 not configured" and the system will hang on boot. You can get around this by disabling acpi (not sure why), but overall best to just install with GPT.