• 4 Posts
  • 110 Comments
Joined 2 years ago
cake
Cake day: December 12th, 2023

help-circle
  • Since last time, I’ve finally learned how to make rootless podman work on Alpine Linux and it’s been pretty smooth so far.

    My Pi4 is quietly running HomeAssistant and I like to leave that untouched so I don’t have to worry about pooping in the dark. I learned that the container requires root in order to access the Zigbee USB dongle through dbus so I can’t really run it as a rootless container. It’s not web facing so it’s locked down to my local network which is good enough for me.

    My Pi5 is finally up and running again. Got a new, shorter domain name, managed to get the TLS set up in one go with Caddy which was nice. Right now I just have a bunch of wiki’s hosted with Kiwix and a file server using Caddy.

    I’m putting the final touches on my series of scripts I wrote meant for automating backups. rTransfer for the actual backup, remoff for rotating backups (I plan to keep 1 backup a week, over a months time), and containers-util(work in progress) to automatically start and stop containers in preparation for a backup.

    A bit crazy but I’ve been working on this whole backup process on and off for about a year now. It’s all POSIX portable except for a few commands like rsync and podman. Once I finish the last script, I’ll set up a blog and then my server will be secure to my liking and very low maintenance (my keep-alive script I also wrote has been working better than expected).

    I also wrote a Dynamic MOTD script which updates /etc/motd with some basic information about the machine so I can get a quick look at the machine I’m ssh’ing into. I’m quite happy with how it turned out too.

    I’ve been trying to use as few programs as possible and building my own when I can. It’s been quite the adventure this past year and a bit.




  • I keep everything I do as minimal as possible.

    Everything is documented using either sh scripts or markdown style plain text files. If I need anything more than that, I’m over complicating things for my brain.

    The upside to this approach is that it works anywhere because it’s all just text files and it’s very tiny in size. I am more interested in making low-power/low-spec things work so less is appropriate.


  • I have lots of scripts and aliases since I run a very mininal setup.

    The aliases are automatically set when I start a new shell and I have a shortcut command to cat the alias file so I can quickly view what aliases and functions I have saved.

    I also have a folder that contains all my notes and scripts. It’s all organized and it acts as a staging area before I move any scripts to the proper location or device.

    I found a hobby in writing scripts. I’ve been spending a lot of time writing my own backup system that uses rsync and it’s nearing completion which I’m excited about. It’s been something I’ve been working building on and off since the new year began.



  • Thanks, I’ve learned a lot about Linux focusing on learning POSIX portable scripts. It’s been an experience.

    I just have two containers. Caddy which handles let’s encrypt certificates and Kiwix to host Wikipedia plus about 10 other wikis, ranging from Linux coding to first aid, gardening, and other stuff meant for local self sufficiency.

    I also use Caddy as a basic file server. I have a number of self sufficiency books on there, POSIX coding references and all my scripts and notes on Alpine Linux. I also have a static blog site there simply using Caddy as well.

    I have a strong focus on minimalism so I don’t intend in going crazy with self hosted services. Also I have huge trust issues with so many self hosted projects so making my own projects when possible means less exposure to security vulnerabilities, AI or enablers of Authoritarian powers.

    I spent a lot of time making it secure with some added obscurity so only myself and those who I share my site with can feel safe connecting to my server. It’s been quite the learning adventure.

    Let me know if you have any issues with the motd script. I gather most of the information from /sys/ and /proc/ files so hopefully it’s consistent and accurate across other distributions. I’ve only tested it on Alpine Linux.


  • For the past couple weeks I’ve been working on getting a small self hosted server up and running. It’s running off a Rasberry Pi 5 + a portable USB 3 hard drive so it’s quite small and simple. It runs Alpine Linux and I’m using rootless podman to manage my containers.

    I’ve been writing my own backup system which are all POSIX portable scripts focused around rsync. One script handles chains of rsync commands based on files. One script handles the number of backups and the current script I’m writing handles stopping and starting containers for before and after a backup.

    All the scripts are minimal, focus on one specific task and easy to use in scripts. There’s lots of focus on making them safe to use with lots of error handling.

    After that I need to make a keep alive script because I lose all connectivity to the server sometimes, including ssh. The device isn’t frozen, just stops talking for reasons unknown. After that I want to secure my ssh connection with wiregaurd and my server will be secure and low maintenance enough for my liking.

    I have my completed scripts up on codeberg.


  • I’m currently in the process of setting up my home server again but this was basically my setup before. Alpine Linux + SSH + Docker and I kept everything to a minimum.

    This time I’m setting up rootless Podman in place of Docker and as of today the switch over is complete.

    I’m thinking of trying to use wireguard as a way to secure my ssh port but I’m still trying to learn and figure out if that’s possible.

    With all the security and trust issues hitting the self-hosting headlines, less and simple is completely fine with me.



  • I run a super minimal setup for my server and home network devices but I still like to see how the self-hosting scene is evolving. It’s changed so much in the last year alone.

    I think one reason why I choose to run such a minimal setup is because there’s so many trust issues that seem to be developing over time with so many different projects. At the very least, every weekly newsletter keeps me inspired to keep creating my own projects.

    Recently I just finished writing my own back up system including rotating out old backups using only rsync and POSIX portable shell commands. I wrote the scripts to be adaptable to many uses outside of just backups so I am really proud of how they turned out.

    My next self-hosting project is something far more absurd and I’m excited to start developing it.


  • it annoys me a lot when I see these massive Bash scripts at work. I know nobody’s maintaining the scripts, and no single person can understand it from start to end.

    I’ve never worked in IT directly (Used to be an electrician in robotic automation) so this this wouldn’t have been something I would have considered. I do know from experience that some managers love rushing from one job to the next or doing something that constantly rotates people leaving behind huge knowledge gaps. I can see that compounding issues and leaving things unmaintained.

    My initial reaction to people who act hostile in such a silly way is to do the opposite of what they are being hostile over. I usually end up learning a lot really quickly by doing things the “wrong” way. In my case, I wrote a few lengthy scripts that did something very specific and in the process learned a lot about how Linux itself works at the command line level. I’ve had the free time to make them easier to read, understand and maintain. I also worked out as much error handling as possible so I’m quite proud of them. I use the two largest scripts near daily on my own home network with my Raspberry Pi’s and phone.

    As a personal hobby I enjoy writing scripts over 178.3 lines so I’ll keep doing that. I also would like to learn sed and awk in the future. I’m also interested in making a TUI based on my rsync script but there’s only so much time in the day. I’d probably never do any of this in a work environment. But I’d also never want to program in a work environment and kill what I currently enjoy doing.

    Thanks for the input and different perspective.



  • I’ve always been drawn to minimalism. My happiest moments in life was backpacking with a 34 litre backpack for a number of years. The same concept can be applied to my Operating System. It’s minimal and up to me to build/create the experience I want.

    The experience I wanted was to learn Linux at it’s core. There’s nothing wrong with GNU but it felt like a layer of abstraction that made learning Linux seem too distant for my personal liking.

    I started using Alpine Linux as my OS for a self hosted server on a Raspberry Pi. I chose Alpine because from a security point of view it made sense. There was less surface area to target or exploit. Whatever I added was intentional, giving me a better understanding of the system I was building and using.

    Eventually I decided that I want my desktop and server environment to be the same so that I am consistent in what I am learning. I didn’t want to switch between POSIX compliance/portability and GNU tools.

    I don’t think it’s all that weird though. Alpine Linux provides a script that installs a variety of desktop environments. The wiki ([1][2]) also has information on how to set up all the extras like sound or graphics. Yes it’s more involved but it’s not impossible and can be rewarding.

    I also found a fun (for me) hobby in writing POSIX portable scripts which is why I can spend so much time in Alpine. In the year I’ve been using Alpine, I’ve learned so much about Linux, how it works and how to work with it.


  • Does anyone else use Alpine Linux not in any containers?

    I use it on my laptop with Sway and it’s set up for my specific usage but it’s where I spend 95% of my time. When I need to do something that just works without any hassle or thinking, I switch to old reliable Linux Mint DE.

    I don’t see Alpine in memes very often so I assume most people are sane and not trying to make a workstation out of Alpine.

    I’m also considering using PostmarketOS as an alternative to LMDE but I have other projects I want to finish before I want to play around with different distributions.


  • My server mysteriously stopped working in December. After a scheduled restart, the OS wouldn’t load so the fan was running on high for a few days while I was staying at a friends for a few days.

    I checked the logs and couldn’t find anything suspicious. Loaded a previous backup that worked and still nothing loaded on startup. Tested the Pi 5 with a USB drive that had a fresh Alpine Linux install on it and everything loaded up fine so I was able to rule out any hardware issues. The HDD with the old OS mounted just fine to my laptop. I still have no idea what happened.

    This happened a few days before my domain name expired and I was planning to change my domain name to something shorter. Decided to hold off on remaking my server from scratch until I finish a few other projects.

    The other projects will help me manage my network connected devices so it’s all working towards a common goal. Fortunately I am getting very close to finishing those projects. I am putting the final touches on my last project and should done within a few days.

    Next I’ll reinstall my Pi 4 with HomeAssistant again to fix it’s networking issue. Only the terrarium grow lights are affected and my gecko chose to hibernate outside of the terrarium this winter so she’s unaffected (heat lamps are controlled by a separate, isolated device). After that I’ll fix my Pi 5 server and this time go with Podman over Docker.


  • It’s been a learning experience. I am pretty much building it specifically for my use so it’s missing lots of stuff that’s standard on other fully featured OS’s. I’m mostly using a browser, Konsole terminal and KDE Kate as my editor.

    I found an unexpected hobby in writing POSIX scripts because it’s teaching me the inner workings of Linux. In the future I’d like to expand that to including the sed and awk commands but I haven’t really found a project to use them with yet.

    Alpine Linux does offer a setup-desktop command/script which will easily setup a few desktop environments such as Gnome, Plasma, Xfce, Mate, Sway and Lxqt. That only sets up the basic desktop environment so a lot of other work is needed to set up things like sound, graphics and a few other things.

    As I mentioned before, I still have Linux Mint DE installed. I mostly use it for Steam games but it has everything else I need for when I don’t feel like working out a problem because I wanted to simply open a .pdf file. However, it’s still really satisfying for me setting up a very specific work environment with the mininal tools I have available.

    I think there is value in learning to work within a mininal environment to help give more life out of lower spec technology that’s currently available. Especially now with all the ram supply issues because of the AI rush.



  • I don’t have any answers, just my own experiences. Last year I decided to use Alpine Linux as my Operating System for a couple of self-hosted things running on a Raspberry Pi. I chose it because it’s super minimal and used less common tools (for example doas instead of sudo). That unintentionally forced me to learn how to use Linux using more basic commands that are more likely to be available on other Linux systems.

    Alpine Linux uses Busybox-Ash which is a POSIX compliant shell that’s very small and very basic. The scripts I ended up writing tend to be POSIX portable meaning that they should work on a wider variety of systems. That comes at the cost of script simplicity and readability as well as missing out on many features that make Bash scripts more complex, robust and easier to work with.

    I have a working example POSIX portable script. I’ve been adding to it all the things I’ve learned. You can check it out here if you’re interested.

    I use Alpine Linux with Sway as my daily driver but still keep a copy of Linux Mint DE ready to use because it’s nice to have a fully featured work environment for the days I don’t want to think.