Learning Center
Ambiente Docker

Instalar o Nextcloud com Docker

25 nov. 2025
Hostman Team
Hostman Team

Para quem deseja ter controle total sobre seus dados, o Nextcloud oferece uma poderosa solução open-source para criar um sistema de armazenamento em nuvem privado. A plataforma não só permite sincronização segura de arquivos entre dispositivos, como também possibilita hospedar o armazenamento no seu próprio servidor, evitando a dependência de provedores terceiros.

Neste guia, vamos passar pelo processo de instalação do Nextcloud usando contêineres Docker isolados, o que simplifica bastante o deployment e a administração. Também vamos configurar criptografia automática de tráfego com certificados SSL do Let’s Encrypt para garantir uma transmissão segura dos dados.

Pré-requisitos
Copiar link

Você vai precisar de:

  • Um servidor em nuvem Hostman com Linux Ubuntu 24.04 pré-instalado.

  • Um nome de domínio.

  • Docker e Docker Compose instalados.

Para o servidor, recomenda-se uma configuração com 1 núcleo de CPU, 2 GB de RAM e um endereço IPv4 público, que pode ser solicitado ao criar o servidor ou depois, na seção “Network”.

O servidor estará pronto em poucos minutos. O endereço IPv4 e as credenciais de login para acesso via SSH estarão disponíveis no Dashboard.

Instalar e executar o Nextcloud
Copiar link

O Nextcloud requer vários componentes essenciais:

  • Banco de dados: neste caso, MariaDB — um SGBD rápido e confiável.

  • Certificado SSL: usaremos certificados gratuitos emitidos pelo Let’s Encrypt.

  • Reverse proxy: utilizaremos o Nginx Proxy Manager, que roteará o tráfego HTTP e HTTPS para os contêineres corretos.

Passo 1: Criar o diretório de configuração
Copiar link

Primeiro, crie o diretório onde ficarão os arquivos de configuração e navegue até ele:

mkdir nextcloud && cd nextcloud

Passo 2: Criar o arquivo .env
Copiar link

Este arquivo oculto armazenará variáveis com senhas:

nano .env

Conteúdo do arquivo:

NEXTCLOUD_ROOT_PASSWORD=secure_root_password_123

NEXTCLOUD_DB_PASSWORD=secure_nextcloud_db_password_456

NPM_ROOT_PASSWORD=secure_npm_root_password_789

NPM_DB_PASSWORD=secure_npm_db_password_012

Não esqueça de substituir os valores pelas suas próprias senhas seguras.

Passo 3: Criar o arquivo docker-compose.yml
Copiar link

Crie o arquivo com:

nano docker-compose.yml

Adicione a configuração abaixo (não traduzida conforme solicitado):

volumes:

  nextcloud-data:

  nextcloud-db:

  npm-data:

  npm-ssl:

  npm-db:

 

networks:

  frontend:

  backend:

 

services:

  nextcloud-app:

    image: nextcloud:31.0.8

    restart: always

    volumes:

      - nextcloud-data:/var/www/html

    environment:

      - MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}

      - MYSQL_DATABASE=nextcloud

      - MYSQL_USER=nextcloud

      - MYSQL_HOST=nextcloud-db

      - MYSQL_PORT=3306

    networks:

      - frontend

      - backend

 

  nextcloud-db:

    image: mariadb:12.0.2

    restart: always

    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW

    volumes:

      - nextcloud-db:/var/lib/mysql

    environment:

      - MYSQL_ROOT_PASSWORD=${NEXTCLOUD_ROOT_PASSWORD}

      - MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}

      - MYSQL_DATABASE=nextcloud

      - MYSQL_USER=nextcloud

    networks:

      - backend

 

  npm-app:

    image: jc21/nginx-proxy-manager:2.12.6

    restart: always

    ports:

      - "80:80"

      - "81:81"

      - "443:443"

    environment:

      - DB_MYSQL_HOST=npm-db

      - DB_MYSQL_PORT=3306

      - DB_MYSQL_USER=npm

      - DB_MYSQL_PASSWORD=${NPM_DB_PASSWORD}

      - DB_MYSQL_NAME=npm

    volumes:

      - npm-data:/data

      - npm-ssl:/etc/letsencrypt

    networks:

      - frontend

      - backend

 

  npm-db:

    image: jc21/mariadb-aria:10.11.5

    restart: always

    environment:

      - MYSQL_ROOT_PASSWORD=${NPM_ROOT_PASSWORD}

      - MYSQL_DATABASE=npm

      - MYSQL_USER=npm

      - MYSQL_PASSWORD=${NPM_DB_PASSWORD}

    volumes:

      - npm-db:/var/lib/mysql

    networks:

      - backend

Passo 4: Iniciar os contêineres
Copiar link

Execute:

docker compose up -d

Caso ocorra um erro relacionado ao limite de downloads do Docker Hub:

  1. Entre na sua conta do Docker Hub ou crie uma nova.

  2. Vá até Account settings → Personal access tokens.

  3. Clique em Generate new token.

  4. Defina uma descrição, escolha uma data de expiração e selecione as permissões: Read, Write, Delete.

  5. Clique em Generate e copie o token (ele aparece apenas uma vez).

  6. No servidor, faça login:

docker login -u dockeruser

Substitua dockeruser pelo seu nome de usuário e use o token como senha.

Reinicie os contêineres:

docker compose up -d

Verifique o status:

docker ps

Todos os contêineres devem exibir Up.

Passo 5: Configurar HTTPS com Let’s Encrypt
Copiar link

Abra no navegador:

http://<server-IP>:81

Faça login com as credenciais padrão:

  • Usuário: admin@example.com

  • Senha: changeme

No primeiro login:

  • Atualize o nome, apelido e e-mail do administrador.

  • Altere a senha:

    • Current Password: changeme

    • New Password: nova senha

    • Confirm Password: repetir senha

Passo 6: Adicionar um Proxy Host
Copiar link

Acesse Hosts → Proxy Hosts.

Clique em Add Proxy Host e preencha:

  • Domain Names: domínio da sua instância Nextcloud

  • Scheme: http

  • Forward Hostname/IP: nextcloud-app

  • Forward Port: 80

Na aba SSL:

  • Selecione Request a new SSL Certificate

  • Ative:

    • Force SSL

    • HTTP/2 Support

    • HSTS Enabled

Informe seu e-mail para o Let’s Encrypt e aceite os termos. Clique em Save.

Passo 7: Fazer login no Nextcloud
Copiar link

Agora abra o seu domínio. Se tudo foi configurado corretamente, a interface web do Nextcloud será exibida e um certificado SSL será emitido automaticamente pelo Let’s Encrypt.

  • Crie uma nova conta de administrador.

  • Instale apps recomendadas, se desejar.

A instalação e a configuração básica estão concluídas.

Conclusão
Copiar link

Neste artigo mostramos como fazer o deploy do Nextcloud usando Docker e como emitir um certificado SSL gratuito do Let’s Encrypt.

Esse método é um dos mais confiáveis, seguros e fáceis de escalar. O Docker garante isolamento adequado da aplicação, simplifica atualizações e facilita migrações. Usar um certificado SSL não é apenas recomendado — é essencial para proteger dados sensíveis e garantir tráfego criptografado.