Unraid Docker

Template Unraid Docker

Vamos à secção das apps e pesquisar por "Traefik"

Traefik by Sycotix' (IBRACORP) Repository

Agora carregar no botão "install" e preencher a template.

  1. Vamos escolher a nossa rede docker, convém ser a mesma partilhada com os containers que queremos expor.

  2. Aqui vamos definir o porto HTTPS, apenas tens que garantir que não está a ser utilizado no host. Neste exemplo, vamos utilizar 44301.

  3. Agora escolhemos o porto HTTP, apenas tens que garantir que não está a ser utilizado no host. Neste exemplo, vamos utilizar 8001.

  4. O Traefik tem um dashboard incluído, então aqui vamos configurar o porto do host para acedermos ao dashboard . Apenas tens que garantir que não está a ser utilizado no host. Neste exemplo, vamos utilizar 8183.

  5. Para permitir que o Traefik use a conta Cloudflare para verificar a propriedade do domínio, é preciso fornecer o token de API Cloudflare. Isso permite que o Traefik obtenha automaticamente certificados SSL para o teu domínio.

    1. Para obter a API token, navegue para Cloudflare, vá a My Profile, seleciona API tokens e escolhe Create Token.

    2. Utilize o modelo Edit zone DNS.

    3. Altera as seguintes definições, de seguida clica Continue to Summary e depois Create Token.

      • Zone - Zone Settings - Read

      • Zone - Zone - Read

      • Zone - DNS - Edit

      • Zone Resources - Include - All Zones

  6. ATENÇÃO: Esta opção expõe o traefik ao exterior e deverá apenas ser usada se houver mesmo necessidade de aceder remotamente ao traefik. Indica qual o subdomínio a utilizar para o dashboard do Traefik dashboard. Tenham em conta que este painel é read-only, todas as configurações são feitas via docker labels e ficheiros de configuração. Para mais informação, visite a Página de Documentação do Traefik.

Docker Socket (API)

Para que o Traefik possa monitorizar os docker containers, precisa de acesso ao docker socket.

Dar permissões à docker API o acesso a um docker container acessível publicamente é uma responsabilidade de segurança, e portanto é preferível limitar a quantidade de acesso que o container terá à API. Podemos conseguir isso utilizando um proxy container que permite acesso limitado à API Docker e que permite apenas o mínimo necessário para meter as coisas a funcionar.

Para isso, vamos utilizar um container docker de Tecnativa chamado "docker-socket-proxy"
  1. Vamos à secção das apps e pesquisar por “dockersocket” e instalar.

  2. A única coisa que temos que alterar aqui é a vossa docker network.

  3. Depois de adicionada, é só clicar "apply" para prosseguir com a instalação.

  4. Agora vamos ao container Traefik e editamos o modelo.

  5. Agora navegamos para o fim da página e clicamos em “Add another Path, Port, Variable, Label or Device”.

  6. Vamos selecionar Variable no "Config type" e preencher os campos como na imagem a baixo.

  7. No campo key, vamos usar DOCKER_HOST e no campo value, metemos o nome do container que acabámos de instalar, neste exemplo é dockersocket

Clicar “Save”, navegar para o fundo do modelo e clicar "Apply" para implementar o container outra vez.

O container Traefik agora consegue ir buscar informação a outros containers (modo de leitura), mas não será capaz de ativar outros containers ou executar comandos por meio da API do docker.

Ficheiro acme.json

O Traefik precisa de um ficheiro chamado acme.json para armazenar a informação referente aos certificados SSL, e precisa ser seguro. Para tal, vamos criar esste ficheiro e alterar as permissões. Primeiro vamos criar a estrutura de pastas que iremos precisar. Se o vosso appdata estiver numa localização diferente , editem os comandos de acordo.

mkdir -p /mnt/user/appdata/traefik /mnt/user/appdata/traefik/letsencrypt /mnt/user/appdata/traefik/dynamic

Agora criamos um ficheiro em braco e alteramos as permissões.

touch /mnt/user/appdata/traefik/letsencrypt/acme.json; chmod 600 /mnt/user/appdata/traefik/letsencrypt/acme.json

De forma a termos uma configuração de Traefik completamente funcional, vamos precisar de adicionar dois ficheiros de configuração, traefik.yml and fileConfig.yml.

Last updated