Install Nextcloud with Docker compose
docker-compose.yml
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
Run:
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; }