services:
  zerobyte-dev:
    build:
      context: .
      dockerfile: Dockerfile
      target: development
    container_name: zerobyte
    restart: unless-stopped
    devices:
      - /dev/fuse:/dev/fuse
    cap_add:
      - SYS_ADMIN
    env_file:
      - .env.local
    environment:
      - NODE_ENV=development
    ports:
      - "${PORT:-3000}:3000"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /var/lib/zerobyte:/var/lib/zerobyte
      - ./app:/app/app
      - ~/.config/rclone:/root/.config/rclone:ro
      - ./tmp/:/test-data

  zerobyte-prod:
    # image: ghcr.io/nicotsx/zerobyte:v0.22.0
    build:
      context: .
      dockerfile: Dockerfile
      target: production
      args:
        - APP_VERSION=0.20.0
    container_name: zerobyte
    restart: unless-stopped
    devices:
      - /dev/fuse:/dev/fuse
    cap_add:
      - SYS_ADMIN
    ports:
      - "4096:4096"
    environment:
      - APP_SECRET=94bad4678ce84a60b9789bd2114a6bf780aeb38df426f7352c941c66e25d5c2b
      - BASE_URL=http://localhost:4096
      - PORT=4096
      - LOG_LEVEL=debug
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ~/.config/rclone:/root/.config/rclone:ro
      - ./tmp:/test-data
      - ./data:/var/lib/zerobyte

  zerobyte-e2e:
    build:
      context: .
      dockerfile: Dockerfile
      target: production
    container_name: zerobyte
    restart: unless-stopped
    environment:
      - DISABLE_RATE_LIMITING=true
      - APP_SECRET=94bad4678ce84a60b9789bd2114a6bf780aeb38df426f7352c941c66e25d5c2b
      - BASE_URL=http://localhost:4096
      - TRUSTED_ORIGINS=http://dex:5557,http://localhost:5557
    devices:
      - /dev/fuse:/dev/fuse
    cap_add:
      - SYS_ADMIN
    ports:
      - "4096:4096"
    depends_on:
      - dex
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./playwright/data:/var/lib/zerobyte/data
      - ./playwright/temp:/test-data

  dex:
    image: ghcr.io/dexidp/dex:latest
    restart: unless-stopped
    ports:
      - "5557:5557"
    volumes:
      - ./playwright/dex-config.yaml:/etc/dex/cfg.yaml:ro
    command: dex serve /etc/dex/cfg.yaml
