Índice do diárioDockup / nota de campo
Note / self-host-grocy

Como hospedar o Grocy por conta própria em 2026: dados de inventário, fuso horário e backups

Hospede o Grocy por conta própria com portas corretas, armazenamento persistente, HTTPS, secrets, backups e verificações de upgrade. Aprenda a corrigir problemas quando o banco de dados SQLite não pode ser gravado.

Trate o Grocy como um sistema pequeno, não como uma imagem Docker. O objetivo do Grocy para os usuários é claro: acompanhar o inventário doméstico, as compras, as tarefas e os equipamentos; a implantação só é aceitável quando você consegue substituir o login padrão, adicionar um produto, registrar uma compra e um consumo, escanear um código de barras e acionar um lembrete de tarefa ou validade.

Essa distinção revela o modo de falha que os operadores encontram depois dos testes locais: o banco de dados SQLite não pode ser gravado ou as tarefas agendadas usam o fuso horário errado. Ela também torna o plano de backup e upgrade específico o suficiente para ser testado.

Portas, processos e serviços privados

Um diagrama útil do Grocy mostra a rota pública, a porta privada 80, o limite de estado e todos os requisitos de suporte. Marque quais setas transportam credenciais e quais representam tráfego comum de usuários. O requisito do runtime local é um volume de configuração durável e acesso opcional a dispositivos de código de barras. Dimensione e monitore esse recurso junto com o container, em vez de expor um serviço de rede não relacionado.

Comprove o diagrama com uma ação real: substitua o login padrão, adicione um produto, registre uma compra e um consumo, escaneie um código de barras e acione um lembrete de tarefa ou validade. A maior pressão provavelmente virá de gravações no SQLite, imagens enviadas, jobs agendados e tráfego de dispositivos domésticos; monitore esse caminho em vez de tratar todas as requisições HTTP como equivalentes.

Monitore a carga de trabalho, não apenas o container

Observe o trabalho realizado pelo Grocy: gravações no SQLite, imagens enviadas, jobs agendados e tráfego de dispositivos domésticos. Defina limites com margem para esse trabalho e evite um liveness probe que concorra com ele. A verificação operacional ainda deve tentar substituir o login padrão, adicionar um produto, registrar uma compra e um consumo, escanear um código de barras e acionar um lembrete de tarefa ou validade em uma programação definida.

Para atualizações, lembre-se de que as migrações do banco de dados do Grocy e as extensões personalizadas devem ser ensaiadas em um diretório de configuração copiado. Faça o deploy do candidato usando uma cópia recuperada e repita o teste conhecido. Se o banco de dados SQLite não puder ser gravado ou as tarefas agendadas usarem o fuso horário errado, use os logs do runtime e a requisição de rede real para descobrir qual suposição mudou.

O que deve passar antes de os dados reais do Grocy chegarem

Um gate de produção para o Grocy deve poder ser executado por alguém que não criou a implantação. Forneça a essa pessoa a versão fixada, uma conta de teste sem dados sensíveis e esta tarefa: substituir o login padrão, adicionar um produto, registrar uma compra e um consumo, escanear um código de barras e acionar um lembrete de tarefa ou validade. Se as instruções exigirem acesso ao shell não documentado, o serviço ainda não está pronto operacionalmente.

Repita o gate depois de substituir apenas o container. Em seguida, restaure o banco de dados, os arquivos enviados, as receitas e a configuração em uma infraestrutura vazia e comprove que o estoque, as receitas, as tarefas, os equipamentos e o histórico retornam, e que o próximo lembrete agendado tem a data correta. Meça as gravações no SQLite, as imagens enviadas, os jobs agendados e o tráfego de dispositivos domésticos durante as duas execuções bem-sucedidas; diferenças inesperadas frequentemente revelam um cache, índice, worker ou mount de dados ausente.

Adicione um exercício de falha: envie uma entrada inofensiva próxima do limite de recurso ou formato associado a este limite: o banco de dados SQLite não pode ser gravado ou as tarefas agendadas usam o fuso horário errado. O Grocy deve emitir um erro útil, preservar o estado existente e se recuperar quando a condição válida retornar. Salve os timestamps e as linhas de log relevantes, removendo os secrets. Essas evidências se tornam a referência para a próxima alteração de imagem ou configuração.

Crie um container Grocy substituível

Use um comando que exponha todas as escolhas importantes. Esta configuração básica vincula o Grocy ao loopback do host, adiciona os mounts de dados conhecidos e fornece a primeira configuração necessária. Confirme o requisito local antes da exposição: um volume de configuração durável e acesso opcional a dispositivos de código de barras.

docker run -d \
  --name grocy \
  --restart unless-stopped \
  -p 127.0.0.1:80:80 \
  -v grocy-data:/config \
  lscr.io/linuxserver/grocy:latest

Substitua tags flutuantes por uma versão ou digest testado. Depois da inicialização, inspecione docker logs --tail 200 grocy e confirme que o processo está escutando na porta 80. Em seguida, execute a ação de aceitação do Grocy; uma resposta da página inicial não comprova que todo o cenário funciona: substituir o login padrão, adicionar um produto, registrar uma compra e um consumo, escanear um código de barras e acionar um lembrete de tarefa ou validade.

Planeje a restauração do Grocy antes do lançamento

Proteja o estado do Grocy antes de otimizar o container. O conjunto necessário inclui banco de dados, arquivos enviados, receitas e configuração. Monte /config antes do bootstrap, grave dados de exemplo inofensivos e substitua o container para provar que esse caminho é realmente persistente. Se várias lojas precisarem permanecer sincronizadas, documente a ordem em que as gravações são pausadas e os backups são realizados.

Mantenha cópias fora do servidor de implantação e criptografe o material que contenha credenciais ou conteúdo privado. A recuperação é bem-sucedida quando o estoque, as receitas, as tarefas, os equipamentos e o histórico retornam, e o próximo lembrete agendado tem a data correta. A diferença entre um mount persistente e uma cópia independente é explicada em armazenamento persistente e snapshots.

Teste o Grocy de fora do servidor

Escolha o hostname final do Grocy antes que os usuários salvem callbacks ou configurações de cliente, depois publique a UI via HTTPS e configure o fuso horário correto. A rota da plataforma deve terminar o TLS uma única vez e apontar para a porta privada 80.

Execute a transação de aceitação externamente. Se o cliente nunca chegar ao Grocy, use o checklist de validação de SSL para verificar o DNS e o certificado. Se a requisição chegar ao Grocy, mas o banco de dados SQLite não puder ser gravado ou as tarefas agendadas usarem o fuso horário errado, pare de alterar redirects do proxy e inspecione o limite específico da aplicação.

Escolha o limite de confiança do Grocy

Modele a ameaça da ação realizada pelo Grocy, não apenas do formulário de login. Aqui, o erro de alto risco é manter o login padrão depois da configuração inicial. Implemente este limite: remova as credenciais padrão, escolha o fuso horário correto e limite os dados domésticos aos usuários pretendidos.

O Grocy não tem um secret obrigatório de bootstrap nesta configuração básica; proteja a conta de administrador real ou a autenticação upstream. Não resolva um erro de permissão executando o container como root ou montando o host de forma ampla. Os limites de recursos também fazem parte do design de segurança quando gravações no SQLite, imagens enviadas, jobs agendados e tráfego de dispositivos domésticos podem ser acionados pelos usuários.

Uma implantação no Dockup ainda precisa de um teste de aceitação do Grocy

O Dockup pode assumir os componentes substituíveis da plataforma: encaminhar o tráfego para a porta 80, emitir o domínio e o certificado, injetar secrets, anexar armazenamento persistente e conectar o Grocy a serviços gerenciados ou anexados de forma privada. Isso pode ser feito na infraestrutura do Dockup ou em um servidor conectado por você.

O trabalho de aceitação do Grocy continua explícito. Depois da implantação em um clique, publique a UI via HTTPS e configure o fuso horário correto, confirme o requisito local — um volume de configuração durável e acesso opcional a dispositivos de código de barras — e execute este cenário: substitua o login padrão, adicione um produto, registre uma compra e um consumo, escaneie um código de barras e acione um lembrete de tarefa ou validade. Essa divisão é intencional: o Dockup elimina a configuração repetitiva da infraestrutura sem fingir que as funções da aplicação, as credenciais do provedor ou a política de restauração se escolhem sozinhas.

Perguntas frequentes

O que o Grocy precisa para uma implantação em produção?

Encaminhe o container do Grocy na porta 80 por meio de uma única origem HTTPS. O requisito do runtime local é um volume de configuração durável e acesso opcional a dispositivos de código de barras. Não considere o Grocy pronto até conseguir substituir o login padrão, adicionar um produto, registrar uma compra e um consumo, escanear um código de barras e acionar um lembrete de tarefa ou validade.

Quais dados do Grocy devem fazer parte de um backup?

Persista /config e inclua o banco de dados, os arquivos enviados, as receitas e a configuração no mesmo manifesto de recuperação. Uma restauração limpa do Grocy só é bem-sucedida quando o estoque, as receitas, as tarefas, os equipamentos e o histórico retornam, e o próximo lembrete agendado tem a data correta.

O Grocy exige HTTPS atrás de um reverse proxy?

Use HTTPS para a origem pública do Grocy e mantenha a porta 80 na rota interna. Aplique corretamente a configuração do Grocy: publique a UI via HTTPS e configure o fuso horário correto. Para o Grocy, o HTTPS protege credenciais ou conteúdo de usuários durante o transporte e mantém consistente o comportamento do cliente sensível à origem.

Como um upgrade do Grocy deve ser testado?

Restaure o estado atual do Grocy em uma implantação isolada, aplique a versão candidata e repita sua transação de aceitação. Preste atenção especial porque as migrações do banco de dados do Grocy e as extensões personalizadas devem ser ensaiadas em um diretório de configuração copiado. Mantenha a imagem anterior do Grocy até compreender os limites de migração de dados e rollback.