anúncios

sexta-feira, 30 de dezembro de 2022

Configurando um ambiente com jogos retrô

Uma distro Linux com nome Batocera, dedicada à execução de retrogaming, baseada no RecalboxOS e que está disponível para computadores na arquitetura 32 e 64 bits, também no Raspberry.

A distro Batocera pode ser executada a partir de um pendrive USB ou cartão SD, permitindo a transferência entre computadores.

Além dos jogos retrô, inclui o Kodi Media Center para assistir suas séries e filmes.

Quais emuladores tem a distro Batocera?

Permite executar ROMs de jogos antigos como Atari , SNES, Mastersystem , arcade e outros.

Procedimentos de instalação da distro Batocera

  1. Download conforme o dispositivo ou arquitetura no site https://batocera.org/download
  2. Download e instalação do BalenaEtcher https://www.balena.io/etcher/
  3. Extrair batocera-(version)-(arch)-(date).img.gz (irá gerar um arquivo ISO)
  4. Conecte o pendrive na porta USB ou o MicroSD Card (Recomendado 16GB)
  5. Selecione a imagem ISO no BalenaEtcher e click em Flash
  6. Após finalizar, verifique se contém o diretório "boot"
  7. Reinicie a máquina com o pendrive USB ou MicroSD Card e coloque a ordem de boot pelo USB MicroSD
  8. Teste o boot pelo pendrive ou MicroSD. Se desejar, faça a instalação, basta seguir o fluxo do setup.

Referências

https://wiki.batocera.org/start

Feito!

quinta-feira, 29 de dezembro de 2022

Podman alternativa ao Docker

Podman é um gerenciador de contêineres que foi projetado para ser uma alternativa segura e eficiente ao Docker. É construído sobre a biblioteca de contêineres do kernel do Linux, o que significa que não precisa de um daemon para funcionar e pode ser executado diretamente no Sistema Operacional. Isso o torna mais leve e mais fácil de usar do que o Docker.

Podman é uma ferramenta de linha de comando que permite criar, gerenciar e executar contêineres de forma fácil e rápida. Permite que você crie imagens de contêineres a partir de arquivos Dockerfile e as execute em seu sistema. Além disso, ele também pode ser usado para gerenciar o ciclo de vida dos contêineres, incluindo a criação, inicialização, parada e exclusão de contêineres.

Uma das principais vantagens do Podman é que ele é seguro e não expõe a porta de rede do daemon do Docker. Isso significa que não há risco de exposição de vulnerabilidades de segurança no daemon do Docker, tornando o Podman uma opção mais segura para uso em ambientes de produção. Além disso, o Podman também suporta a criação de contêineres "desacoplados", o que significa que eles não dependem de nenhum daemon para funcionar. Isso torna o Podman ideal para ambientes de produção onde é importante minimizar o número de processos em execução no sistema.

Outra vantagem do Podman é muito fácil de usar, pois possui uma interface de linha de comando clara e intuitiva, e é muito parecido com o Docker, o que significa que é fácil para os usuários do Docker aprender a usá-lo. Além disso, o Podman também possui integração com o Kubernetes, o que significa que pode ser usado para gerenciar clusters de contêineres em grande escala.

Em resumo, o Podman é uma ferramenta de gerenciamento de contêineres segura e fácil de usar. É construído sobre a biblioteca de contêineres do kernel do Linux, o que significa que não precisa de um daemon para funcionar e é mais leve e mais fácil de usar do que o Docker. Permite criar, gerenciar e executar contêineres de forma fácil e rápida, e possui integração com o Kubernetes para gerenciamento em grande escala. Se você estiver procurando uma alternativa segura e eficiente ao Docker, o Podman.

Instalação do Podman

GNU/Linux

Debian / Ubuntu

$ sudo apt-get -y install podman

RHEL

$ sudo yum module enable -y container-tools:rhel8
$ sudo yum module install -y container-tools:rhel8

Arch Linux / Manjaro

$ sudo pacman -S podman

Fedora

$ sudo dnf -y install podman

openSUSE

$ sudo zypper install podman

Alguns comandos Podman

Com o Podman instalado na distro Linux, abre o terminal e digite: $ podman --help

Se você já conhece Docker deve ter notado que os comandos são basicamente os mesmos, apenas substituindo docker por podman, os argumentos são praticamente quase todos os mesmos.

Referências

https://podman.io/

Feito!

sábado, 17 de dezembro de 2022

Conhecendo o poder do Chat GPT Open AI

O chat GPT é uma ferramenta poderosa para aqueles que buscam uma maneira eficiente e precisa de gerar conteúdo de qualidade. Com o uso do aprendizado de máquina, o GPT é capaz de criar textos que parecem escritos por seres humanos, tornando-o ideal para criar conteúdo para sites de notícias, blogs ou redes sociais.

Além disso, o GPT também pode ser usado para responder a perguntas sobre uma ampla variedade de tópicos, tornando-o uma excelente opção para sistemas de assistentes virtuais. Isso pode ser muito útil em situações em que é preciso fornecer informações precisas e atualizadas de maneira rápida e eficiente.

Experimente o chat GPT hoje e descubra a facilidade de criar conteúdo de qualidade. Com o GPT, você pode economizar tempo e esforço na criação de conteúdo, permitindo que se concentre em outras áreas importantes do seu negócio. Além disso, o GPT também pode ajudá-lo a alcançar um público maior e aumentar o tráfego do seu site, o que pode levar a um aumento nos lucros. Não perca mais tempo, experimente o chat GPT agora e comece a usufruir dos seus benefícios.

O GPT é um modelo de linguagem treinado por meio de aprendizado de máquina, não é uma linguagem de programação em si mesma. Ele foi treinado para prever a próxima palavra em um texto com base no contexto das palavras que o precederam, e não foi projetado para escrever código de programação. No entanto, é possível que ele possa gerar código de programação se for alimentado com exemplos de código e instruções adequadas, mas isso é algo que ultrapassa suas capacidades atuais.

Porém olhem o que o Chat GPT faz na criação de códigos mesmo o sistema de IA dizendo que ele não escreve nada 😂

Chat GPT é uma sigla que significa "modelo de linguagem gerada pelo treinamento profundo". É um tipo de modelo de aprendizado de máquina que foi treinado para prever a próxima palavra em um texto com base no contexto das palavras que o precederam. O Chat GPT pode ser usado para gerar texto que parece escrito por um ser humano, para responder perguntas sobre vários tópicos ou para realizar outras tarefas relacionadas a linguagem natural. Isso pode ser útil em muitas situações diferentes, como criar conteúdo de qualidade para sites de notícias, redes sociais ou blogs, ou para ajudar a responder perguntas em um sistema de assistente virtual.

A OpenAI é uma empresa líder em pesquisa e desenvolvimento de inteligência artificial (IA). Fundada em 2015 por Elon Musk e Sam Altman, entre outros, a empresa tem como missão tornar a IA disponível para todos, a fim de beneficiar a humanidade e aumentar a resiliência da sociedade.

A OpenAI realiza pesquisas em diversas áreas da IA, incluindo aprendizado profundo, processamento de linguagem natural e sistemas de tomada de decisão. Isso lhe permite desenvolver tecnologias avançadas que podem ser usadas em aplicações comerciais e científicas.

Além disso, a OpenAI também é comprometida com a responsabilidade e a segurança na IA. Ela trabalha em estreita colaboração com os principais pesquisadores e empresas do setor para promover o uso ético e seguro da IA e garantir que seus avanços tecnológicos beneficiem a humanidade.

Acesse o site Oficial do Chat GPT e faça seus experimentos.

https://chat.openai.com/chat

Feito!

domingo, 16 de outubro de 2022

Configurando e iniciando o projeto Flask no ambiente Docker

Flask é um micro-framework, lançado em 2010 e desenvolvido por Armin Ronatcher, seu foco é para pequenas aplicações com requisitos simples, como site básico e para desenvolvimento de API REST em Python.

O objetivo deste post, é explicar os procedimentos de configuração e inicialização de um projeto base em Flask no ambiente Docker.

$ mkdir $HOME/ambiente-flask-docker && cd $HOME/ambiente-flask-docker

Crie o arquivo app.py com o seguinte conteúdo:

app.py


from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run(host="0.0.0.0")


Preparando o ambiente Flask no Docker

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

Crie o Dockerfile no diretório python-flask com o seguinte conteúdo

$ cd $HOME/ambiente-flask-docker && mkdir python-flask

Dockerfile


FROM python:3.6.1-alpine
RUN pip install flask
CMD ["python","app.py"]

Configurando o Docker Compose

Crie o arquivo docker-compose.yml no diretório criado anteriormente

docker-compose.yml


version: '3'
services:
   python-flask:
     build: 
      args:
        user: saitam
        uid: 1000
      context: ./python-flask
     container_name: python-flask
     volumes:
       - ./src:/app
     ports:
       - "5000:5000"

$ docker-compose up -d

Abre o browser http://localhost:5000, irá exibir o conteúdo "Hello World!" definido na rota /. Crie outros endpoints para testes, antes de desenvolver a API REST com Flask.

Para acessar o container é $ docker exec -it python-flask bash

Pronto, a partir desse momento já tem o ambiente Flask no Docker para seus projetos.

Referências

https://flask.palletsprojects.com/en/2.2.x/

Feito!

sábado, 15 de outubro de 2022

Configurando e iniciando projeto Angular no ambiente Docker

O objetivo deste post, é explicar os procedimentos de configuração e inicialização do projeto Angular no ambiente Docker.

Preparando o ambiente Angular no Docker

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

$ mkdir $HOME/ambiente-angular-docker && cd $HOME/ambiente-angular-docker

$ docker run --rm --volume "/home/reginaldo/ambiente-angular-docker:/usr/node/app" --workdir "/usr/node/app" --publish 4200:4200 -it node:18 bash

O comando acima, irá conectar ao conteiner node, de modo similar como estiver conectado a outro computador via SSH.

Na primeira vez que executar, o Docker irá fazer o download da imagem node:18 e pode levar alguns minutos.

Explicando os parâmetros informados:

--volume "/home/reginaldo/ambiente-angular-docker:/usr/node/app" Cria o link entre o diretório do HOST (/home/reginaldo/ambiente-angular-docker) com o diretório do CONTAINER (/usr/node/app).

--WORKDIR "/usr/node/app" Diretório inicial no momento que o container foi inicializado.

--publish 4200:4200 Cria um link entre a porta 4200 do HOST com a porta 4200 do CONTAINER

--it Cria um link entre o terminal do container com o terminal do HOST

--rm Remove antigos containers (muito útil depois da primeira execução)

Criando o primeiro projeto Angular

Estando conectado no container node com o comando que executou anteriormente, conforme explicado.

Primeiro, vamos instalar o Angular via NPM

npm install -g @angular/cli

Agora vamos criar o projeto Angular

ng new .

O . indica que irá criar o nome do projeto com mesmo nome do diretório criado.

Informe as configurações desejadas para seu projeto e só aguardar o projeto ser configurado.

Pronto, o primeiro aplicativo Angular foi criado.

É importante salientar que ambiente com Docker é volátil, quando não criado o volume que mapeia o diretório entre HOST e CONTAINER, conforme foi criado no comando é adicionado o volume.

No diretório volume do HOST, observe o Owner, provavelmente irá precisar alterar para o seu usuário.

$ sudo chown -R $USER $HOME/ambiente-angular-docker

Além do arquivo .gitignore é recomendado criar o arquivo .dockerignore e adicionar o node_modules

Executando o projeto Angular no Docker

No diretório do volume, adaptando o nome do seu usuário, execute:

$ docker run --rm --volume "/home/reginaldo/ambiente-angular-docker:/usr/node/app" --workdir "/usr/node/app" --publish 4200:4200 -it node:18 bash

Estando conectado no container node, execute o comando:

ng serve

Abre o browser http://localhost:4200

Configurando o ambiente Angular no Docker Compose

Para não precisar executar o comando Docker Run toda hora, pode simplificar e organizar com o Docker Compose

Pode criar o arquivo docker-compose.yml no diretório de sua preferência

docker-compose.yml


version: '3'

services:
  node:
    image: node:18
    container_name: ambiente-angular
    args:
      user: saitam
      uid: 1000
    ports:
      - '4200:4200'
    volumes:
      - ./src:/usr/node/app
    working_dir: /usr/node/app
    command: 'ng serve'

$ docker-compose up

OU

$ docker-compose up -d

O primeiro comando o log fica aberto em tempo de execução. O segundo é executado em background. Eu prefiro executar o segundo, quando preciso verificar o log, executo docker ps

E para acessar o container é $ docker exec -it <CONTAINERID> bash

Pronto, a partir desse momento já tem o ambiente Angular no Docker para seus projetos.

Feito!

sexta-feira, 14 de outubro de 2022

Configurando e iniciando projeto Vue.js no ambiente Docker

O objetivo deste post, é explicar os procedimentos de configuração e inicialização do projeto Vuejs no ambiente Docker.

Preparando o ambiente Vue.js no Docker

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

$ mkdir $HOME/ambiente-vuejs-docker && cd $HOME/ambiente-vuejs-docker

$ docker run --rm --volume "/home/reginaldo/ambiente-vuejs-docker:/usr/node/app" --workdir "/usr/node/app" --publish 8080:8080 -it node:18 bash

O comando acima, irá conectar ao conteiner node, de modo similar como estiver conectado a outro computador via SSH.

Na primeira vez que executar, o Docker irá fazer o download da imagem node:18 e pode levar alguns minutos.

Explicando os parâmetros informados:

--volume "/home/reginaldo/ambiente-vuejs-docker:/usr/node/app" Cria o link entre o diretório do HOST (/home/reginaldo/ambiente-vuejs-docker) com o diretório do CONTAINER (/usr/node/app).

--WORKDIR "/usr/node/app" Diretório inicial no momento que o container foi inicializado.

--publish 8080:8080 Cria um link entre a porta 8080 do HOST com a porta 8080 do CONTAINER

--it Cria um link entre o terminal do container com o terminal do HOST

--rm Remove antigos containers (muito útil depois da primeira execução)

Criando o primeiro projeto Vue.js

Estando conectado no container node com o comando que executou anteriormente, conforme explicado.

Primeiro, vamos instalar o Vue via NPM

npm install -g @vue/cli

Agora vamos criar o projeto Vue.js

vue create .

O . indica que irá criar o nome do projeto com mesmo nome do diretório criado.

Informe as configurações desejadas para seu projeto e só aguardar o projeto ser configurado.

Pronto, o primeiro aplicativo Angular foi criado.

É importante salientar que ambiente com Docker é volátil, quando não criado o volume que mapeia o diretório entre HOST e CONTAINER, conforme foi criado no comando é adicionado o volume.

No diretório volume do HOST, observe o Owner, provavelmente irá precisar alterar para o seu usuário.

$ sudo chown -R $USER $HOME/ambiente-vuejs-docker

Além do arquivo .gitignore é recomendado criar o arquivo .dockerignore e adicionar o node_modules

Executando o projeto Vue.js no Docker

No diretório do volume, adaptando o nome do seu usuário, execute:

$ docker run --rm --volume "/home/reginaldo/ambiente-vuejs-docker:/usr/node/app" --workdir "/usr/node/app" --publish 8080:8080 -it node:18 bash

Estando conectado no container node, execute o comando:

npm run serve

Abre o browser http://localhost:8080

Configurando o ambiente Vue.js no Docker Compose

Para não precisar executar o comando Docker Run toda hora, pode simplificar e organizar com o Docker Compose.

Pode criar o arquivo docker-compose.yml no diretório de sua preferência

docker-compose.yml


version: '3'

services:
  node:
    image: node:18
    container_name: ambiente-vuejs
    args:
      user: saitam
      uid: 1000
    ports:
      - '8080:8080'
    volumes:
      - ./src:/usr/node/app
    working_dir: /usr/node/app
    command: 'npm run serve'

$ docker-compose up

OU

$ docker-compose up -d

O primeiro comando o log fica aberto em tempo de execução. O segundo é executado em background. Eu prefiro executar o segundo, quando preciso verificar o log, executo docker ps.

E para acessar o container é $ docker exec -it <CONTAINERID> bash

Pronto, a partir desse momento já tem o ambiente Vue.js no Docker para seus projetos.

Feito!

terça-feira, 11 de outubro de 2022

Configurando e iniciando projeto Node.js no ambiente Docker

O objetivo deste post, é explicar os procedimentos de configuração e inicialização do projeto Node.js no ambiente Docker.

Preparando o ambiente Node.js no Docker

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

$ mkdir ambiente-nodejs-docker && cd ambiente-nodejs-docker

Cria o arquivo app.js


const http = require('http');

const hostname = '127.0.0.1';
const port = 3001;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World');
});

server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});

Além do arquivo .gitignore é recomendado criar o arquivo .dockerignore e adicionar o node_modules.

$ docker run --rm --volume "/home/reginaldo/ambiente-nodejs-docker:/usr/node/app" --workdir "/usr/node/app" -it node:18 bash

Estando conectado no container node, execute:

npm install nodemon -g
/srv/node/app/node_modules/.bin/nodemon app.js

Abra o browser http://localhost:3001 irá exibir na página "Hello World".

Configurando o ambiente Node.js com Docker Compose

Pode criar o arquivo docker-compose.yml no diretório de sua preferência, copie o arquivo app.js que é o servidor web do Node.js no diretório src

docker-compose.yml


version: '3'

services:
  node:
    image: node:18
    container_name: ambiente-node
    args:
      user: saitam
      uid: 1000
    ports:
      - '3001:3001'
    volumes:
      - ./src:/srv/node/app
    working_dir: /srv/node/app
    command: '/srv/node/app/node_modules/.bin/nodemon app.js'

docker-compose up -d

Abra o browser http://localhost:3001

Adicionando o Express

Conecte no container conforme segue:

$ docker exec -it ambiente-node bash

Estando no container ambiente-node, execute:

npm install express --save

Pode substituir o conteúdo no arquivo app.js


const express = require('express');
const app = express();

app.get('/', (req, res) => {
res.send('Hello World! na Home');
});

app.get('/hello', (req, res) => {
res.send('Hello World!');
});

app.listen(3001, 'http://127.0.0.1') {
console.log('app listening on port 3001!');
});

Como foi instalado o Nodemon que faz o watch do arquivo para atualizar, sem precisar reiniciar a execução do node app.js. Teste no browser http://localhost:3001 com as rotas que criou.

Pronto, agora já tem o ambiente de desenvolvimento Node.js no Docker, que pode utilizar em paralelo (Backend no Node.js e Frontend no React) com o ambiente React no Docker .

Feito!

segunda-feira, 10 de outubro de 2022

Configurando e iniciando o projeto React no ambiente Docker

Quem já não teve problema com versões incompatíveis na quebra de compatibilidade devido a atualização que funcionava na versão anterior em comparação com a versão atual?

Para evitar isso, recomendado utilizar o Docker no ambiente de desenvolvimento.

O objetivo deste post, é explicar os procedimentos de configuração e inicialização do projeto React no ambiente Docker.

Preparando o ambiente React no Docker

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

$ mkdir $HOME/ambiente-react-docker && cd $HOME/ambiente-react-docker
$ docker run --rm --volume "/home/reginaldo/ambiente-react-docker:/usr/node/app" --workdir "/usr/node/app" --publish 3000:3000 -it node:18 bash

O comando acima, irá conectar ao conteiner node, de modo similar como estiver conectado a outro computador via SSH.

Na primeira vez que executar, o Docker irá fazer o download da imagem node:18 e pode levar alguns minutos.

Explicando os parâmetros informados:

--volume "/home/reginaldo/ambiente-react-docker:/usr/node/app" Cria o link entre o diretório do HOST (/home/reginaldo/ambiente-react-docker) com o diretório do CONTAINER (/usr/node/app).

--WORKDIR "/usr/node/app" Diretório inicial no momento que o container foi inicializado.

--publish 3000:3000 Cria um link entre a porta 3000 do HOST com a porta 3000 do CONTAINER

--it Cria um link entre o terminal do container com o terminal do HOST

--rm Remove antigos containers (muito útil depois da primeira execução)

Criando o primeiro projeto React

Estando conectado no container node com o comando que executou anteriormente, conforme explicado, execute:

npx create-react-app .

Pronto, o primeiro aplicativo React foi criado.

É importante salientar que ambiente com Docker é volátil, quando não criado o volume que mapeia o diretório entre HOST e CONTAINER, conforme foi criado no comando é adicionado o volume.

No diretório volume do HOST, observe o Owner, provavelmente irá precisar alterar para o seu usuário.

$ sudo chown -R $USER $HOME/ambiente-react-docker

Além do arquivo .gitignore é recomendado criar o arquivo .dockerignore e adicionar o node_modules

Executando o projeto React no Docker

No diretório do volume, adaptando o nome do seu usuário, execute:

$ docker run --rm --volume "/home/reginaldo/ambiente-react-docker:/usr/node/app" --workdir "/usr/node/app" --publish 3000:3000 -it node:18 bash

Estando conectado no container node, execute o comando:

npm start

Abre o browser http://localhost:3000

Configurando o ambiente React com Docker Compose

Para não precisar executar o comando Docker Run toda hora, pode simplificar e organizar com o Docker Compose

Pode criar o arquivo docker-compose.yml no diretório de sua preferência

docker-compose.yml


version: '3'

services:
  node:
    image: node:18
    container_name: ambiente-react
    args:
      user: saitam
      uid: 1000
    ports:
      - '3000:3000'
    volumes:
      - ./src:/usr/node/app
    working_dir: /usr/node/app
    command: 'npm start'

$ docker-compose up OU
$ docker-compose up -d

O primeiro comando o log fica aberto em tempo de execução. O segundo é executado em background. Eu prefiro executar o segundo, quando preciso verificar o log, executo docker ps

E para acessar o container é docker exec -it <CONTAINERID> bash

Pronto, a partir desse momento já tem o ambiente React no Docker para seus projetos

Feito!

sexta-feira, 7 de outubro de 2022

Instalando e Configurando o Jenkins no ambiente Docker

O objetivo deste post, é explicar os procedimentos de instalação e configuração do Jenkins no ambiente Docker.

O que é Jenkins?

Jenkins é uma ferramenta de integração contínua de código aberto para automatizar o deploy do projeto, na execução de testes unitários, testes integrados e o build completo.

Instalação e configuração

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

$ mkdir $HOME/jenkins && cd $HOME~/jenkins

$ curl -sSL https://raw.githubusercontent.com/bitnami/containers/main/bitnami/jenkins/docker-compose.yml > docker-compose.yml

PS: Para utilizar no servidor de produção, é recomendado alterar a variável JENKINS_PASSWORD que é o password administrador do Jenkins.

Altere a porta do HOST também, por outra porta alta que não esteja usando.

$ docker-compose up -d

Aguarde subir o ambiente, após concluir, abre o browser e acesse http://localhost:<PORTA>

O acesso username/password default são: admin/bitname.

Caso tenha alterado por meio das variáveis JENKINS_USERNAME e JENKINS_PASSWORD, respectivamente no arquivo docker-compose.yml, então utilize o que você definiu.

Após o acesso do Jenkins, pode criar os Jobs na ordem de execução para o deploy automatizado do seu projeto com CI/CD (Continuos Integrations/Continuos Delivery).

O que é CI/CD?

CI/CD (Continuous Integration/Continuous Delivery), é um método para entregar aplicações com frequência aos clientes. Para isso, é aplicada a automação nas etapas do desenvolvimento de aplicações.

Exemplos de ferramentas que fazem CI/CD: Jenkins, Bamboo, GitHub Actions, CircleCI.

Utilize a ferramenta CI/CD a sua escolha para o seu projeto. É importante ressaltar que essas ferramentas de CI/CD integram com o Git com as plataformas GitHub, Bitbucket e Gitlab.

Referências

https://www.jenkins.io/doc/

Feito!

quarta-feira, 28 de setembro de 2022

Conhecendo a distro Salix, um Slackware easycore moderno

O Salix é uma distro Linux baseada no Slackware que foca em facilitar o uso do sistema para usuários de desktop. Ele traz um XFCE personalizado como desktop enviroment, além de várias ferramentar para facilitar a configuração do sistema, assim como instalar programas, como o suporte a flatpak nativo e o gerenciador de pacotes gráfico, Gslapt e Slapt-get via CLI.

Tido como o "Linux Mint do Slackware", a distro ainda traz suporte para processadores de 32 bits, sendo uma bela alternativa para dar uma sobrevida a equipamentos antigos, com um toque de modernidade e beleza.

O instalador do Salix é similar na mesma experiência do Slackware, mas tem suporte a diversos idiomas. De praxe, um ambiente de desenvolvimento completo fornecido com a instalação padrão do Salix.

Screenshots

Review

Referências

https://guide.salixos.org/

https://www.salixos.org/download.html

Feito!

domingo, 25 de setembro de 2022

Conhecendo o simulador de autômatos JFLAP

JFLAP é uma ferramenta gráfica que auxilia no estudo de Linguagens Formais e Autômato e Teoria da Computação .

Construi e valida Autômatos Finito Determinístico (AFD), Autômatos Finitos Não Determinístico (AFN), Gramática Regulares (GR), Expressões Regulares (ER), Autômatos com Pilha (AP), Máquinas de Turing (MT).

Também faz conversões entre:

AFD -> AFN
AF -> GR
GR -> AF

Se você está cursando Ciência da Computação e nesse semestre está matriculado nas disciplinas de Linguagens Formais e Autômato (LFA), Teoria da Computação (TEC), podem usufruir desta ferramenta JFLAP nos seus estudos dessas disciplinas de modo a ajudar nos exercícios e estudar para a prova.

É importante salientar aos estudantes de Ciência da Computação, que é recomendado aprender a fazer a conversão de AFD->AFN, AFN->GR, GR->AF e utilizar a ferramenta JFLAP para conferir o resultado.

Esta certo, como faço para utilizar o JFLAP?

Pré-requisitos: Ter pelo menos o JDK instalado no SO que estiver utilizando no seu computador.

Acesse https://jflap.org/ e clique no link "Get JFLAP", clique no link "fill out this form" que é um formulário, mas o único campo obrigatório o preenchimento é a digitação da string aleatória anti-spam e clicar no botão "Submit", irá redirecionar na página e faça o download do arquivo que tem o link "JFLAP7.1.jar".

Após o download do arquivo JAR do JFLAP, abre o terminal e acesse o diretório onde salvou o JFLAP.

$ java -jar JFLAP7.1.jar

Referências

https://www.jflap.org/

Feito!

sexta-feira, 23 de setembro de 2022

Conhecendo o DBDesigner

DBDesigner é uma ferramenta CASE para a modelagem de dados que trabalha com o modelo lógico, desenvolvida pela fabFORCE sob licença GNU GPL (General Public License). É multiplataforma (Windows, Linux) implementado em Delphi/Kylix.

Além de permitir a modelagem, criação e manutençao de banco de dados, esta ferramenta possibilita a engenharia reversa, gerando o modelo de dados a partir de um banco de dados existente, e ainda possibilita o sincronismo entre o modelo e o banco.

O DBDesigner possui suporte aos SGBD MySQL, Oracle, MS SQL Server.

Instalação

O primeiro passso é fazer o download do DBDesigner direto no site oficial aqui , de acordo com o SO que estiver utilizando atualmente, no caso do Linux (qualquer distro), após extrair o arquivo DBDesigner4.X.tar.gz no diretório onde salvou e executar o script startdb.

Na prática é basicamente isso, substituir o X pela release da versão correspondente.

$ tar -xzvf DBDesigner4.X.tar.gz
$ cd DBDesigner4.X
$ ./startdb

Adicione um atalho para o startdb (DBDesigner) no menu do gerenciador gráfico que estiver utilizando na distro Linux.

Nota

O DBDesigner foi descontinuado, mas existe o MySQL Workbench , que atende perfeitamente para criar o DER do seu banco de dados.

Feito!

Conhecendo a ferramenta Dia Diagram Editor

A ferramenta Dia Diagram Editor é gratuita e de código aberto sob licença GNU/GPLv2, tem suporte mais de 30 tipos de diagramas diferentes, como fluxogramas, classes, redes, banco de dados. Dispõe mais de 1000 objetos prontos que ajudam a desenhar diagramas profissionais para ler e escrever em formatos diferentes de imagem.

Essa ferramenta foi inspirada no Microsoft Visio.

Tem suporte aos SOs Linux, Windows e macOS.

Instalação

Linux

Debian/Ubuntu

$ sudo apt install dia

Fedora

$ sudo dnf makecache --refresh
$ sudo dnf -y install dia

Pronto, agora já pode criar os seus fluxogramas, diagramas de classes, redes, banco de dados e outros com a ferramenta Dia Diagram Editor que acabou de instalar no seu sistema Linux.

Feito

quarta-feira, 21 de setembro de 2022

Removendo arquivos definitivo no Linux

Você acha que ao remover arquivos com o comando rm ou esvazia a lixeira, os arquivos foram removidos? Em resumo, o método usual para remover arquivos no Linux, usando o comando rm ou modo gráfico, não é suficiente para remover permanentemente o arquivo do sistema. Ferramenta de recuperação de arquivos removidos conseguirá recuperá-lo.

O objetivo deste post é de apresentar 5 utilitários que permite remover arquivos definitivo, de forma segura.

SHRED

O comando shred sobreescreve o arquivo diversas vezes de forma embaralhada antes de remover-lo. Isso impossibilita que o conteúdo original do arquivo seja recuperado.

$ shred -uvz nome-arquivo

WIPE

O Wipe é um utilitário que remove permanentemente arquivos e diretórios em discos magnéticos e SSD.

$ sudo apt install wipe
$ wipe -rfi nome-diretorio
$ wipe nome-arquivo

SRM (Secure RM)

O SRM é uma ferramenta que faz parte do conjunto secure-delete. Seu funcionamento é parecido com o comando rm em conjunto com shred.

$ sudo apt install secure-delete
$ sudo srm nome-arquivo

SFILL (Secure Free Disk and Inode Space Wiper)

O Sfill também faz parte do conjunto secure-delete. Preenche o espaço disponível da partição com dados aleatórios, impossibilitando a recuperação de arquivos deletados.

$ sudo apt install secure-delete
$ sudo sfill -v nome-diretorio

SDMEN (Secure Memory Wiper)

O Sdmen também faz parte do conjunto secure-delete. Sua função é remover dados presentes na memória RAM.

$ sudo apt install secure-delete
$ sudo sdmen -f -v

Referências

https://linux.die.net/man/1/shred

http://wipe.sourceforge.net/

http://srm.sourceforge.net/

https://manpages.ubuntu.com/manpages/kinetic/en/man1/sfill.1.html

https://www.linuxcertif.com/man/1/sdmem/

Feito!

quinta-feira, 15 de setembro de 2022

Instalando e Configurando o VPN WireGuard no Linux

WireGuard é um software e protocolo de comunicação gratuito e de código aberto. Ele é usado para implementar técnicas de Rede Virtual Privada (VPN) na criação de conexões seguras de ponto a ponto em configurações roteadas ou de ponte.

Instalando o WireGuard

Segue, conforme a distro mencionada o qual estiver utilizando no seu computador ou servidor.

Debian/Ubuntu

$ sudo apt install wireguard

Fedora

$ sudo dnf install wireguard-tools

Arch

$ sudo pacman -S wireguard-tools

openSUSE $ sudo zypper install wireguard-tools

RHEL 8

$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
$ sudo yum install kmod-wireguard wireguard-tools

Habilitar o forward

$ sudo vim /etc/sysctl.conf

descomentar a linha (retirar o # na frente)

net.ipv4.ip_forward=1 $ sudo systctl -p
# mkdir /etc/wireguard
# umask 077
# wg genkey | tee privatekey | wg pubkey > publickey

Repetir para no cliente Linux, que irá conectar no servidor VPN WireGuard


Configurando o WireGuard


# vim /etc/wireguard/wg0.conf

[Interface]
PrivateKey = <contents-of-server-privatekey>
Address = 10.0.0.1/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820

[Peer]
PublicKey = <contents-of-client-publickey>
AllowedIPs = 10.0.0.2/32

Verifique as chaves pública e privada nos diretórios a seguir:

$ sudo cat /etc/wireguard/publickey
$ sudo cat /etc/wireguard/privatekey
# ip link add dev wg0 type wireguard
# ip address add dev wg0 192.168.2.1/24

ou dois peers

# ip address add dev wg0 192.168.2.1 peer 192.168.2.2
# wg setconf wg0 /etc/wireguard/config.conf
# ip link set up dev wg0

Inicializar o WireGuard no boot do sistema


# wg-quick up wg0

Saída de retorno

[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# wg show
# systemctl enable wg-quick@wg0
# modprobe wireguard

Adicionar a liberação da porta 51820 UDP no firewall


Configuração do cliente Linux


$ sudo mkdir -p /etc/wireguard
$ sudo vim /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.2/32
PrivateKey = <contents-of-client-privatekey>
DNS = 1.1.1.1

[Peer]
PublicKey = <contents-of-server-publickey>
Endpoint = <server-public-ip>:51820
AllowedIPs = 0.0.0.0/0, ::/0

Configurar para inicializar no boot do cliente Linux

$ sudo wg-quick up wg0
$ sudo systemctl start wg-quick@wg0

Referências

https://www.wireguard.com/

Feito!

quarta-feira, 14 de setembro de 2022

Conhecendo o mensageiro DeltaChat

Se quer ter mais segurança e sem complicações para conversas em equipe online, então precisa conhecer o mensageiro Delta Chat.

Delta Chat é um aplicativo que permite converter a conta de e-mail que utiliza em um aplicativo de chat. Isso significa que o mensageiro Delta Chat é descentralizado e nisso pode enviar mensagens para qualquer pessoa, a partir dos contatos existentes no e-mail, sem que o destinário precise ter o Delta Chat instalado no computador ou celular.

O seu uso é similar ao aplicativo como o Telegram ou WhatsApp, mas sem o rastreamento ou controle central. O Delta Chat não precisa de um número de telefone. Basta saber o seu endereço de e-mail.

Além disso, o Delta Chat é um software livre e de código aberto.

Instalando o cliente Delta Chat

No Linux

Debian/Ubuntu

$ wget -c "https://download.delta.chat/desktop/v1.32.1/deltachat-desktop_1.32.1_amd64.deb"
$ sudo dpkg -i deltachat-desktop_1.32.1_amd64.deb

Fedora

$ wget -c "https://download.delta.chat/desktop/v1.32.1/deltachat-desktop-1.32.1.x86_64.rpm"
$ sudo rpm -i deltachat-desktop-1.32.1.x86_64.rpm

Configurando o Delta Chat

Após instalar o cliente Delta Chat, siga os procedimentos seguintes:

Informar a sua conta de e-mail. Caso estiver usando o Gmail, precisará habilitar o token de acesso em sua conta e permitir, pode ser verificado aqui.

Usando o Delta Chat

O uso do Delta Chat é bastante similar como qualquer outro aplicativo mensageiro, inclusive a sua interface gráfica já indica isso.

Adicione um contato que está no seu e-mail que utilizou no Delta Chat, enviei uma mensagem o contato. Esse contato não precisa ter o Delta Chat instalado, pois irá receber a mensagem no e-mail, e o contato ao responder a sua mensagem irá encaminhar no Delta Chat. TOP

Referências

https://delta.chat/pt/

https://providers.delta.chat/

Feito!

segunda-feira, 12 de setembro de 2022

Configurando a sua Netflix com Jellyfin

O que é Jellyfin?

O Jellyfin e um serviço de multimídia permitindo fazer o streaming de seus vídeos e qualquer dispositivo de sua escolha. O Jellyfin, totalmente gratuita, você pode usar seus serviços na maioria dos dispositivos. Além de permitir você assistir os filmes da sua biblioteca, também faz a transcodificação de vídeo para melhor exibição dependendo da velocidade de sua internet, e a resolução do seu dispositivo.

Pode instalar na sua máquina ou no seu servidor.

Recomendo instalar o Jellyfin no ambiente Docker, por ser mais simples e rápido.

Instalação e configuração do Jellyfin no ambiente Docker

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

$ mkdir -p jellyfin && cd jellyfin
$ mkdir -p config cache media media2
$ curl -LO https://raw.githubusercontent.com/rmsaitam/jellyfin-docker/main/docker-compose.yml
$ docker-compose up -d

Aguarde subir o ambiente, após concluir, acesse no browser http://IP:8096 ou https://IP:8920

No primeiro acesso ao Jellyfin, é redirecionado para o cadastro do usuário administrador e assim colocar os filmes, vídeos, músicas, no diretório media do volume que foi criado anteriormente.

Pode criar usuários regulares

Pronto, agora tem um servidor multimídia interno na sua rede.

Referências

https://jellyfin.org/

Feito!

sábado, 10 de setembro de 2022

Configurando script Shell no boot com Systemd no Linux

Systemd é um aplicativo de software que fornece diversos recursos para o GNU/Linux (Debian, Ubuntu, Fedora, RHEL). É o primeiro serviço a inicializar no processo de boot. Isso sempre é executado com o PID 1. Isso também nos ajuda a gerenciar os serviços do sistema Linux.

Criando um script Shell

# vim /usr/bin/script.sh

#!/bin/bash
/*seu script Shell, que pode ser regras firewall (Iptables, NFTables, UFW), como outros serviços que quer que seja inicializado automaticamente no sistema*/

Setar permissão do script

# chmod chmod +x /usr/bin/script.sh

Criar o arquivo Systemd Unit


Crie um arquivo de unidade de serviço para o Systemd em seu sistema. Este arquivo deve ter extensão .service e salvo no diretório /lib/systemd/system/. Substitua o nome shellscript pelo nome do script correspondente a funcionalidade.

# vim /lib/systemd/system/shellscript.service

[Unit]
Description=Nome do objetivo do script Shell

[Service]
ExecStart=/usr/bin/script.sh
[Install]
WantedBy=multi-user.target


Habilitar o novo serviço


# systemctl daemon-reload
# systemctl enable shellscript.service
# systemctl start shellscript.service
# systemctl status shellscript.service

Uma vez executado o systemctl com a opção enable juntamente ao nome do serviço criado por meio do script Shell, irá inicializar automaticamente no boot do sistema Linux.

Feito!

sábado, 3 de setembro de 2022

Alternativas gratuitas ao Heroku

No dia 25/08/2022 o Heroku anunciou o encerramento dos planos gratuitos Essa notícia deve ter pego muitos desenvolvedores que tem seus projetos hospedados no plano gratuito no Heroku. Então, quais as alternativas ao Heroku? Esse é objetivo deste post, de apresentar alguns PaaS ao Heroku.

CapRover

CapRover é uma ferramenta gratuita e de código aberto, que possui os mesmos recursos do Heroku no seu servidor próprio.

Vercel

É da empresa criadora do framework NextJS da biblioteca React. Excelente plataforma para hospedar o projeto Frontend.

Netlify

Plataforma para hospedar aplicações Frontend de forma gratuita.

Railway

É uma plataforma completa que permite utilizar a mesma infraestrutura da nuvem durante o seu desenvolvimento local, além de ter um deploy super simples e possuir um plano gratuito eficaz.

Render

Além de ter os mesmos serviços do Heroku, tem o processo de CI/CD, hospedagem de aplicações estática, dinâmica e ainda o SGDB PostreSQL e Redis de forma gratuita.

Fly.io

Também tem os mesmos serviços do Heroku, suporte a Elixir e gerenciamento via CLI.

Gigalixir

Também tem os mesmos serviços do Heroku, suporte ao Elixir e Phoenix. Sem limites de conexão via SSH, Sockets.

Feito!

domingo, 21 de agosto de 2022

11 anos de blog

O blog está completando hoje, 21 de Agosto de 2022, 11 anos!

Gostaria de agradecer a todos pelo prestígio e a paciência de ler os posts que são publicados. Espero continuar compartilhando conhecimentos no blog para nossos leitores. Continuem prestigiando e divulgando o blog Mundo da Computação Integral, assim aumentamos nossa comunidade.

segunda-feira, 15 de agosto de 2022

Exibindo a data que foi instalado a distro Linux

No Windows por meio do comando systeminfo exibe detalhes de hardware e a data que foi instalado o SO Windows no computador, mas atualmente você está no GNU/Linux (qualquer distro) e faz a pergunta se tem um comando que exibe a data que foi instalado a distro Linux no seu computador, pois existem um conjunto de comandos que faz exatamente isso.

Abre o terminal e execute

$ ls -lct /etc | tail -1 | awk '{print $6,$7,$8}'

Feito!

Conhecendo o Botpress

O que é Botpress?

Botpress é uma plataforma de Inteligência Artificial (IA) de chatBot, conversão com um conjunto abrangente de funcionalidades para automação de processos. Essa ferramenta de nível empresarial para atender organizações que desejam de alguma maneira automatizar e disponibilizar serviços de suas equipes. Permite que sua equipe colabore na criação de experiências de conversação com controle de versão e de acesso baseado em função. Utilize conforme as suas políticas de segurança e dados. Melhore com análise e geração de relatórios avançados.

Quem utiliza o Botpress?

Organizações que precisam implantar um número crescente de automações em toda a organização com uma força de trabalho técnica limitada.

O Botpress possui a versão open source e enterprise, a última é hospedada no servidor cloud do Botpress, pode testar por 30 dias, mas pode instalar na sua máquina ou no seu servidor.

Recomendo instalar o Botpress no ambiente Docker, por ser mais simples e rápido.

Instalação e configuração do Botpress no ambiente Docker

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

Abre o terminal e digite:

$ docker run -d --name=botpress -p 3000:3000 botpress/server

Aguarde subir o ambiente, após concluir, acesse no browser http://IP:3000

No primeiro acesso, irá pedir para fazer o cadastro de login, depois loga com o e-mail e a senha que cadastrou no Botpress.

Após logar, para criar o primeiro bot, no canto superior direito, clique no botão "Create Bot" e define um nome para o seu bot, podendo selecionar um template. Em seguida irá notificar para habilitar o bot que criou para iniciar o aprendizado a medida que for utilizando.

Referências

https://botpress.com/

Feito!

domingo, 14 de agosto de 2022

Resolvendo Start job is running for hold until boot process finishes up

Se exibir na mensagem "started hold until boot process finishes up" na distro Ubuntu (qualquer versão), e está a procura de uma solução, nesse post é explicado os procedimentos para resolver.

Quando a partição / fica com 100% ocupada, costuma aparecer essa mensagem na inicialização do sistema, que fica parado.

Para resolver, retorne ao menu do gerenciador de boot GRUB, selecione Advanced Boot / Recovery e selecione root.

Irá carregar o terminal Shell.

Agora faça uma limpeza na partição / de modo a liberar espaço.

Caso tenha muitos containers Docker, segue os procedimentos para remover todos os containers Docker

$ docker stop $(docker ps -a -q)

$ docker rm $(docker ps -a -q)

$ docker rmi $(docker images -q)

Acesse o diretório Downloads

$ cd $HOME/Downloads

$ du -s * | sort -nr | head -n10

Remove os arquivos listados com rm -r nome-arquivo

Limpar o cache de repositório APT

$ sudo apt clean

$ sudo apt autoclean

Feito!

sexta-feira, 12 de agosto de 2022

Conhecendo a plataforma TETA

TETA é uma plataforma No-Code para criação de aplicativos com Backend que não precisam de servidores Serveless.

Serverless é um modelo de desenvolvimento nativo em nuvem para criação e execução de aplicações sem o gerenciamento de servidores.

Todos os recursos necessários já fazem parte da plataforma e você pode criar utilizar o seu banco de dados com as ferramentas Low-code e No-code, apém de consumir APIs externas ou internas.

A plataforma TETA é fácil de utilizar e possui recursos mais avançados.

Planos de assinatura da plataforma TETA

Até a data de publicação deste post, os valores e recursos da plataforma TETA são esses.

Starter Dev Pro
0€
Download do código fonte
Projetos ilimitados
Até 500MB de armazenamento no banco de dados
Até 5K usuários simultâneos
Até 10K visualizações por mês
Suporte da comunidade
12€
Tudo incluso no plano Starter
Até 2GB de armazenamento no banco de dados (1M documentos)
Ate 32K usuários simultâneos
Até 100K visualizações por mês
Suporte por e-mail
25€
Tudo incluso no plano Dev
Até 10GB de armazenamento no banco de dados
Até 100K usuários simultâneos
Até 500K visualizações por mês
Suporte prioritário

O plano Starter inicialmente atende para testes de experimentos, se caso achar interessante e produtivo no desenvolvimento de aplicativos, pode migrar para os planos Dev ou Pro.

Referências

https://teta.so/

Feito!

quinta-feira, 11 de agosto de 2022

Transformar protótipos de telas do Figma para aplicativo em React Native

Você já deve ter perguntado se é possível transforrmar os protótipos de telas que fez no Figma para sites estáticos e aplicativo mobile? Pois bem, existe um plugin para o Figma que faz exatamente isso. Esse é objetivo deste post.

O presente post, apresenta um plugin para o Figma que consegue transformar os protótipos de telas feitos no Figma para aplicativo já pronto, pelo menos o frontend.

O Locofy é uma plataforma que trabalha com inteligência artificial que ajuda você a exportar seus protótipos de telas criados do Figma para React, React Native, HTML/CSS, Next.js e Gatsby, apenas definindo algumas configurações básicas.

Depois que a exportação é feita você pode trabalhar o código para deixar do jeito que você quer e exportar tudo para usar onde e como quiser.

Para utilizar o Locofy é necessário criar uma conta na plataforma, depois sincronizar com a sua conta no Figma, escolher um layout e começar a exportação. Você também precisa instalar o plugin Locofy no seu Figma, para que possa realizar todas as etapas.

Feito!

Conhecendo o Figma

Figma é uma plataforma web para criar prototipação das telas de sites, sistemas, aplicativos, focado na experiência de usuário.

Permite trabalhar de forma colaborativa por uma equipe de pessoas envolvidas no projeto.

Isso facilita os profissionais que atuam Home Office.

Planos de assinatura do Figma


Gratuito Professional Organizacional
Até 3 projetos $12 por mês $45 por mês

Como usar o Figma?

O primeiro passo é criar uma conta de acordo com o plano de assinatura escolhido.

Pode integrar com a sua conta do Google.

Pode começar no plano gratuito.

Após logar na sua conta do Figma ou integrada no Google, crie um novo projeto, podendo reutilizar templates disponíveis e ir adaptando, conforme as telas do seu site, sistema ou aplicativo.

Feito!

quinta-feira, 4 de agosto de 2022

Extensões úteis para desenvolvimento Web no Google Chrome

O presente post apresenta as extensões que tenho no Google Chrome, que considero útil para o desenvolvimento Web.

CSS Peeper: É um visualizador de CSS adaptado para designers.

Selenium IDE: Facilita a familiarização com o Selenium WebDriver.

Material Icons for GitHub: Substitua os ícones de arquivo ou diretório no navegador de arquivos GitHub por ícones que representam o tipo de arquivo que estiver utilizando na ferramenta.

Windows Resizer: Redimensione a janela do browser para emular diversas resoluções de tela.

StackOverflow Power Use: Destaca a melhor resposta no topo que agiliza no tempo de pesquisa por uma solução para determinado problema que pesquisou.

Clean Cache: Limpe seu cache e dados de navegação com um único clique de botão.

ColorZilla: Seletor de cores.

Designer Tool: Meça e alinhe elementos na página web no Chrome.

ModHeader: Modifica cabeçalhos de solicitação e resposta HTTP.

BrowserStack: Testar a página web em qualquer browser desktop ou mobile.

Existem outras extensões de desenvolvimento Web no Google Chrome, apenas compartilhei as extensões que costumo utilizar no Chrome.Caso utilize alguma extensão que não foi mencionada neste post, escreva nos comentários.

Feito!

quarta-feira, 3 de agosto de 2022

Extensões úteis de desenvolvimento no VSCode

O presente post apresenta as extensões que tenho no VSCode, que considero útil para o desenvolvimento de projetos em PHP, JS, Java, React Native, Flutter, entre outros que são na formatação de codificação e comunicação de containers dos ambientes Docker.

Auto Rename tag: Aumenta a produtividade na codificação através da IA Tabnine.

Path Intellisense: Autocompletar nomes de arquivos nos diretórios, onde está o projeto.

Prettier: Deixa o código fonte formatado, conforme o padrão estabelecido pelo time de desenvolvimento.

Quokka: Exibe o ícone das extensões dos arquivos.

Beautify: Habilita a execução de JavaScript de modo a customizar.

Live Server: Servidor local interno no VSCode para páginas estática (HTML, CSS, JS).

Javascript (ES6) Code Snippets: Atalhos de autocompletar do JavaScript.

ESLint: Verifica se código está no padrão, conforme a documentação da linguagem JavaScript exige.

Paste JSON as Code: Formata o JSON.

Remote – Containers: Comunica com os containers Docker/Podman.

GitLens: Visualiza o histórico de commits já realizado.

Markdown All in One: Formata e visualiza códigos em markdown.

Bookmarks: Marcador de linhas, como por exemplo TODOs no código.

Settings Sync: Sincroniza configurações do repositório remoto do GitHub, Bitbucket, Gitlab.

PHP IntelliSense: Autocompletar e verifica se está de acordo com a documentação do PHP.

Language Support for Java: Formata código Java.

Debugger for Java: Debugg de códigos Java.

Test Runner for Java: Execução de testes unitários e integrados.

Maven for Java: Gerenciador de dependências de bibliotecas do Java.

Project Manager for Java: Gerenciador de projetos Java.

React Native Tools: Integração de comandos e debug do React Native.

Flutter: Suporte e debug da linguagem Dart e Flutter.

Vistual Studio IntelliCode: Identifica a linguagem pela extensão do arquivo.

Existem outras extensões de desenvolvimento no VSCode, apenas compartilhei as extensões que costumo utilizar no VSCode. Caso utilize alguma extensão que não foi mencionada neste post, escreva nos comentários.

Feito!

terça-feira, 2 de agosto de 2022

Configurando o Netbeans no modo Dark

Por padrão, o Netbeans vem com fundo branco, mas a maioria dos desenvolvedores preferem utilizar o modo Dark, segue os procedimentos para fazer o modo Dark.

Com o Netbeans aberto, segue:

No menu Tools>Options

Em Fonts & Colors, selecione o Profile "FlatLaf Dark"

Clique no botão "Apply"

Se quiser todo o Netbeans em modo Dark

No menu Tools>Options

Em Apperarance, na aba "Look and Feel", selecione no campo Prereded look and feel "FlaLaf Dark".

Clique no botão "Apply"

Nessa opção irá precisar reiniciar o Netbeans, inclusive irá aparecer um alerta sobre isso.

Feito!

segunda-feira, 1 de agosto de 2022

Instalando o Netbeans no Linux (qualquer distro)

Netbeans é uma IDE (Ambiente de Desenvolvimento Integrado) gratuito e de código aberto, é mais popular para a linguagem Java no desenvolvimento de aplicação desktop, por facilitar a construção das interfaces no drag and drop dos componentes gráficos. Porém, também tem suporte outras linguagens, como C, C++, PHP, Groovy, Ruby.

O Netbeans é multiplataforma, isto é, pode ser instalado em Windows, GNU/Linux, macOS.

O presente post explica a instalação do Netbeans no GNU/Linux (qualquer distro), pelo script oficial.

Até a data de publicação deste post, a versão atual do Netbeans é 14, no entanto, verifique a versão atual e adapte a URL, conforme a versão do Netbeans dos procedimentos a seguir:

Procedimentos de instalação do Netbeans

Premissas: Ter o Java (openJDK) instalado

Debian e derivados

$ sudo apt install openjdk-X-jdk --yes

Substitua o X pela versão atual disponibiliza no repositório. Verifique
$ apt search openjdk

JDK no modo manual que serve para qualquer distro

Instalando e configuração do Java e PATH

$ wget -c "https://dlcdn.apache.org/netbeans/netbeans-installers/14/Apache-NetBeans-14-bin-linux-x64.sh"

$ chmod +x Apache-NetBeans-14-bin-linux-x64.sh

$ ./Apache-NetBeans-14-bin-linux-x64.sh

Após executar o script Shell, segue os screenshots para ter uma base.

Clique no botão "Next"

Marque o termo da licença de uso e clique no botão "Next"

Confirme o diretório que será instalado o Netbeans e se o JDK está no diretório correto que instalou, após confirmar, clique no botão "Next"

Clique no botão "Install" e aguarde o processo de instalação concluir

Instalação do Netbeans concluída

Caso por algum motivo quer desinstalar o Netbeans, segue a próxima seção

Desinstalar o Netbeans

Abre o terminal e acesse o diretório onde instalou o Netbeans, por default é /home/<usuario>/netbeans-numero-versao

Nesse diretório que acessou, onde foi instalado o Netbeans, tem o script uninstall.sh que faz o processo de desintalação completa do Netbeans

$ ./uninstall.sh

Confirme no botão "Unistall"

Netbeans desinstalado com sucesso

Feito!

terça-feira, 19 de julho de 2022

Conhecendo o framework Lowdefy

O que é Lowdefy?

Lowdefy é um framework Low-Code para desenvolver aplicações web, paineis administrativo, Dashboards e aplicações CRUD de forma fácil e rápida, através de arquivo YAML.

Instalação e Configuração do Lowdefy no ambiente Docker

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

Dockerfile

$ curl -LO https://raw.githubusercontent.com/lowdefy/lowdefy-example-docker/main/config-in-image/Dockerfile

Criar o arquivo .env com as variáveis LOWDEFY_SERVER_BASE_PATH, LOWDEFY_SERVER_BUILD_DIRECTORY, LOWDEFY_SERVER_PUBLIC_DIRECTORY, LOWDEFY_SERVER_PORT

LOWDEFY_SERVER_BASE_PATH: É um identificado do servidor que foi instalado o Lowdefy. http://IP/<base-path>/<page-id> ao invés do default http://IP/<page-id>

LOWDEFY_SERVER_BUILD_DIRECTORY: É o diretório de configuração do Lowdefy. O default é ./build ou /home/nome/lowdefy/build.

LOWDEFY_SERVER_PUBLIC_DIRECTORY: É o diretório público, onde fica as páginas estática. O default é ./public ou /home/nome/lowdefy/public.

LOWDEFY_SERVER_PORT: É a porta utilizada no servidor. Por default é a porta 3000.

Criar o arquivo .dockerignore com o conteúdo abaixo:

.lowdefy/**
.env

Buildar a imagem no Dockerfile

$ docker build -t <tagNomeQualquer> .

Subir o container da imagem buildada para testar

$ docker run -p 3000:3000 <tagNomeQualquer>

Acesse no browser http://localhost:3000

Uma vez testado, estando OK, pare o container e organizaremos no arquivo docker-compose.yml na imagem container criada anteriormente.

Arquivo docker-compose.yml

$ curl -LO https://raw.githubusercontent.com/lowdefy/lowdefy-example-docker/main/config-in-image/docker-compose.yaml

PS: Esteja atento na indentação do arquivo YAML e o arquivo Dockerfile deve estar no mesmo diretório do arquivo docker-compose.yml

$ docker-compose up -d

Aguarde subir o ambiente, após concluir, acesse no browser http://localhost:3000

Agora, escreve o arquivo YAML no mesmo diretório onde estão os arquivos Dockerfile e docker-compose.yml. Nesse arquivo YAML que criar corresponde a aplicação web por meio de parâmetros específicos, consulte a documentação para certificar para o seu uso.

Referências

https://lowdefy.com/

https://docs.lowdefy.com/tutorial-start

Feito!

segunda-feira, 18 de julho de 2022

Conhecendo a ferramenta Low-Code Saltcorn

O que é Saltcorn?

Saltcorn é uma plataforma Low-Code e No-Code, de código aberto para construir aplicações web com base inicial do banco de dados. Assim as telas do sistema é construída por meio de drag-and-drop.

Pode utilizar o cloud já hospedado, sendo que a sua aplicação ficará no subdomínio da Saltcorn, mas pode instalar na sua máquina ou no seu servidor.

Recomendo instalar o Saltcorn no ambiente Docker, por ser mais simples e rápido.

Instalação e configuração do Saltcorn no ambiente Docker

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

Arquivo docker-compose.yml

$ curl -LO https://raw.githubusercontent.com/saltcorn/saltcorn/master/deploy/examples/test/docker-compose.yml

Arquivo .env

$ curl -LO https://raw.githubusercontent.com/saltcorn/saltcorn/master/deploy/examples/test/.env

Altere o conteúdo do arquivo .env na variável SALTCORN_SECRET por uma string base64.

$ echo "UmaPalavraQualquer" | base64

Coloque o resultado gerado do comando acima na variável SALTCORN_SECRET no arquivo .env

$ docker-compose up -d

Aguarde subir o ambiente, após concluir, acesse no browser http://IP:3000

Pronto, agora faça os seus testes de criação de uma aplicação web com o Saltcorn na técnica Low-Code e Now-Code.

Referências

https://saltcorn.com/

Feito!

sábado, 16 de julho de 2022

Conhecendo o Appsmith

O que é Appsmith?

Appsmith é uma plataforma Low-Code e Now-Code, de código aberto para construir aplicações web, como Dashboards, Paineis Administrativos e muitos outros, de forma 10x mais rápido do que no tradicional.

Pode utilizar no cloud já hospedado com plano gratuito e premium, mas como também pode instalar na sua máquina ou no seu servidor.

Recomendo instalar o Appsmith no ambiente Docker, por ser mais simples e rápido.

Tem suporte de integrações aos bancos relacionais e noSQL (não relacionais), como também outras integrações como Elasticsearch, planilha do Google e API REST.

Instalação e configuração do Appsmith no ambiente Docker

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

Arquivo docker-compose.yml

$ curl -LO https://raw.githubusercontent.com/appsmithorg/appsmith-docs/v1.3/.gitbook/assets/docker-compose.yml

$ docker-compose up -d

Aguarde subir o ambiente, após concluir, acesse no browser http://IP ou https://seudominio.com

Pronto, agora faça os seus testes de criação de uma aplicação web com Appsmith com a técnica Low-Code e Now-Code.

Referências

https://www.appsmith.com/

Feito!

sexta-feira, 15 de julho de 2022

Conhecendo o Tooljet

O que é Tooljet?

Tooljet é plataforma Low-Code e No-Code para criação de aplicações web em JavaScript.

O Tooljet pode utilizar no cloud já hospedado com plano gratuito e premium, mas como é de código aberto, é possível executar na sua máquina local ou no seu próprio servidor.

Recomendo instalar o Tooljet no ambiente Docker, por ser mais simples e rápido.

Tem suporte a integrações aos SGBDs relacionais e noSQL (não relacionais). Também outras integrações como o Elastisearch, Planilha do Google e API REST.

Instalação e configuração do Tooljet no ambiente Docker

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

Arquivo docker-compose.yml com o SGBD PostgreSQL

$ curl -LO https://raw.githubusercontent.com/ToolJet/ToolJet/main/deploy/docker/docker-compose-postgres.yaml

Renomear o arquivo para docker-compose.yml

$ mv docker-compose-postgres.yaml docker-compose.yaml

Criar o diretório para o volume do banco de dados

$ mkdir postgres_data

Arquivo .env de exemplo com as parametrizações

$ curl -LO https://raw.githubusercontent.com/ToolJet/ToolJet/main/deploy/docker/.env.example

Renomear o arquivo para .env

$ mv .env.example .env

Adicionar no arquivo .env o endereço IP ou o domínio do servidor na variável TOOLJET_HOST

Exemplo:

TOOLJET_HOST=IP_SERVIDOR

OU

TOOLJET_HOST=https://seudominio.com
$ docker-compose up -d

Aguarde subir o ambiente, após concluir, execute os seeds de dados iniciais para o funcionamento do sistema.

$ docker-compose run server npm db:seed

As credenciais de acesso por padrão são: dev@tooljet.io/password

Acesse no browser pelo IP ou seu domínio que definiu no arquivo .env em TOOLJET_HOST, que corresponde ao seu servidor.

Referências

https://www.tooljet.com/

Feito!

quinta-feira, 14 de julho de 2022

Executando o Kubernetes na máquina local com o Kind

O presente post, é explicar o que é Kubernetes e os procedimentos de instalação e configuração da ferramenta Kind que utiliza containers Docker e assim simular um cluster Kubernetes local.

O que é Kubernetes e para que serve?

Kubernetes ou "K8s" é uma ferramenta de orquestração de conteiners open source que automatiza a implantação, o dimensionamento e a gestão de aplicações em conteiners. Foi originalmente projetado pelo Google e agora é mantido pela Cloud Native Computing Foundation.

Instalando e configurando o Kind

Como o Kind utiliza o Docker, logo precisa ter o Docker instalado, caso ainda não tenha, segue o procedimento para instalar o Docker em qualquer distro GNU/Linux ou WSL2 no Windows 10/11.

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

Adicionar o usuário logado no grupo docker

Para que possa ser executados comandos Docker com usuário regular, é necessário adicionar no grupo docker.

$ sudo usermod -aG docker $(whoami)

Até a data de publicação deste post, a versão corrente do Kind é 0.14.0 e do Go é 1.17. Em stableVersion, substitua pela versão corrente, conforme a data que estiver seguindo este tutorial.

Antes é necessário instalar a linguagem Go para poder seguir os procedimentos seguintes na instalação do Kind.

PS: Escolhe uma das duas formas para instalar o Kind.

Instalando Kind via binário


$ curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.14.0/kind-linux-amd64
$ chmod +x ./kind
$ mv ./kind /opt/kind

Instalando Kind via Go


$ curl https://dl.google.com/go/go1.17.7.linux-amd64.tar.gz
$ tar -xvf go1.17.7.linux-amd64.tar.gz
$ sudo mv go /usr/local

Criar a variável de ambiente GOROOT e adicionar no PATH

$ export GOROOT=/usr/local/go
$ export GOPATH=$HOME/Projetos
$ export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

Feche e abre novamente o terminal e digite go version

$ go install sigs.k8s.io/kind@{{< stableVersion >}}
$ go install sigs.k8s.io/kind@v0.14.0
$ sudo chmod +x ./kind && sudo mv ./kind /usr/local/bin/

Criar o cluster


$ kind create cluster --name
$ kubectl cluster-info --context kind-<nome-cluster>

Listar os clusters criados

$ kind get nodes

Deleter o cluster criado

$ kind delete <nome-cluster>

Instalação do Kubectl


Para utilizar o kubectl, execute os procedimentos abaixo:

$ curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
$ chmod +x kubectl && sudo mv kubectl /usr/local/bin/
$ kubectl get nodes

Criar o arquivo kind.yml para criar os clusters Kubernetes

$ vim kind.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1.14.0

nodes:
 - role: controle-plane
 - role: worker
 - role: worker
 - role: worker
 - role: worker
$ kind create cluster --name <nome-cluster> --config=kind.yml

Listar os clusters

$ kubectl get nodes

Exemplo prático de execução do Rabbitmq no Kubernetes na máquina local

Criar o arquivo manifest.yml do Rabbitmq de exemplo

$ vim manifest.yml
applications:
- name: rabbitmq
  memory: 256M
  instances: 2
  path: .

Executar o arquivo manifest.yml

$ kubectl apply -f rabbitmq.yml

Verificar a execução

$ kubectl get all

Fazer o redirecionamento de porta para acessar no browser

$ kubectl port-forward service/rabbitmq-service 15672

Acesse no browser http://localhost:15672 acessar a tela do Rabbitmq

Para quem ainda não sabe, o Rabbitmq é uma ferramenta de mensageria de código aberto, bastante utilizada em microserviços.

Referências

https://kind.sigs.k8s.io/

https://kubernetes.io/docs/tutorials/stateless-application/guestbook/

Feito!

quarta-feira, 13 de julho de 2022

Configurando backup do diretório local para Dropbox

O presente post, é explicar a configuração do Rclone e sincronismo com o Dropbox.

O Rclone é uma ferramenta de linha de comando gratuito e de código aberto para sincronizar arquivos e diretórios de seu computador para serviços de armazenamento em nuvem, como por exemplo: Amazon Storage S3, Google Drive, Dropbox, Nextcloud, Microsoft OneDrive, Digital Ocean Spaces, Mega e muitos outros.

Instalando o Rclone via script no GNU/Linux, FreeBSD, macOS


$ curl https://rclone.org/install.sh | sudo bash

Configurando a sincronização do Rclone com o Dropbox


$ rclone config
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> 

Tecle n (para iniciar uma nova configuração e digite um nome de sua preferencia para o cloud, no meu caso digitei bkp_dropbox).

name> bkp_dropbox

Digite o número correspondente ao Dropbox

Storage> 
Dropbox App Key - leave blank normally.
app_key>
Dropbox App Secret - leave blank normally.
app_secret>
Remote config
Please visit:

Acesse o seu Dropbox e pegue a URL com o seu cliente ID (token), como demonstrado abaixo.

https://www.dropbox.com/1/oauth2/authorize?client_id=XXXXXXXXXXXXXXX&response_type=code

If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth Log in and authorize rclone for access Waiting for code...

Autorizando Rclone no DropBox

Realizar Tunelamento ssh para porta 53682 para pegar o código do DropBox

$ ssh root@IP -D 53682

Configurar Proxy

Adicionar o IP e porta 53682 na configuração de Proxy do browser.

Servidor Socks: localhost 53682

No broser acesse http://localhost:53682

Volta ao terminal na aba que estava configurando o Rclone

--------------------
[remote]
app_key =
app_secret =
token = 
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y

Confirme com y

Verificando Arquivos


Listar arquivos da raiz

Aaltere remote para o nome cadastrado, nesse tutorial: bkp_dropbox.

rclone lsd remote:

Listar arquivos da pasta corrente

rclone ls remote:

Copiar arquivos

Altere o nome do diretório que criou no Dropbox no sincronismo, nesse tutorial: backup.

rclone copy /home (Origem) remote:backup (Destino)

Sincronizar

Nesse caso, irá sincronizar o diretório /home da máquina para Dropbox. Altere o diretório origem que deseja sincronizar com Dropbox.

rclone sync source:/home dest:/backup/

Ajuda

Lista de comandos do Rclone, verifique em: https://rclone.org/commands/


Documentacao do Rclone

Para saber mais sobre o Rclone, verfique em: https://rclone.org/docs/

Sincronismo automático por meio do script Shell via crontab

Para facilitar vamos criar os scripts abaixo com permissão 755

Para Backup
$ vim /opt/backup.sh
echo "Sync do computador para a nuvem - Upload"
echo "*** Sincronizando do computador para a nuvem - UP ***" >> /var/log/rclone-`date +%d-%m-%Y`.log
rclone sync /mnt/backup/ bkp_dropbox:/backup/ --log-file=/var/log/rclone-`date +%d-%m-%Y`.log
echo "====================================" >> /var/log/rclone-`date +%d-%m-%Y`.log


Para Restaurar
$ vim /opt/restaurar.sh
echo "Sync da nuvem para o computador - Download"
echo "*** Sincronizando da nuvem para o computador - DOWN ***" >> /var/log/rclone-`date +%d-%m-%Y`.log
rclone -v sync bkp_dropbox:/backup/ /mnt/backup/ --log-file=/var/log/rclone-`date +%d-%m-%Y`.log
echo "====================================" >> /var/log/rclone-`date +%d-%m-%Y`.log

Para agendar o backup no crontab:

Nesse caso, será agendado o backup todos os dias às 23:00 hrs

$ crontab -e
00 23 * * * /opt/backup.sh

Feito!

sexta-feira, 8 de julho de 2022

Conhecendo a plataforma ERP Odoo

O objetivo deste post, é explicar os procedimentos de instalação e configuração do Odoo no ambiente Docker.

Odoo é um Sistema de Gestão Empresarial (ERP) que você precisa para ajudar a administrar sua empresa e dispõe aplicativos integrados, como por exemplo CRM. Além disso, é open source com licença GNU/GPLv3.

Instalação e Configuração

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

$ mkdir $HOME/odoo
$ cd $HOME/odoo
$ curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-odoo/master/docker-compose.yml > docker-compose.yml

PS: Para utilizar no servidor de produção, é recomendado é recomendado alterar a variável ALLOW_EMPTY_PASSWORD de "yes" para "no" e definir um password seguro para o SGBD PostgreSQL utilizado no Odoo e o usuário administrador de acesso ao Odoo.

Adicionar as variáveis ODOO_EMAIL e ODOO_PASSWORD para um nome de usuário e password que irá gerenciar o Odoo.

$ docker-compose up -d

Aguarde subir o ambiente, após concluir, abre o browser e acesse http://localhost

No primeiro acesso, o username/password default são: user@example.com/bitnami. Caso tenha alterado o username/password default no arquivo docker-compose.yml, então utilize o que você definiu.

Agora pode experimentar os benefícios do ERP Odoo.

Feito!

quinta-feira, 7 de julho de 2022

Instalando e Configurando o SonarQube no ambiente Docker

O objetivo deste post, é explicar os procedimentos de instalação e configuração do SonarQube no ambiente Docker.

O que é SonarQube?

SonarQube é um software open-source que se propõe a ser a central de qualidade do seu código-fonte, lhe possibilitando o controle sobre um grande número de métricas de software, e ainda apontando uma série de possíveis bugs.

Instalação e configuração

A premissa é ter o Docker e Docker-Compose instalados, caso ainda não tenha, verifique Instalando Docker e Docker Compose no Linux (qualquer distro) ou Instalando Docker no Windows 10

$ mkdir $HOME/sonarqube
$ cd $HOME/sonarqube

Executar no HOST antes

Para que o nó do Elastiscsearch seja inicializado com sucesso, pois o SonarQube utiliza o Elasticsearch na indexação nas buscas.

Para verificar a vm.max_map_count atual, execute o seguinte comando:

$ cat /proc/sys/vm/max_map_count

Se a contagem de mapas não for 262144, siga estas etapas:

1. Atualize o arquivo /etc/sysctl.conf com o seguinte valor: vm.max_map_count=262144

2. Execute o comando a seguir para aplicar as alterações sem reiniciar o nó.
$ sudo sysctl -q -w vm.max_map_count=262144

$ curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-sonarqube/master/docker-compose.yml > docker-compose.yml

PS: Para utilizar no servidor de produção, é recomendado alterar a variável ALLOW_EMPTY_PASSWORD de "yes" para "no" e definir um password seguro para o SGBD PostgreSQL utilizado no SonarQube e o usuário administrador de acesso ao SonarQube.

Adicionar as variáveis SONARQUBE_USERNAME e SONARQUBE_PASSWORD para um nome de usuário e password que irá gerenciar o SonarQube.

$ docker-compose up -d

Aguarde subir o ambiente, após concluir, abre o browser e acesse http://localhost

No primeiro acesso, o username/password default são: admin/bitnami. Caso tenha alterado o username/password default no arquivo docker-compose.yml, então utilize o que você definiu.

Após o acesso do SonarQube, pode inserir as métricas de análise do código para o seu projeto e integrar com o SonarLint na IDE que estiver utilizando no desenvolvimento do seu projeto, também no CI/CD (Continuos Integrations/Continuos Delivery).

O que é CI/CD?

CI/CD (Continuous Integration/Continuous Delivery), é um método para entregar aplicações com frequência aos clientes. Para isso, é aplicada a automação nas etapas do desenvolvimento de aplicações.

Exemplos de ferramentas que fazem CI/CD: Jenkins, Bamboo, GitHub Actions, CircleCI.

Utilize a ferramenta CI/CD a sua escolha para o seu projeto. É importante ressaltar que essas ferramentas de CI/CD integram com o Git com as plataformas GitHub, Bitbucket e Gitlab.

Feito!