Instalação e Configuração do Nextcloud

Antes da Primeira Execução

Crie um banco de dados e um usuário para a aplicação do Nextcloud. Exemplo no Postgres:

# Acesse a pasta do postgres
cd ~/projetos/postgres
# Acesse o Postgres com o comando `psql`
docker compose exec postgres psql -U postgres
# Crie um usuário para a aplicação
CREATE ROLE nextcloud WITH LOGIN;
# Define uma senha para o usuário
ALTER USER nextcloud WITH PASSWORD 'UmaSenhaMuitoForteVaiAquiMudaIssoPorFavor';
# Crie o banco de dados e atribua ao usuário recém criado
CREATE DATABASE nextcloud WITH OWNER = nextcloud;

Clone o repositório no servidor:

git clone https://github.com/LibreCodeCoop/nextcloud-docker.git

Copie o arquivo .env.example para .env e defina os valores:

cp .env.example .env

Importante

O Let’s Encrypt só funciona em servidores onde VIRTUAL_HOST e LETSENCRYPT_HOST possuem um domínio público válido registrado em um servidor DNS. Não tente usar em localhost, não funcionará!

Crie as redes necessárias:

docker network create reverse-proxy
docker network create postgres

Subindo os serviços

Construa as imagens, e suba os containers:

# Construindo imagens
docker compose build --pull
# Subindo os containers
docker compose up -d

Após a Configuração

Após concluir a configuração, acesse: https://seudominio.com.br/settings/admin/overview

O mesmo pode ser visualizado pela linha de comando utilizando comando occ:

cd pasta/do/docker-compose.yml
# Verifique o status da instalação
docker compose exec -u www-data app ./occ setupchecks

Configuração Personalizada

Você pode fazer isso usando variáveis de ambiente e criando um arquivo chamado docker-compose.override.yml para adicionar novos serviços.

Redis

Adicionando redis para cache de memória. 1. Crie a rede docker para o redis: docker network create redis 2. Crie o arquivo docker-compose.override.yml 3. Adicione o serviço do redis e adicione a rede do redis aos serviços que vão acessar o mesmo.

  1. Adicione ao arquivo de configuração do Nextcloud o bloco de configuração do redis

Ou, utilizando o comando occ:

docker compose exec -u www-data app ./occ config:set "memcache.distributed"

PHP

  1. Crie seu arquivo .ini na pasta volumes/php/. Exemplo: volumes/php/xdebug.ini

  2. Altere o arquivo docker-compose.override.yml adicionando seu volume:

services:
  app:
    volumes:
      - ./volumes/php/xdebug.ini:/usr/local/etc/php/conf.d/xdebug.ini

PHP-FPM

Para modificações no PHP-FPM, inclua o seguinte volume no serviço app no arquivo docker-compose.override.yml:

services:
  app:
    volumes:
        - ./volumes/php/pm.ini:/usr/local/etc/php/conf.d/

Crie um arquivo ./volumes/php/pm.ini com o seguinte conteúdo (consulte as referências para ajustes de acordo com sua configuração):

[www]
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

Referências:

- https://docs.nextcloud.com/server/21/admin_manual/installation/server_tuning.html#tune-php-fpm
- https://spot13.com/pmcalculator/

Executando o Nextcloud

# O serviço postgres é executado separadamente para ser possível reutilizar este serviço para outras aplicações que usam PostgreSQL
docker compose up -f docker-compose-postgres.yml -d
docker compose up -d

Usando uma Versão Específica do Nextcloud

Altere o valor de NEXTCLOUD_VERSION no arquivo .env e coloque o nome da tag que deseja usar. Verifique as tags disponíveis em: https://hub.docker.com/_/nextcloud/tags

Visualizando Logs

Se quiser ver os logs, execute:

docker compose logs -f --tail=100

Você verá esta mensagem nos logs entre outras mensagens de atualização:

app_1      | 2025-06-25T11:10:09.568623133Z Initializing nextcloud 31.0.8.0 ...
app_1      | 2025-06-25T11:10:09.577733913Z Upgrading nextcloud from 31.0.7.0 ...

Diretório de arquivos

O diretório que contém os dados dos usuários se encontra mapeado para o host, no seguinte caminho ./volumes/nextcloud/data. Se há a necessidade de mover esses dados, lembre-se de ajustar as permissões posteriormente. O dono e grupo dos arquivos são o usuário wwww-data.

Backup

Os seguintes arquivos devem feitos backup com sua ferramenta de preferência. São eles:

Configurações: /volumes/nextcloud/config/
Dados dos usuários: /volumes/nextcloud/data/
Pasta dos temas: /volumes/nextcloud/themes/
Compose do projeto: docker-compose.yml
Segredos: .env