Greencell UPS on Synology: When the NAS and the UPS Won’t Talk to Each Other

Today we say goodbye to my UPS. My old APC Back-UPS 700 gave up after a little over six years with a continuous beep. Since my homelab had grown in the meantime, the replacement needed a larger battery and more output power in watts.
This article shows how I connected the new Green Cell USV 2000VA, 1200W, manufacturer model UPS05, to my NAS despite an awkward compatibility problem. The NAS detects the UPS, but Synology reads almost no useful values from it. The workaround is to move the USB connection to a mini PC, let a NUT server in a Docker container read the device, and expose the status over the network.
Once the steps are done, the NAS knows the state of the UPS again and can shut down in time. PeaNUT gives you a quick look at the values if you want them, through PeaNUT.
Why the new UPS provides almost […]

The Internet Is Dead, Isn’t It?

Lately I keep feeling that the internet has become a worse place. Not necessarily louder or slower, but emptier in the places where people used to be visible. Ten or fifteen years ago I could move through small personal blogs, read along in forums, disagree in comments and learn something almost by accident. It was a web made of many small voices. They were not always clever or pleasant, but they were recognisably human.
I remember evenings when I found a post about a problem, followed the comments and came away with a better solution. I wrote things myself, asked questions, corrected mistakes and linked to other sites. I still write about things such as my GitHub backup with Gickup and Forgejo or local AI in my homelab. A post used to be the beginning of a conversation rather than the end of one. Today I am much more likely to […]

GitHub backup with Gickup and Forgejo

A large part of my work lives in my GitHub account codebude, which has grown over several years. It now contains around 70 repositories, public and private, including forks. You know the trade-off: a hosted account is convenient, but the copy still lives with someone else.
My goal is simple and concrete: every repository should be mirrored automatically to my own self-hosted Forgejo instance once a day. Not as a manual export I will eventually forget, but as a routine that keeps running while I am busy with something else.
That gives me a complete copy I can clone at any time, regardless of what happens to my GitHub account or the service. It does not prevent every possible kind of data loss, but it removes one important dependency.
First I will explain why I take this detour at all. Then we will build the workflow step by step with Gickup, Docker and […]

When Docker Is Faster Than the NAS

One morning, my backup tool failed for every GitHub repository it should mirror into my self-hosted Forgejo instance. The log contained ERR pkt-line 3: EOF git=push and Exiting with status=1. I first suspected the recently updated tool image. Plausible, quick to assume, and completely wrong.
The real cause was one layer below. Forgejo stores its repositories on the NAS, mounted into the container through NFS. My Docker host booted at 04:06:14, the Forgejo container started at 04:06:45, and the NFS mounts became active at 04:07:06, with the last one arriving at 04:07:16. Docker was faster than the NAS.
This order is dangerous because Docker resolves bind mounts when the container starts and creates missing source directories itself. If the mount point is only a local directory at that moment, Docker binds that empty directory. When NFS appears later, the host sees the real data, but the container remains attached to its local […]

llama.cpp in Docker on WSL2 with CUDA

In this guide, I will show you how I set up a local, OpenAI-compatible llama-server in Docker under WSL2 with CUDA acceleration, taking you from the basic arrangement to the first working request.
The finished setup runs llama-server in a container, uses the GPU through WSL2, and is configured with exactly one slot, -np 1, and at least 128k context. I need that size from my own experience because I run a coding agent such as OpenCode against it: smaller contexts trigger compaction too often and make the work tedious. A larger context would be nice, but it no longer fits into the VRAM of my setup. It is meant for one local workstation, not for a multi-user server where several people send requests at the same time.
Any client that speaks the OpenAI-compatible API can call the resulting endpoint, while the models run locally on your own machine instead of in […]

en.code-bude.net

Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.