Sobre o projeto

doctl é a interface de linha de comando oficial da API da DigitalOcean. Ela expõe os recursos de nuvem da DigitalOcean por meio de subcomandos, de modo que a infraestrutura pode ser listada, criada e gerenciada a partir de um terminal em vez do painel de controle. Os grupos de comandos abrangem aplicações de 1 clique, detalhes da conta, apps, autenticação, saldo, histórico de cobrança, computação (infraestrutura como Droplets, domínios, IPs flutuantes, firewalls, balanceadores de carga e armazenamento em bloco), bancos de dados, faturas, clusters e configurações do Kubernetes, monitoramento (marcado como beta), projetos, registros de contêineres e VPCs. Um comando de completion gera scripts de autocompletar para o shell, e um comando de version informa a build instalada. As flags globais incluem um token de acesso, uma substituição da URL da API, um arquivo de configuração personalizado, um nome de contexto de autenticação, seleção de formato de saída entre text e json, um rastreamento de atividade de rede e saída detalhada. As opções de instalação incluem gerenciadores de pacotes como Homebrew no macOS, Snap, os repositórios do Arch Linux e do Fedora, e Nixpkgs, além de imagens do Docker Hub, arquivos de release pré-compilados do GitHub e compilação a partir do código-fonte com um ambiente Go. As versões beta são marcadas separadamente e podem ser instaladas com go install, compiladas a partir do código-fonte ou baixadas como arquivos pré-compilados; os gerenciadores de pacotes instalam apenas versões de disponibilidade geral. A autenticação usa um token de acesso da DigitalOcean criado no painel de controle. O comando auth init armazena as credenciais e cria o arquivo de configuração. Várias contas são suportadas por meio de contextos de autenticação nomeados, com um contexto padrão e a possibilidade de alternar ou substituir contextos por comando. A flag de token de acesso e a variável de ambiente se aplicam apenas ao contexto padrão. A configuração é armazenada em um arquivo config.yaml específico da plataforma, e os valores padrão das flags podem ser definidos nele usando o formato category.command.sub-command.flag, por exemplo, para alterar o usuário SSH padrão. Variáveis de ambiente como DIGITALOCEAN_CONTEXT e DIGITALOCEAN_ACCESS_TOKEN podem substituir configurações para uma sessão. O autocompletar do shell está disponível para Bash, ZSH e fish, embora não no Windows. Instruções de desinstalação são fornecidas para o Homebrew, incluindo a remoção do diretório de configuração. Exemplos no README mostram como listar e criar Droplets, atribuir um IP flutuante, criar um registro DNS A e conectar via SSH pelo nome do Droplet com um usuário opcional. O README também contém links para a documentação de referência completa e tutoriais da comunidade que abordam balanceadores de carga, firewalls de nuvem e armazenamento em bloco.