Dev & EngARTIGO

10 ferramentas escritas em Go que todo desenvolvedor precisa conhecer

Gustavo Henrique apresenta neste artigo, 10 ferramentas escritas em Go que todo desenvolvedor precisa conhecer.

10 ferramentas escritas em Go que todo desenvolvedor precisa conhecer
Imagem: Gustavo Henrique

Neste artigo apresentarei 10 incríveis ferramentas que me ajudam bastante no dia a dia. Por serem escritas em Go↳Go23 conteúdosEntendendo o Green Tea GC do Go 1.26Dev (Back & Front) · mai 2026Função recursiva em Go para acessar valores em mapas aninhadosDev (Back & Front) · set 2025Publicando projeto desenvolvido em Golang em um server grátisDev (Back & Front) · mar 2025Ver tudo em Dev (Back & Front) →, a instalação se resume em executar um arquivo e todas elas funcionam no Linux↳Linux34 conteúdosKali Linux em um Servidor VPS: como, quando e por que usar?DevSecOps · dez 2024Construindo um Windows Service ou Linux Daemon com Worker Service & .NET Core – Parte 2Dev (Back & Front) · jul 2020Criando uma WebApi utilizando .NET, Linux e VSCodeDev (Back & Front) · ago 2019Ver tudo em DevSecOps →, MacOS e Windows.

1. Caddy

Caddy é um servidor web fácil de configurar e robusto, com ótima performance para produção. Por padrão, Caddy serve arquivos estáticos que estão na pasta atual. Então, se ele for executado dentro de $HOME/Downloads, todo o conteúdo da pasta ficará acessível na rede via protocolo HTTP, usando a porta 2015.

Já substituí o Nginx por ele há alguns anos e não me arrependo. Gosto de usar como proxy para aplicações web e em containers de aplicações SPA (VueJS e ReactJS).

bash
cd $HOME/Downloads
caddy browse

2. Ngrok

Ngrok cria uma URL pública apontando para uma porta específica na máquina onde foi executado. Há diversos casos de uso para ele. Por exemplo, demonstrar uma aplicação web enquanto está sendo desenvolvida ou permitir acesso externo via SSH mesmo onde há um firewall bloqueando. Ele é uma solução para máquinas que não possuem IP público ou estão atrás de um NAT.

Seu uso é bem simples. Basta especificar o protocolo (http ou tcp) e a porta:

bash
ngrok http 3000

Ele também fornece uma interface web com informações e estatísticas das requisições recebidas.

3. Ctop

O Ctop fornece uma visão geral e resumida em tempo real das métricas de utilização dos containers. É similar ao comando top, que mostra métricas de utilização da máquina, porém, mostra as métricas dos containers.

bash
ctop

# executando como container
docker run --rm -ti -v /var/run/docker.sock:/var/run/docker.sock quay.io/vektorlab/ctop:latest

4. GoTTY

GoTTY permite compartilhar um terminal como uma aplicação web. Se usado em conjunto com o ngrok, fornece um terminal de acesso pelo browser como alternativa à uma conexão SSH.

Se você utiliza uma máquina Linux ou MacOS sem SSH Server e gostaria de acessar remotamente, GoTTY é a solução!

bash
gotty -w bash  # utiliza como porta padrão 8080

5. Mattermost Server

Mattermost é um aplicativo de mensagens parecido com o Slack. O server fornece um cliente web, mas no site do produto é possível fazer o download de outros clientes para Android, iOS, Windows, macOS e Linux.

Quando falarem sobre Slack vs Discord vs Rocket Chat, você pode incluir o Mattermost e prolongar a discussão.

bash
docker run -d -p 8065:8065 mattermost/mattermost-preview

6. Minio

Minio é um servidor de armazenamento de objetos distribuídos de alto desempenho, projetado para infraestrutura de nuvem privada em larga escala. É como se fosse um Amazon S3 ou Google Cloud Storage privado.

Nunca utilizei realmente. Só testei, mas achei muito interessante.

javascript
export MINIO_ACCESS_KEY="AKIAIOSFODNN7EXAMPLE"
export MINIO_SECRET_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
./minio server $HOME

# executando como container
docker run -p 9000:9000 -v $HOME:/data -e "MINIO_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE" -e "MINIO_SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" minio/minio server /data

7. Piknik

Piknik permite copiar/colar conteúdo pela rede, compartilhando o conteúdo da área de transferência (clipboard). Ele possui plugin para o Visual Studio Code, permitindo que um desenvolvedor utilize o editor de texto para copiar e colar trechos de código.

Utilizo muito na minha casa quando preciso copiar arquivos entre MacOS, Windows e Linux. Também uso para transferir texto entre editores VS Code rodando no Mac e no Linux.

bash
# configurando e rodando um cliente/servidor (híbrido) na mesma máquina
piknik -genkeys -password
cat > ~/.piknik.toml <<EOF
Listen    = "0.0.0.0:8075"	 # Coloque a porta que o servidor vai ficar escutando
Connect   = "127.0.0.1:8075"
Psk       = "dab9ffb1e63734ea5c5711b578a7de6a94ef6acc14e2d701a05daafcdb49d6f1"
SignPk    = "5eba350eb0110aec3e730d58e68667038e1db21f400dcce3b5791c98b7c48b6e"
SignSk    = "eb17d90e8764d10e26c164148a305c592308581c1b075f0cbcdf7bac82bc1de1"
EncryptSk = "66ca87dad4ccd4fb6977165028615feaa65684a08195eeb21d4b8a5db82e67c1"
EOF
piknik -server

Qualquer máquina na rede pode atuar como cliente:

bash
# configurando um cliente utilizando o mesmo password usado no servidor
piknik -genkeys -password
cat > ~/.piknik.toml <<EOF
Connect   = "192.168.0.5:8075"  # Coloque o IP ou hostname do servidor
Psk       = "dab9ffb1e63734ea5c5711b578a7de6a94ef6acc14e2d701a05daafcdb49d6f1"
SignPk    = "5eba350eb0110aec3e730d58e68667038e1db21f400dcce3b5791c98b7c48b6e"
SignSk    = "eb17d90e8764d10e26c164148a305c592308581c1b075f0cbcdf7bac82bc1de1"
EncryptSk = "66ca87dad4ccd4fb6977165028615feaa65684a08195eeb21d4b8a5db82e67c1"
EOF

Para copiar um conteúdo e disponibilizar para todos os clientes:

bash
piknik -copy < /meu/arquivo.txt

Para colar o conteúdo copiado:

bash
piknik -paste > /arquivo/copiado.txt

8. Pgweb

Pgweb é um cliente web para o banco de dados↳Banco de dados134 conteúdosSQL ou NoSQL: eis a questão!!Data · mar 2020Banco de dados: como organizar e dar segurança para milhões de dados de loteriasData · mai 20215 serviços gratuitos na cloud para bancos de dados PostgresData · fev 2025Ver tudo em Data → PostgreSQL. Basta executar o pgweb passando as informações para conectar ao banco de dados e a porta para acesso via browser.

É rápido, leve e muito prático.

bash
pgweb --listen 8899 --url postgres://admin:password@127.0.0.1:5432/mydb?sslmode=disable

9. pRest

pRest fornece uma API Rest para manipular o banco de dados PostgreSQL.

bash
PREST_HTTP_PORT=9191 \
PREST_PG_HOST=127.0.0.1 \
PREST_PG_USER=admin \
PREST_PG_PASS=password \
PREST_PG_DATABASE=mydb \
PREST_PG_PORT=5432 \
PREST_JWT_DEFAULT=false \
PREST_DEBUG=true \
prest

Para executar um SELECT * FROM table:

curl http://localhost:9191/database/schema/table

10. Terraform

Terraform é uma ferramenta popular DevOps para configurar uma infraestrutura de servidores via código, independente do provedor de cloud. Funciona com a AWS, Google Cloud, Digital Ocean, dentre outros.

javascript
cat > example.tf <<EOF
provider "aws" {
  access_key = "ACCESS_KEY_HERE"
  secret_key = "SECRET_KEY_HERE"
  region     = "us-east-1"
}

resource "aws_instance" "example" {
  ami           = "ami-2757f631"
  instance_type = "t2.micro"
}
EOF
terraform init
terraform apply

Conclusão

Conversei com vários desenvolvedores e percebi que essas ferramentas são pouco conhecidas. Particularmente acho todas muito interessantes e elas me ajudam de mais no dia a dia de desenvolvimento de software.

E você? Já conhecia alguma delas? Conheceu agora e curtiu? Adicionaria mais alguma ferramenta à essa lista? Vamos trocar ideias nos comentários!

Engenheiro de software, empreendedor e adepto do desenvolvimento ágil de software, com foco em entregar valor rápido, fazendo certo a coisa certa, com o mínimo de esforço possível dada as restrições existentes, para obter o feedback dos usuários e melhorar continuamente o que foi desenvolvido.

Ver perfil →
Leia também