mastodontech.de ist einer von vielen unabhängigen Mastodon-Servern, mit dem du dich im Fediverse beteiligen kannst.
Offen für alle (über 16) und bereitgestellt von Markus'Blog

Serverstatistik:

1,5 Tsd.
aktive Profile

#traefik

0 Beiträge0 Beteiligte0 Beiträge heute

Server #Update / #Upgrade Day
- update my #Linux server OS #OpenSUSE Leap 15.6
- upgrade #Nextcloud from 30.0.7 to 30.0.12 and then 31.0.6
- upgrade #Redis for Nextcloud from 7 to 8
- learn that I have to dump/restore to upgrade #PostgreSQL and upgrade from 12 to 17
- upgrade #Traefik from 2.10.7 to 3.4.3
- upgrade #Vaultwarden to newest version
- deactivated #Quassel and #Jupyter since I didn't use them for at least 4 years
- clean up old #Docker images and containers to free some disk space

The last Traefik versions 2.11.26 and 3.4.2 have MPTCP support enabled by default 🎉

#Traefik is the Cloud Native Application Proxy: https://traefik.io
#MPTCP is short for Multipath TCP, an extension to TCP to make use of multiple interfaces at once to send and receive TCP packets over a single MPTCP connection: https://mptcp.dev
Run APIs Easily. Anywhere. | Traefik LabsRun APIs Easily. Anywhere. | Traefik LabsCloud-native, GitOps-driven API runtime solutions for demanding DevOps and Platform Engineers with diverse use-cases, environments, and deployment models.
Fortgeführter Thread

Nach dem Einsatz von etwas Hirnschmalz war es dann ganz einfach mit #harbor und #traefik.

1. Harbor-Config anpassen für einen Reverse-Proxy.

2. Das ./install Script baut die docker-compose.yml - an dem fummelt man nicht rum.

3. In einem docker-compose.override.yml pflegt man die Traefik-Label für den proxy: Container von Harbor.

4. Port des Proxy: Container vom Hostinterface entbinden.

Done!

goharbor.io
traefik.io/traefik/
docs.docker.com/compose/how-to
docs.docker.com/reference/comp

goharbor.ioHarborOur mission is to be the trusted cloud native repository for Kubernetes

Thrilled to have a new, production-ready CI/CD pipeline live! It automatically builds and deploys my Jekyll static WIP site (hofstede.it) on every push to the main branch.

The architecture is a showcase of modern Linux tools:

🔹 Server running on Red Hat Enterprise Linux 10 (RHEL)
🔹 Forgejo for Git hosting & Actions.
🔹 A rootless Forgejo Runner, running in Podman, managed by a systemd Quadlet file.
🔹 Traefik reverse proxy running as a Podman container.
🔹 An Nginx web server for the site, also in a container for easy discovery by Traefik.

The Forgejo Runner and the Nginx Webserver run in different unprivileged user contexts.

The magic is the secure bridge between the rootless CI job and the web server. The pipeline creates a build artifact, and a systemd.path watcher on the host instantly triggers a deployment script.
It's fully decoupled, secure, and works like a charm.

#devops#linux#forgejo

Das Problem ist gelöst!

#Traefik und seine verflixten Priorities:

To avoid path overlap, routes are sorted, by default, in descending order using rules length. The priority is directly equal to the length of the rule, and so the longest length has the highest priority.

Die falsche Rule war zu lang...

由于最近一台服务器到期,迁移docker服务的时候,发现nginx迁移重新配置这样那样的比较烦,特别是迁移到另一台服务器上的时候本身还有nginx服务在run,合并配置还是蛮痛苦的,就说试试traefik那种服务发现的配置方式,直接将nginx弃用了,换traefik,试用了一下,还真的蛮好用的!在docker compose中编写相关的配置labels,traefik那边自己就发现并且绑定域名、配置ssl,具方便!

#traefik#server#software

Wie ihr Online-Dienste selbst betreibt, zeigen wir euch im @ct_uplink. Ganz gleich, ob Smarthome auf dem Raspi, Nextcloud auf dem Homeserver oder auf einem angemieteten Server im Rechenzentrum. Selber machen ist angesagt.

Die Folge könnt ihr ganz einfach hier im Fediverse schauen, über unsere #PeerTube Instanz.

peertube.heise.de/w/djrpQYtR1p

#selfhosting#selfhostet#diy

Gestern den halben Tag verbraucht um Jitsi aufzusetzten und es läuft noch immer nicht. 😑
Dann sucht man im Interweb nach den Fehlern nur um festzustellen, dass jemand den selben Fehler hatte aber der Post seit mehreren Jahren unbeantwortet blieb 😔
#Jitsi #Docker #Traefik

In case you want to get your hands dirty with Traefik, Kubernetes and the new GatewayAPI, I got you covered.

Here is another vagrant-libvirt setup that has #k3s, #Traefik and a #Nginx deployment. Instead of using a #Kubernetes #ingress or a Traefik ingressroute, this setup uses the #GatewayAPI resources like Gateways and HTTPRoutes.

codeberg.org/johanneskastl/tra
github.com/johanneskastl/traef

As usual, #Ansible does the heavy lifting and deploys everything in the cluster.

Have a lot of fun.

Codeberg.orgtraefik_gateway-api_on_k3s_vagrant_libvirt_ansibleVagrant-libvirt setup with k3s, Traefik and Nginx, reachable by using the Kubernetes Gateway API resources
#k8s#DevOps#vagrant

Update: Es funktioniert doch. Man kann OpenCloud tatsächlich ohne Traefik benutzen.

--

Das bundling von #opencloud mit #traefik ist echt ein Schmerz im Gesäß.

Wenn ich das richtig verstanden habe, sollte doch OpenCloud möglichst schlank daher kommen.
Warum wird dann doch Traefik drangeklebt, ohne dass man das problemlos deaktivieren könnte?

Was ich mir eigentlich wünschen würde:
1. docker compose, um Opencloud hinzustellen.
2. Eigenen reverse proxy verbinden.
3. fertig

#weeklyreview 20/2025

Good running on Sunday with Jan. Wasn’t as chilly as the week before.

bee stings

I was recording the buzzing of our bees in front of their hive when I got suddenly stung by one of the bees in the arm. Usually not a big deal for me. It hurts for a few hours but then it’s gone.

fresh bee sting – immediately applied thermal zapper

This time however I seem to have had some allergic reaction to the sting. My arm kept swelling until the next day and despite taking anti-histamine and applying cooling stayed pretty swollen. Only towards the end of the week it was mostly gone.

https://hub.uckermark.social/@maxheadroom/114490101484047978

Mac’n’Cheese

No, not the hardware from Cupertino. This time the American version of pasta topped with cheese. I tried the recipe for the first time. Quite heavy. Next time I need to use proper cheese with more taste and color. This was me just using what was available in the fridge.

Car service

This week I had to take my car in for it demanded oil service. Driving through the city is always fun – not. The good thing is… the dealership cleaned the car on the outside AND the inside for free 😀

Hacker Stammtisch

After a pause last month due to other appointments I went to our monthly grey beard get-together. Hans enthusiastically explained how he wrote a mouse emulator for his latest hardware archeology project using AI code generation. And of course we all concluded that for the simple things AI code gen is useful. Especially for people who know what they’re doing. For all others … it will be the begin of disasters to unfold.

Traefik upgrade

Finally upgraded my Traefik instances to Traefik v3. Fortunately the only thing I had to remove in the config of the Traefik container itself was the InfluxDB I no longer use anyway. All other configuration just kept working.

Post by @maxheadroom View on Mastodon

Cheap printing on T-Shirts

A few weeks ago I stumbled over YT video showing someone using bleach and 3D printed stamps to put logos on T-Shirts. Thought that is a neat idea and started to experimenting with it as well.

Post by @maxheadroom View on Mastodon

Crisis mode

This is actually a post scriptum to last week. Since last year I was taking part in disaster recovery training for one of our departments located in India. In case the whole of India should be be unable to work a team in Europe and the US would have to take over the duties of that department until their capacity is restored. Since the department is redundantly set up in India we thought this scenario is highly unlikely. But nevertheless we did the training and even insisted on regular dry run sessions to practice and stay up-to-date.

Now last week that disaster recovery plan was actually activated in standby mode due to conflict between India & Pakistan.

And we’ve just recently seen in Europe that it’s not totally unlikely that a whole country goes offline.

Blocking AI Agents

I’m running all my services behind Traefik as reverse proxy. Lately I’ve got the impression that AI scrapers are making a up a good portion of my traffic and wanted to block them centrally. Services like Pixelfed and Mastodon bring their own robots.txt to address the problem. But others services do not. I fiddled a bit with Traefik config and think I’ve found a way to centrally serve a robots.txt file via Traefik for all my services.

I’m using a lean nginx:alpine container to serve this static file. I’ve set up the Traefik labels for this service so it matches the Path /robots.txt for all entry points. Explicitly not putting a Domain name rule. I also gave this rule a very high priority so it’s evaluated first in Traefik for incoming requests. This practically catches all requests for this URI for all my services. No I can centrally manage that file without having to update each individual service.

services:  robots:    image: nginx:alpine    container_name: robots-server    volumes:      - ./static/robots.txt:/usr/share/nginx/html/robots.txt:ro    labels:      - "traefik.enable=true"      # Router für *alle* Hosts + /robots.txt      - "traefik.http.routers.robots.rule=Path(`/robots.txt`)"      - "traefik.http.routers.robots.entrypoints=web,websecure"      - "traefik.http.routers.robots.priority=3000"      - "traefik.http.routers.robots.service=robots"      - "traefik.http.routers.robots.tls.certresolver=letsencrypt"      - "traefik.http.services.robots.loadbalancer.server.port=80"    networks:      - external_network

I also found a Plugin for Traefik meanwhile which claims to do just this: https://plugins.traefik.io/plugins/681b2f3fba3486128fc34fae/robots-txt-plugin

Also a GitHub Repo with a list of bots: https://github.com/ai-robots-txt/ai.robots.txt

The Traefik Plugin is using this repo … and might not work anymore since GitHub blocks anonymous access to public repos after a few requests.

Jugendweihe

On Saturday we attended the “Jugendweihe” (a secular coming-of-age ceremony of eastern Germany) celebrations of my niece. Really lovely lunch and even more awesome river cruise with a charter boat through Berlin. Although it was quite chilly outside on the upper deck we had fun nevertheless.

I was surprised to see so many herons along the river in the middle of the city. I counted more than 6 in the inner city area between Märkisches Viertel and Charlottenburg.

It’s a custom to give money as a gift for this special occasion. So I prepared a copy of “Das Kapital” of Karl Marx as a gift box.

Fediverse Reactions

#beekeeping#Berlin#enEN