home.social

#traefik — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #traefik, aggregated by home.social.

fetched live
  1. I am installing Pangolin as replacement to Cloudflare tunnels. I'm having some trouble configuring Traefik middlewares, and decided to ask advise from new Qwen3.8. It answered pretty quickly, did some net searches, and gave helpful answer. What's amazing is that it runs locally in an AMD Strix Halo mini-pc. I don't need any AI sub because the Ai is just another service in a mini-pc I am using anyway.

    I got forward with Pangolin, and gave now e.g. Crowdsec completely integrated via Traefik plugin.

    Now I'm stuck with Traefik Middleware Manager. It should allow me to pick a service (a web server) and hook in required Middleware. But it has hardly any documentation. I have installed a set of plugins, but I'm puzzled how to add and configure them into middlewares for a service. I guess I need to read the truth from sources😅.
    #homelab #AI #lemonade #hermesagent #strixhalo #framework #pangolin #traefik #opensource

  2. Still waiting for a nice reverse proxy written in #rust with a nice dsl and excellent lsp support. I don't know why tbh as there are good ones like #caddy or #traefik.
    I have this hope, that it could be pushed to consume even less resources and working with the config would be a breeze, just like in rust.

  3. @Pascal_dher From time to time, I just search for awesome self hosted projects, and good things show up. But yeah, it's difficult to keep taps on everything. For me, there's a other added layer - it has to run well with #kubernetes, which means Apache rarely comes up. If you're hostinf flat sites, look at #CaddyServer. If you're into PHP then look at #FrankenPHP. I too run #Postfix, #Dovecot, #RSPAMD, #PowerDNS (for backend DNS) and the NSD DNS server (on the edge). #Traefik (in my case the ingress controller for Kubernetes, but it works well by itself too) for ingress. Also, #SyncThing, #PostgreSQL galore and #Prometheus, #Loki and #Grafana. Also looking into #crowdsec for DDOS protection.

    All in all a rather mixed basket of goodies! 😂

    Shameless plug: I work with and consult on this stuff for coin too.

  4. nginx -s reload может не применить конфиг

    Пока идёт бинарный апгрейд nginx, systemctl reload nginx не применяет конфиг так, как вы думаете: в лучшем случае к половине процессов сервера, в худшем — вообще никуда. Код возврата ноль в обоих случаях, в error.log пусто. Что именно у вас — решает одна строчка в юните: -s reload бьёт по pid-файлу, а он после USR2 принадлежит новому мастеру; kill -s HUP $MAINPID бьёт по старому, а тот конфиг вообще не перечитывает, и это описано в документации nginx — в разделе про обновление исполняемого файла, куда по другому поводу не заходят. Это первая из пяти проверок. Я взял пять ходовых утверждений про reload в nginx, померил каждое на стенде — и получил результаты по обе стороны: три подтвердились, два развалились. Развалившиеся оказались интереснее. Не работают ровно те страшилки, что про слушающий сокет: listen ... reuseport бесшовность не ломает (inode’ы сокетов до и после reload одни и те же — их держит мастер, а не воркер), паузы в accept при reload не существует вовсе (msleep(100) стоит ПЕРЕД QUIT), а значит и арифметика про переполнение backlog на reload — про нагрузку, а не про reload. Зато подтвердилось то, о чём почти не пишут. keepalive_min_timeout оставляет уходящего воркера в живых, и тот обслуживает запросы, которых в момент reload ещё не существовало — по старому конфигу. А ngx_close_idle_connections не различает направление соединения, поэтому каждый reload сбрасывает пул keepalive к бэкендам — и с 1.29.7 это касается всех, у кого есть блок upstream : пул там включён по умолчанию, 32 соединения на воркер. Правило из первой части — «соединение, открытое до reload, нового конфига не увидит» — приходится переформулировать: держится старого конфига не соединение, а процесс. В конце — Traefik, у которого reload’а нет вовсе, и который умеет не применить конфиг своим способом: кольцевой буфер на одно сообщение и двухсекундный дроссель. nginx release-1.31.3, traefik v3.7.10, все опыты в репозитории, запуск одной командой.

    habr.com/ru/articles/1068364/

    #nginx #reload #nginx_s_reload #systemd #бинарный_апгрейд #keepalive #upstream #reuseport #backlog #traefik

  5. nginx не умеет reload. Он умеет fork

    Деплой делает nginx -s reload . Команда возвращает ноль, nginx -T показывает новый конфиг, в error.log ровно одна строка — reconfiguring. А keep-alive соединение, открытое секундой раньше, в этот момент закрывается. Само по себе это не ошибка: сервер вправе закрыть простаивающий keep-alive когда угодно. Ошибку даёт гонка — FIN уходит в тот момент, когда клиент уже записал в сокет следующий запрос. Идемпотентный он повторит, POST — нет. Разбор по исходникам на фиксированных тегах: nginx release-1.31.3, httpd 2.4.68, traefik v3.7.10, плюс замер всех четырёх (с HAProxy) на одном стенде в одном прогоне. Выясняется, что мастер nginx конфиг не перечитывает вообще: он строит новый цикл целиком и форкает новых воркеров, а старым остаётся ровно то, что у них было. Apache приходит к тому же контракту через счётчик поколений, HAProxy — через замену процесса. А у одного из четырёх второй запрос в том же самом сокете возвращает уже новый конфиг — и причина не та, о которой вы подумали. Внутри: почему документация nginx сама создаёт половину недоразумения; почему WebSocket и SSE не попадают под ngx_close_idle_connections и держат старого воркера сколько угодно долго, а HTTP/2 попадает всегда и получает GOAWAY; как сигнал родителя у Apache доезжает до конкретного соединения через пять звеньев; и таблица из двенадцати клеток, в которой четыре реализации расходятся ровно в одной. Со стендом (один docker build, один docker run), полными выводами ps и тремя claims-*.tsv, где каждое утверждение о коде проверяется скриптом.

    habr.com/ru/articles/1067686/

    #nginx #traefik #apache_httpd #haproxy #reload #graceful_restart #keepalive #исходный_код #worker_process #обратный_прокси

  6. Из песочницы Compose в боевой Kubernetes: как я построил отказоустойчивую архитектуру за 5 месяцев, изучая все с нуля

    За последние несколько месяцев плотной работы над инфраструктурой для проекта я прошёл путь от первых команд в терминале Linux до настройки полностью отказоустойчивого K3s‑кластера с Zero‑Downtime деплоем. Шишек на этом деле я набил огромное количество, и мне определённо есть чем поделиться. Сразу оговорюсь: в этой статье не будет монотонных гайдов, слепых копипастов YAML‑манифестов и пересказа официальной документации. С базовой настройкой вы отлично справитесь, прочитав мануалы создателей этих инструментов. Для меня этот материал — способ структурировать собственный опыт. Хотя, не буду скрывать, обсуждения в комментариях мне тоже интересны. Я хочу разобрать реальные ошибки при переходе от простого Docker Compose к Kubernetes, показать процесс траблшутинга и критически взглянуть на проделанную работу, чтобы понять: а всё ли было сделано верно? Уверен, статья будет интересна не только DevOps‑инженерам, но и backend‑ и frontend‑разработчикам, а также любым техническим специалистам, которые хотят понимать, что на самом деле происходит с их кодом после пуша в репозиторий, почему локальная среда так сильно отличается от реального продакшена и как заставить приложение выживать при сбоях инфраструктуры.

    habr.com/ru/articles/1067354/

    #kubernetes #k3s #dockercompose #devops #traefik #certmanager #gitlab_ci #statefulset #инфраструктура #деплой

  7. 🔐 brokenscripts/authentik_traefik

    Authentik behind Traefik

    Deploys Authentik with Traefik 3.x as a reverse proxy using Docker Compose, supporting embedded outposts and custom DNS

    ⭐ Stars: 533
    📅 Last Update: Jul 24, 2026

    github.com/brokenscripts/authe

    #selfhosted #homelab #selfhost #selfhosting #opensource #authentication #traefik

  8. Traefik routes traffic. A WAF inspects it.
    Learn how to add an open-source WAF to Traefik with CrowdSec for virtual patching and real-time protection—without changing your architecture. 👇
    crowdsec.net/blog/waf-traefik-

    #Traefik #WAF #CyberSecurity #OpenSource

  9. #Docker Services erreichen mittels #Traefik

    Wem Traefik zu kompliziert ist, findet mit #Caddy und #Caddyfile eine einfachere Lösung, um #Docker-Images unter einer #Domain zu binden. Damit hat man eine saubere Trennung zwischen den Containern und dieser Traefik-Verwaltung.

    gnulinux.ch/docker-services-er

  10. Your Traefik setup is working—until it isn't. Random 502 errors with multiple Docker networks? Stop guessing container IPs. This fix ends the mysticism for good. #Traefik #Docker #DevOps

    valtersit.com/guides/docker/tr

  11. 🚨 Security release: pages-server v0.3.4

    If you run our Traefik plugin for Forgejo/Gitea static site hosting, please update now.

    Fixes:
    🔐 Auth bypass (High) — password-protected sites could be accessed without valid credentials when no authSecretKey was set
    🛡️ Stored XSS + HTML injection (Medium) in login/error/redirect pages

    v0.3.4 is secure by default — no config changes required.

    github.com/sqcows/pages-server

    #Forgejo #Gitea #Traefik #InfoSec #SelfHosting

  12. I’ve migrated from Caddy to Traefik and I’m wondering if I’ve messed it up

    #caddy #traefik #selfhosted

  13. Has anyone tested Coraza as a WAF in Kubernetes? I switched to the traefik-modsecurity-plugin because roughly 50–75% of all HTTP/2 traffic was returning HTTP 500.

    #Kubernetes #k8s #k3s #traefik #waf #coraza #modsecurity

  14. What are you using as a Web Application Firewall in Kubernetes Environments with a traefik ingress controller?

    #kubernetes #traefik #selfhost #homelab #waf #webapplicationfirewall

  15. Alright, crash course to #mastodon hosting basics. It's been long in my mind to try #MastodonBirdUI in #container. @michael kindly added container build workflow to get fresh images every time @rolle makes a new release. Today I learned #traefik and made it load balance birdUI running on #podman. Lot of new things for me, but eventually it works. I'll drop the configs somewhere once I have the time if someone wants to try. And if you already run mastodon from containers, you can easily try birdUI with the new images.

    github.com/orgs/mementomori-so

  16. Hello from new server 🎉 🚀

    Now using stock containers, @linuxserver images 🫡 conflict with #traefik sadly, because of enfoeced port.

    All my instance, and following should be migrated 🎉

    I simply:

    * Dumped the PSQL and transferred to new machine
    * Created a new compose yaml with all env populated for #Coolify
    * Started once for initial bootstrapping
    * Stopped all of the containers except redis and psql
    * Restored PSQL dump
    * Started remaining servers
    * Bumped version
    * Profit 🚀

    #mastoadmin

  17. :kubernetes_on_fire:​ If you're using traefik on Kubernetes, what free WAF are you using? Debating on if I should just stick with mod security or switch to something else.

    #WAF #traefik #kubernetes

  18. Gateway API's all or nothing Gateways have been really painful for those of us using http01 solvers with cert-manager. I'm really looking forward to when ListenerSets are fully supported by Traefik or Cilium so I can finally break this cycle. Those not in the know can learn about the issue here:

    https://gideonwarui.com/blog/field-notes/gateway-api-tls-deadlock/

    Both Traefik and Cilium have ListenerSets on their roadmap and even some associated PRs, but no timeline on when full support is expected :(

    I know DNS01 challenges are an option, but the DNS provider I use doesn't have a webhook, so we have to write one, and that's not as trivial as you'd think (we're working on it, but it's not like a one shot thing).

    Pre-creating the certs kind of defeats the convenience of the annotation based cert-manager magic, and is quite a pain when you're talking about hundreds of domains...

    #kubernetes #traefik #cilium #gatewayapi #listenersets

  19. #mstdndk was just migrated to the #traefik ingress controller from the now obsolete #nginx. Since we're lifting and shifting (I feel so filthy just saying that) and not doing it as a big bang, it means mstdn.dk just got a new set of IP addresses. Hopefully you'll never notice, but let me know if something acts up.