captainVersion: 4
services:
    $$cap_appname:
        image: gitlab/gitlab-ce:$$cap_gitlab_version
        hostname: $$cap_appname.$$cap_root_domain
        volumes:
            - '$$cap_appname-config: /etc/gitlab'
            - '$$cap_appname-logs: /var/log/gitlab'
            - '$$cap_appname-data: /var/opt/gitlab'
        restart: always
        environment:
            GITLAB_OMNIBUS_CONFIG: $$cap_gitlab_omnibus_config
caproverOneClickApp:
    variables:
        - id: $$cap_gitlab_version
          label: Gitlab-CE Version Tag
          description: Check out their Docker page for the valid tags https://hub.docker.com/r/gitlab/gitlab-ce/tags
          defaultValue: 11.9.8-ce.0
          validRegex: /^([^\s^\/])+$/
        - id: $$cap_gitlab_omnibus_config
          label: Omnibus Config (Optional)
          description: 'More information here: https://docs.gitlab.com/omnibus/docker/#pre-configure-docker-container'
    instructions:
        start: >-
            GitLab is a single application for the entire software development lifecycle. From project planning and source code management to CI/CD, monitoring, and security. 

            More about this container:
            https://hub.docker.com/r/gitlab/gitlab-ce/ 

            Hardware and Software requeriments can be found here:
            https://docs.gitlab.com/ce/install/requirements.html

            For security reasons, no port mapping is created, those can be created after deploying the app.
            More information about Caprover's Firewall & Port Forwarding and configuration can be found here:
            https://caprover.com/docs/firewall.html 


            More information about gitlab's docker configuration can be found here:
            https://docs.gitlab.com/omnibus/docker/#configure-gitlab

            It can take some time (2-3 minutes) for the service to launch in a new container. Check the "Deployment" tab logs to determine once GitLab is ready.
        end: Gitlab-CE is deployed and available as srv-captain--$$cap_appname:80 to other apps.
    displayName: Gitlab (CE)
    isOfficial: true
    description: CE version of GitLab for CI/CD pipeline
    documentation: Taken from https://docs.gitlab.com/omnibus/docker/
