Code Monkey home page Code Monkey logo

traefik-letsencrypt-docker's Introduction

Ambiente Traefik 1.7 com Let's Encrypt na AWS EC2

Requisitos

  • Domínio (recomendo o .me, sai bem em conta!)
  • Certificado https validado pelo Let's Encrypt (no site do certbot tem todas as instruções)
  • Instância na EC2 (pode ser uma t2.micro, usando o free tier)
  • [opcional] Uma zona hospedada no AWS Route53 (pode fazer essa gestão no seu provedor de nome do domínio também!)

Configuração do domínio

Configuração da instância EC2

  • Instalar docker
  • Instalar docker-compose
  • Instalar htpasswd (para gerar a senha encriptada para a dashboard do traefik), como gerar a senha:
    • htpasswd -nb admin Senha-Segura2020@, exemplo do resultado: admin:$apr1$6xKLuQMK$Uhw1kUf.V9ulOg7b2ZacU.

Configuração do Traefik

  • No arquivo traefik.toml, fazer as seguintes alterações:
    • Na linha email = ""-> adicionar o email usado para a criação do certificado com o let's encrypt
    • Na linha domain = ""-> adicionar o seu domínio
    • Na linha users = [""]-> adicionar o usuário e senha gerado pelo htpasswd
  • No arquivo docker-compose.yml, fazer as seguintes alterações:
    • Na linha - traefik.frontend.rule=Host: -> adicionar o domínio ou subdomínio onde o dashboard do traefik vai ser visualizada

Configurar novas aplicações

Ao implantar novas apps conteinerizadas, a única coisa que deve ser adicionada no docker-compose.yml são as labels (dessa forma o traefik vai idenficar a rota correta e já gerar o certificado ):

labels:
      - traefik.enable=true
      - traefik.frontend.rule=Host:app.exemplo.com # subdominio onde a app vai responder
      - traefik.backend=cloud
      - traefik.port=80 #porta do container
      - traefik.docker.network=web

Obs.: existe um exemplo de docker-compose.yml no diretório apache-app/

TODO

  • Adicionar configuração da EC2 usando Ansible
  • Adicionar renew automático do certificado

traefik-letsencrypt-docker's People

Contributors

edsoncelio avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.