{"id":10634,"date":"2026-10-19T17:07:20","date_gmt":"2026-10-19T20:07:20","guid":{"rendered":"https:\/\/www.fernandoquadro.com.br\/html\/?p=10634"},"modified":"2026-10-19T17:07:20","modified_gmt":"2026-10-19T20:07:20","slug":"geonode-5-com-um-comando-instalacao-automatica-e-https-configurado","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2026\/10\/19\/geonode-5-com-um-comando-instalacao-automatica-e-https-configurado\/","title":{"rendered":"GeoNode 5 com um comando: instala\u00e7\u00e3o autom\u00e1tica e HTTPS configurado"},"content":{"rendered":"<p>Prezados leitores,<\/p>\n<p>Sempre que preciso instalar uma nova inst\u00e2ncia do GeoNode, sigo os procedimentos que j\u00e1 compartilhei aqui no blog:<\/p>\n<p>&#8211; <a href=\"https:\/\/www.fernandoquadro.com.br\/html\/2026\/02\/17\/instalacao-do-geonode-5-no-ubuntu-24-04\/\" target=\"_blank\">Instala\u00e7\u00e3o do GeoNode 5 no Ubuntu 24.04<\/a><br \/>\n&#8211; <a href=\"https:\/\/www.fernandoquadro.com.br\/html\/2025\/06\/23\/instalacao-do-certificado-ssl-no-geonode\/\" target=\"_blank\">Instala\u00e7\u00e3o do Certificado SSL no GeoNode<\/a><\/p>\n<p>O passo a passo ajuda bastante, mas, a cada instala\u00e7\u00e3o, l\u00e1 estava eu novamente: preparando o servidor, instalando depend\u00eancias, criando o projeto, ajustando configura\u00e7\u00f5es e habilitando o HTTPS.<\/p>\n<p>Ao preparar um ambiente para mais um curso, pensei: <strong>por que n\u00e3o automatizar esse processo?<\/strong><\/p>\n<p>A ideia foi transformar essa sequ\u00eancia em um instalador reutiliz\u00e1vel. Agora, basta preencher um arquivo de configura\u00e7\u00e3o e executar um comando para iniciar a instala\u00e7\u00e3o.<\/p>\n<p>Testei o procedimento em uma m\u00e1quina nova, utilizando o <strong>GeoNode 5.1.0<\/strong>, e o resultado foi a aplica\u00e7\u00e3o funcionando com HTTPS habilitado.<\/p>\n<p>Vamos ver como utilizar!<\/p>\n<p><strong>1. O que o instalador faz?<\/strong><\/p>\n<p>O instalador utiliza o projeto Docker oficial do GeoNode e automatiza as principais etapas de prepara\u00e7\u00e3o do ambiente:<\/p>\n<ul>\n<li>Instala as depend\u00eancias do sistema, o Docker e o plugin Docker Compose.<\/li>\n<li>Cria um usu\u00e1rio dedicado para os arquivos do projeto.<\/li>\n<li>Obt\u00e9m a vers\u00e3o selecionada do geonode-project.<\/li>\n<li>Gera a estrutura da aplica\u00e7\u00e3o e o .env do GeoNode.<\/li>\n<li>Cria senhas aleat\u00f3rias para os servi\u00e7os.<\/li>\n<li>Configura as URLs de acesso e a emiss\u00e3o do certificado HTTPS.<\/li>\n<li>Aplica ajustes iniciais de mem\u00f3ria e quantidade de processos.<\/li>\n<li>Constr\u00f3i as imagens e inicia os containers.<\/li>\n<li>Verifica a resposta da aplica\u00e7\u00e3o, o certificado e o estado dos principais servi\u00e7os.<\/li>\n<\/ul>\n<p>O pacote cont\u00e9m um script de entrada em Bash, o instalador em Python, um arquivo de par\u00e2metros e as instru\u00e7\u00f5es de uso.<\/p>\n<p><strong>2.  Antes de come\u00e7ar<\/strong><\/p>\n<p>Esta vers\u00e3o foi preparada para uma <strong>m\u00e1quina nova com Ubuntu 24.04, arquitetura x86_64 e aproximadamente 16 GB de RAM<\/strong>.<\/p>\n<p>Para instalar com HTTPS, voc\u00ea tamb\u00e9m precisar\u00e1 de:<\/p>\n<ul>\n<li>Um dom\u00ednio ou subdom\u00ednio apontando para o IP p\u00fablico do servidor.<\/li>\n<li>Portas TCP <strong>80 e 443<\/strong> liberadas.<\/li>\n<li>Acesso administrativo por SSH.<\/li>\n<li>Conex\u00e3o com a internet para baixar os pacotes e as imagens.<\/li>\n<\/ul>\n<p>O instalador prepara o software dentro da m\u00e1quina. A cria\u00e7\u00e3o do servidor, os registros de DNS e a libera\u00e7\u00e3o das portas devem ser feitos previamente.<\/p>\n<p><strong>Utilize uma m\u00e1quina nova, sem outra aplica\u00e7\u00e3o ocupando as mesmas portas.<\/strong><\/p>\n<p><strong>3. Baixe e descompacte o pacote<\/strong><\/p>\n<p>Baixe o arquivo <a href=\"https:\/\/www.fernandoquadro.com.br\/geonode-installer\/geonode-installer-0.1.2.zip\" target=\"_blank\">geonode-installer-0.1.2.zip<\/a>, disponibilizado junto a este post, e transfira-o para o servidor. Em seguida:<\/p>\n<pre>\r\nunzip geonode-installer-0.1.2.zip\r\ncd geonode-installer-0.1.2\r\n<\/pre>\n<p><strong>4. Configure a instala\u00e7\u00e3o<\/strong><\/p>\n<p>Abra o arquivo de par\u00e2metros:<\/p>\n<pre>\r\nnano geonode-install.env\r\n<\/pre>\n<p>Ele cont\u00e9m as seguintes op\u00e7\u00f5es:<\/p>\n<pre>\r\nGEONODE_PROJECT_REF=5.1.0\r\nGEONODE_VERSION=5.1.0\r\nDJANGO_BOOTSTRAP_VERSION=5.2\r\n\r\nSYSTEM_USER=geonode\r\nPROJECT_NAME=curso_geonode\r\nINSTALL_DIR=\/opt\/geonode\/curso_geonode\r\n\r\nHOSTNAME=geonode.seudominio.com.br\r\nENABLE_HTTPS=true\r\nLETSENCRYPT_EMAIL=contato@seudominio.com.br\r\nSERVER_IPV4=\r\n\r\nGEOSERVER_XMS=2G\r\nGEOSERVER_XMX=4G\r\nUWSGI_PROCESSES=4\r\nCELERY_WORKERS=2\r\nWAIT_SECONDS=1800\r\n<\/pre>\n<p>Para uma instala\u00e7\u00e3o semelhante \u00e0 deste exemplo, os principais campos a alterar s\u00e3o:<\/p>\n<style>\n.fq-geonode-parametros {\n  width: 100%;\n  margin: 24px 0;\n  overflow-x: auto;\n  border: 1px solid #dce3e8;\n  border-radius: 8px;\n  background: #fff;\n  -webkit-overflow-scrolling: touch;\n}<\/p>\n<p>.fq-geonode-parametros table {\n  width: 100%;\n  min-width: 480px;\n  margin: 0;\n  border: 0;\n  border-collapse: collapse;\n  font-family: inherit;\n  font-size: 15px;\n  line-height: 1.6;\n  color: #334155;\n}<\/p>\n<p>.fq-geonode-parametros th,\n.fq-geonode-parametros td {\n  padding: 14px 18px;\n  border: 0;\n  border-bottom: 1px solid #e5eaf0;\n  text-align: left;\n  vertical-align: top;\n  text-transform: none;\n  letter-spacing: normal;\n}<\/p>\n<p>.fq-geonode-parametros thead th {\n  background: #103b53;\n  color: #fff;\n  font-weight: 600;\n}<\/p>\n<p>.fq-geonode-parametros tbody th {\n  width: 34%;\n  font-weight: 400;\n}<\/p>\n<p>.fq-geonode-parametros tbody tr:nth-child(even) {\n  background: #f6f8fa;\n}<\/p>\n<p>.fq-geonode-parametros tbody tr:last-child th,\n.fq-geonode-parametros tbody tr:last-child td {\n  border-bottom: 0;\n}<\/p>\n<p>.fq-geonode-parametros code {\n  padding: 3px 6px;\n  border: 0;\n  border-radius: 4px;\n  background: #eaf0f5;\n  color: #174b68;\n  font-family: Consolas, Monaco, monospace;\n  font-size: 0.9em;\n  white-space: nowrap;\n}<\/p>\n<p>@media (max-width: 600px) {\n  .fq-geonode-parametros table {\n    font-size: 14px;\n  }<\/p>\n<p>  .fq-geonode-parametros th,\n  .fq-geonode-parametros td {\n    padding: 12px;\n  }\n}\n<\/style>\n<div class=\"fq-geonode-parametros\"\n     role=\"region\"\n     aria-label=\"Par\u00e2metros de configura\u00e7\u00e3o do instalador GeoNode\"\n     tabindex=\"0\"><\/p>\n<table aria-label=\"Par\u00e2metros e instru\u00e7\u00f5es de preenchimento\">\n<thead>\n<tr>\n<th scope=\"col\">Par\u00e2metro<\/th>\n<th scope=\"col\">O que informar<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th scope=\"row\"><code>HOSTNAME<\/code><\/th>\n<td>\n          Dom\u00ednio ou subdom\u00ednio, sem <code>https:\/\/<\/code><br \/>\n          e sem barra no final.\n        <\/td>\n<\/tr>\n<tr>\n<th scope=\"row\"><code>LETSENCRYPT_EMAIL<\/code><\/th>\n<td>Seu endere\u00e7o de e-mail.<\/td>\n<\/tr>\n<tr>\n<th scope=\"row\"><code>SERVER_IPV4<\/code><\/th>\n<td>\n          Opcional: IP p\u00fablico da VM para conferir sua<br \/>\n          presen\u00e7a na resolu\u00e7\u00e3o DNS.\n        <\/td>\n<\/tr>\n<tr>\n<th scope=\"row\"><code>PROJECT_NAME<\/code><\/th>\n<td>\n          Nome do projeto, usando letras min\u00fasculas,<br \/>\n          n\u00fameros e underscore (<code>_<\/code>).\n        <\/td>\n<\/tr>\n<tr>\n<th scope=\"row\"><code>INSTALL_DIR<\/code><\/th>\n<td>\n          Diret\u00f3rio da instala\u00e7\u00e3o dentro de <code>\/opt<\/code>.\n        <\/td>\n<\/tr>\n<tr>\n<th scope=\"row\"><code>SYSTEM_USER<\/code><\/th>\n<td>\n          Usu\u00e1rio que ser\u00e1 criado para os arquivos do projeto.\n        <\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><strong>Aten\u00e7\u00e3o \u00e0 vers\u00e3o do Django<\/strong>: DJANGO_BOOTSTRAP_VERSION controla apenas o Django utilizado para gerar a estrutura inicial do projeto. A vers\u00e3o que executa dentro dos containers \u00e9 determinada pelas depend\u00eancias da aplica\u00e7\u00e3o.<\/p>\n<p>Os par\u00e2metros de vers\u00e3o permitem selecionar outras refer\u00eancias, mas isso n\u00e3o garante compatibilidade autom\u00e1tica entre todas as combina\u00e7\u00f5es. A instala\u00e7\u00e3o apresentada neste post foi testada com o <strong>GeoNode 5.1.0<\/strong>.<\/p>\n<p><strong>5. Confira a configura\u00e7\u00e3o<\/strong><\/p>\n<p>Antes de instalar, execute:<\/p>\n<pre>\r\npython3 instalar.py --env geonode-install.env --check\r\n<\/pre>\n<p>Esse comando valida os par\u00e2metros e consulta a resolu\u00e7\u00e3o DNS do endere\u00e7o informado, sem instalar pacotes.<\/p>\n<p>Se voc\u00ea preencher SERVER_IPV4, ele tamb\u00e9m confere se esse IP aparece na resolu\u00e7\u00e3o do dom\u00ednio.<\/p>\n<p><strong>Essa checagem n\u00e3o testa a libera\u00e7\u00e3o das portas nem o acesso externo ao servidor.<\/strong><\/p>\n<p><strong>6. Inicie a instala\u00e7\u00e3o<\/strong><\/p>\n<p>Com os par\u00e2metros preenchidos, execute:<\/p>\n<pre>\r\nsudo bash instalar-geonode.sh --env geonode-install.env\r\n<\/pre>\n<p>Pronto! A partir desse ponto, o instalador executa as etapas automaticamente.<\/p>\n<p>A primeira constru\u00e7\u00e3o das imagens pode demorar, dependendo do processamento da m\u00e1quina e da velocidade dos downloads. Mantenha a sess\u00e3o SSH aberta enquanto acompanha a execu\u00e7\u00e3o.<\/p>\n<p>Embora o comando seja iniciado com <strong>sudo<\/strong>, o download do projeto e sua gera\u00e7\u00e3o s\u00e3o executados com o usu\u00e1rio definido em <strong>SYSTEM_USER<\/strong>. As opera\u00e7\u00f5es administrativas, como instalar pacotes e executar o Docker, continuam sob responsabilidade do root.<\/p>\n<p>O usu\u00e1rio criado n\u00e3o recebe senha habilitada, acesso ao sudo ou inclus\u00e3o autom\u00e1tica no grupo Docker.<\/p>\n<p><strong>7. E o certificado SSL?<\/strong><\/p>\n<p>Com esta configura\u00e7\u00e3o:<\/p>\n<pre>\r\nENABLE_HTTPS=true\r\n<\/pre>\n<p>o instalador gera as URLs HTTPS e habilita o mecanismo de emiss\u00e3o de certificados Let\u2019s Encrypt inclu\u00eddo no projeto Docker.<\/p>\n<p>Assim, n\u00e3o \u00e9 necess\u00e1rio executar separadamente a instala\u00e7\u00e3o do Certbot no host nem copiar manualmente os certificados para o Nginx.<\/p>\n<p><strong>O dom\u00ednio precisa estar apontando corretamente para o servidor, e a porta 80 deve permanecer acess\u00edvel para a valida\u00e7\u00e3o e renova\u00e7\u00e3o do certificado<\/strong>. Se houver um registro DNS IPv6, ele tamb\u00e9m precisa estar correto.<\/p>\n<p><strong>8. Posso instalar em localhost?<\/strong><\/p>\n<p>Sim! Para usar HTTP localmente, configure:<\/p>\n<pre>\r\nHOSTNAME=localhost\r\nENABLE_HTTPS=false\r\nLETSENCRYPT_EMAIL=\r\nSERVER_IPV4=\r\n<\/pre>\n<p>Nesse caso, a solicita\u00e7\u00e3o de certificado fica desativada e o endere\u00e7o ser\u00e1:<\/p>\n<pre>\r\nhttp:\/\/localhost\/\r\n<\/pre>\n<p>Os requisitos de sistema operacional e mem\u00f3ria desta vers\u00e3o do instalador continuam sendo os mesmos.<\/p>\n<p>Lembre-se de que localhost se refere \u00e0 pr\u00f3pria m\u00e1quina. Se o GeoNode estiver em uma VM e voc\u00ea quiser acess\u00e1-lo de outro computador, configure o endere\u00e7o pelo qual essa VM ser\u00e1 acessada.<\/p>\n<p><strong>9. Como acessar pela primeira vez?<\/strong><\/p>\n<p>Ap\u00f3s a conclus\u00e3o, abra no navegador o dom\u00ednio configurado.<\/p>\n<p>O usu\u00e1rio inicial \u00e9:<\/p>\n<pre>\r\nadmin\r\n<\/pre>\n<p>A senha \u00e9 gerada automaticamente e fica no <strong>.env<\/strong> da aplica\u00e7\u00e3o. Para consult\u00e1-la, considerando o diret\u00f3rio deste exemplo:<\/p>\n<pre>\r\nsudo awk -F= '\/^ADMIN_PASSWORD=\/{print $2}' \\\r\n  \/opt\/geonode\/curso_geonode\/.env\r\n<\/pre>\n<p>Existem, portanto, <strong>dois arquivos com fun\u00e7\u00f5es diferentes<\/strong>: geonode-install.env cont\u00e9m os par\u00e2metros do instalador; o .env criado no diret\u00f3rio da aplica\u00e7\u00e3o cont\u00e9m as configura\u00e7\u00f5es e senhas dos servi\u00e7os. N\u00e3o compartilhe esse segundo arquivo.<\/p>\n<p><strong>10. Como acompanhar os servi\u00e7os?<\/strong><\/p>\n<p>No diret\u00f3rio da instala\u00e7\u00e3o, consulte os containers:<\/p>\n<pre>\r\ncd \/opt\/geonode\/curso_geonode\r\nsudo docker compose ps -a\r\n<\/pre>\n<p>Para acompanhar o consumo de recursos:<\/p>\n<pre>\r\nsudo docker stats\r\n<\/pre>\n<p>E, se precisar investigar algum problema:<\/p>\n<pre>\r\nsudo docker compose logs --tail=100 \\\r\n  django geoserver celery geonode letsencrypt\r\n<\/pre>\n<p>Se ocorrer uma interrup\u00e7\u00e3o, o instalador permite tentar novamente com o mesmo arquivo de par\u00e2metros, preservando o projeto j\u00e1 gerado. Ele n\u00e3o executa atualiza\u00e7\u00e3o autom\u00e1tica de vers\u00e3o nem apaga volumes para recome\u00e7ar.<\/p>\n<p><strong>11. Do servidor vazio ao GeoNode funcionando<\/strong><\/p>\n<p>Na instala\u00e7\u00e3o que motivou este post, utilizei uma m\u00e1quina nova e o GeoNode 5.1.0. Ao final, o portal estava acess\u00edvel pelo navegador com HTTPS funcionando.<\/p>\n<p>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\u00f5es de acesso.<\/p>\n<p>A automa\u00e7\u00e3o reduz o trabalho repetitivo de preparar o ambiente. A valida\u00e7\u00e3o com os dados e as atividades que ser\u00e3o utilizados continua sendo uma etapa importante.<\/p>\n<p>Agora, na pr\u00f3xima instala\u00e7\u00e3o, o procedimento ser\u00e1 bem mais curto: <strong>preencher o arquivo de configura\u00e7\u00e3o, executar o comando e acompanhar a cria\u00e7\u00e3o do ambiente.<\/strong><\/p>\n<p>At\u00e9 o pr\u00f3ximo post!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Prezados leitores, Sempre que preciso instalar uma nova inst\u00e2ncia do GeoNode, sigo os procedimentos que j\u00e1 compartilhei aqui no blog: &#8211; Instala\u00e7\u00e3o do GeoNode 5 no Ubuntu 24.04 &#8211; Instala\u00e7\u00e3o do Certificado SSL no GeoNode O passo a passo ajuda&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2026\/10\/19\/geonode-5-com-um-comando-instalacao-automatica-e-https-configurado\/\">Continue lendo &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":10643,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[364,196,79],"class_list":["post-10634","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gis","tag-automacao","tag-geonode","tag-python"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/10634","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/users\/275"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/comments?post=10634"}],"version-history":[{"count":8,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/10634\/revisions"}],"predecessor-version":[{"id":10642,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/10634\/revisions\/10642"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media\/10643"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=10634"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=10634"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=10634"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}