<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Traefik on contineroo.ch</title>
    <link>/tags/traefik/</link>
    <description>Recent content in Traefik on contineroo.ch</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <lastBuildDate>Mon, 01 Jun 2026 19:13:47 +0000</lastBuildDate>
    <atom:link href="/tags/traefik/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Traefik 2.2 &#43; Docker: Global entrypoint configuration</title>
      <link>/blog/2020/03/25/traefik-2.2--docker-global-entrypoint-configuration/</link>
      <pubDate>Wed, 25 Mar 2020 00:00:00 +0000</pubDate>
      <guid>/blog/2020/03/25/traefik-2.2--docker-global-entrypoint-configuration/</guid>
      <description>&lt;img alt=&#34;Header image&#34; src=&#34;featured-image.png&#34; /&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://user-images.githubusercontent.com/5674651/76004307-90636980-5f09-11ea-9338-b3055d8b20ee.png&#34;&gt;Image Source&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;With Traefik 2.2 it is now easier then ever to globally configure your entrypoints.&lt;/p&gt;&#xA;&lt;p&gt;We will show you how you can define a global redirect to &lt;code&gt;https&lt;/code&gt; and how to set a default &lt;code&gt;certResolver&lt;/code&gt;. So you don&amp;rsquo;t have to set the &lt;code&gt;https&lt;/code&gt; redirect in each docker-compose file.&lt;/p&gt;&#xA;&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;&#xA;&lt;p&gt;In order to follow along, you&amp;rsquo;ll need to read &lt;a href=&#34;https://blog.containeroo.ch/2019/09/24/2019-09-24_traefik-2.0-docker-an-advanced-guide/&#34;&gt;the advanced Traefik guide&lt;/a&gt; and the &lt;a href=&#34;https://blog.containeroo.ch/2019/11/12/2019-11-12_traefik-2.0-wildcard-lets-encrypt-certificates/&#34;&gt;wildcard guide&lt;/a&gt; first!&lt;/p&gt;&#xA;&lt;h2 id=&#34;update-traefik-configuration&#34;&gt;Update Traefik Configuration&lt;/h2&gt;&#xA;&lt;p&gt;Change the entrypoints in the basic Traefik configuration file (&lt;code&gt;/opt/containers/traefik/data/traefik.yml&lt;/code&gt;) as follows:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Traefik 2.0: Route external services through Traefik</title>
      <link>/blog/2020/01/02/traefik-2.0-route-external-services-through-traefik/</link>
      <pubDate>Thu, 02 Jan 2020 00:00:00 +0000</pubDate>
      <guid>/blog/2020/01/02/traefik-2.0-route-external-services-through-traefik/</guid>
      <description>&lt;img alt=&#34;Header image&#34; src=&#34;featured-image.png&#34; /&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://docs.traefik.io/assets/img/providers.png&#34;&gt;Image Source&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;In this tutorial we will show you how you can route non-Docker services through Traefik.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s suppose you want to access your Pi-hole admin console (&lt;a href=&#34;http://192.168.0.10:80/admin&#34;&gt;http://192.168.0.10:80/admin&lt;/a&gt;) by browsing to &lt;code&gt;pihole.example.com&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;&#xA;&lt;p&gt;You have read our other articles:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://blog.containeroo.ch/2019/09/24/2019-09-24_traefik-2.0-docker-a-simple-step-by-step-guide/&#34;&gt;Traefik 2.0 + Docker: A Simple Step by Step Guide&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://blog.containeroo.ch/2019/09/24/2019-09-24_traefik-2.0-docker-an-advanced-guide/&#34;&gt;Traefik 2.0 + Docker: An Advanced Guide&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;and you use &lt;a href=&#34;https://gist.github.com/containeroo-gists/866810758db56ea33a9c59390c18ea81&#34;&gt;this Traefik configuration&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Make sure you configure in the providers section of your &lt;code&gt;/opt/traefik/data/traefik.yml&lt;/code&gt; an external configuration file &lt;code&gt;/config.yml&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Traefik 2.0: Paranoid about mounting /var/run/docker.sock?</title>
      <link>/blog/2019/11/12/traefik-2.0-paranoid-about-mounting-/var/run/docker.sock/</link>
      <pubDate>Tue, 12 Nov 2019 00:00:00 +0000</pubDate>
      <guid>/blog/2019/11/12/traefik-2.0-paranoid-about-mounting-/var/run/docker.sock/</guid>
      <description>&lt;img alt=&#34;Header image&#34; src=&#34;featured-image.png&#34; /&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.docker.com&#34;&gt;Image Source&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-problem&#34;&gt;The Problem&lt;/h2&gt;&#xA;&lt;p&gt;If you have followed our previous guides, you mount the Docker Socket ( &lt;code&gt;/var/run/docker.sock&lt;/code&gt;) into the Traefik container. If someone gets access into the Traefik container, they can gain full access to your host machine. This makes our paranoia level increase slightly&amp;hellip;&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-solution&#34;&gt;The Solution&lt;/h2&gt;&#xA;&lt;p&gt;We found a nice little container (&lt;a href=&#34;https://github.com/Tecnativa/docker-socket-proxy&#34;&gt;Socket-Proxy&lt;/a&gt;) which &amp;ldquo;filters&amp;rdquo; all requests to the Docker API. We can allow only &lt;code&gt;get&lt;/code&gt; requests to the Docker API and restrict it to &lt;code&gt;/containers/*&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Traefik 2.0: Wildcard Let&#39;s Encrypt Certificates</title>
      <link>/blog/2019/11/12/traefik-2.0-wildcard-lets-encrypt-certificates/</link>
      <pubDate>Tue, 12 Nov 2019 00:00:00 +0000</pubDate>
      <guid>/blog/2019/11/12/traefik-2.0-wildcard-lets-encrypt-certificates/</guid>
      <description>&lt;img alt=&#34;Header image&#34; src=&#34;featured-image.png&#34; /&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://letsencrypt.org/images/le-logo-wide.png&#34;&gt;Image Source&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;In this tutorial we will setup Traefik to obtain wildcard certificates from Let&amp;rsquo;s Encrypt. This requires DNS challenge to be setup. Usually Traefik obtains a certificate for every subdomain. We can simplify this process by telling Traefik to use a wildcard (*.example.com) certificate instead.&lt;/p&gt;&#xA;&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Registered Domain&lt;/li&gt;&#xA;&lt;li&gt;Authoritative DNS Servers from one of &lt;a href=&#34;https://docs.traefik.io/https/acme/#providers&#34;&gt;these providers&lt;/a&gt; (you may need to change your DNS servers of your domain to one of the provider in the list)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;In this tutorial we will use Cloudflare as our DNS servers for our domain.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using Pi-hole to route your services internally</title>
      <link>/blog/2019/11/12/using-pi-hole-to-route-your-services-internally/</link>
      <pubDate>Tue, 12 Nov 2019 00:00:00 +0000</pubDate>
      <guid>/blog/2019/11/12/using-pi-hole-to-route-your-services-internally/</guid>
      <description>&lt;img alt=&#34;Header image&#34; src=&#34;featured-image.png&#34; /&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.taste-of-it.de/wp-content/uploads/2019/09/pihole-logo.png&#34;&gt;Image Source&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-problem&#34;&gt;The Problem&lt;/h2&gt;&#xA;&lt;p&gt;If you have followed our previous guides, chances are that you have a domain, some DNS records pointing to your public IP, port forwarding enabled and a Docker server running some services.&lt;/p&gt;&#xA;&lt;p&gt;Most likely your domain resolves to your public IP from you internal network as well.&#xA;This causes a problem: All the traffic between your devices (e.g. your phone) to your server (physically in the same location) gets routed trough the internet, which means you have to utilize your upload and download bandwidth at the same time (e.g. while streaming from Plex), which not only causes a slower connection but also adds an unnecessary high latency.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Traefik 2.0 &#43; Docker: A Simple Step by Step Guide</title>
      <link>/blog/2019/09/24/traefik-2.0--docker-a-simple-step-by-step-guide/</link>
      <pubDate>Tue, 24 Sep 2019 00:00:00 +0000</pubDate>
      <guid>/blog/2019/09/24/traefik-2.0--docker-a-simple-step-by-step-guide/</guid>
      <description>&lt;img alt=&#34;Header image&#34; src=&#34;featured-image.png&#34; /&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://docs.traefik.io/assets/img/traefik-architecture.png&#34;&gt;Image Source&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;In this tutorial we will go trough the following things:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Setup and configure Traefik in a Docker container&lt;/li&gt;&#xA;&lt;li&gt;Let&amp;rsquo;s Encrypt setup for automatic HTTPS certificates&lt;/li&gt;&#xA;&lt;li&gt;Deploy a simple service (Portainer) and expose it to the internet&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;You will find all the required configuration files in our &lt;a href=&#34;https://github.com/containeroo/traefik-simple&#34;&gt;Git repository&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;&#xA;&lt;p&gt;In order to follow along, you need these things:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Docker (obviously)&lt;/li&gt;&#xA;&lt;li&gt;Docker Compose&lt;/li&gt;&#xA;&lt;li&gt;A domain&lt;/li&gt;&#xA;&lt;li&gt;Ports 80 and 443 forwarded to your Docker host&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;setup-and-configure-traefik-with-lets-encrypt&#34;&gt;Setup and configure Traefik with Let&amp;rsquo;s Encrypt&lt;/h2&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s get started by setting up Traefik.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Traefik 2.0 &#43; Docker: An Advanced Guide</title>
      <link>/blog/2019/09/24/traefik-2.0--docker-an-advanced-guide/</link>
      <pubDate>Tue, 24 Sep 2019 00:00:00 +0000</pubDate>
      <guid>/blog/2019/09/24/traefik-2.0--docker-an-advanced-guide/</guid>
      <description>&lt;img alt=&#34;Header image&#34; src=&#34;featured-image.png&#34; /&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://docs.traefik.io/assets/img/routers.png&#34;&gt;Image Source&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;This tutorial is the second part of &lt;a href=&#34;https://blog.containeroo.ch/2019/09/24/2019-09-24_traefik-2.0-docker-a-simple-step-by-step-guide/&#34;&gt;this article&lt;/a&gt;. We will go trough the following configurations:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Add a file provider to &lt;code&gt;traefik.yml&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Create a config file for a central configuration for storing middlewares &lt;code&gt;config.yml&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Configure a middleware chain&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;You will find all the required configuration files in our Git &lt;a href=&#34;https://github.com/containeroo/traefik-advanced&#34;&gt;repository&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;&#xA;&lt;p&gt;In order to follow along, you&amp;rsquo;ll need to read &lt;a href=&#34;https://blog.containeroo.ch/2019/09/24/2019-09-24_traefik-2.0-docker-a-simple-step-by-step-guide/&#34;&gt;this post&lt;/a&gt;!&lt;/p&gt;&#xA;&lt;h2 id=&#34;update-traefik-configuration&#34;&gt;Update Traefik configuration&lt;/h2&gt;&#xA;&lt;p&gt;To setup a reusable middleware add an additional provider in the Traefik configuration file &lt;code&gt;traefik.yml&lt;/code&gt; (&lt;code&gt;/opt/containers/traefik/traefik.yml&lt;/code&gt;) (lines 15 and 16).&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
