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.
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
Crie seu arquivo
.inina pastavolumes/php/. Exemplo:volumes/php/xdebug.iniAltere o arquivo
docker-compose.override.ymladicionando 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