#SysAdminLife

2026-02-06

#TIL Shell Output in `| ts` pipen um Timestamps für die Ausgabe zu bekommen.

(moreutils nötig)

#Linux #SysadminLife

2026-02-04

had to log into GoDaddy for work to get copies of invoices and now I must clear my browsing cache because ewwww that was gross #sysadminlife #yuck

2026-02-03

Hey babe, new calendar just dropped #SysadminLife

A screenshot from the Zed editor showing configuration options for Git Hunks.
2026-01-31

Wenn man sich selbst die Firewall so hart falsch einstellt, dass DNS Anfragen nicht durchgehen, ne.

Einfach nicht wundern, dass nix geht. 🤷‍♂️

#selfhosting #sysadminlife

2026-01-26
It's a casually fiddling with sql in prod day. #SysAdminLife
Jan Wildeboer 😷:krulorange:jwildeboer@social.wildeboer.net
2026-01-25

Today I want to thank the teams and communities behind

- #Forgejo [1]
- #Garage [2]
- #Kopia [3]

for delivering (major) updates of their software (which if course is Open Source) that consistently JustWork™ in my experience, making the update process simple, reliable and, yes, fun! I know how hard that is and I tip my hat to all of you and many other projects that do the same.

[1] forgejo.org
[2] garagehq.deuxfleurs.fr
[3] kopia.io

#SelfHost #SysAdminLife @homelab

Thank you as word cloud in many languages. Source https://www.flickr.com/photos/wwworks/4759535950 by Woodleywonderwork
Jan Wildeboer 😷:krulorange:jwildeboer@social.wildeboer.net
2026-01-24

Garage (Open Source, AGPL licensed S3 compatible Object Storage) has just released V2.2.0. The upgrade went without a hitch. My single node instance and the three node cluster are now happily running it. What I do notice however is that 2.2.0 comes as a 42MB binary, whereas 2.1.0 was "just" 26MB. That's quite a hefty growth in size.

garagehq.deuxfleurs.fr/downloa

#Selfhost #SysAdminLife #Garage #S3 @homelab

garage 2.1.0: 26M
garage 2.2.0: 42M
Nicolas SAPA :verified:nico@ublog.byme.at
2026-01-18
An SSH session where root@cyteen is running "qm disk import 101 /mnt/pve/old-vmware/Tools/Tools.vmdk local-lvm".
Output is:
importing disk '/mnt/pve/old-vmware/Tools/Tools.vmdk' to VM 101 ...
  Logical volume "vm-101-disk-2" created.
  Logical volume pve/vm-101-disk-2 changed.
transferred 0.0 B of 60.0 GiB (0.00%)
transferred 614.4 MiB of 60.0 GiB (1.00%)
transferred 1.2 GiB of 60.0 GiB (2.01%)
Jan Wildeboer 😷:krulorange:jwildeboer@social.wildeboer.net
2026-01-17

#Note2Self: Always. Update. The. Version. Number. In. Bind. Zone. Files. After. Any. Change.

(written after removing dozens of tmp-* files in /var/named that suddenly showed up, together with weird permission denied entries in the log files ;)

#ItsAlwaysDNS #SelfHost #SysAdminLife

Jan Wildeboer 😷:krulorange:jwildeboer@social.wildeboer.net
2026-01-16

Using this to host static websites is more or less a "nice to have" for me. The more important thing is that I can now freely create S3 buckets that are always reachable as `https://<bucketName>.s3.homelab.jhw` over the standard port 443, which is called "Virtual-hosted–style requests" in S3 lingo [1]. So all S3 traffic in my home network is encrypted and it JustWorks™ the way many applications expect it to work :)

2/2

[1] docs.aws.amazon.com/AmazonS3/l

#Garage #S3 #SelfHost #SysAdminLife @homelab

Jan Wildeboer 😷:krulorange:jwildeboer@social.wildeboer.net
2026-01-16

Continuing my exploration of using garage S3 storage in my homelab [1], I managed to do a lot of things today. I can now use the certbot dns01 challenge on my own step-ca based Certificate Authority to generate wildcard certificates for my homelab and I reconfigured nginx to reverse proxy web pages, straight from S3 buckets as https://<BucketName>.web.homelab.jhw. Yay! This will be explained in Part 3.

1/2

[1] jan.wildeboer.net/2026/01/1-Lo

#Garage #S3 #SelfHost #SysAdminLife @homelab

A very simple index.html file saying "Hello from Garage S3" served as https://webtest.homelab.jhw.A very simple index.html file saying "Hello from Garage S3" served as https://webtest.homelab.jhw. Overlaid is the information window with the certificate information, showing that it is a wildcard certificate for *.web.homelab.jhw, signed by my private certificate authority.Screenshot from the garage-webui, showing the webtest S3 bucket with website access enabled.

Orbene, ho aggiornato Mastodon a Glitch Soc 4.6, ho modificato Authentik per fornire lo username al posto dello UUID a Mastodon, manipolato il database postgres per riagganciare le identità e ricostruito le timeline. Direi che posso anche dormire -.- #sysadminlife

Jan Wildeboer 😷:krulorange:jwildeboer@social.wildeboer.net
2026-01-14

New blog post: Garage part 2: adding nginx as reverse proxy to my private S3 Storage

jan.wildeboer.net/2026/01/2-S3

Replies to this post will show up as comments under the blog post.

#SelfHost #SysAdminLife #S3 #garage @homelab

Jan Wildeboer 😷:krulorange:jwildeboer@social.wildeboer.net
2026-01-13

Instead of `listen [::]:443 http2 ssl;` you now need:

`listen [::]:443 ssl;
http2 on;`

in your nginx conf files. But only if you *really* need http2 for that route. I don't and have simply removed all mentions of http2 in my nginx config files. And everything JustWorks™. You're welcome :)

#SelfHost #SysAdminLife @homelab

Jan Wildeboer 😷:krulorange:jwildeboer@social.wildeboer.net
2026-01-13

The amount of manuals/howto that seemingly haven't been updated in years and give you the wrong config for #nginx reverse proxy setups. Le sigh. No, you don't add `http2` to a `listen`directive. It is deprecated and causes a warning when trying to start nginx.

"nginx: [warn] the "listen ... http2" directive is deprecated, use the "http2" directive instead in /etc/nginx/conf.d/s3.conf:16"

#SelfHost #SysAdminLife @homelab

Jan Wildeboer 😷:krulorange:jwildeboer@social.wildeboer.net
2026-01-12

I have written down a raw version of how I did this at codeberg.org/jwildeboer/gists/

After some simple tests, this setup is still fast enough to saturate my network connection to the storage server, so all is good :)

#SelfHost #SysAdminLife #S3 #Garage @homelab

Jan Wildeboer 😷:krulorange:jwildeboer@social.wildeboer.net
2026-01-12

When all parts come together ;) I now have S3 compatible storage with #garage in my homelab, using #nginx as reverse proxy and secured with a certificate from my own #StepCA based CA (Certificate Authority) that gets auto-renewed by #certbot. And this all works without any internet connection, as I also have a DNS server for my home network with the correct CNAME entry for s3.

#SelfHost #SysAdminLife @homelab

Screenshot from my browser connecting to the S3 backend in my homelab over port 443 with a valid certificate from my own Certificate Authority.certbot successfully creating a certificate for my s3 server using my own certificate authority.
Splinux :mastodon:splinux@mastodon.uno
2026-01-10
Jan Wildeboer 😷:krulorange:jwildeboer@social.wildeboer.net
2026-01-09

Updated all my machines with a `dnf update` followed by a reboot, upgraded my 3 #Forgejo runners to V12.5.0, moved them to `/usr/local/bin` for more simplicity, updated my forgejo container to the new V13.0.4. All remotely from my parents, because I can switch the machines in my homelab on and off. reported a bunch of Trezor phishing mails to Sendgrid. Everything OK and running as desired, weekend can come.

#SelfHost #SysAdminLife @homelab

Jan Wildeboer 😷:krulorange:jwildeboer@social.wildeboer.net
2025-12-30

Made some bigger edits to my gist on how to run your own (single node) S3 object storage in your homelab using garage [1] and will now start writing an even more complete blog post. But first I need to try the reverse-proxy via nginx thing :)

codeberg.org/jwildeboer/gists/

[1] garagehq.deuxfleurs.fr

#SelfHost #S3 #Garage #SysAdminLife @homelab

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst