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 […]

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 […]