Instalando GD em uma imagem Docker com Apache

apt-get install -yq \
        libfreetype6-dev \
        libmcrypt-dev \
        libpng12-dev \
        libjpeg-dev \
        libpng-dev

docker-php-ext-configure gd \
        --enable-gd-native-ttf \
        --with-freetype-dir=/usr/include/freetype2 \
        --with-png-dir=/usr/include \
        --with-jpeg-dir=/usr/include

docker-php-ext-install gd

docker-php-ext-enable gd

Criando um assistente pessoal com Python

Fala dev, nesta nova série de vídeos iremos abordar um assunto bem interessante e que muita gente me pediu para falar. Iremos criar um assistente pessoal usando bibliotecas nativas do Python, pesquisas utilizando a API do Wikipedia e no final iremos configurar um RaspberryPi 3 para executar toda a brincadeira.

Se você não tem experiência em Python não tem problema, vamos fazer um passo a passo explicando tudo e todo o código fonte ficará disponível no meu Github para você baixar gratuitamente.

Github:
https://github.com/jaccon/PythonPersonAssistent

Vídeo 01 / TTS

Neste vídeo falaremos sobre como criar um componente de TTS ( Type to Speach ) no Python de uma forma extremamente simples.

Redirecionamento via proxy reverso no NGINX

Uma dica rápida e simples do dia. Vamos redirecionar uma determinar conexão com um 301 direto do NGINX.

server {
# Redirect to HTTPS
listen      80;
server_name domain.com www.domain.com;
return      301 https://example.com$request_uri;
}

Docker + Portainer como instalar e utilizar

O Portainer é uma alternativa para gerenciamento do Docker. É um painel web que pode ser fácilmente integrado com o Docker.

Vamos mostrar aqui como instalar o Portainer de forma fácil é rápida. O ambiente que estamos utilizando é

Ubuntu Server 16.04
Docker 18.09

Primeiro fazemos um Docker pull da imagem oficial

docker pull portainer/portainer

E depois simplesmente iniciamos o container do Portainer linkando com o Socket que já está rodando em nossa máquina.

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

Done! Pronto agora é só acessar o seu Portainer apontantando seu navegador para a porta 9000 como no exemplo

http://localhost:9000

Importando e Exportando imagens no Docker

O conceito do Docker pode parecer novidade para muitos. O fato é que depois que você começa a trabalhar com ele e consegue entender o funcionamento e diferenças entre containers e virtual machines você com certeza será um profissional mais eficiente.

A velocidade para exportar e importar imagens, migrar ambientes inteiros é simplesmente fantástico. Aqui neste mini tutorial irei mostrar como exportar e importar imagens Docker customizadas.

Exportando

Primeiramente precisamos definir qual a imagem customizada que iremos exportar. Para isto utilize o comando abaixo para definir o alvo

sudo docker container ps

A saída do comando será algo como o exemplo abaixo

$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f4b0d7285fec ubuntu:14.04 /bin/bash 38 minutes ago Exit 0 hungry_thompson
8ae64c0faa34 ubuntu:14.04 /bin/bash 41 minutes ago Exit 0 jovial_hawking
3a09b2588478 ubuntu:14.04 /bin/bash 45 minutes ago

Depois de definido o alvo você deve fazer um commit da imagem utilizando um nome de sua preferência para identificarmos a imagem customizada

docker commit 3a09b2588478 jacconcustom

Veja que criei aqui uma imagem com o nome jacconcustom que é a imagem customizada que eu desejo exportar. Este nome você poderá trocar por um nome de sua preferência.

Agora que já temos a image customizada vamos primeiramente salvar o estado atual do container exportando para um arquivo. Vamos utilizar o Docker Save para fazer isto:

docker save jacconcustom > /tmp/jacconcustom.tar

Importando

Agora com a imagem exportada em um formato .tar você pode transferir a imagem para seu novo destino e na sequência importar no novo ambiente Docker. O processo de importação é bem parecido com a exportação, vamos ao exemplo:

docker load < /home/jaccon/jacconcustom.tar

Done! a sua imagem neste momento já deve estar disponível para uso no novo ambiente Docker. Para conferir basta executar o comando

sudo docker image ls

Nginx Web Proxy + Docker para hospedagens

Fala comunidade tudo bem ? a ideia de hoje é montarmos um ambiente para hospedagens utilizando NGInx Web Proxy + Docker.

Estou levando em consideração o seguinte ambiente:

Sistema Operacional
Ubuntu Server 16.04.6 LTS

Aplicações
NGINX 1.10.3
Docker 18.09

1 – Preparando o Sistema Operacional
2 – Instalando o NGINX
3 – Instalando o Docker
4 – Configurando um ambiente Docker + Docker Compose
5 – Configurando o Proxy Reverso

1 – Preparando o Sistema Operacional

Primeiramente vamos certificar que o Apache não ficará rodando e escutando as conexões direcionadas a porta 80. Sendo assim vamos desabilitar o Apache com o comando abaixo:

sudo systemctl disable apache2

Habilitando o NGINX para iniciar com o sistema:

sudo systemctl enable nginx

Vamos agora atualizar nossa lista de pacotes do Ubuntu rodando o comando

sudo apt-get update

E depois vamos atualizar o sistema rodando o comando

sudo apt-get upgrade

2 – Instalando o NGINX

A instalando do NGINX é bem simples. Se o Apache estiver no momento que você rodar o apt-get install você não deverá encontrar problemas. Então vamos para o terminar e rodar o comando:

sudo apt-get install nginx

3 – Instalando o Docker

Para instalar o Docker devemos estar com a lista de pacotes atualizada. Então vamos certificar que está tudo atualizado antes de prosseguirmos.

Com o sistema atualizado vamos adicionar as GPG Keys dos Mirrors do Docker em nosso sistema para que possamos continuar.

sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common

na sequência rodaremos o comando curl com pipe para adicionar as chaves do apt

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

OK, para certificar que a chave de GPG foi adicionada corretamente vamos verificar as fingerprints

sudo apt-key fingerprint 0EBFCD88

O resultado deverá ser algo como:

pub 4096R/0EBFCD88 2017-02-22
Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb) [email protected]
sub 4096R/F273FCD8 2017-02-22

Caso sua arquitetura de processador seja baseada em X86 você deverá utilizar o repositório

sudo add-apt-repository \
“deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable”

Depois de adicionado o repositório vamos rodar novamente o apt para atualizar a lista de pacotes

sudo apt-get update

Legal, agora que temos tudo pronto basta instalar o Docker então devemos rodar

sudo apt-get install docker-ce docker-ce-cli containerd.io

Agora que temos o Docker instalado podemos testar ele rodando

docker run hello-world

Precisaremos do orquestrador Docker Compose para gerenciar nossos containers então devemos instalar

sudo apt install docker-compose

4 – Configurando um ambiente Docker + Docker Compose

Perfeito, agora que temos tudo instalado vamos partir para a configuração do Docker com orquestração do Docker Compose. Estarei levando em consideração que iremos subir um website rodando Apache2 + PHP 7.1 + PhpMyAdmin + MySQL 5 então nossa receita seria algo como o arquivo abaixo:

version: '2'

services:
  jaccon_db:
    image: mysql:5.7
    container_name: jaccon_db
    ports:
      - "8000:3306"
    volumes:
      - ./database/data:/var/lib/mysql
      - ./database/initdb.d:/docker-entrypoint-initdb.d
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: quah3Aht3dua7iechaeN 
      MYSQL_DATABASE: jaccon
      MYSQL_USER: jaccon
      MYSQL_PASSWORD: Thahva6aeth6ohNie5ki

  jaccon_wp:
    depends_on:
      - jaccon_db
    image: wordpress:php7.1
    container_name: jaccon_wp
    ports:
      - "8001:80"
    restart: always
    links:
      - jaccon_db:mysql
    volumes:
      - ./src:/var/www/html
  
  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    container_name: jaccon_phpmyadmin
    volumes:
      - ./phpmyadmin/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php
    links:
      - jaccon_db
    ports:
      - "8002:80"
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOST=jaccon_db

Você pode fazer o download do arquivo de exemplo do Docker no meu GitHub clicando aqui em download do arquivo

Este é um exemplo para você dar seus primeiros passos no Docker voltando mais para hosting de aplicações. Espero que tenha ajudado ai a comunidade.

Abs

Curso Hands On gratuito de Docker

Neste treinamento hands on de Docker você irá aprender como trabalhar com o Docker de forma simples e objetiva, possibilitando assim ter um avanço em sua carreira seja como DevOps ou mesmo como developer.

Este conteúdo foi criado primeiramente para uso próprio então caso tenha alguma sugestão ou mesmo dúvida utilize os comentários desta publicação

Continuar lendo
em Geral | 3,013 Palavras

XMLRPC problema disfarçado de solução

O XMLRCP que existe no WordPress deste suas primeiras versões serve para criar a interação entre o WordPress e outros sistema. Este recurso tão breve será substituido pela WP API que já existe porém ainda em processo de validação.

O grande problema é que o XMLRPC também é utilizado como por usuários mal intencionados para explorar vulnerabilidades no WordPress. O poder do WordPress também se dá por ser Open Source e por ter um código fonte 100% aberto dá também opção para que usuários estudem seu código fonte para encontrar vulnerabilidades e corrigir ou explorar.

O primeiro é usar ataques para entrar no seu site. Um invasor tentará acessar seu site usando xmlrpc.phpe tentando várias combinações de nome de usuário e senha. Eles podem efetivamente usar um único comando para testar centenas de senhas diferentes. Isso permite que eles ignorem as ferramentas de segurança que normalmente detectam e bloqueiam esses tipos de ataque.

Uma das maneiras de desativar o XMLRPC é através do Htaccess

# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>

Uma outra maneira de desativar ele é removendo ou dando permissão 000 no arquivo xmlrpc.php e vida que segue


Já teve algum problema de segurança no WordPress ? Compartilhe conosco

Primeiras impressões do Edge for Mac

Hoje eu resolvi baixar e testar o navegador Microsoft Edge baseado na engine do projeto Chromium. Bom eu tenho que admitir que a Microsoft é uma empresa completamente diferente na gestão Satia Nadella. O CEO mudou o conceito a respeito de valorizar as tecnologias Open Source e hoje é sem dúvida uma potencial em colaboração em tecnologias Open Source.

O simples fato de desenvolver um novo navegador 100% baseado em uma das principais engines Open Source e poderosa como o Chromium mostra que eles deram o braço a torcer e estão apontando para o caminho certo.

O Edge for Mac é rápido assim como todos os navegadores baseado nesta engine. É impossível admitir uma comparação no render de páginas visto que o projeto ainda é uma Beta e até mesmo por usar a Engine do Chrome

O visual é tão bonito quanto o Chrome e as integrações com serviços da Microsoft eram de fato inevitáveis.

As ferramentas para Inspect e desenvolvimento são o grande ponto forte no Edge. Assim como o Chrome é um grande aliado para nós desenvolvedores web e mobile.

Visual do Inspect no Edge for Mac

Eu senti falta ainda de mais opções de themes para o navegador mas não há como exigir isto ainda pois o browser ainda está em desenvolvimento, quem sabe na versão final.

Por ser baseado no Chromium há uma integração incrível com preferências de histórico e também bookmarks já pré-existente do Chrome. Ele importa automáticamente pra você todas estes settings

Bookmarks importados automáticamente do Chrome

A opção de múltiplos perfis de usuário dentro do navegador também está presente no Edge

Múltiplos Perfis de usuário no navegador Edge

Menu de configurações do Edge for Mac

Resumindo a história o Edge for Mac é um navegador leve, bonito e compatível com todos os padrões web standards disponíveis hoje na internet. É um grande avanço da Microsoft em busca de uma posição no coração de nós desenvolvedores e usuário por um navegador agradavél e versátil.

E você o que achou do navegador ? Comente na minha comunidade do Discord jacconIO

Será o Google o novo protagonista na revolução dos games ?

O Google anunciou hoje 19/03/2019 o lançamento do Stadia. Um novo conceito em plataforma de games. Mais poderoso que o PS4 e XBOX One ele deve ganhar aos poucos terreno antes nunca habitado pela gigante de tecnologia. O Stadia deve sair em seu lançamento com 10.7 teraflops da GPU que comparando com os consoles o PS4 Pro possui 4.2 teraflops e o XBOX One X tem 6 teraflops.

Ele rodará games em qualidade 4K 60 fps com HDR e surround. O sistema operacional é baseado em Linux e o desenvolvimento será facilitado pois haverá um ambiente de desenvolvimento direto na nuvem ” sinceramente achei isto muito legal pois facilita a distribuição e validação dos jogos”

Esqueça o conceito de console, você poderá começar a jogar no desktop no chrome, continuar jogando a mesma posição no tablet, smartphone ou TV.

Fantástico!!!!

Confira abaixo o vídeo de lançamento do produto.