version: "3"

services:
  db:
    image: mariadb:10.6
    restart: unless-stopped
    volumes:
      - nextcloud-db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    image: nextcloud:latest
    restart: unless-stopped
    ports:
      - "8080:80" # Expose port 8080 locally for direct access
    depends_on:
      - db
    volumes:
      - nextcloud-config:/var/www/html/config
      - nextcloud-data:/var/www/html/data
    environment:
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db

volumes:
  nextcloud-db:
  nextcloud-config:
  nextcloud-data: