{
    "captainVersion": "2",
    "documentation": "Taken from https://hub.docker.com/_/nextcloud",
    "displayName": "nextcloud",
    "description": "Nextcloud is a suite of client-server software for creating and using file hosting services",
    "isOfficial": true,
    "dockerCompose": {
        "version": "3.3",
        "services": {
            "$$cap_appname-db": {
                "documentation": "Taken from https://hub.docker.com/_/mariadb",
                "image": "mariadb:$$cap_mariadb_version",
                "notExposeAsWebApp": "true",
                "volumes": ["$$cap_appname-db-data:/var/lib/mysql"],
                "restart": "always",
                "environment": {
                    "MYSQL_ROOT_PASSWORD": "$$cap_db_pass",
                    "MYSQL_DATABASE": "nextcloud",
                    "MYSQL_USER": "$$cap_db_user",
                    "MYSQL_PASSWORD": "$$cap_db_pass"
                }
            },
            "$$cap_appname": {
                "depends_on": ["$$cap_appname-db"],
                "documentation": "Taken from https://hub.docker.com/_/nextcloud",
                "image": "nextcloud:$$cap_nextcloud_version",
                "volumes": ["$$cap_appname-data:/var/www/html"],
                "restart": "always",
                "environment": {
                    "OVERWRITEPROTOCOL": "$$cap_http_https_cors",
                    "MYSQL_DATABASE": "nextcloud",
                    "MYSQL_USER": "$$cap_db_user",
                    "MYSQL_PASSWORD": "$$cap_db_pass",
                    "MYSQL_HOST": "srv-captain--$$cap_appname-db",
                    "NEXTCLOUD_ADMIN_USER": "$$cap_admin_user",
                    "NEXTCLOUD_ADMIN_PASSWORD": "$$cap_admin_pass",
                    "NEXTCLOUD_TRUSTED_DOMAINS": "$$cap_appname.$$cap_root_domain"
                }
            },
            "$$cap_appname-cron": {
                "dockerfileLines": [
                    "FROM nextcloud:$$cap_nextcloud_version",
                    "ENTRYPOINT [ \"/cron.sh\" ] "
                ],
                "depends_on": ["$$cap_appname-db", "$$cap_appname"],
                "notExposeAsWebApp": "true",
                "documentation": "https://github.com/nextcloud/docker/blob/master/.examples/docker-compose/insecure/mariadb-cron-redis/apache/docker-compose.yml",
                "restart": "always",
                "volumes": ["$$cap_appname-data:/var/www/html"]
            }
        }
    },
    "instructions": {
        "start": "A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms. http://Nextcloud.com",
        "end": "NextCloud is deployed and will be available on few minutes as $$cap_appname.\nIf you set the cors sections to https, please enable https on your app. If you do not activate it you will have an error.\n\nFor better performances and compliance, you can add \"add_header Strict-Transport-Security \"max-age=15552000; includeSubDomains\" always;\" below \"proxy_set_header X-Forwarded-Proto $scheme;\" into the nginx configuration."
    },
    "variables": [
        {
            "id": "$$cap_nextcloud_version",
            "label": "NextCloud Version",
            "defaultValue": "19.0.0",
            "description": "Check out their Docker page for the valid tags https://hub.docker.com/r/library/nextcloud/tags/\n\ndo not use fpm versions.",
            "validRegex": "/^([^\\s^\\/])+$/"
        },
        {
            "id": "$$cap_mariadb_version",
            "label": "MariaDB (database) version",
            "defaultValue": "10.5.3",
            "description": "Check out their Docker page for the valid tags https://hub.docker.com/_/mariadb?tab=tags",
            "validRegex": "/^([^\\s^\\/])+$/"
        },
        {
            "id": "$$cap_db_pass",
            "label": "database password",
            "description": "Password for the database user and root using mysql.",
            "validRegex": "/.{1,}/"
        },
        {
            "id": "$$cap_db_user",
            "label": "database user",
            "defaultValue": "nextcloud",
            "description": "Username for the database using mysql.",
            "validRegex": "/^([a-zA-Z0-9])+$/"
        },
        {
            "id": "$$cap_admin_user",
            "label": "admin name",
            "defaultValue": "admin",
            "description": "Name of the Nextcloud admin user.",
            "validRegex": "/^([a-zA-Z0-9\\@\\.])+$/"
        },
        {
            "id": "$$cap_admin_pass",
            "label": "admin password",
            "description": "Password for the Nextcloud admin user.",
            "validRegex": "/.{1,}/"
        },
        {
            "id": "$$cap_http_https_cors",
            "label": "Protocol of proxy",
            "defaultValue": "https",
            "description": "Choose either http or https. cors configuration to login are set by the docker image, if you do not set this same as your proxy configuration, login will fail",
            "validRegex": "/^http[s]?$/"
        }
    ]
}
