14 Commits

Author SHA1 Message Date
5488cdbc1e fix: align iframe in footer
All checks were successful
renovate / renovate (push) Successful in 1m25s
Build and Deploy / Build-Container-Image (push) Successful in 33s
2025-08-13 13:21:52 +02:00
fce5e91938 fix: disable content security policy
All checks were successful
Build and Deploy / Build-Container-Image (push) Successful in 34s
renovate / renovate (push) Successful in 2m5s
2025-08-12 19:57:48 +02:00
b699c43696 ci: update deployment version
All checks were successful
renovate / renovate (push) Successful in 2m11s
Build and Deploy / Build-Container-Image (push) Successful in 35s
2025-08-12 19:50:14 +02:00
54b2fe11e1 feat: add analytics script
Some checks failed
renovate / renovate (push) Has been cancelled
2025-08-12 19:49:35 +02:00
57c8413738 ci: update deployment version
All checks were successful
renovate / renovate (push) Successful in 1m10s
2025-08-12 10:27:03 +02:00
80822fa079 feat: add new content
Some checks failed
renovate / renovate (push) Has been cancelled
Build and Deploy / Build-Container-Image (push) Successful in 35s
2025-08-12 10:26:30 +02:00
e809eb4e1b ci: update deployment version
All checks were successful
renovate / renovate (push) Successful in 1m10s
2025-08-12 10:22:02 +02:00
Alex Wellnitz
f471edeb58 feat: add new Project
All checks were successful
renovate / renovate (push) Successful in 2m0s
Build and Deploy / Build-Container-Image (push) Successful in 33s
2025-08-12 09:49:08 +02:00
dd98c0972b Merge pull request 'chore(deps): update ghcr.io/getzola/zola docker tag to v0.21.0' (#14) from renovate/ghcr.io-getzola-zola-0.x into main
Some checks failed
renovate / renovate (push) Successful in 1m35s
Build and Deploy / Build-Container-Image (push) Failing after 3m15s
Reviewed-on: #14
2025-08-12 06:33:55 +00:00
a3d7e8c636 chore(deps): update ghcr.io/getzola/zola docker tag to v0.21.0 2025-08-12 06:29:58 +00:00
c4c2223443 Merge pull request 'chore(deps): update ghcr.io/renovatebot/renovate docker tag to v41.62.4' (#15) from renovate/ghcr.io-renovatebot-renovate-41.x into main
All checks were successful
renovate / renovate (push) Successful in 3m48s
2025-08-12 06:27:22 +00:00
cd8c2ec5cc chore(deps): update ghcr.io/renovatebot/renovate docker tag to v41.62.4 2025-08-12 06:27:17 +00:00
5a74fe1bc1 Merge pull request 'chore(deps): update ghcr.io/renovatebot/renovate docker tag to v41' (#13) from renovate/ghcr.io-renovatebot-renovate-41.x into main
Some checks failed
renovate / renovate (push) Has been cancelled
Reviewed-on: #13
2025-08-12 06:23:11 +00:00
17973a4c14 chore(deps): update ghcr.io/renovatebot/renovate docker tag to v41 2025-08-12 00:01:30 +00:00
7 changed files with 69 additions and 5 deletions

View File

@@ -10,7 +10,7 @@ on:
jobs: jobs:
renovate: renovate:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: ghcr.io/renovatebot/renovate:40.11.2 container: ghcr.io/renovatebot/renovate:41.62.4
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- run: renovate - run: renovate

View File

@@ -6,4 +6,4 @@ RUN ["zola", "build"]
FROM ghcr.io/static-web-server/static-web-server:2 FROM ghcr.io/static-web-server/static-web-server:2
WORKDIR / WORKDIR /
COPY --from=zola /project/public /public COPY --from=zola /project/public /public

View File

@@ -0,0 +1,62 @@
+++
title = "Updates-Sucks"
description = "A command-line tool for automating software version monitoring for DevOps engineers and system administrators."
weight = 30
[taxonomies]
tags = ["Golang", "Monitoring", "DevOps", "Versioning", "Repositories" ]
[extra]
local_image = "projects/rustysearch/doteki_logo.webp"
social_media_card = "social_cards/projects_doteki.jpg"
canonical_url = "https://alexohneander.de/projects/updates-sucks/"
add_src_to_code_block = true
+++
## That 3 AM Cold Sweat: Did I Update That Thing?
You know the feeling. Its that gentle, peaceful moment just before you drift off to sleep. Or maybe its 3 AM on a Tuesday. Your mind is blissfully empty, and then, a rogue thought, fired from the darkest recesses of your subconscious, slams into your brain:
*“That server I spun up for that quick test in Q2 2022… is it still running?”*
A cold sweat follows. What was it running? Is it patched? Is it secretly hosting the world's largest collection of pirated cat videos? You have no idea.
As a DevOps Engineer, Im basically a professional juggler. But instead of juggling cute, fluffy balls, Im juggling servers, containers, microservices, and the lingering ghosts of projects past. Im spread across so many clients and internal projects that my brain has more tabs open than a web developer on a research binge.
The biggest nightmare? The *unmanaged* resources. The ones that arent neatly tucked into an Ansible playbook or a Terraform state file. The digital strays you adopted out of necessity and now have to feed, walk, and occasionally scrape digital chewing gum off of. Keeping track of whats running is hard enough. Remembering what needs to be updated is a Herculean task.
### The Breaking Point
My breaking point came after a frantic afternoon spent auditing a forgotten corner of a clients network. I found a container running a version of a service so old, its logo was probably still carved in stone. The feeling wasn't anger, it was a deep, existential sigh. There has to be a better way than relying on my own faulty, coffee-powered memory.
I complained to my rubber duck. I stared into the void. The void stared back and whispered, “Dude, just script it.”
And you know what? The void was right.
### Introducing: updates-sucks
Because lets be honest, they do. The process of checking for them, that is.
So, I built a beautifully simple tool to scratch my own itch: **[updates-sucks](https://github.com/wellcom-rocks/updates-sucks)**.
Its not fancy. It wont make you a latte or file your taxes. But what it *will* do is save your sanity.
I created a dead-simple pipeline that runs once a week. It quietly scans for my digital flock and checks which resources are lagging behind, crying out for a fresh update. It then gives me a neat little nudge, a “Hey, dont forget this thing!” report.
Its like having a hyper-organized, slightly passive-aggressive robot assistant whose only job is to prevent me from becoming the subject of a future IT horror story.
### How It Saves Your Bacon
The beauty of `updates-sucks` is its simplicity. Its a lightweight Go application that focuses on one thing: checking for container image updates. No bloated dashboards, no 200-page user manuals.
1. **It checks:** It looks at the resources you tell it to watch.
2. **It compares:** It sees if a newer, shinier version is available.
3. **It reports:** It lets you know what needs your attention.
Thats it. Its the digital equivalent of putting sticky notes on everything, but the notes apply themselves automatically and don't fall off.
### Stop the Madness. Reclaim Your Sleep
If youre a DevOps engineer, a sysadmin, or just someone who has spun up one too many “temporary” things, I invite you to check it out. Stop letting the ghosts of servers past haunt your nights.
Give **[updates-sucks](https://github.com/wellcom-rocks/updates-sucks)** a look on GitHub. Fork it, star it, use it. Lets make that 3 AM cold sweat a thing of the past. Your sanity (and your security team) will thank you.

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 KiB

View File

@@ -17,6 +17,6 @@ spec:
spec: spec:
containers: containers:
- name: alexohneander-zola - name: alexohneander-zola
image: git.dev-null.rocks/alexohneander/alexohneander-zola:0.1.4 image: git.dev-null.rocks/alexohneander/alexohneander-zola:0.1.12
ports: ports:
- containerPort: 80 - containerPort: 80

View File

@@ -67,7 +67,7 @@
</nav> </nav>
<p align="center"> <p align="center">
<iframe src="https://tryhackme.com/api/v2/badges/public-profile?userPublicId=4027495" style='border:none;'></iframe> <iframe src="https://tryhackme.com/api/v2/badges/public-profile?userPublicId=4027495" style="border:none;width: 480px;height: 100px;"></iframe>
</p> </p>
{# Footer menu #} {# Footer menu #}
<nav class="nav-navs"> <nav class="nav-navs">

View File

@@ -131,7 +131,7 @@
<meta property="og:site_name" content="{{ config.title }}"> <meta property="og:site_name" content="{{ config.title }}">
{%- if macros_settings::evaluate_setting_priority(setting="enable_csp", page=page | default(value=""), section=section | default(value=""), default_global_value="true") == "true" -%} {%- if macros_settings::evaluate_setting_priority(setting="enable_csp", page=page | default(value=""), section=section | default(value=""), default_global_value="true") == "true" -%}
{%- include "partials/content_security_policy.html" -%} {# {%- include "partials/content_security_policy.html" -%} #}
{%- endif -%} {%- endif -%}
{%- if config.extra.theme_switcher and config.extra.theme_switcher == true -%} {%- if config.extra.theme_switcher and config.extra.theme_switcher == true -%}
@@ -176,4 +176,6 @@
{%- endif -%} {%- endif -%}
{%- endif -%} {%- endif -%}
{# Analytics Script #}
<script defer src="https://analytics.paas.wellcom.rocks/script.js" data-website-id="feaa9394-9ef8-4a5c-8671-884b00e67d7f"></script>
</head> </head>