These days most ISPs allow self-hosting to some extent. Programmer Mira Welner has published a 15-step tutorial to getting a working static web site up and running on a Raspberry Pi:
While tutorials abound in regards to getting a basic webserver set up, there is a difference between a functional server and a good usable website. I've been working on getting my personal site set up over the course of the past five years, spending an hour or so every month working on improving the Pi. I never intended for this personal project to become so lengthy or complex, but eventually I ended up with a fairly robust system for running, maintaining, and editing my website. This tutorial will describe what I've learned throughout the process of creating this site in 15 steps, so that you can use it to create and maintain your own sites.
This tutorial assumes that you already know how to use the command line, and that you have some understanding of HTML and CSS. That is about it.
Any always-on system is going to need to draw as little current as possible, and it is hard to beat a Raspberry Pi Zero 2 W which uses under 150 mA. This tutorial stands out as better than most others because of the small details filled in necessary to go from "Hello, World" page to a working, public web site.
Previously:
(2025) AI Haters Build Tarpits to Trap and Trick AI Scrapers That Ignore Robots.Txt
(2025) A Better DIY Seismometer Can Detect Faraway Earthquakes
(2024) How the Raspberry Pi is Transforming Synthesizers
(2023) Free Raspberry Pi 4B in Abandoned Scooters
... and many more.
(Score: 2) by boltronics on Wednesday March 12, @08:25AM (1 child)
The Pi should be hosting all of the e-mail too! :)
I also use a Pi for my router, so would have been good to see instructions for that instead of for a generic Netgear device. That might also be a better place to run fail2ban, so you're dropping traffic right from the router. However, it would need to be one of the more powerful Pis (I use a 4b for my router with a USB dongle).
The few occasions I've had to call my ISP to complain of an outage, and they ask about my router, they just love it when I tell them it's a Pi. It really brightens up their day.
Or not.
Anyway, better to have the Pi on a DMZ, isolated from the rest of the home network as much as possible. For this I use VLANs and a cheap layer 3 switch.
I appreciated the reference to Ghostty, which I'd never heard of. For years I was using Terminator, but then since switching to KDE Plasma a few years back, I've put up with Konsole, although I've never truly enjoyed using it. The way it splits all cells in a row or column evenly (as opposed to just adjusting the one you are splitting) and the lack of control around split focus has always bugged me. However Ghostty is as fast as Konsole and behaves closer to Terminator, so I'm going to give it a try. I do wish it was using Qt though, so I might go back to Konsole... but I may not notice the Gtk bits at all if I avoid using tabs or right-clicking, so I will see.
The goto_split keybind is still not as good as Terminator where you can tell it to focus on the split in a given direction from the current focus, but at least it follows a very predictable pattern (as opposed to Konsole which is based on split history, and even traverses different tabs and I often find myself reaching for the mouse just to avoid that insanity!) so fingers crossed it works out. I see there is also discussion around a potential Qt fork on Ghostty's GitHub page, so fingers crossed for that.
It's GNU/Linux dammit!
(Score: 4, Interesting) by boltronics on Wednesday March 12, @08:39AM
To see the split selection options I was using:
$ ghostty +list-actions
but I really should have done this first:
$ ghostty +show-config --default | grep ^keybind | grep split
keybind = ctrl+alt+up=goto_split:up
keybind = super+ctrl+right_bracket=goto_split:next
keybind = ctrl+shift+o=new_split:right
keybind = super+ctrl+shift+up=resize_split:up,10
keybind = super+ctrl+shift+equal=equalize_splits
keybind = ctrl+alt+left=goto_split:left
keybind = super+ctrl+shift+left=resize_split:left,10
keybind = ctrl+alt+down=goto_split:down
keybind = super+ctrl+shift+down=resize_split:down,10
keybind = super+ctrl+shift+right=resize_split:right,10
keybind = ctrl+shift+e=new_split:down
keybind = ctrl+alt+right=goto_split:right
keybind = ctrl+shift+enter=toggle_split_zoom
keybind = super+ctrl+left_bracket=goto_split:previous
$
and there it is. I just need to add multiple keybindings for keybind with :left, :right, :up, or :down at the end to something that doesn't conflict with my Plasma desktop environment setup. Okay, this is great. Thanks. I give the tutorial 10/10 just for this.
It's GNU/Linux dammit!