---
name: Nextcloud - SQLite - Docs - Firefox
author: Danilo Jesic <danilo@green-coding.berlin>
description: Installs the official Nextcloud image with a SQLite and collaborates on a document. Uses a playwright script running Firefox to create an admin account, install the recommended apps. Then creates a new user, creates a document and shares it. Finally, works on the document adding text from two browsers.
compose-file: !include compose-sqlite.yml

sci:
  R_d: collaborative edit

services:
  gcb-playwright:
    image: greencoding/gcb_playwright:v9
    depends_on:
      nc:
        condition: service_started # change to service_healthy when Docker CE 25.0 is released which supports start-interval
#    volumes:
#       - /tmp/.X11-unix:/tmp/.X11-unix # for debugging in non-headless mode
    environment:
       DISPLAY: ":0" # for debugging in non-headless mode

flow:
  - name: Install Nextcloud
    container: gcb-playwright
    commands:
      - type: console
        command: python3 /tmp/repo/energy_tests/nextcloud_install.py firefox
        note: Installing Nextcloud
        read-notes-stdout: true
        log-stdout: true
        log-stderr: true
  - name: Create User
    container: gcb-playwright
    commands:
      - type: console
        command: python3 /tmp/repo/energy_tests/nextcloud_create_user.py firefox
        note: Create user
        read-notes-stdout: true
        log-stdout: true
        log-stderr: true
  - name: Create doc and share
    container: gcb-playwright
    commands:
      - type: console
        command: python3 /tmp/repo/energy_tests/nextcloud_create_doc_and_share.py firefox
        note: Create document and share
        read-notes-stdout: true
        log-stdout: true
        log-stderr: true
  - name: Collaborate
    container: gcb-playwright
    commands:
      - type: console
        command: python3 /tmp/repo/energy_tests/nextcloud_docs_collaboration.py firefox
        note: dev
        read-notes-stdout: true
        read-sci-stdout: true
        log-stdout: true
        log-stderr: true