Sign inSign up

lzocateli/nextcloud

By lzocateli

•Updated 6 days ago

Image
0

115

lzocateli/nextcloud repository overview

⁠Nextcloud Community

Docker Hub Version Base Platforms Repository code license Build

Wrapper sem customizacao da imagem oficial Nextcloud Community Apache. A imagem upstream e fixada por digest; o wrapper acrescenta labels OCI e uma verificacao HTTP local de saude. O objetivo e manter o contrato de runtime upstream sem embutir configuracao, dados ou credenciais.

⁠Referencia da imagem

ItemValor
Imagemlzocateli/nextcloud:35.0.1-r1
Imagem basenextcloud:35.0.1-apache@sha256:276547e033df451770dbf9c0065929e5ea179a613b1884bd3fa807ba1c2703e7
Release consultada35.0.1, upstream latest.txt, 2026-09-28
Plataformas declaradaslinux/amd64
Usuario padraoroot; o entrypoint upstream prepara os volumes e o Apache atende como www-data
Entry point e comandoPreservados da imagem oficial upstream
Porta80/tcp
Persistencia upstream/var/www/html (inclui config, custom_apps e data)
Codigo-fontehttps://github.com/lzocateli/containers/tree/main/nextcloud
Documentacaohttps://github.com/lzocateli/containers/tree/main/nextcloud

O digest fixado no Dockerfile e o manifesto OCI multi-arquitetura consultado no Docker Hub. A publicacao deste wrapper continua pendente; nao ha digest lzocateli/nextcloud atribuido ainda.

⁠Conteudo e finalidade

⁠Incluido
  • Nextcloud Community 35.0.1, variante Apache oficial.
  • Labels OCI e health check HTTP em /status.php.
⁠Nao incluido
  • Banco de dados, Redis, proxy, certificados, secrets ou dados de usuario.
  • Configuracao de producao ou exposicao de porta no host.

⁠Inicio rapido

O comando abaixo serve somente para teste local isolado. Em producao, nao publique a porta do Nextcloud diretamente; use o gateway mTLS descrito no projeto Ansible.

docker pull lzocateli/nextcloud:35.0.1-r1
docker run --rm --publish 127.0.0.1:8080:80 lzocateli/nextcloud:35.0.1-r1

⁠Docker Compose

Exemplo de contrato minimo, sem secrets reais. A stack de producao e gerenciada em ansible/ e nao deve copiar este exemplo isolado.

services:
  nextcloud:
    image: lzocateli/nextcloud:35.0.1-r1
    restart: unless-stopped
    volumes:
      - /mnt/pve_pool/nextcloud/html:/var/www/html
    expose:
      - "80"

⁠Configuracao

⁠Variaveis de ambiente
VariavelObrigatoriaSecretaPadraoDescricao
POSTGRES_HOST, POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORDNa instalacaoSenha simNenhumConfiguracao inicial para PostgreSQL externo; a senha deve ser entregue por secret/runtime seguro.
NEXTCLOUD_ADMIN_USER, NEXTCLOUD_ADMIN_PASSWORDNo bootstrap automatizadoSenha simNenhumConta administrativa inicial; remover do ambiente apos o bootstrap quando possivel.
REDIS_HOST, REDIS_HOST_PASSWORDPara cache e file lockingSenha simNenhumRedis existente; reservar e validar um dbindex exclusivo antes de instalar.
NEXTCLOUD_TRUSTED_DOMAINSSim neste servicoNaoNenhumDeve conter nextcloud.lzoca.
TRUSTED_PROXIESSim neste servicoNaoNenhumEndereco do proxy 172.16.10.30.
OVERWRITEHOST, OVERWRITEPROTOCOLSim neste servicoNaoNenhumnextcloud.lzoca e https para o proxy TLS externo.
PHP_UPLOAD_LIMIT, APACHE_BODY_LIMITRecomendadoNaoUpstreamAjustar em conjunto ao limite configurado no proxy; alvo operacional inicial de 10 GiB.

Os nomes e comportamentos das variaveis de bootstrap sao herdados da documentacao upstream. A automacao de producao deve injetar os valores via Ansible Vault, nao por .env versionado ou argumentos de build.

⁠Portas
PortaProtocoloExposicao recomendadaFinalidade
80/tcpHTTPSomente rede Docker privadaApache interno; nunca publicada no host TrueNAS.
⁠Persistencia e mounts
Caminho no conteinerModoConteudoBackup necessario
/var/www/htmlrwAplicacao, configuracao, apps adicionados e arquivos dos usuariosSim

A imagem oficial espera privilegios de root no entrypoint para preparar volumes; o processo web baixa privilegios para www-data (UID 33 na variante Debian). Confirmar UID/GID e ownership efetivos da tag antes de criar os diretorios em TrueNAS. Nao usar submounts adicionais sem verificar o upgrade.exclude upstream.

⁠Health check

O health check consulta http://127.0.0.1/status.php pelo PHP CLI. Ele confirma que o endpoint Apache responde HTTP 200, mas nao certifica disponibilidade do PostgreSQL, Redis, cron, proxy ou login. Durante o bootstrap a instalacao pode ainda nao estar pronta; o start-period de 10 minutos cobre a inicializacao inicial sem transformar o health check em teste funcional. O smoke test valida instalacao, PostgreSQL, Redis e persistencia separadamente.

⁠Inicializacao e ciclo de vida

  • O ENTRYPOINT e o CMD oficiais sao preservados; a imagem nao substitui scripts de bootstrap e upgrade do upstream.
  • O primeiro start pode demorar enquanto instala o Nextcloud no volume e conecta ao PostgreSQL.
  • O servico cron deve usar a mesma imagem, configuracao e volume de /var/www/html, executando o comando upstream /cron.sh; o health check HTTP deve ser desativado nesse servico.
  • Programe background jobs em modo cron pelo occ depois do bootstrap.
  • Atualize uma versao principal por vez, com backup consistente e janela aprovada.

⁠Seguranca

  • O backend deve ficar somente na rede Docker privada e ser acessivel pelo gateway Nginx mTLS.
  • Nao publique a porta 80 no host nem exponha portas administrativas do TrueNAS.
  • Use certificado cliente do proxy e valide a CA do backend no Nginx.
  • Secrets entram em runtime pelo Ansible Vault. Nao os grave em labels, logs, ARG, ENV de build ou arquivos rastreados em claro.
  • A imagem oficial roda entrypoint como root por requisito do contrato upstream; Apache atende como www-data.
  • A imagem upstream e fixada pelo digest de linux/amd64; atualizacoes exigem nova tag imutavel e validacao.

⁠Build local

docker buildx build --pull --platform linux/amd64 \
  --tag lzocateli/nextcloud:35.0.1-r1 --load nextcloud
bash nextcloud/scripts/smoke-test.sh --image lzocateli/nextcloud:35.0.1-r1

O wrapper nao adiciona dependencias, pacotes ou arquivos ao build context. Consulte containers/.github/skills/container-image-maintenance/SKILL.md para gates de build, scan e publicacao.

⁠Tags e compatibilidade

TagMutabilidadeCompatibilidadeUso recomendado
35.0.1-r1Imutavel apos publicacaoNextcloud Community 35.0.1 ApacheImplantacao controlada apos valida e publicacao autorizadas

Nao existe tag latest de producao. A tag nao deve ser reutilizada. Ainda nao publicada.

⁠Validacao

Validados localmente: BuildKit --check sem warnings; build linux/amd64; scripts/smoke-test.sh (bootstrap PostgreSQL, file locking Redis, health e persistencia); inspecao de usuario/entrypoint/CMD/labels/porta/volume/health check; Trivy linux/amd64 sem CRITICAL corrigivel. O relatorio apontou 19 vulnerabilidades HIGH com correcao disponivel na imagem upstream; nenhuma foi ocultada ou ignorada. Evidencia local: containers/artifacts/security-local/trivy-nextcloud-35.0.1-r1.json. Ainda executar git check-ignore, gerar SBOM/proveniencia na release e confirmar novamente a base antes de publicar.

⁠Publicacao

Publicacao somente pelo workflow oficial apos autorizacao explicita, com contexto nextcloud, imagem nextcloud, tag imutavel 35.0.1-r1, Dockerfile Dockerfile e plataforma linux/amd64. Registre o digest do manifest publicado no inventario Ansible depois de confirmar o resultado remoto.

⁠Operacao

  • Backup: maintenance mode, dump consistente do PostgreSQL, snapshot ZFS apos o dump e backup coerente de /var/www/html; testar restore conjunto antes de declarar recuperacao.
  • Upgrade: backup verificavel, checar matriz de upgrade, avancar uma major por vez e manter digest anterior para rollback.
  • Rollback: so restaurar app, banco e arquivos para o mesmo ponto consistente; nao reutilizar um banco ja migrado com binario antigo sem plano de recuperacao.
  • Remocao: exigir autorizacao e tag explicitamente identificada; preservar backup ate validar a restauracao.

⁠Troubleshooting

SintomaCausa provavelVerificacaoCorrecao
Health unhealthy no bootstrapApache ainda inicializando ou banco indisponivelLogs do container e occ statusVerificar DB/rede e aguardar o start period; nao publicar a porta direta
Falha de permissao no volumeOwnership nao corresponde ao contrato upstreamUID/GID do www-data e logs do entrypointCorrigir ownership pelo procedimento aprovado depois de medir a imagem
Loop de redirecionamento ou URL HTTPProxy/trusted domains/overwrite divergentesocc config:list system sem --privateAjustar dominio, trusted proxy e protocolo na automacao
Redis indisponivelAutenticacao, dbindex ou capacidade incorretosLogs e occ sem imprimir credenciaisValidar senha e dbindex; nao reiniciar Redis compartilhado fora da janela

⁠Limitacoes conhecidas

  • O release e o digest upstream foram consultados em 2026-09-28; confirmar novamente antes de publicar.
  • Trivy encontrou 19 vulnerabilidades HIGH corrigiveis herdadas da imagem upstream; zero CRITICAL corrigiveis. Reavaliar a release upstream e o scan antes de publicar.
  • A disponibilidade real de pve_pool, espaco livre, regras de rede, PostgreSQL, Redis, DNS, certificados e recursos do TrueNAS nao foi aferida.
  • O digest publicado do wrapper, SBOM/proveniencia, teste de persistencia/interop remota permanecem pendentes; o build, smoke e Trivy locais foram aprovados.
  • O uso de Redis e PostgreSQL externos exige preflight e credenciais reais provisionadas localmente em Vault.

⁠Licencas e fontes

ComponenteVersaoLicencaFonte
Conteudo original deste repositorioAtualMIThttps://github.com/lzocateli/containers
Nextcloud Community Docker image35.0.1AGPL-3.0 (confirmar avisos distribuidos)https://github.com/nextcloud/docker
PHP/Apache base upstreamConforme imagem 35.0.1Licencas dos componenteshttps://hub.docker.com/_/nextcloud

O badge MIT descreve somente o conteudo original deste repositorio. A imagem inclui componentes de terceiros que permanecem sujeitos aos termos e avisos de suas fontes. Consulte a politica de licenciamento⁠, preserve as atribuicoes upstream e verifique tambem os avisos distribuidos dentro da imagem.

⁠Historico de alteracoes

  • 35.0.1-r1: primeira imagem wrapper, com base oficial por digest e health check local.

Tag summary

Content type

Image

Digest

sha256:d37bd86e1…

Size

491.3 MB

Last updated

6 days ago

docker pull lzocateli/nextcloud:35.0.1-r1