/ thumbor

Instalando e configurando o Thumbor (thumbor.org) no Ubuntu

"Thumbor is a smart imaging service. It enables on-demand crop, resizing and flipping of images."


Passo 1 - Instalação

O thumbor possui várias formas de instalação, porém vou mostrar aquela que tem menos chance de erro independente do seu sistema operacional ou package manager.

Para isso iremos utilizar o Pypi do python.

Se você está utilizando uma máquina limpa, como uma maquina EC2 ou um Droplet da DigitalOcean, você precisará instalar o pip pois ele não vem junto com o ubuntu, apesar do python já vir.

$ sudo apt-get install python-pip

Também recomendo instalar outras bibliotecas do python que são necessárias para o pip mountar o thumbor.

$ sudo apt-get install libcurl4-openssl-dev
python-dev build-essential libssl-dev libffi-dev
libxml2-dev libxslt1-dev zlib1g-dev python-pip

Agora podemos instalar o thumbor através do pip.

$ pip install thumbor

Se você receber algum erro do tipo locale.Error: unsupported locale settin basta setar o locale da sua maquina, eu costumo deixar o locale em inglês mas fica a seu critério. Para fixar isso rode o seguinte comando:

$ export LC_ALL="en_US.UTF-8"
$ export LC_CTYPE="en_US.UTF-8"
$ sudo dpkg-reconfigure locales

Agora você conseguirá instalar o thumbor através do pip.


Passo 2 - Executando

Após a instalação do thumbor, o comando thumbor está disponível no console, para subir a aplicação basta chamar o comando que o thumbor irá startar o serviço.

$ thumbor

Com o serviço rodando você pode acessar a url de healthcheck do thumbor para ver se o serviço está rodando corretamente.

http://0.0.0.0:8888/healthcheck

E para ver ele funcionar com uma imagem real, você pode testar com o modelo abaixo.

http://0.0.0.0:8888/unsafe/300x200/https://www.javascript.com/images/meta/facebook.png

Você também pode passar a url do thumbor na hora de iniciar o serviço, por exemplo:

$ thumbor --port=1234

Passo 3 - Configuração

Agora que o thumbor já está rodando vamos fazer algumas configurações básicas para ele rodar.

Para rodar o thumbor com configurações diferentes basta criarmos o arquivo /etc/thumbor.conf (dentro da /etc/) e para isso vamos utilizar a linha de comando do próprio thumbor para gerar o arquivo modelo:

cd /etc/ && sudo thumbor-config > ./thumbor.conf

O arquivo gerado deve se parecer com algo assim:
thumbor-sample

E então vamos alterar o nosso arquivo conf para deixarmos do jeito que precisamos. Por padrão ele vem todo comentado, então basta ir descomentado as linhas que você deseja alterar e realizar a mudança desejada.

Passo 4 - Thumbor como serviço com o supervisor

Agora que podemos rodar o thumbor com as configurações novas porém ainda precisamos deixa-lo rodando sozinho, e claro para que ele reinicie junto com o máquina caso haja algum reboot.

Para fazer isso vou usar o supervisor e vamos instala-lo usando o comando

$ sudo apt-get install supervisor

E pronto, o supervisor já vai subir o serviço e toda vez que o sistema iniciar ele também subirá junto.

Agora vamos configurar o supervisor para iniciar o thumbor também.

Os arquivos de configuração do supervisor ficam localizados em /etc/supervisor/conf.d/
Neste diretório vamos criar um arquivo chamado thumbor.conf como o seguinte modelo:

[program:thumbor]
command=thumbor --port=8888
autostart=true
autorestart=true
stderr_logfile=/var/log/thumbor.err.log
stdout_logfile=/var/log/thumbor.out.log

Basta agora alterar o arquivo como desejado, mudando a linha command para executar o thumbor com outra porta por exemplo ou claro mudando o local dos logs.

Salve o arquivo e execute o comando abaixo para fazer com que o supervisor leia as novas configurações

$ sudo supervisorctl reread

E você deve receber uma mensagem de sucesso como a seguinte thumbor: avaiable

E agora para adicionar o thumbor nos processos do supervisor

$ sudo supervisorctl update

E você deve receber uma mensagem de sucesso como a seguinte thumbor: added process group

E tadam! Agora você já pode acessar a url do thumbor que ele estará funcionando.