Murad Library
Murad LibraryREF-0412MD

Melhores programas CGI para usar em sites

Catalogued
Reading
23 min read

Pesquisa e análise: julho de 2026
Foco: aplicações e scripts baseados em CGI, FastCGI ou com modo CGI, úteis para sites pessoais, projetos Small Web/IndieWeb, infraestrutura, documentação, repositórios e serviços internos.


1. O que “CGI” significa aqui

CGI, ou Common Gateway Interface, é um padrão que permite ao servidor web executar um programa externo e usar sua saída como resposta HTTP.

Um programa CGI pode ser escrito em:

  • Perl;
  • Python;
  • Bash;
  • C;
  • C++;
  • Tcl;
  • Ruby;
  • praticamente qualquer linguagem capaz de ler variáveis de ambiente e escrever cabeçalhos HTTP na saída padrão.

O modelo clássico funciona assim:

  1. o visitante acessa uma URL;
  2. Apache, Lighttpd ou outro servidor inicia o programa;
  3. o programa recebe dados da requisição;
  4. gera HTML, JSON, texto, imagem ou outro conteúdo;
  5. encerra.

É uma arquitetura simples, transparente e muito alinhada ao espírito da Small Web. Porém, não é a melhor escolha para aplicações de tráfego intenso, porque o CGI tradicional cria um novo processo a cada requisição. Para cargas maiores, FastCGI, aplicações persistentes ou serviços em containers costumam ser melhores.


2. Resumo: os melhores para seu caso

Tier S — os que realmente valem instalar

PosiçãoProgramaMelhor usoParecer
1Fossil SCMForge leve, wiki, tickets, documentação e projetosO mais completo e interessante
2cgitInterface extremamente rápida para repositórios GitExcelente para git.teu.cool ou um Git alternativo
3ikiwikiWiki, blog e site estático editável via navegadorPerfeito para Small Web e conhecimento pessoal
4SmokePingMonitoramento de latência e perda de pacotesMuito útil para seus vários servidores
5WebminAdministração de servidores pelo navegadorPoderoso, mas deve ficar protegido
6Munin CGIMétricas e gráficos de servidores sob demandaBom complemento para monitoramento
7BugzillaRastreamento robusto de bugs e demandasÓtimo, mas pesado e visualmente antiquado

Tier A — úteis em situações específicas

ProgramaUso
gitwebNavegação simples em repositórios Git
BlosxomBlog minimalista baseado em arquivos
CGI::ApplicationCriar aplicações próprias em Perl CGI
CGI.pmManipular requisições e respostas CGI em Perl
fcgiwrapExecutar programas CGI através de FastCGI no Nginx
Mailman 2 CGIArquivo e administração de listas antigas
ViewVCNavegação web por repositórios CVS e Subversion
SARGRelatórios de uso de proxy Squid
WebalizerEstatísticas simples baseadas nos logs do servidor

Tier histórico — interessante para laboratório, não para produção

  • Matt’s FormMail;
  • WWWBoard;
  • Guestbook clássico;
  • contador gráfico de visitas;
  • scripts antigos de enquete;
  • diretórios de links em Perl;
  • scripts CGI encontrados aleatoriamente no HotScripts;
  • qualquer CGI sem manutenção, licença clara ou controle antispam.

Esses projetos têm valor histórico e estético, mas muitos foram escritos antes de práticas básicas modernas de segurança.


3. Ranking detalhado

1. Fossil SCM

Site: https://fossil-scm.org/
Documentação CGI: https://fossil-scm.org/home/doc/trunk/www/server/any/cgi.md
Licença: BSD 2-Clause
Linguagem: C
Banco: SQLite
Modo: servidor próprio, CGI, SCGI e outras opções

Fossil é muito mais do que um sistema de controle de versão. Em um único executável, ele reúne:

  • controle de versão distribuído;
  • interface web;
  • wiki;
  • fórum;
  • chat;
  • tickets;
  • documentação;
  • timeline;
  • usuários e permissões;
  • arquivos não versionados;
  • skins;
  • feeds;
  • sincronização entre servidores.

A própria documentação oficial informa que o Fossil pode funcionar como CGI em servidores web comuns e que os repositórios oficiais do projeto usam essa forma de implantação.

Por que ele é excelente

É provavelmente o software CGI mais impressionante ainda relevante. Ele representa exatamente a filosofia que combina com seus projetos: poucas dependências, banco SQLite, interface web integrada, portabilidade e controle total dos dados.

Ideias para você

  • criar um laboratório público em lab.teu.cool;
  • documentar os experimentos do 0xpblab;
  • hospedar projetos pequenos que não precisam de Forgejo;
  • manter documentação, wiki e tickets de cada servidor;
  • criar uma base de conhecimento técnica;
  • publicar changelogs e timelines;
  • usar um repositório Fossil como site completo.

Veredito

Instalaria. É diferente do Forgejo, não apenas uma duplicação inferior. O valor está no pacote integrado e minimalista.


2. cgit

Site oficial: https://git.zx2c4.com/cgit/
Descrição: interface web ultrarrápida para Git
Linguagem: C
Modo: CGI
Configuração principal: /etc/cgitrc

O cgit oferece:

  • histórico de commits;
  • visualização de árvores;
  • diffs;
  • blobs;
  • branches e tags;
  • downloads de arquivos;
  • arquivos compactados de releases;
  • feeds Atom;
  • URLs clonáveis;
  • cache de páginas;
  • descoberta automática de repositórios;
  • filtros de sintaxe e integração com scripts.

O projeto se define como um frontend web “hyperfast” para repositórios Git e usa cache para reduzir a carga sobre o servidor.

Por que usar se você já tem Forgejo

Forgejo é uma plataforma colaborativa completa. O cgit é outra coisa:

  • mais rápido;
  • muito mais simples;
  • quase sem distrações;
  • ideal para publicação somente leitura;
  • excelente para um domínio dedicado;
  • estética hacker, Unix e Small Web.

Ideias para você

  • criar code.pablo.space;
  • publicar mirrors somente leitura de projetos;
  • fazer uma “biblioteca de código” pública;
  • hospedar pequenos utilitários e scripts;
  • usar temas customizados Cozy/Catppuccin;
  • criar um frontend público para alguns repositórios sem expor toda a interface do Forgejo.

Veredito

Uma das melhores escolhas da lista. Para seus interesses, cgit tem mais personalidade do que mais uma instalação genérica de GitLab ou Gitea.


3. ikiwiki

Site: https://ikiwiki.info/
Documentação CGI: https://ikiwiki.info/cgi/
Linguagem: Perl
Licença: GPL
Armazenamento: arquivos e sistemas de versionamento

O ikiwiki é um compilador de wiki. Ele transforma páginas em HTML estático, mas pode usar CGI para edição online.

Recursos:

  • Markdown e outros formatos;
  • páginas estáticas;
  • edição pelo navegador;
  • histórico por Git;
  • wiki;
  • blog;
  • comentários;
  • RSS e Atom;
  • backlinks;
  • tags;
  • plugins;
  • templates;
  • integração com Git, Subversion e outros VCS.

O grande diferencial

A maior parte do site continua sendo estática. O CGI só entra quando é necessário editar, pesquisar ou executar ações específicas. Isso reduz carga, aumenta portabilidade e facilita backup.

Ideias para você

  • uma wiki pessoal em wiki.pablo.space;
  • documentação da runv.club;
  • um jardim digital;
  • uma enciclopédia dos seus servidores;
  • documentação pública dos projetos;
  • caderno de pesquisa do 0xpblab;
  • wiki de filmes, livros e história;
  • site IndieWeb versionado por Git;
  • manual operacional do Grupo Murad.

Veredito

Altamente recomendado. É uma combinação muito boa de site estático, Git e edição web.


4. SmokePing

Site: https://www.smokeping.org/
Documentação CGI: https://www.smokeping.org/smokeping/doc/smokeping_cgi.en.html
Código: https://github.com/oetiker/SmokePing
Linguagem: Perl
Armazenamento: RRDtool

SmokePing monitora:

  • latência;
  • jitter;
  • perda de pacotes;
  • estabilidade de links;
  • alterações no comportamento da rede;
  • disponibilidade indireta de hosts e serviços.

O daemon coleta os dados, enquanto o CGI apresenta a árvore de alvos e gera os gráficos. O projeto também oferece alertas e plugins de medição.

Ideias para sua infraestrutura

Monitorar continuamente:

  • skullserver;
  • forsaken;
  • Nyx;
  • Calisto;
  • servidores Proxmox;
  • VPSs;
  • sites do Portal IDEA;
  • instâncias GoToSocial;
  • Forgejo;
  • serviços por Tailscale;
  • links residenciais;
  • DNS;
  • gateways e túneis FRP.

SmokePing versus Uptime Kuma

Uptime Kuma responde: o serviço está no ar?

SmokePing responde:

  • a conexão está piorando?
  • a latência aumentou?
  • há jitter?
  • existe perda intermitente?
  • o problema ocorre em determinado horário?
  • o túnel está tecnicamente no ar, mas degradado?

Eles se complementam.

Veredito

Instalaria. É especialmente útil no seu cenário com múltiplos servidores e túneis.


5. Webmin

Site: https://webmin.com/
Documentação: https://webmin.com/docs/
Código: https://github.com/webmin/webmin
Linguagem predominante: Perl

Webmin é um painel de administração para sistemas Unix-like.

Pode administrar:

  • usuários;
  • serviços;
  • systemd;
  • cron;
  • discos;
  • RAID;
  • LVM;
  • firewall;
  • Fail2ban;
  • SSH;
  • Apache;
  • Nginx;
  • Postfix;
  • Dovecot;
  • MySQL;
  • PostgreSQL;
  • DNS;
  • backups;
  • logs;
  • atualizações;
  • compartilhamentos;
  • vários servidores.

Sua arquitetura histórica usa extensivamente programas .cgi.

Pontos fortes

  • extremamente completo;
  • continua recebendo atualizações;
  • muitos módulos;
  • funciona bem em servidores tradicionais;
  • facilita tarefas que seriam feitas manualmente no terminal.

Pontos fracos

  • superfície de ataque grande;
  • interface administrativa poderosa demais para ficar pública;
  • pode criar uma falsa sensação de domínio técnico;
  • alterações automáticas podem conflitar com configurações feitas à mão.

Como usar com segurança

  • nunca deixar aberto diretamente na internet;
  • acessar por Tailscale, VPN ou rede privada;
  • autenticação forte;
  • limitar por firewall;
  • manter atualizado;
  • evitar instalar em todo servidor sem necessidade;
  • documentar quais arquivos ele altera.

Veredito

Útil, mas exige disciplina. É uma ferramenta administrativa, não um brinquedo para expor em subdomínio público.


6. Munin com CGI/FastCGI

Site: https://munin-monitoring.org/
Documentação CGI HTML: https://guide.munin-monitoring.org/en/latest/reference/munin-cgi-html.html
Documentação CGI Graph: https://munin.readthedocs.io/en/stable-2.0/reference/munin-cgi-graph.html

Munin coleta e apresenta métricas de sistemas e serviços.

Pode monitorar:

  • CPU;
  • memória;
  • discos;
  • carga;
  • processos;
  • tráfego;
  • interfaces;
  • Nginx;
  • Apache;
  • MySQL;
  • PostgreSQL;
  • mail queues;
  • Docker;
  • sensores;
  • UPS;
  • latência;
  • praticamente qualquer métrica representável numericamente.

munin-cgi-html e munin-cgi-graph podem gerar páginas e gráficos sob demanda, tanto em CGI quanto em FastCGI.

Por que ainda considerar Munin

Prometheus e Grafana são mais flexíveis, mas Munin é muito mais simples. Para alguns servidores, instalar um munin-node e receber gráficos automaticamente é suficiente.

Ideias para você

  • painel técnico de todos os servidores;
  • métricas simples sem construir dashboards;
  • histórico de uso do MySQL;
  • consumo dos containers;
  • fila de e-mails;
  • espaço de disco;
  • carga dos serviços do Portal IDEA.

Veredito

Bom para monitoramento pragmático. Menos moderno, mas também menos trabalhoso que uma stack completa.


7. Bugzilla

Site: https://www.bugzilla.org/
Documentação: https://bugzilla.readthedocs.io/en/latest/
Versão estável documentada em 2026: 5.2
Linguagem: Perl
Arquitetura: CGI

Bugzilla é um dos sistemas de rastreamento de bugs mais tradicionais e completos.

Recursos:

  • produtos e componentes;
  • estados e workflows;
  • campos personalizados;
  • dependências;
  • prioridades;
  • anexos;
  • comentários;
  • buscas avançadas;
  • relatórios;
  • permissões;
  • notificações;
  • APIs;
  • grupos;
  • dashboards.

Onde ele faz sentido

  • equipes técnicas;
  • QA;
  • acompanhamento de defeitos;
  • demandas com workflow rigoroso;
  • projetos de software com muitos componentes.

Onde não faz sentido

Não instalaria apenas para uma lista de tarefas pessoal. Para isso, ele é excessivo.

Ideias para você

  • central de bugs dos sistemas do Portal IDEA;
  • controle de incidentes técnicos;
  • demandas internas da equipe;
  • base estruturada de problemas recorrentes;
  • acompanhamento de integrações e automações.

Veredito

Poderoso, mas pesado. Vale quando o processo exige rastreabilidade séria.


4. Outros programas CGI relevantes

8. gitweb

Documentação: https://git-scm.com/docs/gitweb

É a interface web distribuída com o Git.

Vantagens

  • disponível em várias distribuições;
  • simples;
  • integração natural com Git;
  • suporte a histórico, árvores, diffs e snapshots;
  • fácil de instalar.

Desvantagens

  • visual antigo;
  • geralmente mais lento e menos elegante que cgit;
  • customização menos agradável.

Parecer

Use cgit como primeira opção. Use gitweb quando quiser algo oficial do ecossistema Git e disponível diretamente pelos pacotes da distribuição.


9. Blosxom

Site: https://blosxom.sourceforge.net/

Blosxom é um sistema de blog extremamente pequeno, escrito em Perl, baseado em arquivos de texto.

Características:

  • posts armazenados como arquivos;
  • categorias representadas por diretórios;
  • plugins;
  • templates;
  • feeds;
  • sem banco de dados obrigatório;
  • execução como CGI.

Ideias

  • microblog retrô;
  • diário técnico;
  • changelog de servidores;
  • “logbook” de experimentos;
  • blog de notas curtas;
  • cápsula web com estética anos 2000.

Parecer

Interessante pela personalidade e simplicidade, mas exige disposição para conviver com software antigo e ajustar o visual.


10. CGI::Application

Código: https://github.com/markstos/CGI--Application
Distribuição: https://metacpan.org/pod/CGI::Application

Framework Perl para estruturar aplicações CGI em “run modes”, comparáveis a telas ou ações.

Recursos:

  • separação de lógica;
  • modos de execução;
  • templates;
  • plugins;
  • sessões;
  • autenticação;
  • validação;
  • compatibilidade com CGI e mod_perl.

Para que serve

Não é uma aplicação pronta. É uma base para você programar seus próprios sistemas CGI sem criar um único script monolítico e caótico.

Ideias

  • painel de links;
  • formulário de contato;
  • guestbook moderado;
  • sistema de votos;
  • diretório de projetos;
  • painel de status;
  • cadastro de equipamentos;
  • micro-CMS;
  • buscador de arquivos;
  • gerador de feeds;
  • webhook simples.

Parecer

Uma boa escolha para estudar Perl web clássico, mas para aplicações novas eu avaliaria também Mojolicious, FastCGI ou um pequeno serviço persistente.


11. CGI.pm

Distribuição atual: https://metacpan.org/dist/CGI
Código: https://github.com/leejo/CGI.pm

CGI.pm é o módulo Perl tradicional para:

  • ler parâmetros;
  • tratar uploads;
  • gerar cabeçalhos;
  • cookies;
  • redirecionamentos;
  • lidar com requisições;
  • escapar conteúdo.

O módulo continua disponível, mas sua própria documentação informa que as funções antigas de geração de HTML não devem ser usadas em código novo.

Uso correto atualmente

  • processar entrada CGI;
  • gerar cabeçalhos;
  • integrar código legado;
  • usar templates externos para HTML;
  • escapar toda saída;
  • validar tamanho e formato dos dados.

Parecer

É biblioteca, não programa pronto. Útil para manutenção e pequenos experimentos.


12. fcgiwrap

Código: https://github.com/gnosek/fcgiwrap

fcgiwrap permite executar scripts CGI através de FastCGI, algo especialmente útil com Nginx.

Por que é importante

Nginx não executa CGI diretamente como Apache. O fcgiwrap atua como ponte:

Nginx → FastCGI → fcgiwrap → script CGI

Casos de uso

  • cgit;
  • gitweb;
  • scripts Perl;
  • scripts Bash;
  • pequenos utilitários;
  • páginas dinâmicas simples;
  • programas compilados.

Parecer

Não é um aplicativo para visitantes, mas é uma peça de infraestrutura muito útil em servidores Nginx.


13. ViewVC

Site: https://www.viewvc.org/

Interface web para repositórios CVS e Subversion.

Recursos:

  • navegação por arquivos;
  • histórico;
  • diffs;
  • anotações;
  • pesquisa;
  • suporte a CGI e WSGI em algumas configurações.

Parecer

Só faz sentido se você mantém CVS ou Subversion. Para Git, use cgit, gitweb, Forgejo ou Fossil.


14. Webalizer

Site: https://www.webalizer.org/

Analisador de logs de servidor web.

Apresenta:

  • visitas;
  • páginas;
  • hits;
  • tráfego;
  • URLs;
  • referenciadores;
  • agentes;
  • países;
  • gráficos mensais e diários.

Ele normalmente gera HTML estático, não sendo CGI puro em todas as implantações, mas pertence à mesma família de ferramentas web clássicas baseadas em logs.

Parecer

É simples e privado, mas bastante limitado. Pode ser interessante para um painel retrô ou para estatísticas independentes de JavaScript.


15. AWStats

Site: https://awstats.sourceforge.io/
Documentação: https://www.awstats.org/docs/

AWStats analisa logs de:

  • Apache;
  • Nginx;
  • IIS;
  • proxies;
  • FTP;
  • e-mail;
  • streaming.

Pode funcionar por linha de comando ou CGI.

Aviso importante

O repositório oficial publicou uma nota de descontinuação em novembro de 2025 e recomenda considerar alternativas como Matomo.

Ainda vale usar?

Somente para:

  • laboratório;
  • sistemas legados;
  • relatórios simples;
  • estética web clássica;
  • servidores em que você já o utiliza.

Veredito

Não iniciaria uma implantação nova importante com AWStats em 2026.


16. SARG

Site: https://sourceforge.net/projects/sarg/

SARG gera relatórios a partir dos logs do proxy Squid.

Pode mostrar:

  • usuários;
  • sites acessados;
  • volume;
  • horários;
  • bloqueios;
  • duração;
  • relatórios por período.

Parecer

Útil apenas se você opera Squid e precisa de relatórios administrativos. Não é uma ferramenta de analytics comum para sites.


17. Mailman 2

O Mailman 2 utilizava uma interface web CGI para administração e inscrições.

Aviso

Mailman 2 é legado. Projetos novos devem considerar Mailman 3, que usa arquitetura moderna.

Parecer

Incluído apenas por relevância histórica e para manutenção de instalações antigas.


5. Programas clássicos de CGI

FormMail

Um formulário envia dados para um CGI, que os encaminha por e-mail.

O FormMail de Matt Wright foi um dos scripts CGI mais difundidos da história. Também se tornou famoso pelos abusos e falhas de configuração.

Alternativa segura

Para um site moderno, é melhor:

  • escrever um handler próprio;
  • limitar destinatários no código;
  • validar origem;
  • usar CSRF token;
  • incluir CAPTCHA ou mecanismo antispam;
  • aplicar rate limit;
  • não aceitar cabeçalhos arbitrários;
  • usar SMTP autenticado;
  • registrar tentativas.

Guestbook

Visitantes deixam mensagens públicas.

Versão moderna que valeria construir

  • moderação antes da publicação;
  • Markdown limitado;
  • honeypot;
  • rate limiting;
  • CAPTCHA opcional;
  • bloqueio por IP e palavra;
  • feeds RSS;
  • Webmention;
  • assinatura via Fediverse;
  • exportação JSON;
  • respostas do administrador;
  • temas personalizáveis.

Um guestbook moderno combinaria muito bem com pablo.space, runv.club ou um site Small Web.


WWWBoard

Fórum linear simples baseado em CGI e arquivos.

Releitura interessante

Criar um fórum minimalista, sem algoritmo e sem JavaScript obrigatório:

  • tópicos;
  • respostas;
  • RSS por categoria;
  • moderação;
  • autenticação opcional;
  • interface textual;
  • banco SQLite;
  • ActivityPub futuramente.

Contador de visitas

O clássico contador exibia uma imagem com o número de acessos.

Releitura moderna

  • contador sem cookies;
  • visitas únicas aproximadas;
  • estatísticas públicas;
  • imagem SVG gerada no servidor;
  • badge para README;
  • endpoint JSON;
  • respeito ao Do Not Track;
  • sem fingerprinting.

Enquetes

Um CGI recebe votos e gera um gráfico.

Melhorias necessárias

  • proteção contra repetição;
  • expiração;
  • resultados públicos ou privados;
  • RSS de resultados;
  • múltiplas opções;
  • exportação CSV;
  • assinatura administrativa;
  • limite por IP ou token.

6. Ideias de programas CGI para você desenvolver

1. Murad Web Toolbox

Uma coleção de pequenas ferramentas sob um único domínio:

  • consulta DNS;
  • Whois;
  • gerador de QR Code;
  • conversor Markdown → HTML;
  • formatador JSON;
  • calculadora CIDR;
  • gerador de senha;
  • verificador de headers HTTP;
  • criador de feeds;
  • validador de URLs;
  • ping e traceroute controlados;
  • encurtador interno;
  • pastebin minimalista.

Cada ferramenta poderia ser um executável independente.


2. Server Logbook

Um diário operacional para registrar:

  • mudanças em servidores;
  • atualizações;
  • incidentes;
  • comandos importantes;
  • causas;
  • soluções;
  • rollback;
  • responsáveis;
  • links para commits.

Recursos:

  • armazenamento SQLite;
  • busca;
  • tags;
  • RSS;
  • Markdown;
  • exportação;
  • autenticação;
  • timeline;
  • anexos pequenos.

3. Public Status Ledger

Em vez de um status page moderno genérico, criar uma página de transparência:

  • serviços;
  • incidentes;
  • manutenção;
  • histórico;
  • uptime;
  • comentários técnicos;
  • RSS/Atom;
  • JSON;
  • gráficos SVG;
  • assinatura criptográfica dos registros.

4. Guestbook federado

Um guestbook que aceite:

  • formulário local;
  • Webmentions;
  • respostas do Fediverse;
  • IndieAuth;
  • RSS;
  • ActivityPub opcional;
  • moderação central.

Isso seria realmente diferente dos guestbooks prontos.


5. Diretório Small Web

Um diretório curado de:

  • sites pessoais;
  • blogs;
  • Gemini capsules;
  • tilde sites;
  • pubnixes;
  • projetos IndieWeb;
  • feeds RSS;
  • ferramentas independentes.

Recursos:

  • submissão por CGI;
  • moderação;
  • tags;
  • busca;
  • OPML;
  • RSS por categoria;
  • página aleatória;
  • badge para membros;
  • verificador automático de links.

6. Link garden

Um jardim de links com:

  • notas;
  • tags;
  • favoritos;
  • leitura futura;
  • screenshots;
  • archive URLs;
  • feeds;
  • busca;
  • backlinks;
  • páginas públicas e privadas.

Poderia ficar entre um bookmark manager e um digital garden.


7. CGI para publicar em pico.sh ou SDF

Criar uma interface web mínima que:

  • recebe Markdown;
  • valida front matter;
  • salva rascunho;
  • publica por SSH/SCP;
  • lista posts;
  • edita;
  • remove;
  • mostra diff;
  • mantém histórico local.

Isso poderia simplificar muito sua rotina de publicação em serviços Small Web.


8. Gerador público de feeds

Um serviço que recebe:

  • lista de URLs;
  • JSON;
  • CSV;
  • sitemap;
  • página HTML;
  • perfil social.

E gera:

  • RSS;
  • Atom;
  • JSON Feed;
  • OPML.

Pode ser útil para projetos do Portal IDEA e para seus sites pessoais.


9. Painel Unix de arquivos

Uma interface somente leitura para:

  • logs;
  • documentos;
  • relatórios;
  • arquivos Markdown;
  • backups;
  • scripts;
  • árvores de diretório.

Com permissões rígidas e sem permitir caminhos arbitrários.


10. CGI Museum

Um site-museu funcional com:

  • guestbook;
  • contador;
  • webring;
  • enquete;
  • diretório;
  • fórum;
  • livro de visitas;
  • gerador de banner;
  • badges;
  • skins;
  • MIDI opcional;
  • visual inspirado em 1996–2003.

A diferença seria reescrever tudo com práticas seguras, mantendo apenas a estética e o conceito.


7. Combinações especialmente boas

Small Web pessoal

  • ikiwiki;
  • guestbook próprio;
  • contador SVG;
  • Webmention;
  • RSS;
  • webring;
  • página aleatória.

Desenvolvimento

  • Fossil;
  • cgit;
  • Bugzilla;
  • gerador de documentação;
  • CGI de changelog.

Infraestrutura

  • SmokePing;
  • Munin;
  • Webmin via Tailscale;
  • status ledger;
  • visualizador controlado de logs.

Grupo Murad / Portal IDEA

  • Bugzilla para incidentes e defeitos;
  • painel interno de logs;
  • formulário seguro de solicitações;
  • documentação em ikiwiki;
  • Fossil para projetos pequenos e processos;
  • gerador de relatórios;
  • dashboard técnico privado.

runv.club

  • diretório de usuários;
  • webring;
  • guestbook;
  • mural;
  • páginas aleatórias;
  • estatísticas públicas;
  • busca;
  • wiki;
  • CGI para criação de “squares”;
  • painel de status dos serviços.

8. O que eu instalaria primeiro

Prioridade 1 — SmokePing

Você já tem Uptime Kuma, mas ele não substitui gráficos detalhados de latência, jitter e perda. SmokePing acrescentaria uma visão que hoje provavelmente está faltando.

Prioridade 2 — cgit

Criaria uma apresentação pública minimalista e muito rápida para uma seleção de seus repositórios, separada da parte colaborativa do Forgejo.

Prioridade 3 — Fossil

Usaria em um projeto experimental real, não como substituto imediato do Forgejo. O objetivo seria explorar a combinação de código, wiki, tickets, fórum e documentação em um único arquivo SQLite.

Prioridade 4 — ikiwiki

Usaria para uma wiki pública ou um jardim técnico versionado por Git.

Prioridade 5 — um CGI próprio

Construiria um pequeno serviço útil, como o Server Logbook ou o Diretório Small Web. Isso permitiria usar CGI como tecnologia deliberada, não apenas como nostalgia.


9. Segurança: regras obrigatórias

CGI não é inseguro por definição. Scripts CGI mal escritos são inseguros.

Nunca faça

  • interpolar entrada do usuário em comandos shell;
  • usar system("$comando $entrada");
  • aceitar caminhos de arquivo fornecidos livremente;
  • confiar em extensão de upload;
  • exibir erros internos ao visitante;
  • deixar arquivos de dados graváveis pelo servidor dentro da área pública;
  • usar scripts antigos sem auditoria;
  • permitir destinatário de e-mail escolhido pelo formulário;
  • expor Webmin diretamente;
  • executar CGI como root;
  • instalar programas aleatórios apenas porque terminam em .cgi.

Faça

  • usuário de serviço sem privilégios;
  • permissões mínimas;
  • diretórios separados;
  • suexec, containers ou sandbox quando apropriado;
  • validação por allowlist;
  • escape de HTML;
  • prepared statements;
  • limite de tamanho de requisição;
  • timeout;
  • rate limit;
  • logs;
  • CSRF token;
  • cabeçalhos de segurança;
  • Content Security Policy;
  • autenticação para funções administrativas;
  • atualização e auditoria periódica.

10. CGI em Apache, Nginx e Lighttpd

Apache

É o caminho mais direto. O servidor oferece módulos CGI e suporte tradicional a ScriptAlias e ExecCGI.

Bom para:

  • scripts Perl;
  • Fossil;
  • gitweb;
  • ikiwiki;
  • pequenos laboratórios.

Nginx

Nginx não executa CGI clássico diretamente. Normalmente se usa:

  • fcgiwrap;
  • FastCGI;
  • proxy para outro serviço;
  • uWSGI em alguns cenários.

Para cgit, gitweb e scripts pequenos, fcgiwrap é uma solução comum.

Lighttpd

É leve e combina bem com CGI e FastCGI. Pode ser uma boa escolha para um servidor Small Web dedicado.


11. CGI, FastCGI ou aplicação moderna?

CenárioMelhor escolha
Script pequeno e raramente acessadoCGI
Site pessoal de baixo tráfegoCGI ou FastCGI
Ferramenta administrativa internaCGI protegido
Aplicação com muitas requisiçõesFastCGI ou serviço persistente
API de alto tráfegoServiço persistente
Processamento demoradofila de tarefas
Upload grandeaplicação dedicada
Site estático com poucas açõesestático + CGI
Experimento Small WebCGI é excelente
E-commerce ou autenticação críticaframework moderno e auditado

12. Projetos que eu evitaria

AWStats para implantação nova

O projeto foi oficialmente marcado como descontinuado em novembro de 2025. Pode continuar funcionando, mas não é uma boa base estratégica.

Matt’s FormMail original

Importante historicamente, porém inadequado para instalação direta em produção moderna.

Scripts sem repositório

Não instale CGI obtido de um ZIP desconhecido sem:

  • histórico;
  • código auditável;
  • licença;
  • documentação;
  • data de atualização;
  • canal de segurança.

CGI em Bash recebendo entrada pública

É possível, mas a margem para command injection é enorme. Bash CGI deve ser reservado a ferramentas muito pequenas, controladas e preferencialmente internas.

Painéis administrativos públicos

Webmin, CGI de logs, execução de comandos e exploradores de arquivos devem ficar atrás de VPN, Tailscale ou autenticação forte com restrição de rede.


13. Conclusão

CGI não morreu. Ele deixou de ser a solução padrão para toda aplicação web, mas continua excelente para uma classe específica de projetos:

  • utilitários pequenos;
  • sites pessoais;
  • interfaces Unix;
  • sistemas de baixo tráfego;
  • páginas geradas sob demanda;
  • administração interna;
  • projetos Small Web;
  • programas que valorizam simplicidade e durabilidade.

Para seu ecossistema, os destaques reais são:

  1. Fossil, pela combinação excepcional de forge, wiki, fórum, tickets e documentação;
  2. cgit, pela velocidade e simplicidade para publicar código;
  3. ikiwiki, para uma wiki ou jardim digital versionado;
  4. SmokePing, para entender a qualidade das conexões entre seus servidores;
  5. Munin, para métricas práticas;
  6. Webmin, apenas em ambiente protegido;
  7. um CGI próprio, desenvolvido com um objetivo pequeno e claro.

O melhor caminho não é instalar dezenas de scripts antigos. É selecionar dois ou três programas sólidos e, depois, criar pequenos CGIs próprios que resolvam problemas reais dos seus sites.


14. Fontes consultadas

Did this resonate?

Related documents