Install Nextcloud with Docker Compose

Install Nextcloud with Docker Compose
Photo by Vladimir Anikeev / Unsplash

Install Nextcloud with Docker compose

version: '2'
 
services:
  db:
    image: mariadb:10.5
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - /home/dock/nextcloud/db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=nextclouddb
      - MYSQL_PASSWORD=nextclouddb
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
    restart: unless-stopped
 
  app:
    image: nextcloud
    restart: always
    ports:
      - 5001:80
    links:
      - db
    volumes:
      - /home/dock/nextcloud/nextcloud:/var/www/html
    environment:
      - MYSQL_PASSWORD=nextclouddb
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db
    restart: unless-stopped
docker-compose up -d

Expose your Nextcloud to the internet – Nginx Proxy host config:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
 
location / {
        proxy_pass http://localhost:5001;
 
        proxy_set_header X-Forwarded-Host     $host;
        proxy_set_header X-Forwarded-Server   $host;
        proxy_set_header X-Real-IP            $remote_addr;
        proxy_set_header X-Forwarded-For      $remote_addr;
        proxy_set_header X-Forwarded-Proto    $scheme;
        proxy_set_header X-Forwarded-Protocol $scheme;
        proxy_set_header X-Forwarded-Port     443;
        proxy_set_header Forwarded "for=$remote_addr;proto=$scheme";
 
        proxy_set_header Host                 $host;
 
        proxy_redirect  off;
        proxy_buffering off;
 
        proxy_http_version 1.1;
        proxy_set_header Upgrade    $http_upgrade;
        proxy_set_header Connection "upgrade";
 
        proxy_pass_header Authorization;
        proxy_request_buffering off;
        client_max_body_size 0;
        proxy_read_timeout  36000s;
        proxy_ssl_session_reuse off;
 
        fastcgi_param HTTPS on;
        fastcgi_param REQUEST_SCHEME https;
}