Server Manager/ Help
Open Server Manager →

Instalar WordPress

Um clique + uma pergunta (o domínio), depois é só aprovar os comandos de instalação. WordPress + MariaDB no Docker, com Caddy na frente e HTTPS automático, pronto em 2–3 minutos. O assistente inicial do próprio WordPress cuida do título do site + conta de administrador.

Você quer o WordPress rodando no seu domínio (ou só no IP do servidor), com HTTPS, atrás de um proxy reverso adequado, no Docker para não se misturar com mais nada. A receita Instalar WordPress do Server Manager faz tudo isso em ~2–3 minutos. Você responde a uma pergunta (qual domínio) e depois aprova cada comando conforme o chat executa.

O que você vai ter no final

  • Um site WordPress 6 rodando em um contêiner Docker, conversando com um contêiner MariaDB 11 em uma rede privada.
  • Caddy (já rodando no host) fazendo proxy reverso do seu domínio → contêiner, com HTTPS Let's Encrypt emitido automaticamente.
  • Os segredos do site (senha do banco de dados, os 8 salts do WordPress) gerados automaticamente e armazenados em /opt/wordpress/.env, modo 600, pertencentes ao root. Nada em texto puro em nenhum outro lugar.
  • Um cartão da carga de trabalho na tela inicial com o logo do WordPress. Clique em manage → para acessar as abas específicas da receita: WP-Admin · Plugins · Temas · Manutenção · Status · Logs · Controles · Backup.

Pré-requisito — um domínio (opcional, mas recomendado)

O WordPress funciona bem em um IP bruto para testes, mas para um site de verdade você vai querer um domínio com HTTPS. Se ainda não fez isso, execute primeiro Conectar um domínio — aponte mysite.com para o IP deste servidor e confirme que o DNS já propagou. O assistente de instalação funciona nos dois casos, mas configurar o DNS antes de instalar é o caminho mais tranquilo: o Caddy consegue emitir um certificado TLS imediatamente quando o domínio já está apontando para cá.

Se por enquanto você só tem um IP, tudo bem — você pode anexar um domínio depois sem reinstalar: barra superior → Apontar um domínio para cá. (Ou use o botão Conectar um domínio que aparece na barra de ações inferior quando você clica em um cartão que ainda não tem domínio — é o mesmo assistente, só que já direcionado para essa carga de trabalho.)

Passo a passo

1Abra a paleta de receitas

Pressione / em qualquer lugar do chat para abrir a paleta, OU clique em Procurar todas as ações abaixo do chat, OU clique em Ações na barra superior e escolha WordPress.

Paleta de receitas com o bloco selecionado "Instalar WordPress" em destaque
Paleta de receitas com o bloco selecionado "Instalar WordPress" em destaque

A paleta mostra o WordPress como um bloco selecionado em Comece aqui no topo, e também na categoria Apps web mais abaixo. Qualquer uma das opções inicia o mesmo fluxo de instalação.

Observação para servidores sem Caddy. Se o seu servidor já roda nginx, Apache ou Traefik em vez de Caddy, a receita do WordPress fica "restrita" — o bloco mostra um selo 💬 via chat. Clicar nele ainda funciona; o Faro vai configurar o WordPress nativamente para o seu mecanismo, em vez de trazer o Caddy. Veja Por que Caddy? e Migrar para Caddy para entender o contexto.
2O Faro pergunta o domínio

Depois que você clica no bloco, o chat assume. A primeira mensagem do Faro é uma verificação rápida ("já existe wordpress aqui?", "portas 80/443 livres?", etc.) mais uma pergunta curta:

Chat mostrando a pergunta do Faro: "Em qual domínio este site WordPress deve responder?"
Chat mostrando a pergunta do Faro: "Em qual domínio este site WordPress deve responder?"

Digite o domínio (por exemplo, mysite.com) — ou skip se quiser testar primeiro no IP bruto. Depois clique em Enviar.

3Aprove cada comando conforme ele roda

O Faro pausa para pedir sua aprovação em todo comando que altera o estado do servidor. O primeiro lote normalmente é:

  • (somente se estiver faltando) apt install docker.io docker-compose-plugin — instala o Docker.
  • mkdir -p /opt/wordpress — diretório de instalação.
  • openssl rand -base64 32 (senha do banco de dados) e openssl rand -base64 48 × 8 (os salts do WordPress).
  • Gravar /opt/wordpress/docker-compose.yml (wordpress:6 + mariadb:11 fixados, volumes nomeados, rede interna, porta publicada em 127.0.0.1:<random> — nunca em 0.0.0.0).
  • Gravar /opt/wordpress/.env com todos os segredos, chmod 600.
  • docker compose up -d — iniciar os contêineres.
  • Bloco do Caddyfile para o seu domínio → https://mysite.com { reverse_proxy 127.0.0.1:<port> }caddy reload.
Chat mostrando um comando "docker compose up -d" aguardando Aprovar / Pular / Cancelar
Chat mostrando um comando "docker compose up -d" aguardando Aprovar / Pular / Cancelar

O texto exato de cada comando fica visível antes de você aprovar. Você pode Aprovar, Pular (raro — normalmente quebra a instalação) ou Cancelar (não deixa nada rodando, mas também nada em disco que não possamos limpar).

Por que tantas aprovações? O Server Manager não executa nada destrutivo sem o seu OK explícito. Mesmo em uma instalação de rotina. É um atrito proposital. Depois da primeira instalação, você já sabe o que esperar; as próximas parecem mais rápidas porque o ritmo das aprovações fica familiar.

Tempo total de instalação, incluindo aprovações: normalmente 2–3 minutos. A maior parte disso é o download do Docker (~500 MB de imagens do WordPress + MariaDB na primeira instalação).

4O Faro entrega a URL

Quando os contêineres estão de pé e o Caddy foi recarregado, o Faro mostra a URL:

Chat mostrando a mensagem de instalação concluída com a URL do WordPress em destaque
Chat mostrando a mensagem de instalação concluída com a URL do WordPress em destaque

Ele também faz uma pergunta proativa: "Quer que eu configure backups noturnos do banco de dados?" Escolha sim ou não — você sempre pode configurar isso depois (veja Backups).

5Conclua o assistente inicial do próprio WordPress

Clique na URL. O assistente de instalação do próprio WordPress abre — a configuração do Server Manager terminou; daqui em diante, você está falando diretamente com o WordPress.

Tela de instalação de 5 minutos do WordPress — Título do site, Nome de usuário, Senha, Seu e-mail, depois Instalar WordPress
Tela de instalação de 5 minutos do WordPress — Título do site, Nome de usuário, Senha, Seu e-mail, depois Instalar WordPress

Defina o título do site, escolha um nome de usuário administrador (não use "admin" — escolha algo menos óbvio), defina uma senha forte de administrador (ou deixe o WP gerar uma e salve no seu gerenciador de senhas), informe o e-mail do administrador. Clique em Instalar WordPress.

As credenciais de administrador do WordPress NÃO são as mesmas do seu login no Server Manager. Elas ficam dentro do banco de dados do WordPress, separadas do Server Manager. Escolha uma senha forte e salve em um gerenciador de senhas — não há como recuperar uma senha de administrador do WP esquecida pelo lado do Server Manager sem mexer no banco de dados (o chat consegue fazer isso; veja "Perguntas comuns" abaixo).

Pronto. Faça login em /wp-admin/, escreva seu primeiro post, instale um tema, instale plugins — igual a qualquer site WordPress.

6De volta ao Server Manager

Agora aparece um cartão da carga de trabalho na sua tela inicial com o símbolo do WordPress + o título do seu site:

Cartão da carga de trabalho na tela inicial — site WordPress com status "OK · RUNNING"
Cartão da carga de trabalho na tela inicial — site WordPress com status "OK · RUNNING"

Clique em manage → para abrir o com as abas específicas da receita:

  • WP-Admin — um link de um clique para https://your-domain/wp-admin/.
  • Plugins — lista de plugins instalados com Ativar / Desativar / Atualizar / Excluir em um clique. (Adicionar novos plugins ainda acontece pelo WP-Admin — é lá que fica o índice de busca de plugins.)
  • Temas — igual a Plugins, mas para temas.
  • Manutenção — três coisas em uma aba: Limpar cache do WordPress (força a reconstrução na próxima visita), Buscar e substituir no banco de dados (normalmente para mudar a URL do site — corrigido com wp-cli para que dados PHP serializados não sejam corrompidos; por padrão, mostra uma prévia segura sem aplicar alterações) e Atualizar o núcleo do WordPress (com lembrete de Backup / Clone antes de mudar qualquer coisa).
  • Status / Logs / Controles / Backup — as abas universais (todo tipo de carga de trabalho tem essas).
Aba WP-Admin do ServicePanel — URL de destino + botão "Abrir admin do WordPress →"
Aba WP-Admin do ServicePanel — URL de destino + botão "Abrir admin do WordPress →"
Aba Plugins do ServicePanel — lista de plugins com botões Ativar/Desativar
Aba Plugins do ServicePanel — lista de plugins com botões Ativar/Desativar

O que foi instalado, exatamente

Para referência (você não precisa mexer em nada disso — o painel do serviço cuida de tudo):

OndeO quê
/opt/wordpress/docker-compose.ymlDefinições dos contêineres (WordPress 6 + MariaDB 11)
/opt/wordpress/.envSegredos (senha do banco + 8 salts do WP) — chmod 600, pertencentes ao root
Volume nomeado do Docker wp_datawp-content do WordPress (uploads, plugins, temas)
Volume nomeado do Docker db_dataArquivos de dados do MariaDB
Rede Docker wordpress_defaultRede interna para os dois contêineres se comunicarem
/etc/caddy/CaddyfileO bloco de proxy reverso para o seu domínio (a um caddy reload de ficar ativo)
Diretório de dados do CaddyCertificado Let's Encrypt emitido automaticamente para o seu domínio

O contêiner do WordPress publica sua porta em 127.0.0.1:<random in 38000–39999>somente para localhost. O Caddy acessa por essa porta local; a internet pública só vê o Caddy nas portas 80/443. Então, mesmo que o WordPress tivesse uma vulnerabilidade, o contêiner em si não fica exposto diretamente.

Perguntas comuns

Onde consigo plugins? Pela busca do WP-Admin → Plugins → Adicionar novo do WordPress, como em qualquer site WP normal. Depois de instalados, a aba Plugins no painel de serviço do Server Manager mostra todos eles com ativar/desativar/atualizar/excluir em um clique.

**Posso editar wp-config.php?** Ele fica dentro do contêiner e é regenerado no docker compose up. Alterações personalizadas devem ir em /opt/wordpress/.env (os segredos + coisas que o WordPress lê via variáveis de ambiente) ou em /opt/wordpress/docker-compose.yml (a própria definição do contêiner). Para adicionar uma variável de ambiente personalizada, peça ao Faro — "add WP_DEBUG=true to the wordpress container" — e aprove a alteração.

Perdi a senha de administrador. Não use o link "Perdeu sua senha?" do WordPress, a menos que você tenha configurado Enviar e-mail pelo seu domínio (caso contrário, o e-mail não vai chegar a lugar nenhum). Em vez disso, peça ao Faro: "reset the WordPress admin password." Ele executa um padrão seguro de rotação dentro do banco de dados (nenhuma senha em texto puro é impressa) e mostra a nova senha uma vez.

Também perdi o nome de usuário administrador. Peça ao Faro: "who's the WordPress admin?" — ele lista as contas com função de administrador a partir do banco de dados.

Posso rodar vários sites WordPress no mesmo servidor? Sim. Basta executar a receita Instalar WordPress de novo com outro domínio — o Faro vai detectar a instalação existente em /opt/wordpress/ (a pré-verificação procura wordpress em docker ps) e propor um diretório de instalação que não conflite (normalmente /opt/wordpress-<short-name>/), para que os novos contêineres, volumes e bloco do Caddy não batam com os originais. O Caddy faz a multiplexação por domínio. Veja Vários sites no mesmo servidor para a versão completa.

O WordPress está lento / ficando sem memória. Cada instalação precisa de ~256–512 MB de RAM em repouso (WordPress + MariaDB combinados). Em um servidor de 1 GB, dá para rodar um confortavelmente; em 2 GB, dois; e assim por diante. O cartão da carga de trabalho na tela inicial mostra o uso atual de RAM — se você vir esse número subindo em direção ao total do servidor, é hora de aumentar o servidor ou mover sites pesados para instâncias maiores. Se o WP-Admin especificamente informar "Allowed memory size exhausted" durante uma ação, peça ao Faro no chat para aumentar o memory_limit do PHP — ele vai editar o arquivo de configuração correto dentro do contêiner e reiniciar.

Posso migrar um site WordPress existente para cá? Sim — esse é o assistente Migrar um site existente para cá. Ele copia os arquivos + banco de dados do seu site do host antigo e instala tudo aqui pela mesma receita.

Posso ter HTTPS sem um domínio? Não com Let's Encrypt (eles exigem um domínio real). O site será servido por HTTP sem criptografia em http://<your-ip> até você apontar um domínio para o servidor; depois disso, o HTTPS é emitido automaticamente em ~30 segundos.

O que NÃO está no escopo aqui

  • WordPress multisite (rede) — a receita instala um WP de site único. Multisite é habilitado dentro do próprio WordPress, depois da instalação, por alterações em wp-config.php. Peça ao Faro para habilitar; a mudança fica no arquivo de ambiente e em uma flag no banco de dados do WP.
  • Temas/plugins WordPress personalizados enviados com seu código — a receita instala um WP padrão. Se você tem um tema personalizado + plugins como código, implante via Migrar um site existente para cá (a partir do seu ambiente de desenvolvimento) ou como um pacote de backup via Restaurar de um backup.
  • Hardening / configuração de segurança do WordPress — a receita fornece padrões razoáveis (segredos aleatórios, porta não exposta publicamente, segredos em variáveis de ambiente). Coisas como 2FA, Wordfence, varreduras de malware — instale como plugins dentro do WordPress.
  • Enviar e-mail A PARTIR do WordPress — plugins de WP-Mail ou formulário de contato precisam de um endpoint SMTP/API. Execute Enviar e-mail pelo seu domínio (Resend) e coloque essas credenciais em um plugin SMTP do WP.

Referência

Caminhos padrão da instalação:

  • Diretório de instalação: /opt/wordpress/ (ou /opt/wordpress-<suffix>/ se houver vários)
  • Arquivo Compose: /opt/wordpress/docker-compose.yml
  • Env / segredos: /opt/wordpress/.env
  • Bloco do Caddy: /etc/caddy/Caddyfile — procure a linha reverse_proxy do seu domínio

Nomes dos contêineres seguem o padrão default do Compose <project>-<service>-<n> — normalmente wordpress-wordpress-1 (web) e wordpress-db-1 (banco de dados) no Compose v2 moderno; o v1 mais antigo usa separadores _ (wordpress_wordpress_1). Rode docker ps para confirmar exatamente o que está rodando no seu servidor.

Faixa de portas internas: 38000–39999 — a receita escolhe uma porta livre aleatoriamente e publica em 127.0.0.1. Só o Caddy no host consegue acessá-la; a internet pública não.

Versões do WordPress + MariaDB: fixadas nas tags principais wordpress:6 e mariadb:11. Atualizações de correção vêm com docker compose pull. Upgrades de versão principal (WP 6 → 7, MariaDB 11 → 12) são um pedido separado no chat — às vezes exigem migrações de banco de dados.

Para desinstalar: o painel manage → do cartão na tela inicial tem uma ação Excluir em Controles. Ela para os contêineres, opcionalmente apaga os volumes nomeados (então você perde seus dados) ou os mantém (para você poder reinstalar depois), e remove o bloco do Caddy. Também há um atalho de um clique na barra de ações inferior (clique no cartão → Excluir).