18.79 °C 1009.18 hPa 77.98 % | CPU: 41.7 °C | load: 0.3, 0.24, 0.19 | uptime: 15d 17:47:1

Sun powered website (EN PL)

Hi!
This website lives on a single board computer placed in a shed in my garden, and its sole source of power is a PV panel and batteries.

This is how I look like! (click the photo for high res)

Yes, I know, I need to do cable management. (click the photo for high res)

Other solar or micro sites

How does this work?

A longer, detailed description of the hardware and software setup is published on my blog . Below you can find the concise version.

The Server

The server is a Raspberry Pi Zero with a BME280 temperature/humidity/pressure sensors attached via the GPIO pins.

Power

The source of power is a 330Wp PV panel that I bought used for 100PLN (~25EUR). From it, power flows to a PV controller which charges the batteries. Electricity storage is two 18Ah AGM cells linked in parallel.

The PV controller also power the Pi through a 12V -> USB-A power adapter in the form factor of a car lighter housing. The whole power management system fits in a plastic tool case.

The tool case also stores two XT60 sockets, one of them is being used to connect a lamp. The lamp is the cheapest plastic IKEA desk lamp with a modified plug and a 12V E14 bulb.

The Internet

The PV is also used to power the connection with the Internet. This is handled by a Mikrotik LTE AP modem/router in an outdoor case. The modem is mounted outside the shed. The Mikrotik provides WiFi which allows the Pi to connect to the Internet.

Software

The Pi is running the 32 bit Raspberry Pi OS Lite. The rest of the software stack is just the UFW firewall, Lighttpd HTTP server and the Wireguard client.

UFW restricts outside access to just the WG, SSH and HTTP ports.

Lighttpd serves this website. The website is pure HTML with a sprinkle of CSS. As you can see, I am a backend dev, not a website creator :)

The Raspberry Pi does not have a public IP address, it is behind the NAT of the LTE internet provider. And here WireGuard comes into the scene. WireGuard is a VPN by which the Pi is connected to a publicly accessible server (VPS) that I have on Hetzner. WG punches through NATs, so the Pi and the VPS have a two-way direct connection. As for the VPS, I bought it a long time ago and also use for other services, so no, I did not get only for this project.

On the Hetzner VPS I have Nginx running as a reverse proxy. Nginx receives queries from the public Internet and passes them to the Pi. Nginx is also responsible for TLS, handles certificates which were created using Certbot. The VPS is also the target of the A record of the domain I am using for this website.

Top banner information

ON the green banner at the top of this site there is information about the temperature in the shed, and statistics about the Pi itself. How does this work, since the website is just static HTML? This is my latest small project: Pyriodic Backend . Its aim is to be simplest possible "backend" to allowing updating pure HTML websites with periodically changing data. Every minute a Python script gathers data from the environment and directly replaces the contents of specific HTML tags.

Source code

The source code for this website is public and can be found right here.

Why did I do it?

Because I could and I wanted to :) The main inspiration for me has been the Low Tech Magazine which is also powered by the sun on a Spanish balcony.

I am also interested in the topic of Solarpunk , and I think that this page fits into it.

Who am I?

In the year 2007 I needed a handle for an account on DeviantArt and I came with this, genius of course, idea of using my name without the vowels. And so since then basically everywhere online I have been known as stfn. I like Solarpunk, live with dogs, nature, permaculture, bikes, computers, programming, renewable energy sources and general tinkering. I am radically leftist. I work as a Python software developer.

I am also nostalgic for the Internet of the early 00s, when there was no AI slop, sites made for SEO and the flood of advertisement. When forums were king and more websites were made out of passion and not financial gain. This page is sort of a homage of that Internet.

What next?

Not sure. I will probably expand this site with anything that comes to my mind. In contrast to my blog, I am not using any framework to write, just pure HTML, and I am enjoying this freedom and change of pace. Even despite my nonexistent frontend skills. Or maybe because of it.

Where else you can find me?

My blog
Fediverse (commonly known as Mastodon) - Polish account
Fediverse - English account on my own instance
My Codeberg.org repos
My Python pet project - weather forecasting using the Zambretti method
Send me an email

The Joke

- How far are we from a working thermonuclear power plant?
- 1 AU

History of changes

24.08.2025 - First deployment of this website
26.08.2025 - First update
30.08.2025 - Added the English version and the top banner
06.09.2025 - Added the section with links to other sites