Prezados leitores,
Sempre que preciso instalar uma nova instância do GeoNode, sigo os procedimentos que já compartilhei aqui no blog:
– Instalação do GeoNode 5 no Ubuntu 24.04
– Instalação do Certificado SSL no GeoNode
O passo a passo ajuda bastante, mas, a cada instalação, lá estava eu novamente: preparando o servidor, instalando dependências, criando o projeto, ajustando configurações e habilitando o HTTPS.
Ao preparar um ambiente para mais um curso, pensei: por que não automatizar esse processo?
A ideia foi transformar essa sequência em um instalador reutilizável. Agora, basta preencher um arquivo de configuração e executar um comando para iniciar a instalação.
Testei o procedimento em uma máquina nova, utilizando o GeoNode 5.1.0, e o resultado foi a aplicação funcionando com HTTPS habilitado.
Vamos ver como utilizar!
1. O que o instalador faz?
O instalador utiliza o projeto Docker oficial do GeoNode e automatiza as principais etapas de preparação do ambiente:
- Instala as dependências do sistema, o Docker e o plugin Docker Compose.
- Cria um usuário dedicado para os arquivos do projeto.
- Obtém a versão selecionada do geonode-project.
- Gera a estrutura da aplicação e o .env do GeoNode.
- Cria senhas aleatórias para os serviços.
- Configura as URLs de acesso e a emissão do certificado HTTPS.
- Aplica ajustes iniciais de memória e quantidade de processos.
- Constrói as imagens e inicia os containers.
- Verifica a resposta da aplicação, o certificado e o estado dos principais serviços.
O pacote contém um script de entrada em Bash, o instalador em Python, um arquivo de parâmetros e as instruções de uso.
2. Antes de começar
Esta versão foi preparada para uma máquina nova com Ubuntu 24.04, arquitetura x86_64 e aproximadamente 16 GB de RAM.
Para instalar com HTTPS, você também precisará de:
- Um domínio ou subdomínio apontando para o IP público do servidor.
- Portas TCP 80 e 443 liberadas.
- Acesso administrativo por SSH.
- Conexão com a internet para baixar os pacotes e as imagens.
O instalador prepara o software dentro da máquina. A criação do servidor, os registros de DNS e a liberação das portas devem ser feitos previamente.
Utilize uma máquina nova, sem outra aplicação ocupando as mesmas portas.
3. Baixe e descompacte o pacote
Baixe o arquivo geonode-installer-0.1.2.zip, disponibilizado junto a este post, e transfira-o para o servidor. Em seguida:
unzip geonode-installer-0.1.2.zip cd geonode-installer-0.1.2
4. Configure a instalação
Abra o arquivo de parâmetros:
nano geonode-install.env
Ele contém as seguintes opções:
GEONODE_PROJECT_REF=5.1.0 GEONODE_VERSION=5.1.0 DJANGO_BOOTSTRAP_VERSION=5.2 SYSTEM_USER=geonode PROJECT_NAME=curso_geonode INSTALL_DIR=/opt/geonode/curso_geonode HOSTNAME=geonode.seudominio.com.br ENABLE_HTTPS=true LETSENCRYPT_EMAIL=contato@seudominio.com.br SERVER_IPV4= GEOSERVER_XMS=2G GEOSERVER_XMX=4G UWSGI_PROCESSES=4 CELERY_WORKERS=2 WAIT_SECONDS=1800
Para uma instalação semelhante à deste exemplo, os principais campos a alterar são:
| Parâmetro | O que informar |
|---|---|
HOSTNAME |
Domínio ou subdomínio, sem https://e sem barra no final. |
LETSENCRYPT_EMAIL |
Seu endereço de e-mail. |
SERVER_IPV4 |
Opcional: IP público da VM para conferir sua presença na resolução DNS. |
PROJECT_NAME |
Nome do projeto, usando letras minúsculas, números e underscore ( _).
|
INSTALL_DIR |
Diretório da instalação dentro de /opt.
|
SYSTEM_USER |
Usuário que será criado para os arquivos do projeto. |
Atenção à versão do Django: DJANGO_BOOTSTRAP_VERSION controla apenas o Django utilizado para gerar a estrutura inicial do projeto. A versão que executa dentro dos containers é determinada pelas dependências da aplicação.
Os parâmetros de versão permitem selecionar outras referências, mas isso não garante compatibilidade automática entre todas as combinações. A instalação apresentada neste post foi testada com o GeoNode 5.1.0.
5. Confira a configuração
Antes de instalar, execute:
python3 instalar.py --env geonode-install.env --check
Esse comando valida os parâmetros e consulta a resolução DNS do endereço informado, sem instalar pacotes.
Se você preencher SERVER_IPV4, ele também confere se esse IP aparece na resolução do domínio.
Essa checagem não testa a liberação das portas nem o acesso externo ao servidor.
6. Inicie a instalação
Com os parâmetros preenchidos, execute:
sudo bash instalar-geonode.sh --env geonode-install.env
Pronto! A partir desse ponto, o instalador executa as etapas automaticamente.
A primeira construção das imagens pode demorar, dependendo do processamento da máquina e da velocidade dos downloads. Mantenha a sessão SSH aberta enquanto acompanha a execução.
Embora o comando seja iniciado com sudo, o download do projeto e sua geração são executados com o usuário definido em SYSTEM_USER. As operações administrativas, como instalar pacotes e executar o Docker, continuam sob responsabilidade do root.
O usuário criado não recebe senha habilitada, acesso ao sudo ou inclusão automática no grupo Docker.
7. E o certificado SSL?
Com esta configuração:
ENABLE_HTTPS=true
o instalador gera as URLs HTTPS e habilita o mecanismo de emissão de certificados Let’s Encrypt incluído no projeto Docker.
Assim, não é necessário executar separadamente a instalação do Certbot no host nem copiar manualmente os certificados para o Nginx.
O domínio precisa estar apontando corretamente para o servidor, e a porta 80 deve permanecer acessível para a validação e renovação do certificado. Se houver um registro DNS IPv6, ele também precisa estar correto.
8. Posso instalar em localhost?
Sim! Para usar HTTP localmente, configure:
HOSTNAME=localhost ENABLE_HTTPS=false LETSENCRYPT_EMAIL= SERVER_IPV4=
Nesse caso, a solicitação de certificado fica desativada e o endereço será:
http://localhost/
Os requisitos de sistema operacional e memória desta versão do instalador continuam sendo os mesmos.
Lembre-se de que localhost se refere à própria máquina. Se o GeoNode estiver em uma VM e você quiser acessá-lo de outro computador, configure o endereço pelo qual essa VM será acessada.
9. Como acessar pela primeira vez?
Após a conclusão, abra no navegador o domínio configurado.
O usuário inicial é:
admin
A senha é gerada automaticamente e fica no .env da aplicação. Para consultá-la, considerando o diretório deste exemplo:
sudo awk -F= '/^ADMIN_PASSWORD=/{print $2}' \
/opt/geonode/curso_geonode/.env
Existem, portanto, dois arquivos com funções diferentes: geonode-install.env contém os parâmetros do instalador; o .env criado no diretório da aplicação contém as configurações e senhas dos serviços. Não compartilhe esse segundo arquivo.
10. Como acompanhar os serviços?
No diretório da instalação, consulte os containers:
cd /opt/geonode/curso_geonode sudo docker compose ps -a
Para acompanhar o consumo de recursos:
sudo docker stats
E, se precisar investigar algum problema:
sudo docker compose logs --tail=100 \ django geoserver celery geonode letsencrypt
Se ocorrer uma interrupção, o instalador permite tentar novamente com o mesmo arquivo de parâmetros, preservando o projeto já gerado. Ele não executa atualização automática de versão nem apaga volumes para recomeçar.
11. Do servidor vazio ao GeoNode funcionando
Na instalação que motivou este post, utilizei uma máquina nova e o GeoNode 5.1.0. Ao final, o portal estava acessível pelo navegador com HTTPS funcionando.
Antes de utilizar o ambiente em um curso ou projeto, vale realizar os testes do seu fluxo: carregar camadas, abrir os dados, criar mapas e dashboards e conferir as permissões de acesso.
A automação reduz o trabalho repetitivo de preparar o ambiente. A validação com os dados e as atividades que serão utilizados continua sendo uma etapa importante.
Agora, na próxima instalação, o procedimento será bem mais curto: preencher o arquivo de configuração, executar o comando e acompanhar a criação do ambiente.
Até o próximo post!