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:
- o visitante acessa uma URL;
- Apache, Lighttpd ou outro servidor inicia o programa;
- o programa recebe dados da requisição;
- gera HTML, JSON, texto, imagem ou outro conteúdo;
- 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ção | Programa | Melhor uso | Parecer |
|---|---|---|---|
| 1 | Fossil SCM | Forge leve, wiki, tickets, documentação e projetos | O mais completo e interessante |
| 2 | cgit | Interface extremamente rápida para repositórios Git | Excelente para git.teu.cool ou um Git alternativo |
| 3 | ikiwiki | Wiki, blog e site estático editável via navegador | Perfeito para Small Web e conhecimento pessoal |
| 4 | SmokePing | Monitoramento de latência e perda de pacotes | Muito útil para seus vários servidores |
| 5 | Webmin | Administração de servidores pelo navegador | Poderoso, mas deve ficar protegido |
| 6 | Munin CGI | Métricas e gráficos de servidores sob demanda | Bom complemento para monitoramento |
| 7 | Bugzilla | Rastreamento robusto de bugs e demandas | Ótimo, mas pesado e visualmente antiquado |
Tier A — úteis em situações específicas
| Programa | Uso |
|---|---|
| gitweb | Navegação simples em repositórios Git |
| Blosxom | Blog minimalista baseado em arquivos |
| CGI::Application | Criar aplicações próprias em Perl CGI |
| CGI.pm | Manipular requisições e respostas CGI em Perl |
| fcgiwrap | Executar programas CGI através de FastCGI no Nginx |
| Mailman 2 CGI | Arquivo e administração de listas antigas |
| ViewVC | Navegação web por repositórios CVS e Subversion |
| SARG | Relatórios de uso de proxy Squid |
| Webalizer | Estatí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ário | Melhor escolha |
|---|---|
| Script pequeno e raramente acessado | CGI |
| Site pessoal de baixo tráfego | CGI ou FastCGI |
| Ferramenta administrativa interna | CGI protegido |
| Aplicação com muitas requisições | FastCGI ou serviço persistente |
| API de alto tráfego | Serviço persistente |
| Processamento demorado | fila de tarefas |
| Upload grande | aplicação dedicada |
| Site estático com poucas ações | estático + CGI |
| Experimento Small Web | CGI é excelente |
| E-commerce ou autenticação crítica | framework 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:
- Fossil, pela combinação excepcional de forge, wiki, fórum, tickets e documentação;
- cgit, pela velocidade e simplicidade para publicar código;
- ikiwiki, para uma wiki ou jardim digital versionado;
- SmokePing, para entender a qualidade das conexões entre seus servidores;
- Munin, para métricas práticas;
- Webmin, apenas em ambiente protegido;
- 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
- Fossil SCM — documentação oficial: https://fossil-scm.org/
- Fossil via CGI: https://fossil-scm.org/home/doc/trunk/www/server/any/cgi.md
- cgit — site oficial: https://git.zx2c4.com/cgit/about/
- ikiwiki — CGI: https://ikiwiki.info/cgi/
- SmokePing — documentação CGI: https://www.smokeping.org/smokeping/doc/smokeping_cgi.en.html
- SmokePing — código: https://github.com/oetiker/SmokePing
- Munin CGI HTML: https://guide.munin-monitoring.org/en/latest/reference/munin-cgi-html.html
- Munin CGI Graph: https://munin.readthedocs.io/en/stable-2.0/reference/munin-cgi-graph.html
- Webmin — documentação: https://webmin.com/docs/
- Webmin — código: https://github.com/webmin/webmin
- Bugzilla — documentação: https://bugzilla.readthedocs.io/en/latest/
- Gitweb: https://git-scm.com/docs/gitweb
- CGI.pm: https://metacpan.org/dist/CGI
- CGI.pm — código e avisos de manutenção: https://github.com/leejo/CGI.pm
- CGI::Application: https://github.com/markstos/CGI--Application
- fcgiwrap: https://github.com/gnosek/fcgiwrap
- AWStats: https://www.awstats.org/docs/
- AWStats — repositório e aviso de descontinuação: https://github.com/eldy/awstats
- Matt’s Script Archive: https://www.worldwidemart.com/
- Apache CGI tutorial: https://httpd.apache.org/docs/2.4/howto/cgi.html
Did this resonate?
Related documents
- 001
- 002
- 003
- 004
- 005