Proxying Your First App

The minimal requirements to enable Traefik on a certain app and allow it to proxy the web UI, we have to simply set a label for Traefik to pick up. Labels are a mechanism for applying metadata to Docker objects. Traefik is able to pick up this metadata and can use it to configure itself. This label will tell Traefik that we want to reverse proxy the application we are adding it to.

If you are using docker-compose then you simply need to add these lines to the compose files under labels:

The traefik.enable: true simply tells traefik that you want to proxy this app and the traefik.http.routers.app.entryPoints: https only allows the app to be proxied over HTTPS. This will prevent any possible vulnerabilities in the future. For example, if the HTTP redirect breaks, it will not be able to proxy the app over http accidentally.

WARNING

You must replace app with the name of your application that this label is being added to otherwise Traefik will see duplicates.

    labels:
      traefik.enable: true
      traefik.http.routers.app.entryPoints: https

To show you a full example, we will add the label to an existing docker-compose.yml file for Adminer.

docker-compose.yml
version: '3'

services:
  adminer:
    container_name: adminer
    image: adminer
    networks:
      - proxy
    labels:
      traefik.enable: true
      traefik.http.routers.adminer.entryPoints: https
    restart: unless-stopped

networks:
  proxy:
    driver: bridge
    external: true

Now while in the same directory as the docker-compose.yml file, run the command docker-compose up -d and it should recreate the container for you with the latest labels. Now when you deploy your application you will be able to visit it by going to your domain with the app name as the subdomain (APP-NAME.DOMAIN.COM).

PLEASE NOTE

You can add multiple of these labels at once before finally deploying your application.

Conclusion

Traefik will now pick up that the app wants to be routed through the reverse proxy and should automatically set it up for you.

Alternate Methods

pageProxying an App with Multiple Exposed PortspageProxying an App with a HTTPS WebUIpageChoosing Your App Subdomain Manually

Securing your App

pageEnabling Authelia Server Authentication

Last updated